skysight-inc/HackerNews huggingface dataset:
>if you remove spam, what's the use of nofollow?

To prevent a search engine from poking around links and executing actions meant from human beings.

I help someone manage a small online music stream with automatically queued user requests. The community around it is small and nice so there's no need for captchas or authentication. Without nofollow Google and friends would randomly request tracks for playback.
The more I think about it the more I believe concision is overrated and borderline dangerous. Shaving a few keystroke today very often means great troubles later.

I used to like those hello world concision contests, but in fact who cares? Who writes a single hello world code? What we need is a language solving the real problems met in most codebase, and I'd say the biggest fish here is the dependencies mess.
Ah I see! Good idea, I'll make a quick change :)
Yup, there's no reason why you can't be productive writing code in Java if if you're willing to get over the fact that you'll be writing more lines of code.

I've been implementing a compiler in Java (not my original decision, but I don't think it was a bad one) and, although its frustrating at times knowing that some list transformation would be a one-liner in other languages but five lines of Java, it hasn't actually proven to be a drag on productivity. You have automatic memory management, a reasonable selection of basic collections, a reasonable selection of abstraction mechanisms, the ability to implement things like immutable classes, etc, so there aren't any major obstacles to productivity.

A lot of times when writing new code I wish I had builtin tagged unions, since I have to do it manually with a class and an enum. But once I've actually implemented a tagged union, I don't find that future additions and maintenance work on the code actually take any extra time.
Do tell about the problems with JSON for use as a configuration object? Almost every language has a library that can parse JSON.
In that family, Inferno is a small complete OS, which runs as a virtual machine on a Windows/Linux/MacOS host. All source code is included, so it's hackable, and it improves (wrt the basics) on the Linux state of the art. Acme, especially with the plumber, is more friendly user interface than the terminal command line. http://www.vitanuova.com/inferno/
Gotta love a happy ending... and the courage to put 25% of revenue at risk.

The sub-30 minute response time does feel good on the receiving end.
thanks for the advice :)
I expected the 'drone nightmare scenario' would be when they kill us, not just look at us. You know, like folks in parts of Pakistan are already living.
In some regards, I'm frustrated that we're nearly 6 years along and there still is nothing standard in the Android framework to support serial communications on boards that support it.

Yeah, yeah, I know. Android is for sealed-up mobile devices. Yeah, yeah, ADK is Google's official version of this. So why are people still making their own like https://code.google.com/p/usb-serial-for-android/ ?
Nice design.

btw. I dragged a small jpeg and got this error:"No executable files allowed. Only source code"
Yes yes yes yes yes yes yes yes yes. This is absolutely true.

The program-to-programmer relationship deserves to be many-to-one. It's a rewarding way to do things. You solve a problem. You add value. It's Done. You may have to go back to a program later to add features, but you don't end up with massive codeballs.

When the program-to-programmer relationship is inverted and becomes one-to-many, you get the enterprise hell with no feedback cycle, terrible code, and unnecessary complexity. It's not rewarding. Problems are never solved and software is never Done. Requirements are "collected", bundled into an incoherent mess, and delivered to bored, underachieving developers who never get to see their programs actually do anything.

Large problems that require more than one person need to be solved with systems and given the respect that systems deserve. Single-program approaches are a denial of the complexity (that comes whenever people have to work together) and a premature optimization.

I wrote about the political degeneracy that this creates: http://michaelochurch.wordpress.com/2012/04/13/java-shop-pol... . But it's unfair to associate it with one language. It's not that Java is any more evil than C# or C++. Any company that calls itself an X Shop is doomed.

There are cases where large single programs deliver value. For example, most people experience a relational database as a single entity. There are a lot of requirements (performance, persistence, transactional integrity, concurrency) that are technically very difficult to meet and all have to work together. I will also note that it has taken some very smart, very well-compensated, people decades to get that stuff right. The quality of programmers who tend to stick around on corporate big-program projects is not high enough to even attempt it, though.

So why is big-program development winning? There are a couple reasons for that. First, it gives managerial dinosaurs the illusion of control. If programs are Giant Things that can be measured in importance by "headcount", then executives can direct the programming efforts... which they can't do if the programmer's job is to go off and independently solve technical problems they deem to be important. Second, big-program design gives a home to mediocre programmers who wouldn't be able to build something from scratch if their lives depended on it but who, in teams of 50, might be as effective as 0.37 good developers. It's about control and a failed attempt to commoditize programmer talent, but it doesn't actually work.
>The speaker was Dave McLure, and he told the Japanese people to wake up, it's no longer the time for the Japanese to be sitting in the comfort zone, because this country is on fire. He tells people to become the nail that sticks out, move fast and break things, and don't be afraid to fail, because key factor to innovation is creativity, failure and iteration.

I hope this was part of a stand up comedy show.

Else this is cliche-country 101.

You hear better stuff in high school graduation speeches.
Lisp has had keyword arguments since at least the 80's. Ruby 2.0 adds them and this is supposed to be the "new" hotness? Get off my lawn!
You just lack a God-like perspective, is all.
How Can Social Media Help You Create a Startup? [video]
It IS a Django extension. A django admin extension to be more accurate.

That said, a better question would be what's the problem with "paid for Django extensions"? If you don't like it, don't buy it.
This is essentially trying to solve the same problem as Swagger. Swagger is "a specification and complete framework implementation for describing, producing, consuming, and visualizing RESTful web services" [1]. Check out the spec on GitHub here [2].

[1]: http://developers.helloreverb.com/swagger/

[2]: https://github.com/wordnik/swagger-core/wiki
It seems a bit far fetched that Microsoft has thousands of servers you can access publicly via default passwords.

They raided his home and took all of his stuff, but didn't arrest him? How is that legal? Shouldn't he get his stuff back if they don't have any case within X hours for prosecution?

I'm sure he's playing the victim here pretty hard because he states that he doesn't believe he has done anything wrong and yet has tried selling a Durango development kit on eBay in the past. He's probably done a lot more than that to prompt an FBI agent across the world to his doorstep.
While this has some benefits, it seems like a slippery slope leading back to SOAP.
Learning Japanese the nerd way
> I understand the motivation, but this is not the way to go about it. There's now a new scope all over the place (the set of refinements applied to any given class). This means that the behavior of any given class now can depend heavily on context.

The current behaviour makes the scope global, and one would simply overwrite the methods of the other, surely that is a worse thing, no?
Link to the $4 64GB USB3 drive?
Thought about this but it should be a self-regulating system to some extent. The longer a task takes, the higher its value. If it becomes overvalued (workers are deliberately doing it slowly and making less money than they could, which is questionable), then it becomes more attractive to workers who will complete it faster.
I just do not understand this Do-follow and nofollow. I don't want to.
I use captcha and give some credit to those who spam manually.
That last point deserves underlining, so I'm just going to post a separate comment about it. Even though this particular link has been removed from this particular page, the first result on Google Scholar is still "Object Oriented Software Construction" and if you click on Google's helpful "all 95 versions" link, you will still find PDF versions of the document.

I skipped the first one (which was an FTP url) but ran an HTTP HEAD request against the second PDF listed there (from stttelkom.ac.id) to determine that it was 16.6 MB long, presumably that is also the whole work. The same file was also available a few links below that from uettaxila.edu.pk and then on the next page from fs1.bib.tiera.ru . (There are other things labeled as PDFs with wildly-too-small file sizes to be a 1000-page book; I'm not sure what they are.)

So saying that 'Yes' Google really cares seems too simple. They've never cared enough to, for example, store a database of hashes of forbidden files. Their efforts on YouTube are significantly more extensive, where any audio or video which remotely resembles some registered property can be taken down automatically.
I think not having them auto-slide by default would serve the presentation better.
That's what I think before. Until I met Grails and Groovy. Plus their friend Scala. I'm really getting high productiveness in those languages when developing web apllications. Grails for web stuffs and Scala for non web. Before them, I used to think that Java is only for enterprise and didn't like using it for my web apps even though it was the language I'm most proficient at.
That's a bold statement. I don't think I've ever seen a program / library which implements any standard completely and without issues. It's not uncommon to see a list of things that are not done, incomplete, or just called out as wrong and rejected from the implementation.

It's not perfect, but no implementation will ever be imho.
With pervasive cameras everywhere, your only hope is that your signal gets lost in the noise.
Substitute "XML" for "JSON" and we've now come full circle.

The point about REST is that it is self-describing. And ideally should be using the same URIs as the version people clicking around in Firefox or Chrome see. The API is just the XML or JSON or whatever is flavour of the week version of the HTML version.

(Or we could use embedded data—microformats, microdata, RDFa—and get rid of that distinction.)
Critical Thinking: Why Is It So Hard to Teach? [pdf]
swagger (http://developers.helloreverb.com/swagger/) has been doing whats proposed here. By describing your APIs with swagger-spec you get a beautifully documented APIs, code generation of client libraries and some more stuff: https://github.com/wordnik/swagger-core/wiki/Downloads
I see it a lot in the summer, especially on flights that are heavy with tourists. The airlines are selling last-minute tickets to business travelers at the higher last-minute prices. It seems like they actually can make money doing this.

If the business traveller paid $1200 over what the tourist paid, giving the tourist $700-$800 back still makes the airline a higher amount of revenue.
LuaJIT's "running" page http://luajit.org/running.html suggests linking with -E (gcc -Wl,-E) to make all your global symbols visible to dlsym() even when you statically link.

That's what we're doing in Snabb Switch http://snabb.co/snabbswitch/ to create a statically linked executable that heavily uses FFI. (Currently don't statically link libc though so I don't know if there is a particular gotcha there.)
This happened in Australia so it might be totally different, but if it happened in the US: a warrant for search and seizure of evidence requires less cause than a warrant for arrest, especially in the case where it's digital evidence that can be destroyed without a trace quite easily.
Day 3: Geeks On A Plane India
So do tons of other libraries and PL standard libraries. jodatime in Java, moment.js, JS' Date object, python's datetime stdlib module, python-dateutil etc. ISO-8601 is actually quite a difficult standard to program for. 9 out of 10 times, these libraries either don't support just year, year-month, or both. 9 out of 10 times, when a datetime object is formatted to a string, you see inconsistencies about that dangling Z marker at the end.

Tom Morris is right, they all suck when it comes to ISO-8601 support.
Exactly. But to be precise, REST would be the equivalent of SOAP and the format described in this post would be equivalent to WSDL [1].

And then, we'll need a central location to store all of these API descriptors and UDDI [2] will be back with a vengeance.

[1] http://www.w3.org/TR/wsdl

[2] http://en.wikipedia.org/wiki/Universal_Description_Discovery...
C++ is complicated before you know more about it.
Repeating "x is so 2005" is not a discussion point.

I agree, just because something has been around a long time e.g. Unix/Linux doesn't mean it's bad.

If I had a buck for every time I heard a Rubyist say "Java is so 90's" ...
Hypermedia APIs are an approach to solve this problem. It essentially does what you did, and add some other benefits like de-coupling URIs.
Jack in, start up, get out!
Note that this blog post is from Jan 28, so it's entirely possible the DMCA content removal hadn't happened yet when Dr. Meyer wrote it.
I don't know Tom Preston-Werner etc. so this comment is based upon the OP's post and the twitter feed and what I have just read.

Judging by the timing of the tweets it seems that TPW got into a manic episode and fixed a problem. While we have all done things like this from time to time I don't see it as an example of "how doers do".

"Doers" should be firing on all cylinders all the time taking on things that can't be fixed in a binge. And if they can be fixed in a hour or two it shouldn't take a manic episode to get the energy to fix them.
>Dylan's fellow hacker replies in detail about issues with the security of content on the Xbox Live Marketplace—the Xbox 360's online store—but doesn't elaborate on the Gamertag issue. The e-mail ends with a request for the Microsoft person to maybe put in a good word for them. "I don't mean to ask anything of you, and if I denied, I'll still be more than willing to help," Dylan's apparent hacker friend writes, "but do you think it would be possible that me and Dylan, if proved to be useful, could possibly list someone we've spoken to on your end as a reference for resumes or something of the sort?"

This part is puzzling to me. I think that at that point they had proved themselves capable enough to ask Microsoft to straight up hire/contract them, and not just for a resume quote. Establishing this kind of relationship with Microsoft could have also prevented the seizure.

>Dylan told me that he was polite and helpful during the raid, but that "they didn't allow me a lawyer...that's probably the biggest right they took from me."

Does anyone here know Australian law? I certainly don't but at first glance it looks like Dylan was intimidated into not doing what was legally the right thing.
Want to Start a Company? Stay as Ignorant as Possible
Stop writing self-documenting API specs and settle on a hypermedia spec, like Hal or Siren!
reply
Ruby community embarrasses itself after 2.0 release
Not only that, but ISO 8601 also allows you to just specify the year, but Date.iso8601("2012") raises an ArgumentError "invalid date". Nor does it support "week dates", Date.iso8601("2012-W01") raises an ArgumentError too.

I don't know the standard, but either Wikipedia is wrong or the Date implementation is sorely lacking.
In my mind the interesting/curious transition is from music that "anybody" can play to music that requires the very very best players in the world. (I mean seriously, if the Kronos Quartet can't handle playing your string quartet...)

I mean, I'm a fair amateur bassoon and piano player. I've played bassoon on four Beethoven symphonies over the years, and technically they were easily within my grasp. His piano sonatas push me, but back when I was actively playing piano I could make them sound like music.

I've played some more modern music which was much harder, and while I quite like some of it, I sure don't think it was "better" than Beethoven.

I think the exact same thing has happened to jazz, too, it's just a few decades behind "classical" music in the transition...
My startup, KingSide.com, provides an all in one marketing platform and API that you can sell under your own brand as a white label.
Maybe he should subclass it and make it strict, renaming it the RFC3339 method:

http://tools.ietf.org/html/rfc3339

Basically, RFC3339 is ISO8601 cut down to the most straightforward implementation (YYYY-MM-DDTHH:MM:SS), without the "Ordinal Date" variant that is at issue here.
It surely depends on resources. If you have them - it's better to fight and try to invalidate those patents (like Newegg did). Some patents are strong, while others are junk. And third have prior art. Naturally not everyone has resources to look for it, but pooling resources can help. Many victims fighting a racketeer is easier than one victim alone.
The problem with corporate, big-program development is that it's a premature abstraction.

If the system-of-small-programs doesn't perform, then you're in a state where larger programs might make sense. If the problem is well-understood and the pieces have been built and refined by competent programmers, but it's impossible to go any further without some coupling and integration, then a large program isn't the worst thing in the world. Really, that's what most "optimization" is: the use of about-the-system knowledge to make changes that, while they create couplings that exclude (by which I mean, may cause horrible things to happen, but that's irrelevant) unused cases, improve the performance of the used cases.

For example, with databases, you have requirements that are both technically challenging but also need to work together: concurrency, persistence, performance, transactional integrity. These involve an ability to reason about "the whole world" that can't be achieved with a system-of-small-things approach. That's a case where "bigness" actually imposes complexity reduction. But it has taken some very smart people decades to get this stuff right.

The problem with ad-hoc corporate big-program systems is that the one benefit of largeness-- complexity reduction-- never occurs because there is no conceptual integrity, but only a heterogeneous list of "requirements" that pile on and don't work together. You get the ugliness of "lots of small programs" but the APIs aren't even documented. Instead of reading crappy APIs to work on such systems, programmers have to read crappy code, which is even harder.

Small is the way to start. If you need to make a program large, there are intelligent ways of doing it, but it's best to start small and build enough knowledge so that, when largeness becomes necessary, the problem is actually well-understood.
It is amazing how today's technology favours the doers who inspires us with their actions. Almost anyone in the world can see and learn from their actions, thanks to technology.

Decades ago leadership meant using powerful and inspiring words to move people into action. This led us to believe that people who could "communicate" well were natural leaders. Personally, I prefer "doers" to "talkers" as an inspirational model.
I mean concise compared to Java. The reason is because I want to primarily use vim and not need an IDE.
Sigh. This is optimizing for the wrong problem.

Stop creating REST APIs that are only level 1 or 2 (see http://martinfowler.com/articles/richardsonMaturityModel.htm... ).

Start writing HATEOS systems where the client is coupled to the semantic rather than the syntax.

Machine parseable interface descriptions might get rid of some boilerplate but it doesn't make for a more robust client-server relationship.
>And apparently "we" are using "irrelevant" to mean not fashionable. Or does it mean, "Do not use for new IT projects" or something? What does it matter what other people do, especially those with a strong (if small) community, frameworks, libraries, books, articles, conferences...

It matters because there is not enough of "community, frameworks, libraries, books, articles, conferences". If I want to do something in LISP there are 2-3 libraries in different states of broken and/or abandoned. In Python I can usually find something with much more ease. In Java even more so. The same for hiring programmers AND getting hired yourself, etc etc.

>And where does Smalltalk fall? I hate to tell those people their language is "irrelevant" -- will their programs crash?

You don't have to tell them. They know it already. It has been ever since most Smalltalk shops closed and the bigger ones turned over to supporting Java.

Now, people using Smalltalk to do hobby work, or even nice important work with paying customers, good for them.

Their programs will not crash (unless their Smalltalk platform of choice gets abandoned to die with too few contributors or is proprietary and doesn't get support for newer platforms and architectures). But they wont be getting as much new toys as the other boys.

>And which LISP, by the way?

All of them, inc. Common Lisp. Clojure might have a fighting chance, but it still is too small for people who value ecosystem over cowboy style "let's build all the wheels ourselves".

>This irrelevance property is dumber than a language debate because we don't even debate them, we condemn them from the outside by applying our own arbitrary criteria.

Irrelevant? It's very pragmatic. Number of available employers, employees, number of documentation, vibrancy of the ecosystem, new libraries and continuous support for older libraries, etc.

I would love to have a Smalltalk that is well supported to play with. One that is not aimed at kids and doesn't have a Fisher Price UI like Squeeze, and that can match Python or Java for ecosystem. Unfortunately none exists.
The State of Mobile Cloud Computing
All that these sorts of description produce is a low-level API. That can be useful, but what's really needed are high-level APIs that provide meaningful semnatics:

my $me = Facebook->new( username => 'autarch' );
$me->post_status("I'm on Hacker News writing this comment");

my $friend = Facebook->new( username => 'imaginary' );
$me->post_on_wall( $friend, "Hey buddy, I am on Hacker News writing this comment" );
No, 2.0.0 is intended to be mostly backwards compatible with 1.9.3.
Maybe it's rfc3339 and not iso8601? e.g. the method has been named wrong?
Yep. There's a lot more problems than that.

I've been reading the source code of one ISO 8601 implementation in JavaScript and writing my own in Java. Looks like I'll have to fix the Ruby one too.

Given that it's used by, oh, HTML and XML, not properly implementing ISO 8601 is really no big deal.</sarcasm>
Teacher revolutionizes checking student's homework with iphone app
That's not hard to parse. Inline comments are nice. You'll be doing more reading of files that writing of parsers.
I maintain rails-api, and both Yehuda and I have commit to Rails. I just want to mention that while Ember + Rails will be a potent combo, Ember will work great with non-Rails backends as well, and rails-api will work great with other frameworks too. That said, we're working really hard to make sure that Rails 4 + rails-api + Ember 1.0 is a fantastic experience, so watch that space for sure.