skysight-inc/HackerNews huggingface dataset:
Ah yes, there's nothing like wanting to use the new hot API and realizing you have to read almost all of the source code to understand how to use it because the code is so good it didn't require comments. Because I see good comments as a form of documentation. Can comments be abused and detrimental? Sure, but then so can code.

Especially in Javascript where parameters of a method are not typed, so if you want to know whether you should be passing a string or a number you have to read through the code to find out.

Or, you know, a single line comment saying what to pass might be helpful.

The problem is not the comments. The problem are the coders that follow behind to update a block of code but can't be bothered to update the comments to reflect the changes.

If your code is so good it doesn't need comments then it seems it wouldn't require git commit messages either.
The iPhone tried it 6 years ago. That's a long time on the Internet.

Since then, JS has gotten about a billion times faster across pretty much all browsers. Also, "HTML5" was still woefully incomplete back then but browser vendors have since filled out support for key enabling technologies -- especially the wide variety of device access APIs that Apple never even tried to provide.

When I hear this refrain, I'm often tempted to ask how old the poster is because it seems to show a lack of historical knowledge of long-term Web trends.

Six years is a LONG time.
I am not sure the kickstart video was designed for the target audience. Sorry, but "boxes and arrows" are not enough to convey what NoFlo actually is.

If anything, it reminds me of UML, even though I know it is not the same thing. But it does not get more technical than "boxes and arrows", so it is not possible to understand what it actually is all about.

The video is way, way dumbed down. It's supposed to be a tool, so explain how the tool works and what it does. A subway metaphor is not enough - we have had those every since UML came along.

Having said that, I think we need to be able to have multiple representations for code. Text is only one of the possibilities.
No, it's untrue all the time because it doesn't make any sense.
First example is nullability. Anders says ~50% of production issues with c# involve null deference errors. Haskell tags in compile time which types may or may not be null.

In c# if your method is supposed to return one thing and set an object attribute of another, and you forget setting the attribute, the compiler won't help.

In Haskell, you don't use mutability much, instead you return both things. If you forget to return it you get help from the compiler.

Another example: in Haskell, you write a sort function but you forget to handle the base case (always returning an empty list instead). You get an inferred type like:

sort :: Ord a => [a] -> [b]

Which tells you you forgot to actually return the elements.

Another example, in Haskell you can represent a red black/avl/b tree while also type encoding all the invariants.

For rbtree this type level encoding is about 7 short lines long.

Then all the dozens or hundreds of lines of code implementing the tree are guaranteed to maintain the invariants, no unit testing needed at all.

Another example, ST is a monad that let's you write deterministic imperative computations that can be wrapped with a pure interface (hiding the imperative innards). A small RankNType and a phantom type are used to tag both the ST computations and the mutable data, giving a compile time guarantee that mutable data doesn't leak between different computations. This guarantee means you can trust ST computations to actually be independent and thus the pure interface is safe.
Aero Spacelines
Not only does it apply to everybody, but I strongly believe it has nothing to do with whether or not you're an introvert.

I find public speaking "easy". As a teenager I spent a couple of weeks in front of rowdy groups of hundreds of school students during school election debates for a fringe party that made me an ideal candidate for mockery. Didn't phase me. I held the commencement speech at my university my first year in front of thousands of students and TV crews, and people couldn't believe how relaxed I was, but I didn't understand why there was anything to be nervous about; I knew the manuscript and was after all just going to stand there and deliver it. I've spoken to quite a few very varied large groups of people. I don't react to that at all.

Smalltalk with strangers, on the other hand, takes a lot out of me. It's not just that it triggers anxieties in some situations, but even when it doesn't, it is exhausting: I have to concentrate much more to actually listen and take part in conversations that happens for "social reasons" as opposed to about specific subjects, as otherwise I miss cues etc. or simply will go silent.

I don't mind getting up in front of a crowd of any size without a manuscript and deliver my message, even if I know it'll be unpopular, but if I'm in a store, for example, I'd rather spend a couple of extra minutes looking around rather than asking someone who works there to help me find something, because one on one interactions with strangers are draining. I even have to consciously avoid taking steps to "bypass" people I only know vaguely but who I expect might want to talk to me as if I just go on "autopilot" I'll pick the route that leads to the least amount of words exchanged.

Perhaps the "aren't going to talk back" part is what makes public speaking feel easier for me, even when they actually do.

To me, those two things are entirely separate. I'm sure there are lots of introverts that also have problems with public speaking, but conversely I know plenty of introverts other than myself who doesn't have a problem with public speaking, and lots of extroverts who do.
I was surprised that the domains at the top were control-clickable. It would be much more clear if there was just a checkbox below each one so that it's clear they are checkboxes.

Idea for display: Make it a table, with words down the left and domains across the top:

| word | .bz | .nu | .us |
| ant | ✓ | | |
| awe | ✓ | ✓ | |
| ...and so on
As consciousness is tamed by scientific material reductionism, would you expect 'free will' to become as absurd a notion 100 years from now as 'elan vital' seems to us?
Some types of public speaking are easier for introverts than others. Giving a preplanned talk in front of a couple of thousand people? Pretend they aren't there and that you're speaking to the air. Look at the audience as you would look at a TV screen. It may not be the most spectacular or engaging talk they have ever seen, but you will get through it. Very few people are so interesting that you want to hear them talk for very long anyway.

A small interactive discussion group? That lasts all day? Now you are in territory where being an introvert is deadly. And there really are no good answers other than try to get some practice in small groups over short time spans and work your way up.
Hello Start-up Entrepreneurs, Techies & Avid Readers!

CoRate just past one-month-old and still improving. Please give us a shout out !

Heislyc, YiHang & Steason(Co-Founders of CoRate)
Powered Jacket
I haven't deployed a production application to a single socket server in over 4 years (and that was anomalous enough for me to remember it.)

To say any thing for the "vast majority of apps" is a little out of bounds. In some cases on multi-socket machines a single cache miss takes as much time as ~1000 machine instructions. If you are working on calculation intensive operations that is a lot of overhead to pay for not having a good memory model.
BlackBerry Ltd.'s board of directors has formed a special committee to explore “strategic alternatives,” including the possible sale of the company.

Like I said, a sale is one of the things being considered in a long list of other options. But the title doesn't convey that.
Canonical should buy them. It would give them a platform for their Ubuntu OS on phones, instead of trying to use crowd-funding.
This is kinda awesome. Just bought blit.cc :)
And if Hipchat took screenshots when coworkers saw your commits we could replace performance reviews.
> Because knowing who wrote/modified a block of code is ridiculously useful for all sorts of obvious reasons

IME, the only use it usually has on its own is knowing which people that are no longer on the team to blame to blame for the poor state of the code (both the operational parts, and the absence of useful code comments on the intent or rationale for the current code structure.)

WHO is not the most important comment (though its probably the most universally necessary part of a comment -- a need for a who comment always implies the need for some other comment, and most other comments should include a who.)
I know some people like Tumblr. Or Blogger. They aren't sexy but who cares? The important part is the writing. And as long as you have your own domain you can move later when you have a free weekend and want to migrate elsewhere.

If you want to invest a bit more time, Jekyll on GitHub pages is a really great setup and I highly recommend it.
The problem is, the knowledge of the code base is not easily transmissible
from people to people. So it's still useful to leave some comment,
specially on some "non intuitive" steps.

Having just come from a team where code was well-written but poorly documented, this is important. It is the difference between it taking me 20 minutes and 4 hours to implement and test a small change. If the code is well-documented I can quickly find my way around and locate the behaviour I need to change. Again, if it is well documented it is easy to see how this relates to the rest of the system and I can make good decisions when I make my changes. If the whole process is well-documented I have a good starting point for what acceptance tests I should run to make sure it works as intended, and what kind of regression tests I should put in place or modify.

Without documentation I must read and decipher a much larger body of code, much of which ends up being unrelated to what I am working on now. Even in the best code-bases there will be code that is not clear without a pre-existing knowledge of the code-base as a whole. I am likely to make time-consuming mistakes because I do not understand some edge-conditions or complex interaction.
Summary:

"Silicon Valley has a “pay-it-forward” culture where we try to help each other without asking for anything in return."

"So I’ve come up with is a method to sort out who I take meetings with."

"I now prioritize meetings with a new filter: Who is offering me something in return."

By the way, I agree with the advice provided, it's just the way the author gets to the point is a bit too winding for my simple mind :-)
Please don't summarize what your functions / methods do, make me read them in their entirety to find out.

Er, what?

"Illiterate Programming" paradigm?
Not sure if HTML is the ubiquitous programming platform for client side. It's a dream since 1990s (write once for all clients) but fail to compete decidedly by native clients of iOS/Android in this era. It's going to get worse for specialize smart devices such as smart watch, smart glass, smart car panel, real smart TV etc.
I haven't been to a sporting event in decades, but I can tell you that many concerts are starting to require ID in order to pick up tickets at the door. It doesn't matter if you have the receipt in hand, etc. If you don't have an ID that matches the name you're not getting the tickets you paid for months ago.

Still, there is a distinction here: these are all privately owned businesses, and their rules. It's not the government.
They could survive as a services company of sorts. After all, stuff like BBM is what caused them to really take off.
This is where 'social engineering' comes in super duper handy. 'Interview' them for a 'publication' and pepper them with fluff as well as the questions you really want to ask.
Surely it depends on what your program is trying to not do.
Author, Feminist, Pioneer: The Unlikely Queen Of Sci-Fi
jekyll on github pages https://help.github.com/categories/20/articles
I highly doubt that MS will be the party to bite. BB uses a customized QnX that is about as far away from Windows Phone as you could probably go without doing something really exotic.

If that were their route they'd have to drop their investment in QnX, try to adapt all BB software to run under the latest incarnation of Windows Phone rather than to just run Windows Phone on it. BB users are quite particular about their handsets & associated software, much more so than Nokia users ever were.

Of course this could be totally wrong but I think the challenges in moving BB to Windows Phone are far more substantial than to get Nokia to convert even if BB is a smaller player.
"Those companies are registered with the Data Protection people."

And it's probably really easy for "the little man" to register with the Data Protection Agency? Or do you need lots of lawyers and lots of money?
See also the DOT calculus[1] (Dependent Object Types) being the basis for a new foundation for scala's type system

[1] - https://github.com/namin/dot
>>In countries where geographic borders are in dispute — like India and Pakistan, which are at odds over demarcation of the Kashmir region — Nokia has produced separate digital maps for each country, with each version displaying that country’s preferred border.

Does google maps or openstreet map follow similar strategies? I always wondered how issues like these were handled as they are so complicated for a single organization to deal with.
> (all of which are functional, in part also because OO/subtyping is hard to reason about formally)

OO/subtyping is NOT orthogonal to functional, nor is it inherently at odds with formal reasoning. OCaml has both imperative and functional objects; Haskell, Mercury, and Coq (a formal logic language) all support typeclasses, which subsume most of OO and provide subtyping.

Additionally, strong typing has little to do with formal reasoning as well (see: Lisp/Scheme/the lambda calculus). What makes functional languages amenable to formal methods is that they are functional and therefore referentially transparent. Mathematical proofs carry no implicit concept of "state"; hence if you are trying to prove anything about code in, say, C, you need to augment the code with explicit state and remove all non-local effects. (See: the Why language, which attempts to bridge this gap.)

Algebraic/generalized-algebraic type constructors used by most functional languages don't hurt either, as they allow programs to construct complex terms without relying on lower-level stateful abstractions such as memory allocation.
Show HN: Get Android notifications in desktop Chrome
I'm coming from a team whose policy is to create a PHP docblock for everything. This is actually dead useful because at a glance you see who wrote the code, exactly what you can pass into the function and what it will spit back out.
"We have two kinds of developers - those that deal with their own shit and those that deal with other people's shit.",
The problem is Blackberry is a hardware manufacturer, so they'd need a huge volume of sales in software to make up what they would lose in hardware.

That said, BB10 doesn't really offer anything compelling above Android for manufactures, and additional hardware isn't going to massively change their market share. BB customers have never been driven by cutting edge phones. Their application marketplace is so bad that there's no reason for general consumers to want to buy into the platform.

They definitely wouldn't survive a transition to a software company.
If stop & frisk is unconstitutional
If stop & frisk is unconstitutional, so is collecting and storing our electronic communications.
Given that clear textbook explanation and he decided to port a Python implementation instead of writing it from scratch? What a waste of an opportunity for a fun day at work...
Show HN: Coffitivity for iOS and OS X
Introducing the Ubuntu Edge: The world's first triple booting phone, with Ubuntu OS, Android, and BlackBerry 10. That would be awesome.
Ask HN: Where can I find freelance work?
My day job is only 3 days a week (by choice). I want to find more freelance work to do on my other days. I am local to the DC area and want to find quality clients. I am not looking to compete with overseas developers and looking to charge between $100 to $150 an hour.

What's the best place to find that kind of work? I have just activated my elance portfolio but I am not sure that will bring me any work.
Don't taunt me with such a wonderful fantasy. Blackberry/Ubuntu is just about the only thing that would make me drop Android.

Microsoft has always been a good fit for taking over Blackberry, but MS and BB have diverged too far.

Google might just pull another Motorola move and buy them up to add to their patent portfolio.
Can't get easier than Wordpress.com (which supports code snippets), but GitHub pages are relatively easy, too.
So BB10 is dead then? ... He's dead, Jim. [http://www.youtube.com/watch?v=r0yXqU-w9U0]
[Movie Trailer] Coming this September: LinuxCon and CloudOpen
That's actually a tough question. I haven't found a place yet to put up a development blog. Code snippet are always screwed up or you don't have analytics, etc.

I took the extra mile on my blog and installed Wordpress on my server. I thought I liked it but now, I'm looking for another solution. I have yet to find what I want.
Or for python?
Does using GitHub pages imply a connection to some project hosted on GitHub? (The side-project I'm working on isn't on GitHub.)
A quote: "Often one the most debated, but I think largely irrelevant issues, is the significance of whitespace."

I think it's pretty relevant. I use Python and prefer it to Ruby, but I think the presence of syntactic whitespace is a mistake. For one thing, it prevents a scanner from performing a consistency check against a source file that may have been corrupted or edited by someone unaware of the whitespace issue.

For another, a source file that mixes spaces and tabs can be a nightmare to sort out, once a person evolves to the point that they realize tabs are evil and resolves to do something about it.

Finally, there is the readability/editability issue caused by syntactic whitespace. In a complex code block, the indentation of various parts of the block ends up defining the algorithm, not always in ways the programmer intended, and an inadvertent whitespace insertion or deletion changes the program's meaning.

The whitespace idea was originally well-intentioned -- it was meant to reduce a programmer's effort level when Python was a tiny fraction of its present size and importance, when no one expected to be writing large, complex programs in Python. Now, in my opinion, it's the elephant in the room.
Are you suggesting that the iOS App Store and Google Play Store aren't "flooded with low quality applications by amateurs"?

To me it seems that a (relatively) high barrier to entry, and an approval process (in Apple's case), haven't really stopped lots of crappy apps from making it in.

Personally I'm all for lowering barriers to entry. It's arguably one of the greatest things about the web.
Since when it is ok to suppose visitors know to click the escape key to go back. And where is the link to go up to the gallery. I had to mess with the url or I was gone for a long back button session. Morevoer it is very slow.

Just to add some negativeness to the generaly positive comments here.
Show HN: Medium.js: A tiny JS library for making content-editable beautiful
Airware (YC W13) is opening a San Francisco development office
Airware is opening a technology development office in San Francisco in addition to our existing Newport Beach pad.

Who we are:
Airware is redefining the unmanned aerial vehicle (UAV) industry, aka drone industry, by creating an operating system and development platform for small commercial UAVs. Previous solutions have been closed black boxes, while Airware’s enterprise solution combines autopilot hardware, flexible software architectures, and an API for customization and expansion. We are a rapidly growing startup, well-funded by two of the world’s pre-eminent technology venture capital firms, Andreessen Horowitz, Google Ventures, and of course YC.

Airware’s platform is currently enabling customers to tailor UAVs towards any commercial or civil application. These applications are almost unlimited: imagine building a system that helps protect endangered species in Africa from the threat of poachers, or one that allows first responders to get a nearly instant live bird’s-eye view of a disaster zone. At Airware, our engineers work every day with our customers and partners to make such visions a reality.

What it’s like to work here:
The culture at Airware is unique and characterized by a diversity of individuals: Here you will find the computer hacker, private pilot, laid-back surfer, RC hobbyist, and video game designer. We work hard--really hard--but we always have a lot of fun. We take company trips, get together for boat cruises in Newport Harbor and enjoy catered lunches at the office. We are a small but growing company, and we spurn the bureaucracy that can stifle innovation and creativity. The organizational structure is very flat, and you will have the opportunity to be involved in multiple aspects of the business.

The specific positions we have open right now are:

- C++ Software Engineer (SF or NB)

- Embedded Software Engineer (SF or NB)

- Hardware Development Engineer (SF or NB)

- Flight Controls Engineer (SF)

- Software QA Engineer (SF or NB)

- C# / WPF Software Engineer (SF or NB)

- Customer Support Engineer (NB)

- Field Applications Engineer (NB)

If you think you'd be a good fit, please send an email with resume, desired position, and location to careers@airware.com.
My favourite piece of code that used to be in our code base was a set of empty PHP files with the comment "this file intentionally left blank". Created so that the core framework could be unit tested.

(This was before I came on board and introduced the idea of filesystem mocking).
Good point, I didn't think about code snippet formatting.
E-Cig Companies Will Never Promise To Help You Quit Smoking
I have been coding for over thirty years and the best reason for commenting your code is that the older you, will not remember what the younger you was thinking when he wrote the code.
The central questions are will FirefoxOS apps run on other platforms today without modification and will they ever. The answer today seems to be 'it depends if you use the FirefoxOS specific APIs or not', which is the same as the answer for Android or iOS webapps.

The other mobile OSs already run webapps. What does FirefoxOS bring to the table other than price? Why will developers be attracted to a platform where the users only use it because they can't afford anything else?

I guess Mozilla thinks that there are devs picking between writing a native and html based app and that getting FirefoxOS support fairly easily by using HTML will sway that decision. I don't see that happening though since FirefoxOS users won't be spending much money on apps and there won't be comparable numbers of users any time soon; getting free iOS or Android support (whichever is your secondary market) is already a much more compelling argument for using HTML, but one that doesn't seem to be winning in the marketplace.
Code snippets on Wordpress is plain awful, indentation & HTML escaping is a mess. I have to re-edit the same code snippet 2-3-4 times when writing a blog entry on WP.

I'm sure it can get easier than WP.
This article only looks at sales in ebooks from publishers. It does not look at independent sales figures, which make up a majority of the ebook market.