skysight-inc/HackerNews huggingface dataset:
I think static typing (10+ years ago) got a bad rap not because of static typing as such, but everything that came with it (and didn't necessarily need to). I'm talking about the languages of the time (C, C++, Java primarily).

C is a bit of the one out here in that its static typing is a really thin veneer as you can cast things to whatever you want them to.

Python and Ruby (in particular these two) more than anything else allowed you to write really terse, expressive code. The canonical Python example of this is defining a tree data structure:

def tree(): return defaultdict(tree)

or solving the N-queens problem in ~6 lines of code [1].

Java and C++ OTOH were (and are) much more verbose but only some of this has anything to do with static typing.

All of this is one reason I'm incredibly bullish on the future of Go for such reasons as:

- no interfaces. If an object implements the methods expected by a consumer then it compiles otherwise it doesn't;

- incredibly simple OO system;

- no exceptions as such (particularly checked exceptions in the case of Java, which IMHO are just horrible). Some consider this a minus. I tend to think that exceptions tend to get abused for flow control and aren't the panacea they're made out to be;

- simple semantics for function returns and the ability to return multiple items;

- opinionated formatting (I'm not one of those people who has almost religious zeal for the placement of curly braces and indenting so I'd rather just have a standard and stick to it, whatever it is);

- compiles to a binary rather than running on a VM;

- simple grammar with fast compilation. This last point is contrasted particularly well with C++;

- coroutines (or rather goroutines) as a first-class language citizen for solving concurrency problems;

- the "defer" mechanism for resource cleanup. I find this much easier to read than tortured try-finally semantics and nesting.

Another way to put it is this: a lot of vim/emacs users judge IDEs as horrible based on having (often briefly) used Eclipse, which is a bit like judging the car by having once driven a 1975 Trabant.

Don't judge static typing by Java or even C++. Judge it by Go.

[1]: http://rosettacode.org/wiki/N-queens_problem#Python

[2]: http://www.time.com/time/specials/2007/article/0,28804,16585...
The Electropermanent Wobble Stepper Motor may open up new morphic robotics.
I don't mean to criticize the blog post, since it's probably valuable to some people. But if you're sick of Skype for Linux and you realize that something like IRC would be good replacement, then what's the point of writing an IRC server in Haskell (except for fun/education/pleasure) when you could use existing software (open source or not) like Apache Wave, Mumble, one of the many XMPP servers, IRC servers etc.?
What a bummer. I post something half interesting and the site goes down. . .
That's JavaScript not just JSON, if you install JSHint or JSLint in your editor you'll spot the error right away.
> It’s also common to put all your types into one module named Types, as you tend to use types from every module

Is that true? Wouldn't that mean that typical Haskell applications aren't very modular, if every module needs access to all types? How can this be a good thing?

[I'm not good with Haskell; I sort of like it, but it makes me feel rather unintelligent.]
Samsung Galaxy Note 8.0 hands-on preview
I see your mixed use of square brackets and raise you a syntax error.
Trials and free accounts are two very different things. Free accounts implies that they are perpetually available at no cost.
<3

The peepcode on Ember is really worth the $12, it's a great introduction. I really believe in what Ember is doing quite a bit.

As far as Ember vs. Backbone, it's like Rails vs. Sinatra: Backbone is 'easier' but then you have to write a ton of stuff yourself. Ember has more going on, but you write a lot less code.

But where Ember really shines is the way it deals with URIs and routing. I think it's super far ahead of other JS frameworks in this respect, and I hope routing.js sees some pickup.
On the other hand, think back to the famous macro- v. micro-kernel debate. The kernel itself is huge, and the "small cohesive service" philosophy microkernel advocates ended up never really taking over the world.
Cool. I'm very happy that you're back actively working on Jekyll! Guess my statement was a bit outdated then. Take it with the appropriately sized grain of salt.

Note: there's nothing wrong with releasing brain farts; quite the contrary. I didn't at all mean to imply that you shouldn't do that.
If Business had Glass
http://en.wikipedia.org/wiki/Not_invented_here syndrome?
One of the points the author makes, is that static typing improves code maintainability and refactoring. I've used both static and dynamic languages. When I was younger I preferred dynamic typed because they were easier to start with and code, but now that I've grown more experienced and dealt with highly complex projects, I prefer static typed. Being able to debug, maintain, and refactor code is much easier and less risky in static typed languages.
Inception, Courtesy of Public Relations
I take all direct orders as suggestions. Sometimes this gets me into trouble; The same way it does my 2 year old. Most of the time though, it's the way to go.
Have you tried exposing her to something like etoys?

http://en.wikipedia.org/wiki/Etoys_(programming_language)
You cited early advertising as a good idea, and that continued advertising was a bad idea. Can you talk a little bit about your paid advertising strategy?

Where did you advertise?

Are you willing to share your daily advertising burn?

Any insight as to why the first $5k in advertising was worth it, but everything after that wasn't?
Delivered: https://dl.dropbox.com/u/8554242/dmitri/projects/Conception/...
Why We Hate Ruby
The problem is that most (all?) carriers do not offer data only plans. To get the data plan, you have to pay for voice and text, too, even with prepaid sim. Makes this feature moot then.
Well yes, but then you're de-facto maintainer of that package, you might not have permission to do that, etc - this point though I feel is less important than versioning, it's more an argument for central package control, which has pros and cons

If you're using a library from github (or wherever) that isn't open source, and someone takes it offline, that's a legal problem, not a technological one. If you are using an open source library, then just re-upload it (or find someone who will). I don't see why the language has to do anything.

What a mess, particular for new users trying to decide which package is best or canonical. Why not just use versions?

You know what a mess is? A mess is:

* In a Maven build, A depends on version 1 of C, A depends on B, B depends on version 2 of C. Result: Java crashes at runtime.

* People using ancient (potentially insecure) versions of Java packages for years because they're afraid of the previous problem.

* "deprecated" functions that continue to be used for years, spewing warnings each time they're referenced.

* a time-consuming bureaucratic process to get your library into some "blessed" central repository.

Go doesn't "support" these messes, and I see no reason why it should.

Perhaps Go's dependency management system will change. I can't tell the future. But so far, I haven't seen any good arguments in favor of changing it. All of the problems you think you're solving with versions could be solved by either maintaining backwards compatibility, or choosing a new package name when you feel you have to break it.
Actually, I'd lump Perl in with Python, Ruby, and Javascript. They're all at about the same "power level" and have more or less the same built-in types and language features. They all have their own personality but if you only know 1 of the 4 you're still perfectly capable of writing any program that will be more or less equivalent to someone writing the same thing in one of the other 3.
The lack of popularity for static typing can be laid mostly at the feet of Java and C++. A language with a truly good type system like Haskell, OCaml or Scala gives you more advantages without many of the disadvantages of a Java-style system.

Too bad too many people were too poisoned by Java et al to consider switching to one of the good statically typed languages; happily, their recent popularity (like this blog post :)) has gotten people to consider them.
It's a very big application, that requires an MVC approach for commands and their subcommands. That's why i'm looking for a language that has been battle-tested for complex CLI applications. This means frameworks, libs, docs and more.

From what i could see, Ruby stands out in these terms. I'm not actually looking for a specific language feature, but the ecosystem.
Probably a developed country. Like UK. London sounds good, it not silicon valley but its not bad either. There is already some startup culture there. The operating cost would be a problem though. If i was short on money (ok every startup is, except maybe like color) I would do it where i am right now, in a small town in north of India. The city is not village, but it's not a metropolitan either. The operating cost will be a lot lower than say, London and I already know everyone here. The community, society and laws are all local and familiar. So I think only place compelling enough to leave the comfort of home turf is valley.
Nice in theory, hard in practice. Especially if you're doing a startup and not a lifestyle or small business.

Edit: Ridiculous how people downvote. I've researched this area more than most and the flags theory just doesn't fit most startups as the core concept is having your tax residence and company in different countries. The only case I know of where it did or could have worked is Skype.
Mostly, yes.
Just some little details that could use tweaking. I'll send you a pull request.
I don't like Scala being based on JVM/.NET for the following reasons (I know many people don't agree, this is all subjective):

- inherited null (I love Option<> and Either<> pattern and exceptions, nullable stuff is a problem)

- relying on foreign ecosystem (you end up with half functional, half "we have inherited all this mutable stuff, so let's use it" ugly mixture)

- startup time (if you write things that are script-ish in nature, this is really annoying)
The political systems in U.S. and Nordics are different, much of it coming from election systems. The U.S. "first past the post" guides to a two-party system where the different views are merged to one political party and battles are fought within the parties, while Nordics have many parties - even if social democrats have been quite dominant - and voters choose between these. But the parties however overlap a lot. Your average Sweden Democrat is not much unlike your average Social Democrat, really. In fact, he's probably just a disillusioned Social Democrat. So number of parties is not a very good measure of diversity one way or the other.

The U.S. can produce, even within one political party, such diverse politicians and policies as Bill Clinton, Al Sharpton, Zell Miller, Eleanor Smeal, Ben Nelson. Anything from trade union militants to radical feminists, cow farmers and vegan activists, conservative businessmen and firebrand racial demagogues.

Regarding Gus Hall's parents, they didn't just become IWW members when moving to America; I'm sure they and many others like them actually created the IWW as it was. And yes, socialists were not entirely free to operate in Russian Empire. Many decided to emigrate to U.S. and Canada precisely because they sought to escape what they perceived as oppression.

As best as I could tell, socialism was not an oppressed political viewpoint in Finland

Well, it was, a bit. The Tsar's secret police, Okhrana (http://en.wikipedia.org/wiki/Okhrana ), was set up in 1880 to combat political terrorism and left-wing revolutionary activity. Not everyone who called themselves socialist was rounded up and sent to a camp, the Tsars being more reasonable than their successors, but people like Halbergs must have felt they'd have more room for their ideology in America.

So they left Finland, like many of their comrades left Sweden and Norway, in search of a better life in America. It wasn't all roses there either, and many moved on for the workers' paradise in Soviet Union in 1920's, only to find a few years later themselves rounded up as suspicious elements and meet their end at the construction site for Stalin's Canal. ( http://en.wikipedia.org/wiki/White_Sea_%E2%80%93_Baltic_Cana... )
Ironically, many Free Software/open source "supporters" are more hypocritical than Stallman. The thing that these people care most about is that the software is gratis. When it is not gratis but still open source (this is possible given the Free Software and Open Source definitions) these people scream fire and murder.
Insta-love with cloudmonkey. Thanks for the tips! :)
I think I get what you are saying, I guess I find such petty tyranny intolerable today, so more of it isn't very scary.

(I do realize that it is often a complicated thing to deal with)
The Crowd Engagement Platform is looking for early customers.
I know of no jurisdiction where there's a right to legal representation during a raid. This makes complete sense, because otherwise you could attempt to hold up a raid and dispose of evidence whilst you waited for your legal counsel to get there. Your can argue about what is and isn't admissible post the raid.

So I don't really think in that particular example any 'right' was taken from him.
Does Ruby 2 Load Rails Twice As Fast?
Looking for transition in career?
Way to sucessfully transition into new career! Please visit us for more information at:
http://unbouncepages.com/career-smooth/
> Now think for a second - what if the guy puts everything he downloaded (sourcecode, etc) in a torrent, or pass the pdfs they were so willing to protect on wikileaks? What if he start using his knowledge to create not "giant hacks", but small hacks that could masquerade as bugs ? (say randomly turn off live access, hijack random xbox live accounts, etc)

What if he clandestinely does this after he appeared to "genuinely care about the security of your company?" What if he does this after failing the background check or turning down the job?

> Some people should be fired, they forgot the basic axiom :

> DO NOT TAUNT THOSE WHO CAN DAMAGE YOU.

I don't think you can fire somebody from illegal computer intrusion. Microsoft and Epic have probably done some expensive security audits, while the suspected hacker is whining to Kotaku about how law enforcement has searched and seized all his stuff.
well if you read HN religiously you might have thought otherwise
Sorry I turned off SuperCache to find a CSS/JS error. Forgot to turn it back on. Have moved DNS to CloudFlare.
Well, obnoxious may be too strong, but it is definitely ironic and self-unaware (or should that be un-self-aware?)
I wonder if anyone knows why subtlety exists in Python. Is it because reference semantics and HOF are fundamentally incompatible, or could it have been avoided somehow but still retaining reference semantics. The most common complain about lambda in Python is that it is restricted to expressions, which is a conscious design decision that could have gone the opposite direction.
How VC money can change your product
There are some serious conflicts of interest there.
What about South Africa?

Well-developed legal system

4G network and high speed internet

Existing support structures, especially for funding

And one of the most beautiful cities with plenty of sun & sand in Cape Town.
SOAP is an abstraction that is fundamentally unhelpful (at least in my opinion). Without SOAP, to call a webservice, as a developer, I need to read the documentation for the webservice to understand what data needs to go into what places. With SOAP, as a developer, I need to read the documentation for the webservice to understand what data needs to go into what places; but the documentation is much harder to read, and complex types are usually much harder to use (there's a tendency to model things as lots of complex xml, which are often hard to construct, instead of just a specified transform to a string)
I've seen a style of list initialization that sort of addresses this issue. I like it, but I don't see it used very often. Darn you standards!

kittyBreeds = ["Himalayan"
,"Bengal"
,"Siamese"
,"Burmese"
,"Cornish Rex" //rawr
,"LaPerm"
,"Manx"

//This is not a real cat! >:(
// ,"lolcat"
,"Munchkin"
,"Ocicat"
];

In this way the issue with the commas is relegated to the first element, rather than the last. Since appending is more common, this seems a better style.
European Space, Industrial Firms Breached in Cyber Attacks
Could I ask in what made you think it was semi-unprofessional? I'll admit it was a very candid video, but I can't see how you'd get to unprofessional.
Firefox OS Hits The Ground Running With 18 Carriers Signed Up
It always depends on your needs and project specifics. For someone this might be very valuable, for someone maybe not. Here in this blog post are many interesting opinions on this subject. "Is there a market for paid Django apps?": http://jacobian.org/writing/paid-django-apps/
Pumpkin: User moderated open commenting system
Good points in the slide. A question through, why have 2 web server and two database servers? Was it for performance or redundancy reasons?
For the dev building the library static typing is a very convenient thing to have. All the ins and outs have very clear rules enforced at compile level.

However, for the user of the library, it simply gets in the way. This may be avoided though if the library has been designed well enough that strange internal types are not exposed to the user unless absolutely necessary.
The look and the sound of the Daleks communicates very well that they don't care one wit about anything like our aesthetics nor do their ideas of practicality line up with our own.

And yeah, they look like cold, mechanical things, but then one learns that, no, there are biological creatures in there, but that doesn't mitigate anything, it makes things worse. They aren't detached and emotionless machines, they are creatures who find it rational to live inside of tanks and feel only hate and rage for others beings.
It is. And one of the interesting things is, every 3-4 months they bring in another 30 startups.
Static analysis is a great tool, but the guarantees of a typing system can be much stronger (and as a result, can inform the static analyzer much better).
[Edit: deleted pointless bit here.]

If your comment consisted simply of its second and fourth paragraphs it would be better in every way and you would have contributed something of value.
The "Be the Change..." quote is a big one for me. But the biggest one is probably on the shirt I'm wearing today. "Inspiration is for amateurs. The rest of us just show up and get to work." - Chuck Close
Waiting for Julian: my fruitless quest to interview the WikiLeaks founder
There are good alternatives in the area. LightSail had very good experiences with Innovacorp. Quick and reasonable -- no crazy expenses.
Singapore is low regulation, but law heavy. While businesses generally have the freedom to do a lot, the people that work for the business do not.

As long as you plan on being a perfectly law abiding citizen (or resident), Singapore is a great place. But once you have a crime on you record--including something as simple as jaywalking--it stops being such a great place.
Singapore's come up a few times. What makes it an ideal start up location in your view?
> I will also add OpenSSL support using the HsOpenSSL package which seemingly makes the whole process trivial.

Sometimes people like to write about their pleasant experience before the project is completely finished. I'm bookmarking the project as a good example of Cabal Project structuring and use of some network libraries. Good examples like these aren't very well curated from the universal Haskell repertoire.
I wouldn't confuse modules with modularity. Think of it like this: types are the primary API for the program. In fact, I tend to call the modules that perform this function in my code something like 'Core'. Since they're a shared language that allow different parts of the code to communicate without knowing any implementation details, these types actually make it possible to write code that is more modular, not less. Different parts of the program can go about their business and perform specialised tasks, while still being interoperable (and composable) with other parts of the program (and, hopefully, code not yet written—although this very much depends on how well your types model your problem domain).

I'm not sure the author's explained this point quite as clearly as it could have been. One doesn't want to expose every type used in the program across all modules: there are many that are just used in internal representations within particular modules.

Here's an example from a project of mine, which is a command line program to produce truth tables. There's a Core module which contains the types shared across the whole program, and the most fundamental operations on them.

https://github.com/beastaugh/hatt/blob/1.5.0.3/src/Data/Logi...

Then there are other modules like Parser which just exposes a single function, but of course makes use of the core types.

https://github.com/beastaugh/hatt/blob/1.5.0.3/src/Data/Logi...

The command line program itself is defined as a Main module, which imports the pure library modules and does all the I/O. It has a few types of its own but these aren't shared across the program, because the library doesn't need to know about all this stuff.

https://github.com/beastaugh/hatt/blob/1.5.0.3/src/hatt.hs
It's a cool thought, but if each page was also designed to pick up touch (which it would have to to serve much of the same functionality of a current ereader) something like this would probably cost over 24 times the current cost of an ereader. Add to that the consideration that if the pages were meant to look and feel like paper, they would suffer the same danger of accidentally ripping them, and I don't think ANYONE would buy the product you described.
I'm pretty much convinced that the big problem today in software is deciding where your APIs should go.

My instincts are similar to the articles author, a preference for small discrete pieces software rather than a giant monolithic application. More Web Services!, if you will.

But you are correct, getting this sweet spot is hard. Truth be told, I am not even sure experience guarantees a successful design first time around.

There is a tendency with developers to want to keep everything nice and clean. For example app A is responsible for a data set, anytime other apps want to access it they have to talk to A, if they are asking for that data a lot you might be better off caching or periodically copying the data over to the parts of the system. I always try to decide whether to segment something by thinking about how many calls it is likely to receive as a web service, more than a couple in short succession and I start having doubts.

Ultimately what makes the entire system work best for users is the correct thing to do and sometimes it is very difficult to come up with something which does that and is pleasing to the discerning coders eye.
So we solve the problem of too many REST clients via another REST client? I agree with ttezel, and unio does look pretty cool, but I got a chuckle out of this :)
UAE. Free market economy, law and order, easy air travel to anywhere in world via Emirates/Etihad/Qantas, majority of world's people live within +/- four hours of timezone, access to both low cost resources but also some highly skilled resources, etc
I am sure you don't care but Scala runs on the Java virtual machine.