Pro side: "we're stopping evil foreign counterfeiters, we're helping save American jobs, we're looking out for your safety."
Con side: "complicated sounding tech mumbo jumbo, this will break the internet, and some references to China/Libya"
Which side would you support if you didn't know any better?
SOPA affects more than just the "nerds." How can the messaging be improved? How can it be made more compelling to resonate more with laypeople?
Why aren't the "influential" people focusing on the message?
SOPA has made it this far because our congress does not have a reliable technology lobby to educate our lawmakers. SOPA would have been killed already if this lobby existed in full strength; and this industry has the funds to have actually created this presence many years ago.
We should focus on stopping SOPA, of course, but after this episode, something needs to be put in place to prevent this from happening again.
Foreign websites? This, combined with the fact that they're referred to once as 'haters' and twice as 'nerds', makes me think that Forbes is worthless at writing about anything except how rich blue-chip CEOs are.
But this syntax they've come up is an absolute horrifying mess. Ugh. Please say it ain't so!
font-feature-settings: "smcp=1â€ť; font-feature-settings: "swsh=1,cswh=1â€ť;
I'm guessing that these are probably mapping through to the underlying OpenType features directly somehow to support arbitrary aspects of a particular type, but it still needs to be less of a mess for the â€śnormalâ€ť stuff.
Why can't it be something readable and self-documenting?
font-features: small-caps, contextual-swash;
Microsoft stepping up and implementing desirable features in their browser is exactly what we (as users of the web) need in order to move technology forward.
In the same manner, I hope Microsoft pushes hard with Windows Phone; not because I own one, but because I want the whole industry to move forward faster.
I literally spent the better part of 5 minutes reading the text and comparing Chrome, IE, and Firefox to search for the kerning changes and fractions support, because I just couldn't see it.. Until I accidentally hovered over the sections and the content changed to match.
Downloads IE10... "Windows Internet Explorer Platform Preview is only supported on Windows 8 Developer Preview." Oops!
PS. Microsoft: This -> / isn't a backslash, this -> \ is. (A common mistake, but not one I'd expect in article on Typography.)
Then I saw this was microsoft. My mouth literally fell open.
 I know what that word means
If an article about typography doesn't even know the difference between a slash and a backslash, how are we ever to get people to stop saying backslash when talking about URLs?
On a website drawing attention to type, one should be extra attentive to the content of their writing.
It'd be just like grossly aliased images on Adobe's Photoshop site, or a pile of computer parts around the genius bar.
They got a long way to go to convince designers to take them seriously.
However, it would have been cool if they included font-stretching so you can manipulate glyphs.
Also, please use normal English.
In fact, if either websql or localstorage worked in cocoa webkit it would be great.
Second, I think the blog post is useful because it shows what's wrong with some (fortunately very small) part of the Scala ecosystem, and because it points to a way to fix it.
Here's a quick recap: The author tries to add arbitrary operations to Scala's Seq abstraction without changing its source code and wants them to work also on arrays (which are plain old Java arrays), without any extra work. Arrays in Java support: length, index, and update; that's it. There is as far as I know no language in existence that allows the precise thing the author wants to achieve. And there are many variations, such as adding only to Seq or only to Array that would be really easy in Scala but still impossible in most other mainstream languages. The author then throws all the machinery he can think of at the problem to still achieve the same non-result. Well, tough luck. He might have hit a thing that's simply impossible to do in a generic way, given the tools we currently have. In fact, I have not checked whether there would be a way to achieve the result that he wants because that's beside the point. There are always limits to a generic formulation that will force you at some point to treat things on a case by case basis.
The problem is that, in trying to achieve his impossible goal, the author (mis-)uses a lot of the most powerful features of Scala, and concludes that Scala is simply too complex for helping him achieve the result. I believe he wrote this blog post to prompt the maintainers of Scala to add even more power to the language so that he can achieve his goal (the only other motivation I can think of is that he's trying to actively damage the ecosystem he writes code in, but that would make no sense to me).
My response will probably not please him. I think that we need to take away sharp knifes from people who have a tendency to cut themselves. I was always proud that in Scala you could do in a library where in other languages you had to change the compiler. Inevitably, some of this is cutting edge stuff. We have tried many times to clarify the boundaries, for instance when I defined the Scala levels
But we can't prevent a developer who prides himself to "stroll right through level L3" to get hurt.
So, I believe here is what we need do: Truly advanced, and dangerously powerful, features such as implicit conversions and higher-kinded types will in the future be enabled only under a special compiler flag. The flag will come with documentation that if you enable it, you take the responsibility. Even with the flag disabled, Scala will be a more powerful language than any of the alternatives I can think of. And enabling the flag to do advanced stuff is in any case much easier than hacking your own compiler.
I would be interested to read your comments on this proposal.
eg. The following fails:
Set(1,2,3).toIndexedSeq sortBy (-_)
But doing the same in 2 steps, ie. after assignment, works
val xs = Set(1,2,3).toIndexedSeq; xs sortBy (-_)
I have been bitten by this several times now, so I don't unnecessarily chain > 2 functions even if it does compile ( which also solves one other brainteaser posed in that article )Have also seen the problem with the add function, when I wrote a matrix manipulation library.
def add(x: Int, y: Int) = x + y
add(1,_) fails, but add(_,_) works. Even though the error message " missing parameter type for expanded function" seems reasonable, and providing the parameter type ie. add(1,_:Int), does compile, the bahavior is hard to explain to newbies.
His point about hanging your hat on asInstanceOf[...] and the resulting code being clumsy...ok, guilty as charged, but then you only have so many hours in a day, and mgmt is paying $$ to solve boring business problems ( compute the asset quality of five million loans in thirty lines of business over twelve quarters using scala ) and not mucking around ( add a filterMap to the scala collection library to get an idiomatic Scala implementation )
I enjoyed the programming snippets in the article very much, but I still don't get what the point of the rant was. He goes on and on about "lack of acknowledgement of complexity", but what does that really mean ? Does he want like a gold star ? Even if everybody acknowledges that scala is complex, what then ? Eventually some of it will get fixed & the rest will not & life will go on. Why be a downer at such an early phase of growth of the language ? All this talk of excess complexity will simply scare off the early adopters. Java has been around for 15 years and we still don't have decent generics. Scala is so far ahead in such a short time. Patience, etc.
def filterMap[B,D](f: A => Option[B])(implicit b: CanBuildFrom[?,B,D]): D def filterMap[B,D <: GenTraversableOnce[B]](f: A => Option[B])(implicit b: CanBuildFrom[?,B,D]): D def filterMap[B,D <% GenTraversableOnce[B]](f: A => Option[B])(implicit b: CanBuildFrom[?,B,D]): D def filterMap[B,D[B]](f: A => Option[B])(implicit b: CanBuildFrom[?,B,D[B]]): D[B] def filterMap[B,D[B] <: GenTraversableOnce[B]](f: A => Option[B])(implicit b: CanBuildFrom[?,B,D[B]]): D[B] def filterMap[B,D[B] <% GenTraversableOnce[B]](f: A => Option[B])(implicit b: CanBuildFrom[?,B,D[B]]): D[B] def filterMap[B,D[_]](f: A => Option[B])(implicit b: CanBuildFrom[?,B,D[B]]): D[B] def filterMap[B,D[_]](f: A => Option[B])(implicit b: CanBuildFrom[?,B,D[B]], ev: D[B] <:< GenTraversableOnce[B]): D[B] def filterMap[B,D[_]](f: A => Option[B])(implicit b: CanBuildFrom[?,B,D[B]], ev: D[B] => GenTraversableOnce[B]): D[B] ... > The answer to our original question? It turns out none > of these are correct. In fact, *it is impossible to insert > a new method that behaves like a normal collection method.* > This, despite the heavy advertising of enrich my library.
"Simple things should be simple, complex things should be possible." - Alan Kay
I don't think the blog author gives particularly great examples of simple things that are made complex by the language. He simply gives examples of things that are inherently complex that scala at least makes possible.
Scala is a functional/object-oriented hybrid, making it more complex than a purist language in either mold. It always lets you do things in a Java-like way - you can use it as "Java with less boilerplate" and touch almost nothing Scala-specific. Then it adds functional programming alongside.
To me this feels very natural; I like objects for the big-picture structure, but I like to write algorithms and manipulate data in functional style. If you need raw performance in some hotspot, write a Java-like while loop with mutable state; otherwise, write something nice and high-level (and the JVM will still be much faster than a "scripting language" however you define it, e.g. http://blog.j15r.com/2011/12/for-those-unfamiliar-with-it-bo...).
Scala does fix some Java warts that are legitimately complex or confusing in their own right. For example, primitive and boxed types are less strongly separated; there's no "static", just nice syntax for singleton objects; collections are 100x nicer with far less noise; a nice multiple inheritance design; covariance eliminates a bunch of nasty hacks; better ways to specify access controls; there's a decent way to factor out exception handling; case matching is _awesome_; and _so_ much less boilerplate in general.
I'm not sure the static vs. dynamic religious war can ever be resolved, but static types feel less broken and less verbose in Scala than in Java. Java makes you lie to the type system, or do something unnatural, much too often. Scala hasn't cured every such situation, but it's cured a lot of the most common ones, and greatly reduced the need for manual type annotations.
Scala gives you the conciseness of Ruby, but with static type checking, higher runtime performance, and interoperability with existing Java code.
Some tradeoffs of static type checking remain, such as compilation times.
People do go on wild goose chases trying to push the language farther than it's ready to go. I've done it myself. I agree with the article that there are lots of areas to improve and appreciate the constructive write-up.
But on the other hand, the perfect shouldn't be the enemy of the good. I certainly would not choose to go back to Java, even as I'd love to keep seeing Scala get even better.
1) a simple mechanism for "enrichment" (aka. retro-active extension, virtual classes)
2) functional type-level computation (as opposed to the mini-prolog engine that is implicit search + type inference).
Reducing complexity is complicated, unfortunately. We [have been|are] thinking about both of these alternative features, though.
ps: The following part of the article is inaccurate: "Turns out that Scala will search up to one level up the type hierarchy for a matching shape for the implicit."
Check out the "implicits without the import tax" part of http://eed3si9n.com/implicit-parameter-precedence-again. The implicit scope includes all the superclasses (and their companion objects) of all the parts of the type of the implicit value that's being resolved.
Ryan never supported SOPA. He came out against it. And this event came after Reddit guys said they should pressure him. And then clueless Reddit guys take credit for successfully pressuring him.
I would hope this HN crowd knows about correlation and causation.
> The internet is one of the most magnificent expressions of freedom and free enterprise in history. It should stay that way. In order to do that, we must close those evil sites so that we can have better conditions for the corporations and they will continue to provide jobs and security to our economy.
Edit: It always ends up in bickering about viewpoints anyway.
As far as I can tell, they learned that people who bother to sign up for forum accounts ("pseudonyms", in their terminology) make more return visits/contributions than people who use least-effort ways of logging in (existing Facebook account, or anonymous contribution).
Well, that's a surprise.
The brackets there are mounted backwards; the long end should go against the wall. When they rate the brackets to hold 1000 pounds, it's based on a load at the center of the short side. But really the risk comes from the mounting. If you mount a 30-inch-deep hunk of desk on it there is a much higher stress on the mounting points since the long desk acts as a very effective lever. If you lean against the edge of the desk it may well pull the bracket out of the wall--especially if you use typical screws rather than lag bolts to mount it to the wall.
If you are mounting something like this in a corner, as being done here, the whole setup could be strengthened by mounting a ledger board against the right-hand wall to support the entire depth of the desk. Really you should have a support on the front-left corner as well, which can be done either with a dowel or furniture leg (you can get either at a hardware store).
They can be used as standing desks or (with a stool) as a seated workstation. As noted in comments below, many drafting stools have some sort of footrest.
A few models (the less expensive ones look a bit unstable):http://www.google.com/products/catalog?q=drafting+table&...http://www.google.com/products/catalog?q=drafting+table&...http://www.google.com/products/catalog?q=drafting+table&...http://www.google.com/products/catalog?q=drafting+table&...
... or search Craigslist.
Add a monitor clamp/mount (either on the desk or on the wall behind it) and you've got a workstation solution. A hutch, shelving, or cabinet above, and an enclosed pedestal cabinet, and you've got a full desk.
This guy has well over $2,000 on this $40 "desk", even though this equipment will lose a lot more value over time than a good desk. A MacBook Air will be worth barely anything in 5 years, while you can probably make a desk last half a career at least. Same for a good office chair.
It's not quickly adjustable, but with the removal and replacement of some bolts, you can adjust the main desk area from 30" height all the way up to 52". Built into the cost are four additional shelves of various sizes.
My idea was that if I was going to spend close to $200 on it, I wasn't terribly considered about quick adjustments (and I agree with nick_urban that a high stool/chair is perfect if necessary). However, I wanted to be sure that if I needed a non-standing desk in the future, this could be easily altered. I could also easily adjust it to accommodate visiting/alternative users - which is harder with many of the wall-mounted stand-up desks that are out there.
Shelf mounts aren't made for lots of shearing force cause by constant up and down pressure like that.
While the desk looks cool, I give it about a 1:10 chance of coming off suddenly within 5 years of daily use.
It's easy to build. It's sturdy, and it looks good.
replicatorblog is going to help me by suggesting some stability and aesthetics improvements, but if anyone else cares to join in, you're more than welcome.
The slots will be cut-out so you can adjust according to your height. My goal is something that can by cut with a CNC/laser cutter and then sold for ~$20.
I think this person has found a heck of an in-between position. It's not $40, but it's a heck of a lot cheaper than a geekdesk.http://blog.melchua.com/2011/07/09/fitting-yourself-a-sit-to...
I have a GeekDesk, or what near-as-dammit is one, via a UK importer who gets them from Europe and, personally, it's been the best ÂŁ400-500 [edit: $600-800 USD, give or take] I've spent on hardware, ever, given that I spent most of my waking hours sat/standing/leaning at it. But I appreciate that it's not an easy price point for everyone.
So, question, with a view to a market opportunity for someone: how much would you be willing to pay for a strong, motorised, adjustable-height desk? Reply with a dollar figure, and if someone's already replied with a similar sum, upvote that instead. (Starting a whole poll seems OTT)
I figured this would be good because I could have the surface area of 5 desks take the square footage of one. The only thing is that with this desk doing any sort of paperwork is impractical. I had a keyboard tray that pushed me out too far from the desk to lean over my paper/books, and the ergonomically ideal height for the monitor base was too high for me to comfortably reference papers. I switched to a simple IKEA corner desk and chair, and re-purposed my shelves to be regular storage (although I kept the space open for monitors, should I want to work standing on another computer.
I think I must have been sick the week they taught that. I still have great difficulty doing it (or building anything, working "with my hands").
* $20 - 4 legs + desk board: http://www.ikea.com/us/en/catalog/products/S79831622
* $20 or less: boards from a hardware store, dimensions:
- top monitor stand backing + side boards: 3 of ~12"ht x 10"depth
- bottom backing + side boards: 3 of ~12"ht x 15"+ depth (can be narrower in depth if lean against wall)
- monitor stand board: width desired x depth of monitor side boards
- desk board: free with the ikea legs. If want different dimensions, depth should be at least 18" so monitor can further away from you.
- bottom legs attachment board: width desired x depth of corresponding sides
* optional: $20 plastic sliding keyboard drawer to keep papers/notes. Got mine from Frys.
Might not be able to carry your 26" screen if it is too heavy, but it's a damn good way to see how well you fair with an adjustable standing desk. And it also doubles as an over-the-bed desk ...
Helpful suggestions: Attach a long-cord power strip to your mobile table, so that only one power goes out, and that it doesn't kill your non-magsafe-connector when someone kicks the power cable.
Also, use a large binder clip to attach mouse/keyboard/monitor/network cables to the table if you use a laptop and take it with you often.
I made a simple folding standup desk I could put on top of a regular desk and it's been fantastic. Very simple, easily folds flat, and sits nicely on top of just about any desk or table. If anyone wants details (and the sketchup file I planned with) just let me know!
At the very least it's the cheapest way to decide if you like a standing desk.
It works much better to have the keyboard at a good keyboard height, and monitors at a good monitor height. I've built a couple variations over time, see my 2010 version partway down this page:
Seated, the monitor is the right height for me, so as to keep my head up and neck straight. When I want to switch to standing, I just move the keyboard to the top level. I make the switch once or twice per day. And I can sit cross legged on the lowest platform (I dont like bucket/office chairs).
That was v0.1 of the desk, constructed in a few hours. the As you can see it is not production ready :p
One concern I would have about this particular configuration is the lack of a keyboard tray. Ergonomically, you would want your eyes about level with the top of the monitor or maybe a few inches below the top. At the same time, you want your keyboard to comfortably sit below so that you can keep your elbows at about 105 degrees or so. With the addition of a keyboard tray, and possibly a monitor stand, this can be a really nice long term ergonomic setup.
Found some tips on ergonomics at the link below, and these are inline (no pun intended) with what I have heard from the mandatory ergonomics training at my employer.
There are several low cost desk choices at csnoffice.com. I have this roughly $300 desk: http://www.csnoffice.com/Safco-Products-Company-MUV-30-W-Hei...
Here's a $100 desk...http://www.csnoffice.com/RTA-Home-And-Office-Utility-Desk-or...
Would you just search Craigslist for the old man? Sounds tricky.
Once you start to think along the lines of damage and repair, you inevitably end up in the SENS camp. It's the logical place to be.
Bodies are complex systems and all complex systems can be prolonged in their period of prime operation by sufficiently diligent incremental repair. Developing a toolkit to do that for humans is the point of SENS the research program, with the point of SENS the advocacy program being to help people understand that the scientific community well understands in detail what needs repairing.
For more on the biochemistry of damage-that-causes-aging, explained for laypeople, you might look here:
One nice thing about HN is that I can admit to such things because of the anonymity. It sure is an embarrassing feeling.
Only complaint I'd have would be that it locks up Visual Studio every so often on large PHP files. Apart from that it pretty much works as advertised.
PG and Stormy Peters as keynote speakers: https://us.pycon.org/2012/keynotes/
An astounding number of sponsors: https://us.pycon.org/2012/sponsors/
Amazing tutorials: https://us.pycon.org/2012/schedule/lists/tutorials/
Startup Row: http://pycon.blogspot.com/2012/01/pycon-startup-row-2012.htm...
A PyCon 5k Run: http://pycon.blogspot.com/2012/01/inaugural-pycon-5k-fun-run... all proceeds to charity)
And we're raffling off a robot!
I see that there are some intro-talks.... are they worth the overall admission price?
Personally as a UK Taxpayer I don't really care whether the desktop PCs and downing street or Whitehall run Windows , Linux or Mac they could run Haiku for all I care.
What I am more concerned about as more government functions can be interfaced with online is whether this will be done using the most standard and open data formats etc possible.
If I need to buy a specific piece of proprietary software to submit my tax information online or if all applications for public sector jobs are distributed in the latest MS Word format that I can't open without buying a new version of Windows and office then that is something I at least potentially care about.
Did Microsoft lobby? Certainty, did they "interfere with a sovereign nation's decision to create a level playing-field"? Please, give me a break, they interfered with your desire to do something, and whether right or wrong, the last time I checked, you weren't a sovereign nation.
It's a great example of a startup that isn't just one more social-something-or-other, and it happens to hit right on #27 on y-combinators "Startup ideas we'd like to fund".
We take a too-narrow definition of social networking. If we want to find the next big thing in the Internet, we need to take a step up the stack of abstraction and think more broadly about connections.
Human beings are wired to connect. It's fundamental human nature, and the subject of the still-new social neuroscience field. 
Evidence of this is pervasive throughout our culture. Relationships, marriage, cities, tribes, fan clubs, Hacker News itself - _connecting_ in a meaningful way with other people is what we do.
The Internet's success is it's ability to facilitate connections, making them easier, more personal and more meaningful: email, IRC, instant messaging, gopher, the web, facebook, twitter - it's not just facebook and twitter that are "social networking," every successful Internet communications technology has improved the state-of-the-art in allowing us to connect with each other.
So don't consider "what's next for social networking" -- or "the social networking wave is about to crest." The label restricts your mind. Ignore labels, think big. Consider human nature, relationships and how you can connect us to each other in a more meaningful way. Perhaps you'll find the essence of what the pundits will call 'web 3.0.'
1 - http://www.thedailybeast.com/newsweek/2006/10/22/how-to-read...
Let's remember that "social networking" is a very, very big thing. In essence it is the foundation of most major communication networks, including the old phone network and the modern internet. It is more than just the little windows into socialization and networking that twitter, facebook, linkedin, etc. represent.
People trying to make the "next facebook" or twitter or what-have-you are going to have problems due to the saturation of very capable competition. But that doesn't mean we've plumbed the depths of facilitating social interactions through software, there's still plenty of room for innovation and disruption.
But the variables that go into a) when you came up with your idea and b) how convinced you are that the idea is worth pursuing are Not Independent of the wave functions discussed in the article!
Part of the reason you're convinced that your social networking idea is sound is that there are concrete examples of successful businesses operating in the space.
At the end of the day, you either believe in your idea's potential to create value for investors in virtue of creating new/increased value for users, or you don't.
If you do, go for it and live with the wave phase you're dealt.
If you don't, waiting around hoping to pitch it in Next Thing terms probably isn't going to help you.
As someone who might be considered "visionary" in that I bought many domain names way back in the non-obvious mid 90's I don't even agree with what this statement says.
You think something is going to happen and you take a gamble that you are right and try to limit your downside risk. If you knew you were going to be right you would gamble even more. But rest assured that for that gamble to work out many things would have to happen and the payoff is certainly not quick and certain. Most importantly if enough people take enough chances in different areas statistically some are going to be correct in their assumptions because of things beyond their control and many will fail for the same reason.
And statements like this stating that you should stay away from the froth and "Generally, [you] are better off finding the next gathering wave and a blue ocean of opportunity" are worthless. Essentially find something new to gamble on and you might be the one that guesses correctly about the new new thing. If it were only that easy. It's not.
I would hazard a guess that in 2012-2014. Facebook would have taught the mass market of the concept of social network and grease up adoption of more specialized ones thereby widening the addressable userbase for players that have a great product.
We can see this happening with Instagram, Pinterest, Etsy, Reddit which are all social networks with 1 or few social objects at the center.
For example, Facebook has 800M and Instagram has 15M. thats 1.8%. I would guess that as Facebook gets more and more bloated - that ratio (1.8%) will get bigger as more & more users will need a more insular group and specialized features. In turn, niche social networks will have a higher ceiling of XX% of 800M/1B total social-network-exposed people (courtesy of Facebook - the social network gateway drug so to speak)