Quantcast
Channel: Hacker News
Viewing all 737 articles
Browse latest View live

Two.js

$
0
0

Two.js is a two-dimensional drawing api geared towards modern web browsers. It is renderer agnostic enabling the same api to draw in multiple contexts: svg, canvas, and webgl.

Two.js requires Underscore.js and Backbone.jsEvents. If you're already loading these files elsewhere then you can build the project yourself and get the file size even smaller. For more information on custom builds check out the source on github.

In order to start any of these demos you'll want to download two.js and add it to your <html> document. Once downloaded add this tag to the <head> of your document: <script src="./path-to-two/two.js"></script>. When you visit the page, you should be able to open up the console and type Two. If this returns a function then you're ready to begin!

  • Two

  • When you import the library Two is a window level class that serves as the main interaction point for the project. It exposes a number of methods and properties. These make it possible to draw, but also afford other capabilities such as augmenting the drawing space. Below are the documented properties and features of the Two class. Unless specified methods return their instance of Two for the purpose of chaining.
  • constructionvar two = new Two(params);

    Create a new instance of Two where params is a JavaScript object with several optional parameters listed below:

    • typeparams.type

      Set the type of renderer for the instance: svg, webgl, canvas, etc.. Applicable types are carried within Two.Types. Default type is Two.Types.svg.

    • widthparams.width

      Set the width of the drawing space. Disregarded if params.fullscreen is set to true. Default width is 640 pixels.

    • heightparams.height

      Set the height of the drawing space. Disregarded if params.fullscreen is set to true. Default height is 480 pixels.

    • autostartparams.autostart

      A boolean to automatically add the instance to draw on requestAnimationFrame. This is a convenient substitute so you don't have to call two.play().

    • fullscreenparams.fullscreen

      A boolean to set the drawing space of the instance to be fullscreen or not. If set to true then width and height parameters will not be respected.

  • typetwo.type

    A string representing which type of renderer the instance has implored.

  • frameCounttwo.frameCount

    A number representing how many frames have elapsed.

  • widthtwo.width

    The width of the instance's dom element.

  • heighttwo.height

    The height of the instance's dom element.

  • playingtwo.playing

    A boolean representing whether or not the instance is being updated through the automatic requestAnimationFrame.

  • renderertwo.renderer

    The instantiated rendering class for the instance. For a list of possible rendering types check out Two.Types.

  • scenetwo.scene

    The base level Two.Group which houses all objects for the instance. Because it is a Two.Group transformations can be applied to it that will affect all objects in the instance. This is handy as a makeshift camera.

  • appendTotwo.appendTo(domElement);

    A convenient method to append the instance's dom element to the page. It's required to add the instance's dom element to the page in order to see anything drawn.

  • playtwo.play();

    This method adds the instance to the requestAnimationFrame loop. In affect enabling animation for this instance.

  • pausetwo.pause();

    This method removes the instance from the requestAnimationFrame loop. In affect halting animation for this instance.

  • updatetwo.update();

    This method updates the dimensions of the drawing space, increments the tick for animation, and finally calls two.render(). When using the built-in requestAnimationFrame hook, two.play(), this method is invoked for you automatically.

  • rendertwo.render();

    This method makes the instance's renderer draw. It should be unnecessary to inoke this yourself at anytime.

  • addtwo.add(objects);

    Add one or many shapes / groups to the instance. Objects can be added as arguments, two.add(o1, o2, oN), or as an array depicted above.

  • makeLinetwo.makeLine(x1, y1, x2, y2);

    Draws a line between two coordinates to the instance's drawing space where x1, y1 are the x, y values for the first coordinate and x2, y2 are the x, y values for the second coordinate. It returns a Two.Polygon object.

  • makeRectangletwo.makeRectangle(x, y, width, height);

    Draws a rectangle to the instance's drawing space where x, y are the x, y values for the center point of the rectangle and width, height represents the width and height of the rectangle. It returns a Two.Polygon object.

  • makeCircletwo.makeCircle(x, y, radius);

    Draws a circle to the instance's drawing space where x, y are the x, y values for the center point of the circle and radius is the radius of the circle. It returns a Two.Polygon object.

  • makeEllipsetwo.makeEllipse(x, y, width, height);

    Draws an ellipse to the instance's drawing space where x, y are the x, y values for the center point of the ellipse and width, height are the dimensions of the ellipse. It returns a Two.Polygon object.

  • makeCurvetwo.makeCurve(x1, y1, x2, y2, xN, yN, open);

    Draws a curved polygon to the instance's drawing space. The arguments are a little tricky. It returns a Two.Polygon object.

    The method accepts any amount of paired x, y values as denoted by the series above. It then checks to see if there is a final argument, a boolean open, which marks whether or not the shape should be open. If true the curve will have two clear endpoints, otherwise it will be closed.

    This method also recognizes the format two.makeCurve(points, open) where points is an array of Two.Vector's and open is an optional boolean describing whether or not to expose endpoints. It is imperative if you generate curves this way to make the list of points Two.Vector's.

  • makePolygontwo.makePolygon(x1, y1, x2, y2, xN, yN, open);

    Draws a polygon to the instance's drawing space. The arguments are a little tricky. It returns a Two.Polygon object.

    The method accepts any amount of paired x, y values as denoted by the series above. It then checks to see if there is a final argument, a boolean open, which marks whether or not the shape should be open. If true the polygon will have two clear endpoints, otherwise it will be closed.

    This method also recognizes the format two.makePolygon(points, open) where points is an array of Two.Vector's and open is an optional boolean describing whether or not to expose endpoints. It is imperative if you generate curves this way to make the list of points Two.Vector's.

    The Two.Polygon that this method creates is the base shape for all of the make functions.

  • makeGrouptwo.makeGroup(objects);

    Adds a group to the instance's drawing space. While a group does not have any visible features when rendered it allows for nested transformations on shapes. See Two.Group for more information. It accepts an array of objects, Two.Polygons or Two.Groups. As well as a list of objects as the arguments, two.makeGroup(o1, o2, oN). It returns a Two.Group object.

  • interprettwo.interpret(svgNode);

    Reads an svg node and draws the svg object by creating Two.Polygons and Two.Groups from the reference. It then adds it to the instance's drawing space. It returns an Two.Group object.

    At the time of writing, two.interpret accepts compound paths, but often has unexpected results. Therefore it is recommended to break apart and Release Compound Paths as much as possible.

  • bindtwo.bind(event, callback);

    Bind an event, string, to a callback function. Passing "all" will bind the callback to all events. Inherited from Backbone.js.

  • unbindtwo.unbind(event, callback);

    Remove one or many callback functions. If callback is null it removes all callbacks for an event. If the event name is null, all callback functions for the instance are removed. This is highly discouraged. Inherited from Backbone.js.

  • ArrayTwo.Array

    A JavaScript Float32Array with graceful fallback to JavaScript Array.

  • TypesTwo.Types

    A list of applicable types of rendering contexts. This is used to standardize the addresses of the various renderers. The types include svg, canvas, and webgl. e.g: Two.Types.svg

  • PropertiesTwo.Properties

    A list of renderer specific application properties.

  • EventsTwo.Events

    A list of actionable events triggered by a given instance. For the most part these are internal events in order to enable two-way databinding. Exceptions include update event on animation loop and resize when the dimensions of the drawing space change. Related to two.bind and two.trigger.

  • ResolutionTwo.Resolution

    A number representing how many subdivisions should be present during curve calculations.

  • InstancesTwo.Instances

    A running list of all instances created on the page.

  • noConflictTwo.noConflict();

    Run two.js in noConflict mode, returning the two variable to its previous owner. Returns a reference to the Two class.

  • UtilsTwo.Utils

    A collection of utility functions and variables used throughout the project. This is where much of the algorithmic computation lies: computing curve handles, subdividing cubic bezier curves, interpretting svg nodes. Because of it's complexity it's encouraged to look at the source code for further information.

  • ErrorTwo.Error(message);

    A two.js specific custom error handler. Takes a message, string, to display in the console to developers.

  • Two.Polygon

  • This is the base class for creating all drawable shapes in two.js. Unless specified methods return their instance of Two.Polygon for the purpose of chaining.
  • constructionvar polygon = new Two.Polygon(vertices, closed, curved);

    A polygon takes an array of vertices which are made up of Two.Vectors. This is essential for the two-way databinding. It then takes two booleans, closed and curved which delineate whether the shape should be closed (lacking endpoints) and whether the shape should calculate curves or straight lines between the vertices.

    If you are constructing groups this way instead of two.makePolygon(), then don't forget to add the group to the instance's scene, two.add(group).

  • idpolygon.id

    The id of the polygon. In the svg renderer this is the same number as the id attribute given to the corresponding node. i.e: if polygon.id = 4 then document.querySelector('two-' + group.id) will return the corresponding svg node.

  • strokepolygon.stroke

    A string representing the color for the stroke of the polygon. All valid css representations of color are accepted.

  • fillpolygon.fill

    A string representing the color for the area of the vertices. All valid css representations of color are accepted.

  • linewidthpolygon.linewidth

    A number representing the thickness the polygon's strokes. Must be a positive number.

  • opacitypolygon.opacity

    A number representing the opacity of the polygon. Use strictly for setting. Must be a number 0-1.

  • cappolygon.cap

    A string representing the type of stroke cap to render. All applicable values can be found on the w3c spec. Defaults to "round".

  • joinpolygon.join

    A string representing the type of stroke join to render. All applicable values can be found on the w3c spec. Defaults to "round".

  • miterpolygon.miter

    A number representing the miter limit for the stroke. Defaults to 1.

  • rotationpolygon.rotation

    A number that represents the rotation of the polygon in the drawing space, in radians.

  • scalepolygon.scale

    A number that represents the uniform scale of the polygon in the drawing space.

  • translationpolygon.translation

    A Two.Vector that represents x, y translation of the polygon in the drawing space.

  • parentpolygon.parent

    A reference to the Two.Group that contains this instance.

  • verticespolygon.vertices

    An array of Two.Vectors that is two-way databound. Individual vertices may be manipulated, however it is imperative that the array itself does not get manipulated.

  • closedpolygon.closed

    Boolean that describes whether the polygon is closed or not.

  • curvedpolygon.curved

    Boolean that describes whether the polygon is curved or not.

  • beginningpolygon.beginning

    A number, 0-1, that is mapped to the layout and order of vertices. It represents which of the vertices from beginning to end should start the shape. Exceedingly helpful for animating strokes. Defaults to 0.

  • endingpolygon.ending

    A number, 0-1, that is mapped to the layout and order of vertices. It represents which of the vertices from beginning to end should end the shape. Exceedingly helpful for animating strokes. Defaults to 1.

  • clonepolygon.clone();

    Returns a new instance of a Two.Polygon with the same settings.

  • centerpolygon.center();

    Anchors all vertices around the centroid of the group.

  • addTopolygon.addTo(group);

    Adds the instance to a Two.Group.

  • removegroup.remove(objects);

    If added to a two.scene this method removes itself from it.

  • getBoundingClientRectpolygon.getBoundingClientRect();

    Returns an object with top, left, right, bottom, width, and height parameters representing the bounding box of the polygon.

  • noFillpolygon.noFill();

    Removes the fill.

  • noStrokepolygon.noStroke();

    Removes the stroke.

  • Two.Group

  • This is a container object for two.js — it can hold shapes as well as other groups. At a technical level it can be considered an empty transformation matrix. It is recommended to use two.makeGroup() in order to add groups to your instance of two, but you its not necessary. Unless specified methods return their instance of Two.Group for the purpose of chaining.
  • constructionvar group = new Two.Group();

    If you are constructing groups this way instead of two.makeGroup(), then don't forget to add the group to the instance's scene, two.add(group).

  • idgroup.id

    The id of the group. In the svg renderer this is the same number as the id attribute given to the corresponding node. i.e: if group.id = 5 then document.querySelector('two-' + group.id) will return the corresponding node.

  • strokegroup.stroke

    A string representing the color for the stroke of all child shapes. Use strictly for setting. All valid css representations of color are accepted.

  • fillgroup.fill

    A string representing the color for the area of all child shapes. Use strictly for setting. All valid css representations of color are accepted.

  • linewidthgroup.linewidth

    A number representing the thickness of all child shapes' strokes. Use strictly for setting. Must be a positive number.

  • opacitygroup.opacity

    A number representing the opacity of all child shapes. Use strictly for setting. Must be a number 0-1.

  • capgroup.cap

    A string representing the type of stroke cap to render for all child shapes. Use strictly for setting. All applicable values can be found on the w3c spec. Defaults to "round".

  • joingroup.join

    A string representing the type of stroke join to render for all child shapes. Use strictly for setting. All applicable values can be found on the w3c spec. Defaults to "round".

  • mitergroup.miter

    A number representing the miter limit for the stroke of all child objects. Use strictly for setting. Defaults to 1.

  • rotationgroup.rotation

    A number that represents the rotation of the group in the drawing space, in radians.

  • scalegroup.scale

    A number that represents the uniform scale of the group in the drawing space.

  • translationgroup.translation

    A Two.Vector that represents x, y translation of the group in the drawing space.

  • childrengroup.children

    A map of all the children of the group.

  • parentgroup.parent

    A reference to the Two.Group that contains this instance.

  • clonegroup.clone();

    Returns a new instance of a Two.Group with the same settings.

    This will copy the children as well, which can be computationally expensive.

  • centergroup.center();

    Anchors all children around the centroid of the group.

  • addTogroup.addTo(group);

    Adds the instance to a Two.Group. In many ways the inverse of two.add(object).

  • addgroup.add(objects);

    Add one or many shapes / groups to the instance. Objects can be added as arguments, two.add(o1, o2, oN), or as an array depicted above.

  • removegroup.remove(objects);

    Remove one or many shapes / groups to the instance. Objects can be removed as arguments, two.remove(o1, o2, oN), or as an array depicted above.

  • getBoundingClientRectgroup.getBoundingClientRect();

    Returns an object with top, left, right, bottom, width, and height parameters representing the bounding box of the group.

  • noFillgroup.noFill();

    Remove the fill from all children of the group.

  • noStrokegroup.noStroke();

    Remove the stroke from all children of the group.

  • MakeGetterSetterGroup.MakeGetterSetter();

    Convenience method to turn a property into an EcmaScript 5 getter / setter.

  • Two.Vector

  • This is the atomic coordinate representation for two.js. A Two.Vector is different and specific to two.js because it's main properties, x and y, trigger events which allow the renderers to efficiently change only when they need to. Unless specified methods return their instance of Two.Vector for the purpose of chaining.
  • constructionvar vector = new Two.Vector(x, y);

  • xvector.x

    The x value of the vector.

  • yvector.y

    The y value of the vector.

  • setvector.set(x, y);

    Set the x, y properties of the vector to the arguments x, y.

  • copyvector.copy(v);

    Set the x, y properties of the vector from another vector, v.

  • clearvector.clear();

    Set the x, y properties of the vector to 0.

  • clonevector.clone();

    Returns a new instance of a Two.Vector with the same x, y values as the instance.

  • addvector.add(v1, v2);

    Add to vectors together. The sum of the x, y values will be set to the instance.

  • addSelfvector.addSelf(v);

    Add the x, y values of the instance to the values of another vector. Set the sum to the instance's values.

  • subvector.sub(v1, v2);

    Subtract two vectors. Set the difference to the instance.

  • subSelfvector.subSelf(v);

    Subtract a vector, v, from the instance.

  • multiplySelfvector.multiplySelf(v);

    Multiply the x, y values of the instance by another vector's, v, x, y values.

  • multiplyScalarvector.multiplyScalar(value);

    Multiply the x, y values of the instance by another number, value.

  • divideScalarvector.divideScalar(value);

    Divide the x, y values of the instance by another number, value.

  • negatevector.negate();

    Toggle the sign of the instance's x, y values.

  • dotvector.dot(v);

    Return the dot product of the instance and a vector, v.

  • lengthSquaredvector.lengthSquared();

    Return the length of the vector squared.

  • lengthvector.length();

    Return the length of the vector.

  • normalizevector.normalize();

    Reduce the length of the vector to the unit circle.

  • distanceTovector.distanceTo(v);

    Return the distance from the instance to another vector, v.

  • distanceToSquaredvector.distanceToSquared(v);

    Return the distance squared from the instance to another vector, v.

  • setLengthvector.setLength(length);

    Set the length of a vector to a specified distance, length.

  • equalsvector.equals(v);

    Return a boolean representing whether or not the vectors are within 0.0001 of each other. This fuzzy equality helps with Physics libraries.

  • lerpvector.lerp(v, t);

    Linear interpolation of the instance's current x, y values to the destination vector, v, by an amount, t. Where t is a value 0-1.

  • isZerovector.isZero();

    Returns a boolean describing the length of the vector less than 0.0001.

  • These are the four main classes that a typical developer will come across with when using two.js, however the project is built with a few more classes behind the scene. If you're interested in the nitty-gritty then its recommended to check out the source.


    Traffic From Syria Disappears From Internet

    $
    0
    0

    At around 18:45 UTC OpenDNS resolvers saw a significant drop in traffic from Syria. On closer inspection it seems Syria has largely disappeared from the Internet.

    The graph below shows DNS traffic from and to Syria. Although Twitter remains relatively silent, the drop in both inbound and outbound traffic from Syria is clearly visible. The small amount of outbound traffic depicted by the chart indicates our DNS servers trying to reach DNS servers in Syria.

    syria_offline

    Currently both TLD servers for Syria, ns1.tld.sy and ns2.tld.sy are unreachable.  The remaining two nameservers sy.cctld.authdns.ripe.net. and pch.anycast.tld.sy. are reachable since they are not within Syria.

    The Umbrella Security Labs also reported on an Internet blackout in Syria November of 2012, where we shared details of the top 10 most failed domains during the outage.  

    Expect updates from our team shortly.

    Update: 1:28 p.m. PDT

    There have been numerous incidents where access to and from the Internet in Syria was shut down. Shutting down Internet access to and from Syria is achieved by withdrawing the BGP routes from Syrian prefixes. The graph below shows the sudden drop in visibility for Syrian network prefixes.

    umbrella-syria-bgp

    How it happened:

    Routing on the Internet relies on the Border Gateway Protocol (BGP). BGP distributes routing information and makes sure all routers on the Internet know how to get to a certain IP address. When an IP range becomes unreachable it will be withdrawn from BGP, this informs routers that the IP range is no longer reachable.

    For example, one of the name servers for the DNS zone .SY is ns1.tld.sy with IP address 82.137.200.85.

    Normally our routers would expect a BGP route for 82.137.192.0/18

    Currently that route has disappeared and we no longer have a way to reach the Nameservers for .SY that reside in Syria

    andree@rtr1-re0.ams> show route 82.137.192.0/18 detail

    {master}

    Currently there are just three routes in the BGP routing tables for Syria, while normally it’s close to Eighty.  Below are the routes that are still being announced by the major Syrian Telecom provider: AS29256

    andree@rtr1-re0.ams> show route aspath-regex “.* 29256 “

     

    inet.0: 447128 destinations, 1696295 routes (446964 active, 5 holddown, 445714 hidden)

    + = Active Route, – = Last Active, * = Both

     

    46.53.0.0/17       *[BGP/170] 01:41:57, MED 0, localpref 100

                         AS path: 3356 3320 29386 29256 I

                       

    78.110.96.0/20     *[BGP/170] 01:41:57, MED 0, localpref 100

                         AS path: 3356 3320 29386 29256 I

                

    94.141.192.0/19    *[BGP/170] 01:41:57, MED 0, localpref 100

                         AS path: 3356 3320 29386 29256 I

    Effectively, the shutdown disconnects Syria from Internet communication with the rest of the world. It’s unclear whether Internet communication within Syria is still available. Although we can’t yet comment on what caused this outage, past incidents were linked to both government-ordered shutdowns and damage to the infrastructure, which included fiber cuts and power outages.

    Coinbase Nabs $5M in Biggest Funding for Bitcoin Startup

    $
    0
    0

    Eleven-month-old startup Coinbase announced Tuesday the largest funding round to date for a Bitcoin startup, a $5 million investment led by Union Square Ventures.

    Gary Tan
    Brian Armstrong, co-founder of Coinbase Inc., speaking in June 2012 at Y Combinator to other founders in the elite startup program. Coinbase announced Tuesday that it raised $5 million in a Series A round led by Union Square Ventures.

    In an exclusive interview with The Wall Street Journal, Coinbase’s founders Fred Ehrsam and Brian Armstrong said the Series A deal–which followed a seed round in September 2012 of $600,000–will help the San Francisco company cover operating costs and hire engineers, designers and business-support staff.

    “We need 10 people yesterday,” said Ehrsam, a 24-year-old former Goldman Sachs trader. Armstrong, 30, was previously a software engineer at peer-to-peer housing startup Airbnb.

    Coinbase is an online platform that allows users to buy Bitcoin, the virtual currency taking the tech world by storm. Users can also store Bitcoin in a digital wallet and pay merchants for goods or services with it. About 300 merchants have signed up with Coinbase so far, including content-aggregation site Reddit.com and dating site OKCupid.com.

    In April, Coinbase’s co-founders said the company claimed about 116,000 members who converted $15 million of real money into Bitcoin, up from $1 million in January. Ehrsam said the volume of dollars it’s converting to Bitcoin is increasing at a rate of about 15% a week, and its user base is growing at a weekly rate of about 12%.

    Coinbase makes money by charging users a 1% fee to convert dollars into and out of Bitcoin. The company was developed last summer in the elite technology incubator Y Combinator, which is where Ehrsam and Armstrong met Union Square partner Fred Wilson. Y Combinator’s Paul Graham said Coinbase’s growth is “very, very rare.”

    He added that he thinks Bitcoin is poised to be a true game-changer for the business world, and the tech community in particular. “Hackers are the animals that can detect a storm coming or an earthquake,” he said. “They just know, even though they don’t know why, and there are two big things hackers are excited about now and can’t articulate why–Bitcoin and 3D printing.”

    Wilson said that Union Square has looked at about a dozen Bitcoin startups over the past two to three years but that Coinbase is its first investment in the space so far. “There is no magic bullet that they have,” he said. “They have competitors doing the same thing. We just really liked their approach to the business and the product they built.”

    Coinbase’s founders, he added, are “very pragmatic, level-headed engineers.”

    Wilson acknowledged that there’s much risk involved in backing a Bitcoin startup. The virtual currency has been plagued by extreme volatility, rising to a high of $266 in April of this year and now down to about $108 this month. There are also security concerns and the possibility that another virtual currency will steal Bitcoin’s thunder. Nine-month-old OpenCoin of San Francisco–which last month announced that it raised a seed round of more than $2 million–has developed one called Ripple that it’s trying to circulate.

    Leonhard Foeger/Reuters

    But Wilson said that his firm’s investment in Coinbase “may be less risky” than others in its portfolio “because there is a lot of activity in Bitcoin going on right now.” Plus, he sees a potentially massive windfall.

    “Digital currency and Bitcoin specifically is a very interesting area where if one were to get it right, the upside would be enormous,” he said. “If Bitcoin really becomes the global currency that every country and every business accepts, and Coinbase becomes the JP Morgan Chase of Bitcoin, that could be worth a lot of money.”

    Micky Malka, founder of Ribbit Capital, one of Coinbase’s other Series A investors, said he likens Bitcoin and its skeptics to when the Internet started becoming popular in the early 1990s. Back then there were “a lot of articles about the Internet being a place for porn,” he said, similar to how early Bitcoin adopters have been allegedly using the currency for illicit purposes, such as to buy and sell illegal drugs.

    “It’s very normal to see new disruptions start in places where there is a high friction,” Malka added. If Bitcoin becomes a legitimate currency, “people will forget what it was used for in the beginning.”

    Still, the budding currency is far off from going mainstream. Investor Warren Buffettprofessed Saturday to knowing nothing about Bitcoin when asked about it during Berkshire Hathaway’s annual meeting.

    “I’ll put it this way, of our $49 billion we haven’t moved any of it to Bitcoin,” he said.

    Write to Sarah E. Needleman at sarah.needleman@wsj.com

    Plot.ly: Think Matlab for the Web

    $
    0
    0

    Copy & paste data directly
    onto a Plotly graph.
    Try with this sample data:


    Mac: ⌘-C, ⌘-V
    Windows: ctrl-C, ctrl-V

    John Carmack starting port of Wolf 3D in Haskell

    $
    0
    0


    Under 100 characters, optional



    Why Isn't Gatsby in the Public Domain?

    $
    0
    0

    When The Great Gatsby rolls out to theaters across the country this weekend, it will bring to the screen a story familiar to millions from a literary classic that's often dubbed the proverbial "Great American Novel." Here’s what many folks don’t know: even though the book was published nearly 90 years ago and is a long-established part of our shared cultural heritage, it has not yet entered the public domain.

    Yes, even though F. Scott Fitzgerald died 73 years ago (and is therefore unlikely to be incentivized to produce more work), The Great Gatsby is still restricted by copyright.

    F. Scott and Zelda Fitzgerald

    In fact, it won't be truly free to the American public until January 1, 2021 — and even then only if copyright terms aren't extended again. Thanks to the 1998 Sonny Bono Copyright Term Extension Act, no published US works will enter the public domain until 2019. Some countries have slightly saner copyright terms, but the U.S. Trade Rep is working diligently to use international agreements like the TPP to ratchet up terms around the world.

    Still worse, a tragic 2012 Supreme Court decision declared that even once in the public domain, works can be yanked back out by Congressional action. Between excessively long copyright terms and the uncertainty of public domain status, creating new works that depend on the commons has become difficult and dangerous.

    We feel the pernicious practical effects of lengthy copyright terms every day. For example, a study last year of books on Amazon showed that books published after the critical public domain cut-off date of 1923 are available at a dramatically lower rate than books from even an entire century before. The result is a "missing 20th century" in the history of books.

    Nor is the problem confined to books. Another study by an MIT economist examined an archive of baseball magazines that included some issues in the public domain and some still burdened by copyright. By contrast, images from the public domain issues can be digitized and redistributed, and so their availability has greatly improved the quality—and thus increased the readership and editing engagement—of Wikipedia articles on baseball players from that era.

    You may or may not care about particular baseball players from the 1960s, but the situation repeats itself over and over again across different fields. In the name of preserving profits for a handful of rightsholders, our cultural history is left to decay in legally imposed obscurity.

    A diminished public domain doesn't just rob us of past works, but of the future works that could rely on an expanded public domain. Rightsholders have the power to veto derivative works simply by refusing to license the  works. And if the rightsholder can't be tracked down or confirmed— a real possibility when we’re talking about works that are nearly a hundred years old — the difficulty of getting a license can halt production altogether.

    Ironically, this hurts the same studios that pushed the Copyright Term Extension Act in the first place. Adapting well-known works is a powerful way to reach an audience familiar with the characters and story, and a strong public domain provides fertile grounds for new works. For example, Disney’s early films mined the public domain freely, leading to classic versions of well-known fairy tales, but its lobbying for expanded copyright restrictions has deprived others — and the public — of the same possibilities.

    Gatsby director Baz Luhrmann himself took advantage of the public domain with his 1996 film Romeo + Juliet. The movie was, of course, a heavily modernized and modified version of Shakespeare's classic play—exactly the kind of thing that a rightsholder might veto for "artistic integrity," if there were a Shakespeare "estate" that were as good at lobbying as Disney and the MPAA.

    But it was also a critical and popular success, racking up nearly $150 million at the box office, and the world of film would be a poorer place without it. It should be obvious to Hollywood the value of the public domain as a critical component of a thriving creative culture—both in artistic terms and economic ones. Bloating the copyright term may have seemed like a fine way to protect that year's profits, but ultimately it comes at a great cost to both Hollywood and the public interest.

    Aaron Greenspan sues Facebook, Sequoia, Andreesen, YC, others

    $
    0
    0
     

    2

    BYERS XV, LLC; SEQUOIA CAPITAL, LLC;SEQUOIA CAPITAL NEW PROJECTS, LLC;SEQUOIA CAPITAL XII, LP; SC XIIMANAGEMENT, LLC; SEQUOIA CAPITALXII PRINCIPALS FUND, LLC; SEQUOIACAPITAL SCOUT FUND I, LLC; SEQUOIACAPITAL SCOUT FUND II, LLC; SEQUOIACAPITAL U.S. SCOUT FUND III, LLC;SEQUOIA CAPITAL U.S. SCOUT SEED FUND2013, LP; SEQUOIA TECHNOLOGYPARTNERS XII, LP; Y COMBINATOR, LLC; YCOMBINATOR FUND I, LP; Y COMBINATORFUND I GP, LLC; Y COMBINATOR FUND II, LP; Y COMBINATOR FUND II GP, LLC; YCOMBINATOR RE, LLC; Y COMBINATORS2012, LLC; Y COMBINATOR W2013, LLC;BRIAN CHESKY; MAX LEVCHIN; YURIMILNER; YISHAN WONG

    ,Defendants.Plaintiff Think Computer Corporation, by and for its complaint against ActBlue, LLC,Airbnb, Inc., Pound Payments Escrow Services, Inc. DBA Balanced Payments, ClinkleCorporation, Coinbase, Inc., Coinlab, Inc., Dwolla, Inc., Facebook, Inc., Facebook Payments,Inc., GoPago, Inc., Gumroad, Inc., Square, Inc., The Board of Trustees of the Leland StanfordJunior University, A-Grade Investments, LLC, A-Grade Investments II, LLC, AndreessenHorowitz, LLC, Andreessen Horowitz Fund I, LP, Andreessen Horowitz Fund I-A, LP,Andreessen Horowitz Fund I-B, LP, Andreessen Horowitz Fund II, LP, Andreessen HorowitzFund II-A, LP, Andreessen Horowitz Fund II-B, LP, Andreessen Horowitz Fund III, LP,Andreessen Horowitz Fund III (AIV), LP, Andreessen Horowitz Fund III-A, LP, AndreessenHorowitz Fund III-B, LP Andreessen Horowitz Fund III-Q, LP, Digital Sky Technologies,Limited, DST Global, Limited, DSTG-2 2011 Advisors, LLC, DSTG-2 2011 Investors DLP,LLC, DSTG-2 2011 Investors Onshore, LP, Kleiner Perkins Caufield & Byers, LLC, Kleiner

    How the Syrian Electronic Army Hacked The Onion

    $
    0
    0

    This is a write-up of how the Syrian Electronic Army hacked The Onion. In summary, they phished Onion employees’ Google Apps accounts via 3 seperate methods.

    The SEA began by sending phishing emails to various Onion employees beginning around May 3.

    The Washington Post link actually went to a URL like

    http://hackedwordpresssite.com/theonion.php
    

    which redirected to a URL like

    http://googlecom.comeze.com/a/theonion.com/Service.Login?&passive=1209600&cpbps=1&continue=https://mail.google.com/mail/
    

    which asked for Google Apps credentials before redirecting to the Gmail inbox.

    These emails were sent from strange, outside addresses, and they were sent to few enough employees to appear as just random noise rather than a targeted attack. At least one Onion employee fell for this phase of the phishing attack.

    Once the attackers had access to one Onion employee’s account, they used that account to send the same email to more Onion staff at about 2:30 AM on Monday, May 6. Coming from a trusted address, many staff members clicked the link, but most refrained from entering their login credentials. Two staff members did enter their credentials, one of whom had access to all of our social media accounts.

    After discovering that at least one account had been compromised, we sent a company-wide email to change email passwords immediately. The attacker used their access to a different, undiscovered compromised account to send a duplicate email which included a link to the phishing page disguised as a password-reset link. This dupe email was not sent to any member of the tech or IT teams, so it went undetected. This third and final phishing attack compromised at least 2 more accounts. One of these accounts was used to continue owning our Twitter account.

    At this point the editorial staff began publishing articles inspired by the attack. The second article, Syrian Electronic Army Has A Little Fun Before Inevitable Upcoming Deaths At Hands Of Rebels, angered the attacker who then began posting editorial emails on their Twitter account. Once we discovered this, we decided that we could not know for sure which accounts had been compromised and forced a password reset on every staff member’s Google Apps account.

    In total, the attacker compromised at least 5 accounts. The attacker logged in to compromised accounts from 46.17.103.125 which is also where the SEA hosts a website.

    From examining the details of this incident, as well as those effecting the AP, Guardian and others, it’s clear that the SEA is not using complex methods of attack. All of the hacks so far have been a result of simple phishing, or possibly dictionary attacks—all of which are preventable with a few simple security measures.

    • Make sure that your users are educated, and that they are suspicious of all links that ask them to log in, regardless of the sender.

    • The email addresses for your twitter accounts should be on a system that is isolated from your organization’s normal email. This will make your Twitter accounts virtually invulnerable to phishing (providing that you’re using unique, strong passwords for every account).

    • All twitter activity should go through an app of some kind, such as HootSuite. Restricting password-based access to your accounts prevents a hacker from taking total ownership, which takes much longer to rectify.

    • If possible, have a way to reach out to all of your users outside of their organizational email. In the case of the Guardian hack, the SEA posted screenshots of multiple internal security emails, probably from a compromised email address that was overlooked.


    Microsoft to pay $1 billion to buy the digital assets of Nook Media LLC

    $
    0
    0

    Microsoft is offering to pay $1 billion to buy the digital assets of Nook Media LLC, the digital book and college book joint venture with Barnes & Noble and other investors, according to internal documents we’ve obtained. In this plan, Microsoft would redeem preferred units in Nook Media, which also includes a college textbook division, leaving it with the digital operation — e-books, as well as Nook e-readers and tablets.

    The documents also reveal that Nook Media plans to discontinue its Android-based tablet business by the end of its 2014 fiscal year as it transitions to a model where Nook content is distributed through apps on “third-party partner” devices. Speculation about the plan to discontinue the Nook surfaced in February. The documents we have are not clear on whether the third-party tablets would be Microsoft’s own Windows 8 devices, tablets made by others (including competing platforms) or both. Third-party tablets, according to the document, are due to get introduced in 2014.

    Nook e-readers, meanwhile, do not appear to fall into the discontinuation pile immediately. Rather, they’re projected to have their own gradual, natural decline — following the general trend of consumers moving to tablets as all-purpose devices.

    Microsoft and B&N representatives declined to comment for this story.

    A deal to buy the digital assets of Nook Media is the natural next step for Microsoft, which first announced a plan to work with Barnes & Noble on its Nook devices and content in April 2012, ponying up $300 million at the time to help. That plan included an additional $180 million advance to develop content for its Windows 8 devices — which Nook has been doing.

    To date, there have been 10 million Nook devices sold, including both tablets and e-readers, with more than 7 million active subscribers. Microsoft has seen limited interested in its Windows 8 devices (although it says it has sold more than 100 million licenses for the OS to date). Currently the Nook app is available on every major platform, including Android, iOS and Windows.

    Nook Media split from the retail arm last October with a $300 million investment by Microsoft for a 16.8 percent stake in the company. The partnership was aimed at getting B&N content on then-nascent Windows 8 tablets. At the time, President of Digital Product at Nook Media, Jamie Iannone, said “It’s hardware, software, content: everything Nook is part of Nook Media. There will always be a long-term relationship between Barnes & Noble and the Nook business.”

    Nook’s decline seems to have helped alter company strategy. Barnes & Noble founder Leonard Riggio proposed buying back the whole of the company’s retail operation.

    The documents TC has seen values B&N at $1.66 billion. When Nook Media was first formed, the valuation of that division alone was $1.7 billion. When Pearson invested $85 million at a 5 percent stake in January, it was valued at $1.8 billion. If the deal goes through, Microsoft’s $1 billion purchase will be well below the price it had originally bought in at.

    Projections in the document, which are based on company filings and management discussions, show the Nook unit bringing in total revenue of $1.215 billion for fiscal year 2012 (which for Barnes & Noble ended April 30th), for a loss of $262 million in earnings before interest, taxes, depreciation and amortization (EBITDA). It expects revenue to fall to $1.091 billion in fiscal year 2013, for a loss of $360 million as tablets are phased out — and estimates revenues to gradually recover, up to $1.976 billion by fiscal year 2017, for EBITDA profit of $362 million.

    In the meantime, the Nook division has taken a beating this year following a slow holiday season. The new models have sold at a discount for weeks at a time and their flagship 10-inch Nook HD+ fell from $269 to $179. Kindle is offering the Fire HD for the same price. The hardware, while in many ways superior to Amazon’s, seems to have fallen behind in the race to market share and revenue. If Microsoft steps in, the dedicated e-reader race between the stalwart B&N and Jeff Bezos’ Amazon could be over.

    John Biggs contributed to this article.


    April 4, 1974

    NASDAQ:MSFT

    Microsoft, founded in 1975 by Bill Gates and Paul Allen, is a veteran software company, best known for its Microsoft Windows operating system and the Microsoft Office suite of productivity software. Starting in 1980 Microsoft formed a partnership with IBM allowing Microsoft to sell its software package with the computers IBM manufactured. Microsoft is widely used by professionals worldwide and largely dominates the American corporate market. Additionally, the company has ventured into hardware with consumer products such as the Zune and...

    → Learn more

    Barnes & Noble, Inc. is a bookseller. Its principal business is the sale of trade books (generally hardcover and paperback consumer titles, excluding educational textbooks and specialized religious titles), mass-market paperbacks (such as mystery, romance, science fiction and other fiction), children’s books, bargain books, magazines, gift, cafe products and services, music and movies direct to customers. As of January 31, 2009, the Company operated 778 bookstores and a Website. Of the 778 bookstores, 726 operate under the Barnes &...

    → Learn more

    Tesla Smashes Earnings And Revenue Expectations

    Why I'm Furious with Silicon Valley (2011)

    $
    0
    0

    Why I'm Furious with Silicon Valley
    The sad tale of a boy who cried "regulation!"

    June 14, 2011
    Also published on Quora

    Topics = {Financial Regulation+Payments+Silicon Valley}

    We've reached the moment of truth. The law in California, as I have described repeatedly (see In Fifty Days, Payments Innovation Will Stop In Silicon Valley and In Thirty Days, Payments Innovation Will Stop In Silicon Valley), has changed. Companies that hold money on behalf of others must meet certain tangible net worth and surety bond requirements that are essentially impossible to acheive without significant venture capital investment.

    I've said basically all that there is to say on this topic. I think the law is poorly designed, and I think so because it affects me directly. This afternoon, the Deputy Commissioner of the California Department of Financial Institutions instructed me to shut down my company's FaceCash mobile payment system, because he does not believe that I am capable of raising the necessary capital in the next fifteen days. I haven't shut it down yet, but I've written the code to do it.

    It's really a shame. I've already invested over a million dollars of my own money in FaceCash. The business model is clear: we make money on every transaction. The product works. It solves not one, not two, but closer to a hundred real problems that confront just about every small business owner in the country. It lowers interchange fees. It lowers fraud. It encourages loyalty. It improves transparency. It improves the operating efficiency of small businesses. It automates millions of hours of aggregated data entry. It makes reimbursement forms completely obsolete. It actually does your business taxes. It's cross-platform. It's handshake-agnostic. The list goes on and on.

    This is not an incremental change we're talking about. FaceCash redefines the financial infrastructure, in a way that most bankers shudder to think about. It makes financial data easily accessible to those who need it, not obscured behind walls of fees and contracts. It's the kind of you-must-be-crazy innovation that Silicon Valley is known for—and yet we are clearly not in that Silicon Valley anymore.

    Rather than invest in a productive, useful and frankly unprecedented product such as FaceCash, venture capital and angel investors have focused their time and billions of dollars of their money in companies and entrepreneurs that have, in serial fashion, deceived co-founders, deceived employees, and deceived customers. In many cases, shareholders are next. Meanwhile, they've left companies like my own for dead.

    It's not the first time I've been left for dead, so I have some training in this department and I may yet survive. Or I may not. The message, however, should still send chills down any serious entrepreneur's spine. I am an educated person. I am a driven person. I am an honest person. I am an intelligent person. One thing I am not, however, is a fabulously wealthy person.

    You shouldn't need to be fabulously wealthy to get funded. You also shouldn't need to lie. I've proven myself time and again in enormously difficult situations. Instead of receiving funding, today I received a threat that if I did not stop, I could be looking at criminal charges.

    If you're an investor that I've spoken with, you should be asking yourself if you made the right choice. (There are, after all, still fifteen days left.)

    If you're an investor that I have not spoken with, there are still fifteen days left.

    If you're not an investor at all, then you should be thankful for that much. Then you should be asking yourself if you or your company could be next.

    Aaron Greenspan is the CEO of Think Computer Corporation and author ofAuthoritas: One Student's Harvard Admissions and the Founding of the Facebook Era. He is the creator of the FaceCash mobile payment system, ThinkLink business management system, and PlainSite legal transparency project.

    Copyright © 2001-2013 Aaron Greenspan. All Rights Reserved.

    Too Busy To Read? - General James 'Mad Dog' Mattis Email Is A Must Read For You

    $
    0
    0

    Marine General James Mattis

    AP

    In the run up to Marine Gen. James Mattis deployment to Iraq in 2004, a colleague (presumably a junior) wrote to him asking about the importance of reading military history for an officer, those of whom often find themselves "to busy to read."

    His response went viral over military email.

    Security Blog "Strife" out of Kings College in London recently published Mattis' words with a short description from the servicemember who found it in her email.

    Their title for the post: 

    With Rifle and Bibliography: General Mattis on Professional Reading

    [Marine,]

    The problem with being too busy to read is that you learn by experience (or by your men’s experience), i.e. the hard way. By reading, you learn through others’ experiences, generally a better way to do business, especially in our line of work where the consequences of incompetence are so final for young men.

    Thanks to my reading, I have never been caught flat-footed by any situation, never at a loss for how any problem has been addressed (successfully or unsuccessfully) before. It doesn’t give me all the answers, but it lights what is often a dark path ahead.

    With [Task Force] 58, I had w/ me Slim’s book, books about the Russian and British experiences in [Afghanistan], and a couple others. Going into Iraq, “The Siege” (about the Brits’ defeat at Al Kut in WW I) was req’d reading for field grade officers. I also had Slim’s book; reviewed T.E. Lawrence’s “Seven Pillars of Wisdom”; a good book about the life of Gertrude Bell (the Brit archaeologist who virtually founded the modern Iraq state in the aftermath of WW I and the fall of the Ottoman empire); and “From Beirut to Jerusalem”. I also went deeply into Liddell Hart’s book on Sherman, and Fuller’s book on Alexander the Great got a lot of my attention (although I never imagined that my HQ would end up only 500 meters from where he lay in state in Babylon). 

    Ultimately, a real understanding of history means that we face NOTHING new under the sun.

    For all the “4th Generation of War” intellectuals running around today saying that the nature of war has fundamentally changed, the tactics are wholly new, etc, I must respectfully say … “Not really”: Alex the Great would not be in the least bit perplexed by the enemy that we face right now in Iraq, and our leaders going into this fight do their troops a disservice by not studying (studying, vice just reading) the men who have gone before us.

    We have been fighting on this planet for 5000 years and we should take advantage of their experience. “Winging it” and filling body bags as we sort out what works reminds us of the moral dictates and the cost of incompetence in our profession. As commanders and staff officers, we are coaches and sentries for our units: how can we coach anything if we don’t know a hell of a lot more than just the [Tactics, Techniques, and Procedures]? What happens when you’re on a dynamic battlefield and things are changing faster than higher [Headquarters] can stay abreast? Do you not adapt because you cannot conceptualize faster than the enemy’s adaptation? (Darwin has a pretty good theory about the outcome for those who cannot adapt to changing circumstance — in the information age things can change rather abruptly and at warp speed, especially the moral high ground which our regimented thinkers cede far too quickly in our recent fights.) And how can you be a sentinel and not have your unit caught flat-footed if you don’t know what the warning signs are — that your unit’s preps are not sufficient for the specifics of a tasking that you have not anticipated?

    Perhaps if you are in support functions waiting on the warfighters to spell out the specifics of what you are to do, you can avoid the consequences of not reading. Those who must adapt to overcoming an independent enemy’s will are not allowed that luxury.

    This is not new to the USMC approach to warfighting — Going into Kuwait 12 years ago, I read (and reread) Rommel’s Papers (remember “Kampstaffel”?), Montgomery’s book (“Eyes Officers”…), “Grant Takes Command” (need for commanders to get along, “commanders’ relationships” being more important than “command relationships”), and some others.

    As a result, the enemy has paid when I had the opportunity to go against them, and I believe that many of my young guys lived because I didn’t waste their lives because I didn’t have the vision in my mind of how to destroy the enemy at least cost to our guys and to the innocents on the battlefields.

    Hope this answers your question…. I will cc my ADC in the event he can add to this. He is the only officer I know who has read more than I.

    Semper Fi, Mattis

    Cyberthieves Looted A.T.M.’s of $45 Million in Just Hours

    $
    0
    0

    It was a huge bank heist – but a 21st-century version in which the robbers never wore ski masks, threatened a teller or set foot in a vault.

    Yet, in two precision operations that involved people in more than two dozen countries acting in close coordination and with surgical precision, the organization was able to steal $45 million from thousands of A.T.M.'s in a matter of hours.

    In New York City alone, the thieves responsible for A.T.M. withdrawals struck 2,904 machines over 10 hours on Feb. 19, withdrawing $2.4 million.

    On Thursday, federal prosecutors in Brooklyn unsealed an indictment charging eight members of the New York crew – including their suspected ringleader who was found dead in the Dominican Republic on April 27 — offering a glimpse into what the authorities said was one of the most sophisticated and effective cybercrime attacks ever uncovered.

    Elvis Rafael Rodriguez, left, and Emir Yasser Yeje, two of those charged in Brooklyn on Thursday, posed in March with approximately $40,000 in cash that the authorities say they were laundering.

    U.S. attorney's office, Eastern District of New York

    “In the place of guns and masks, this cybercrime organization used laptops and the Internet,” said Loretta E. Lynch, the United States attorney in Brooklyn. “Moving as swiftly as data over the Internet, the organization worked its way from the computer systems of international corporations to the streets of New York City, with the defendants fanning out across Manhattan to steal millions of dollars from hundreds of A.T.M.'s in a matter of hours.”

    The indictment outlined how they were able to steal data from banks, relay that information to a far-flung network of “cashing crews,” and then launder the stolen money by buying high-end luxury items like Rolex watches and expensive cars.

    In the first robbery, hackers were able to infiltrate the system of an unnamed Indian credit-card processing company that handles Visa and MasterCard prepaid debit cards.

    The hackers – who are not named in the indictment – proceeded to raise the withdrawal limits on prepaid MasterCard debit accounts issued by the National Bank of Ras Al-Khaimah, also known as RAKBANK, which is in United Arab Emirates.

    By eliminating the withdrawal limits, “even a few compromised bank account numbers can result in tremendous financial loss to the victim financial institution,” the indictment states.

    With five account numbers in hand, the hackers distributed the information to individuals in 20 countries who then encoded the information on magnetic stripe cards.

    On Dec. 21, the “cashing crews” made 4,500 A.T.M. transactions worldwide, stealing $5 million, according to the indictment.

    But that robbery was just a prelude for what prosecutors said was a more brazen crime that took place two months later.

    On Feb. 19, “cashing crews” stood at A.T.M.'s across Manhattan and in two dozen other countries waiting for word to spring into action.

    This time, the hackers infiltrated a credit-card processing company based in the United States that also handles Visa and MasterCard prepaid debit cards. The company’s name was not revealed in the indictment.

    After securing 12 account numbers for cards issued by the Bank of Muscat in Oman and raising the withdrawal limits, the cashing crews were set in motion. Starting at 3 p.m., the crews made 36,000 transactions and withdrew about $40 million from machines in the various countries in about 10 hours. In New York City alone, a team of eight people made 2,904 withdrawals, stealing $2.4 million.

    Surveillance photos of one suspect hitting various A.T.M.'s showed the man’s backpack getting heavier and heavier, Ms. Lynch said, comparing the robbery to the caper at the center of the movie “Ocean’s 11.”

    “New technologies and the rapid growth of the Internet have eliminated the traditional borders of financial crimes and provided new opportunities for the criminal element to threaten the world’s financial systems,” said Steven Hughes, a Secret Service special agent, who participated in the investigation. “However, as demonstrated by the charges and arrests announced today, the Secret Service and its law enforcement partners have adapted to these technological advancements and utilized cutting edge investigative techniques to thwart this cybercriminal activity.”

    The authorities did not immediately provide details about how they became aware of the operation or whether any other arrests have been made in connection with the case.

    While the indictment suggests a far-reaching operation, there are no details about the people responsible for conducting the computer hacking or who might be leading the global operation. Law enforcement agencies in more than a dozen countries, including Japan, Canada, Germany and Romania, have been involved in the investigation, prosecutors said.

    The authorities said the leader of the New York cashing crew was Alberto Lajud-Peña, 23, who also went by the name Prime. His body was found in the Dominican Republic on April 27 and prosecutors said they believe he was killed.

    Seven other people were charged with conspiracy to commit “access device fraud” and money laundering. The prosecutors said they were all American citizens and were based in Yonkers.

    The indictment says that the defendants “invested the criminal proceeds in portable luxury good, such as expensive watches and cars.”

    The authorities have already seized hundreds of thousands of dollars from bank accounts, two Rolex watches and a Mercedes S.U.V., and are in the process of seizing a Porsche Panamera.

    Mosi Secret contributed reporting.

    The Truth About Reddit

    $
    0
    0

    1. Reddit has become, simply put, mainstream media.
    As noted in Ad Age recently, Reddit closed out 2012 with more than 37 billion page views and 400 million unique visitors. Even people who don't check the so-called social-news site regularly -- or at all -- constantly experience the Reddit Effect because ...

    2. The mainstream blog media is almost ridiculously (even pathetically) dependent on Reddit.
    Reddit has a state-of-the-art-circa-1998, text-centric user interface, but its critical mass and core upvote/downvote system has allowed it to become a sort of real-time cultural Zeitgeistometer. A post that captures the imagination of Reddit readers (aka Redditors) gets upvoted and then speeds to Reddit's home page (and/or the home pages of Reddit's major topical verticals, e.g., reddit.com/r/worldnews, reddit.com/r/funny, etc.).

    And then an hour or two -- or 12 or 24 -- later, there's a really good chance you're going to see that popular Reddit post repurposed on Gawker or BuzzFeed. Well, the silly or controversial stuff, at least. (The random nerdy/newsy topical stuff that Redditors upvote -- like last Wednesday's front-pager about chickpea farming -- tends to stay in the Redditverse.)

    Take, for instance, a photo-based post on Reddit's home page last Tuesday afternoon titled I thought to myself: That is so totally ending up on Gawker and BuzzFeed. Sure enough, at 10:37 that night, BuzzFeed's Whitney Jefferson posted it with the headline (as of this writing she's "earned" 64,169 page views for that). The next morning at 9:25, Gawker's Neetzan Zimmerman posted it with the headline (130,608 page views and counting).

    Reddit's longtime tagline is "The front page of the internet," but it could just as easily be "The crib sheet for weary bloggers who need to hit page-view quotas."

    3. If you regularly read Reddit, it makes the rest of the internet seem stale.
    In fact, the Reddit community (such that it is) is more or less resigned to serving as a sort of unpaid crowdsourced wire service for BuzzFeed, Gawker, etc.

    4. Reddit's apology was nice but unnecessary.
    Reddit got a lot of bad press recently (which is why I'm writing about it now) for being a hotbed of rumors about the Boston bombings. In fact, Reddit's management publicly apologized to the family of missing Brown University student Sunil Tripathi (whose body has since been found) because some Redditors speculated he might have been involved in the bombings.

    You know what? Humans, especially during times of crisis and confusion, speculate. They do it offline and, in 2013, they increasingly do it online. The fact of the matter is that one of the Boston suspects (later revealed to be Dzhokhar Tsarnaev) seen in the early grainy surveillance-video stills released by the FBI did resemble Tripathi.

    And Reddit actually has much better checks and balances in place -- thanks to a combination of the upvote system and moderator intervention -- than, say, the scary troll-fest reader-comment sections of much of the rest of the web.

    In the aftermath of the Boston bombings, fleeting speculation about Tripathi aside, Reddit was overwhelmingly a force for good -- "a great clearinghouse for information," as Reddit General Manager Erik Martin pointed out in a reflective blog post, and an often-galvanizing "place to just discuss, cope and try to make sense of what happened."

    For years now, Reddit has been one of the great joys of my life as a citizen of the internet -- the one place on the web where I'm pretty much always rewarded, even on brief visits. It enlightens me and makes me laugh, and alarmingly often, makes my eyes well up with tears. (Reddit is better than any other place on the internet for surfacing moving first-person narratives -- including one from a Boston Marathon volunteer who became an ad hoc first-responder.) It sometimes feels almost too good to be true. Which is why I'm thankful that...

    5. Reddit is owned by neglectful billionaires.
    Reddit was founded by Steve Huffman and Alexis Ohanian in June 2005, acquired by Condé Nast in October 2006, and in 2011 shifted over to being an independent subsidiary of Condé's parent company, Advance Publications.

    Under Condé's purview, Reddit was cash-strapped and understaffed -- a sort of redheaded stepchild of the famously luxe magazine empire. Under Advance, it's not as sidelined. But thankfully, given that Advance is owned by octogenarian print-media billionaires Si and Donald Newhouse, neither of whom are exactly web-savvy, it's not like Reddit is a major focus of corporate attention, either.

    I'm convinced that if just about any other major media or tech company had bought Reddit, it would have been smothered to death through micromanaging by now.

    Hooray for neglectful old-media billionaires!

    Simon Dumenco is the "Media Guy" media columnist for Advertising Age. You can follow him on Twitter @simondumenco.

    10 years later, ‘Star Wars Kid’ speaks out

    $
    0
    0

    In an exclusive with L’actualité, Ghyslain Raza talks for the first time about the infamous video and the dangers of cyberbullying

    by macleans.ca on Thursday, May 9, 2013 8:52am -

    Here at Maclean's, we appreciate the written word. And we appreciate you, the reader. We are always looking for ways to create a better user experience for you and wanted to try out a new functionality that provides you with a reading experience in which the words and fonts take centre stage. We believe you'll appreciate the clean, white layout as you read our feature articles. But we don't want to force it on you and it's completely optional. Click "View in Clean Reading Mode" on any article if you want to try it out. Once there, you can click "Go back to regular view" at the top or bottom of the article to return to the regular layout.

    Ghyslain Raza. (Mathieu Rivard/L’actualité

    Almost a billion viewers across the planet know him as the Star Wars Kid, but they’ve never heard him speak, until now.

    Ghyslain Raza was a normal high-school student in small-town Quebec back in 2002, a shy 14-year-old who liked to make videos. In 2003, classmates posted one of those videos on the Internet without his knowledge–in it, Raza wields a makeshift light saber, clumsily imitating a Star Wars Jedi knight.

    The video went viral, and the Trois-Rivières teen became one of the earliest and highest-profile victims of a massive cyberbullying attack, one that played out among classmates and strangers online.

    “What I saw was mean. It was violent. People were telling me to commit suicide,” the now-25-year-old recalls.

    After a 10-year silence, Raza speaks out for the first time in an exclusive interview with award-winning French-Canadian journalist Jonathan Trudel (L’actualité magazine). The full interview also appears in English in the latest issue of Maclean’s.

    Recorded while Raza was “goofing around” alone at his school’s TV club studio — the group had been working on a Star Wars parody — the video had soon been seen by tens of millions, all the more remarkable in a pre-YouTube world.

    Raza said he lost what few friends he had in the fallout, and had to change schools. “In the common room, students climbed onto tabletops to insult me,” he told L’actualité.

    It was “a very dark period,” he said. “No matter how hard I tried to ignore people telling me to commit suicide, I couldn’t help but feel worthless, like my life wasn’t worth living.”

    Raza, now a law-school graduate from McGill, said he was driven to speak out by the recent spate of high-profile cases of cyberbullying, some of which have pushed their victims to commit suicide. If the same situation were to happen today, he said he hopes school authorities would help him through it.

    Raza said he hopes talking about his experience will help others to deal with cyberbullying, and urged other young victims to “overcome (their) shame” and seek help.

    “You’ll survive. You’ll get through it,” he said. “And you’re not alone. You are surrounded by people who love you.”

    Read the full version in Maclean’s, on newsstands today

    Bookmark and Share

    Show HN: Remove backgrounds from images online

    $
    0
    0

    Upload Image

    Drag your image onto the drop-zone above, or choose a file using the button.

    Images with sharp boundaries between contrasting foreground and background work best.

    We're working on handling hair, blurry boundaries, and other complicated cases better.

    Mark Image

    Mark some foreground green and some background red and the algorithm takes care of the details.

    You get live feedback so you can focus your efforts on the challenging parts of the image.

    Download Result

    The background is removed by adding an alpha channel, with a suitably feathered boundary.

    You can also share the download link, to avoid sending large files by email.

    A bill in Congress legalizes cell phone unlocking and fixes the DMCA

    $
    0
    0

    A bill called the "The Unlocking Technology Act" has been introduced today (May 9th) that would completely fix Section 1201 of the DMCA, making unlocking and jailbreaking cell phones, tablets, and game consoles completely legal.

    But it won't pass without your support.

    Share on Facebook

    What the bill would do:

    - Make modding, jailbreaking, and unlocking cell phones and other electronics legal.

    Unlocking your cell phone, jailbreaking your tablet, or modding a game consoles can all land you in court because of the DMCA's poorly-written "anti-circumvention provision."

    The proposed bill would permanently legalize all such modifications, as long as the purpose of the modifications isn't piracy or copyright infringement.

    - Enable important work by security researchers.

    Security researchers have been threatened with lawsuits for researching DRM systems since the law passed in 1998. This has had a direct effect on the safety and security of consumers.

    For example, between 2005 and 2007 over 562,000 computers were infected by a "rootkit" vulnerability that Sony BMG distributed as part of the "Extended Copy Protection" DRM system on CDs. In November 2005, J. Alex Halderman discovered the rootkit but was delayed in publishing the results because of concerns that doing so would violate the DMCA.

    Read more: The Chilling Effects of the DMCA by Professor Ed Felten.

    - Make it legal to repair cars, trucks and other electronics.

    "Lock-out codes" are increasingly being implemented by manufactureres in their vehicles. These codes are used to prevent maintenance by independent repair shops. Again, no copyright infringement is involved in repairing a broken car, truck, or other device, but the DMCA's vague language can make it a crime.

    Read more: Wired: Forget the Cellphone Fight -- We Should Be Allowed to Unlock Everything We Own by Kyle Wiens of iFixit.

    - Empower documentary filmmakers, remix artists, teachers, librarians and archivists.

    "Fair use" is a doctrine that allows copyrighted works to be used without consent for things like commentary, criticism, news reporting, teaching and archiving. While those uses are protected under Copyright Law, it's become impossible to access the content in the first place without circumventing a DRM system, which under the DMCA is a crime.

    Read more: The Atlantic: The Copyright Law We Need to Repeal If We Want To Preserve Our Cultural Heritage, by Benj Edwards.

    "The Unlocking Technology Act of 2013" has 3 parts:

    - It amends Section 1201 to make it clear that it is completely legal to "circumvent" if there is no copyright infringement.

    - It legalizes tools and services that enable circumvention as long as they are intended for non-infringing uses.

    - It changes Copyright Law to specify that unlocking cell phones is not copyright infringement.

    You can read the full text of the bill here.


    Who wrote the bill?

    The "Unlocking Technology Act of 2013" was introduced by Rep. Zoe Lofgren (D-CA), and co-sponsored by Rep. Thomas Massie (R-KY) and Rep. Jared Polis (D-CO).

    Take a moment and tweet @RepZoeLofgren, @RepThomasMassie, and @JaredPolis and thank them!

    supporters of repealing dmca act reddit fight for the future ycombinator evad3rs reddit eff mozilla foundation ifixit

    Scientology Is Terrible At Photoshop

    $
    0
    0

    DMPortland2

    [UPDATE: Check out the Photoshop job by the church, after the jump!]

    Yesterday’s events in Portland turned out to be a riot here at the blog as we followed the adventures of Mark “Wise Beard Man” Bunker.

    Bunker was there to witness David Miscavige (right, on stage) open up the newest “Ideal Org,” the Scientology leader’s program of acquiring and renovating expensive downtown landmarks even as the church is suffering internal schisms and dwindling membership.

    We have more photos of yesterday’s event, and then our usual Sunday collection of wacky Scientology mailers and fliers sent in to us by our network of tipsters.

    UPDATE:Mike Rinder just notified us about the blatant Photoshop job done by the Church of Scientology, which has a history of doing this. Here’s a photo of yesterday’s event that they posted to their main website, Scientology.org…

     
    ScientologyPhotoshop2

    As Rinder points out, the entire right side of that image contains people who weren’t actually at the event. We’ve added a red line to show where the line of rented trees actually was and the part of the crowd that wasn’t actually there. Compare it to this photo taken from a different angle by Omnom which clearly shows the row of trees…

    PortlandCrowd2

     
    That touch-up job is pretty bad, and we’re kind of amazed that they tried to pull this off with so many of our correspondents on the scene. The church is claiming an attendance of 2,500 people — but our eyewitnesses estimate it was closer to 450 to 750.

     
    Here’s a closeup on the photoshopped portion…

     
    ScientologyPhotoshop4

     
    Back to our post from this morning…

     
    We enjoyed several photos from Portland posted by “Omnom” at the Ex-Scientologist Message Board. There was this classic shot of stacked chairs, reflecting the poor showing at the event. (Jefferson Hawkins tells us he estimates a turnout of about 400 to 450 people. Missionary Kid counted rows and came up with a number closer to 750). Apparently, they were expecting many more…

     
    StackedChairs

     
    Here’s an overhead shot by Omnom of the full crowd that filled NW 3rd Avenue. As protesters learned, Scientology had acquired a movie permit that allowed them to shut down several blocks around the building…

     
    PortlandCrowd

     
    Here’s a video put together by Jefferson Hawkins. No sound, but some good views, especially of Miscavige on stage…

     

     
    And this morning, we now have the side-splitting claims of the church’s own press release about the event. One of the things we wanted to know about this Ideal Org grand opening was the roster of local dignitaries who joined in. Sacramento’s event lured in the city’s mayor, Kevin Johnson, and Denver’s Ideal Org attracted the chief of police, Robert White. So how did Portland do?

    Not too well. Here’s the lineup: “Cornelius City Manager and former Mayor of Beaverton, Mr. Rob Drake; Executive Director of the Portland Marathon, Mr. Les Smith; Chair of the Inter-Religious Action Network of Washington County, Ms. Annie Heart; and Host for the national ‘Voice of Freedom’ television and radio programs, Reverend Jim Nicholls.”

    What, no elected officials at all? Come on, Miscavige, you’re slipping.

    And Scientology’s own estimate for the attendance of the event? 2,500. Which is about three to five times the reality.

     
    So let’s move on to our Sunday funnies. Hey, New York, get ready to have a The Way to Happiness booklet shoved into your hand while you’re at the Puerto Rican Day parade next month!

     
    PuertoRicanParade

     
    Hey, who doesn’t want a sane planet! Join the most ethical people on earth as they bring back malingerers into the fold…

     
    recruitment

     
    We had noticed that several different video versions of an IAS song had been showing up lately. Now we understand the reason why — orgs were competing with each other in a karoake contest! And look who won — Rome!

     
    Karaoke1

     
    You’ve heard about the problems at Narconon’s flagship facility in Oklahoma, and you’ve read about the raid of Narconon in Georgia. But what’s happening out in California? Apparently, they’re having a whale of a time out there, as this video attests…

     

     
    Thanks again to our great tipsters — keep those mailers and fliers coming in!

     
    ————

    Changes at the Peacock Network

    NBC has cancelled Rock Center, which is disappointing for those of us who had been enjoying its segments on Scientology and its drug rehab network, Narconon. However, NBC also just announced a spin off of its popular show Chicago Fire that will be named Chicago PD, and will star ex-Scientology actor Jason “Let’s see a motherfucking clear” Beghe.

     
    And finally, a programming note: On Friday, we scrambled to post a story about Scientology’s motion to disqualify the attorneys for Luis Garcia in his federal fraud lawsuit. We could tell from the comments that the documents we posted were tough to interpret. So tomorrow morning, we plan to have more about the motion, with some analysis by Scott Pilutik.

     
    ——————–

    Posted by Tony Ortega on May 12, 2013 at 07:00

    E-mail your tips and story ideas to tonyo94@gmail.com or follow us on Twitter. We post behind-the-scenes updates at our Facebook author page. Here at the Bunker we try to have a post up every morning at 7 AM Eastern (Noon GMT), and on some days we post an afternoon story at around 2 PM. After every new story we send out an alert to our e-mail list and our FB page.

    If you’d like to help support The Underground Bunker, please e-mail our webmaster Scott Pilutik at BunkerFund@tonyortega.org

    Share Button

    . Bookmark the

    .

    A Brief, Incomplete, and Mostly Wrong History of Programming Languages (2009)

    $
    0
    0

    1801 - Joseph Marie Jacquard uses punch cards to instruct a loom to weave "hello, world" into a tapestry. Redditers of the time are not impressed due to the lack of tail call recursion, concurrency, or proper capitalization.

    1842 - Ada Lovelace writes the first program. She is hampered in her efforts by the minor inconvenience that she doesn't have any actual computers to run her code. Enterprise architects will later relearn her techniques in order to program in UML.

    1936 - Alan Turing invents every programming language that will ever be but is shanghaied by British Intelligence to be 007 before he can patent them.

    1936 - Alonzo Church also invents every language that will ever be but does it better. His lambda calculus is ignored because it is insufficiently C-like. This criticism occurs in spite of the fact that C has not yet been invented.

    1940s - Various "computers" are "programmed" using direct wiring and switches. Engineers do this in order to avoid the tabs vs spaces debate.

    1957 - John Backus and IBM create FORTRAN. There's nothing funny about IBM or FORTRAN. It is a syntax error to write FORTRAN while not wearing a blue tie.

    1958 - John McCarthy and Paul Graham invent LISP. Due to high costs caused by a post-war depletion of the strategic parentheses reserve LISP never becomes popular[1]. In spite of its lack of popularity, LISP (now "Lisp" or sometimes "Arc") remains an influential language in "key algorithmic techniques such as recursion and condescension"[2].

    1959 - After losing a bet with L. Ron Hubbard, Grace Hopper and several other sadists invent the Capitalization Of Boilerplate Oriented Language (COBOL) . Years later, in a misguided and sexist retaliation against Adm. Hopper's COBOL work, Ruby conferences frequently feature misogynistic material.

    1964 - John Kemeny and Thomas Kurtz create BASIC, an unstructured programming language for non-computer scientists.

    1965 - Kemeny and Kurtz go to 1964.

    1970 - Guy Steele and Gerald Sussman create Scheme. Their work leads to a series of "Lambda the Ultimate" papers culminating in "Lambda the Ultimate Kitchen Utensil." This paper becomes the basis for a long running, but ultimately unsuccessful run of late night infomercials. Lambdas are relegated to relative obscurity until Java makes them popular by not having them.

    1970 - Niklaus Wirth creates Pascal, a procedural language. Critics immediately denounce Pascal because it uses "x := x + y" syntax instead of the more familiar C-like "x = x + y". This criticism happens in spite of the fact that C has not yet been invented.

    1972 - Dennis Ritchie invents a powerful gun that shoots both forward and backward simultaneously. Not satisfied with the number of deaths and permanent maimings from that invention he invents C and Unix.

    1972 - Alain Colmerauer designs the logic language Prolog. His goal is to create a language with the intelligence of a two year old. He proves he has reached his goal by showing a Prolog session that says "No." to every query.

    1973 - Robin Milner creates ML, a language based on the M&M type theory. ML begets SML which has a formally specified semantics. When asked for a formal semantics of the formal semantics Milner's head explodes. Other well known languages in the ML family include OCaml, F#, and Visual Basic.

    1980 - Alan Kay creates Smalltalk and invents the term "object oriented." When asked what that means he replies, "Smalltalk programs are just objects." When asked what objects are made of he replies, "objects." When asked again he says "look, it's all objects all the way down. Until you reach turtles."

    1983 - In honor of Ada Lovelace's ability to create programs that never ran, Jean Ichbiah and the US Department of Defense create the Ada programming language. In spite of the lack of evidence that any significant Ada program is ever completed historians believe Ada to be a successful public works project that keeps several thousand roving defense contractors out of gangs.

    1983 - Bjarne Stroustrup bolts everything he's ever heard of onto C to create C++. The resulting language is so complex that programs must be sent to the future to be compiled by the Skynet artificial intelligence. Build times suffer. Skynet's motives for performing the service remain unclear but spokespeople from the future say "there is nothing to be concerned about, baby," in an Austrian accented monotones. There is some speculation that Skynet is nothing more than a pretentious buffer overrun.

    1986 - Brad Cox and Tom Love create Objective-C, announcing "this language has all the memory safety of C combined with all the blazing speed of Smalltalk." Modern historians suspect the two were dyslexic.

    1987 - Larry Wall falls asleep and hits Larry Wall's forehead on the keyboard. Upon waking Larry Wall decides that the string of characters on Larry Wall's monitor isn't random but an example program in a programming language that God wants His prophet, Larry Wall, to design. Perl is born.

    1990 - A committee formed by Simon Peyton-Jones, Paul Hudak, Philip Wadler, Ashton Kutcher, and People for the Ethical Treatment of Animals creates Haskell, a pure, non-strict, functional language. Haskell gets some resistance due to the complexity of using monads to control side effects. Wadler tries to appease critics by explaining that "a monad is a monoid in the category of endofunctors, what's the problem?"

    1991 - Dutch programmer Guido van Rossum travels to Argentina for a mysterious operation. He returns with a large cranial scar, invents Python, is declared Dictator for Life by legions of followers, and announces to the world that "There Is Only One Way to Do It." Poland becomes nervous.

    1995 - At a neighborhood Italian restaurant Rasmus Lerdorf realizes that his plate of spaghetti is an excellent model for understanding the World Wide Web and that web applications should mimic their medium. On the back of his napkin he designs Programmable Hyperlinked Pasta (PHP). PHP documentation remains on that napkin to this day.

    1995 - Yukihiro "Mad Matz" Matsumoto creates Ruby to avert some vaguely unspecified apocalypse that will leave Australia a desert run by mohawked warriors and Tina Turner. The language is later renamed Ruby on Rails by its real inventor, David Heinemeier Hansson. [The bit about Matsumoto inventing a language called Ruby never happened and better be removed in the next revision of this article - DHH].

    1995 - Brendan Eich reads up on every mistake ever made in designing a programming language, invents a few more, and creates LiveScript. Later, in an effort to cash in on the popularity of Java the language is renamed JavaScript. Later still, in an effort to cash in on the popularity of skin diseases the language is renamed ECMAScript.

    1996 - James Gosling invents Java. Java is a relatively verbose, garbage collected, class based, statically typed, single dispatch, object oriented language with single implementation inheritance and multiple interface inheritance. Sun loudly heralds Java's novelty.

    2001 - Anders Hejlsberg invents C#. C# is a relatively verbose, garbage collected, class based, statically typed, single dispatch, object oriented language with single implementation inheritance and multiple interface inheritance. Microsoft loudly heralds C#'s novelty.

    2003 - A drunken Martin Odersky sees a Reese's Peanut Butter Cup ad featuring somebody's peanut butter getting on somebody else's chocolate and has an idea. He creates Scala, a language that unifies constructs from both object oriented and functional languages. This pisses off both groups and each promptly declares jihad.

    Footnotes

    1. Fortunately for computer science the supply of curly braces and angle brackets remains high.
    2. Catch as catch can - Verity Stob

    Edits

    • 5/8/09 added BASIC, 1964
    • 5/8/09 Moved curly brace and angle bracket comment to footnotes
    • 5/8/09 corrected several punctuation and typographical errors
    • 5/8/09 removed bit about Odersky in hiding
    • 5/8/09 added Objective-C, 1986
    • 5/8/09 added Church and Turing
    • 4/9/10 added Ada (1983) and PHP(1995)

    New Closed-Captioning Glasses Help Deaf Go Out To The Movies

    $
    0
    0

    Sony's Entertainment Access Glasses, seen here in a prototype image, display captions for deaf and hard-of-hearing moviegoers.

    Sony's Entertainment Access Glasses, seen here in a prototype image, display captions for deaf and hard-of-hearing moviegoers.

    Sony Entertainment

    There will be a special attraction for deaf people in theaters nationwide soon. By the end of this month, Regal Cinemas plans to have distributed closed-captioning glasses to more than 6,000 theaters across the country.

    Sony Entertainment Access Glasses are sort of like 3-D glasses, but for captioning. The captions are projected onto the glasses and appear to float about 10 feet in front of the user. They also come with audio tracks that describe the action on the screen for blind people, or they can boost the audio levels of the movie for those who are hard of hearing.

    This is a big moment for the deaf, many of whom haven't been to the movies in a long time. Captioned screenings are few and far between, and current personal captioning devices that fit inside a cup holder with a screen attached are bulky, display the text out of their line of vision to the screen, and distract the other patrons.

    Randy Smith Jr., the chief executive officer for Regal Cinemas, says he has worked for more than a decade to find a solution to this problem. He tells Arun Rath, host of weekends on All Things Considered, that it has been his goal since 1998 "to develop a technology that would allow accessibility to the deaf and blind for every show time, for every feature."

    Luckily, he had his own "personal guinea pig" at home, he says, in the form of his deaf son, Ryan, now 23. Smith said that as the tech companies would send him new prototypes, he and Ryan would test it out at the movies together, with Ryan giving him feedback along the way.

    "We'd do that until we got to a point that we felt it was comfortable enough," Smith says.

    Smith says he couldn't put into words what it felt like to finally be at this point, but after announcing the new device, he received a letter from a parent. Smith said that letter described the feeling perfectly:

    "I've attempted to enjoy a movie with my son so many times over the last 26 years, but to no avail. After watching a movie I would try to discuss it with him. The comments he would make would in no way relate to the plot of the movie and at one point he finally confessed that as he watched the screen, he simply made up the story in his head. He didn't really know what was going on. The fact that I can take my son to a movie when he visits at the end of June is literally bringing tears to my eyes. It would seem silly to most people but I would imagine you understand what it feels like."

    Smith says he can't express it any better than that.

    OfficialRegalMovies/YouTube

    Viewing all 737 articles
    Browse latest View live