The Go Programming Language, or: Why all C-like languages except one suck. - <AUTHOR> http://www.syntax-k.de/projekte/go-review <comment><USER2> C, _for the level of abstraction it targets_ is an extremely good language, and this is the reason why it is still alive, and why a lot of big successful projects are written using C. The problem is its standard library. The "get this new language" teams should instead focus on how to _incrementally_ improve C. D was a (bad IMHO) attempt, just retry and make it better, a step after the other. If we will wait the ANSI committee we can all get old with strcpy().

IMHO one of the few things that should be addressed at language level is that structures with function pointer members should have a way to be called with the implicit structure pointer (something like "this") as argument. That's all we need from OOP for C. This makes you able to do:

        list *mylist = createList();
        mylist->push(foo);
        mylist->pop();

That's what currently you do like:

        mylist->ops->push(mylist,foo);

<comment><USER3> I don't think so; I think you also need polymorphism and probably exceptions. I think GC would also greatly improve expressiveness, because it makes functional style much easier to implement without redundant copying. But minimally some kind of polymorphism, and no, discriminated unions aren't enough - but Go's interfaces would probably do. Also, some way of hiding data members that doesn't require obscuring casts would be nice too.

The biggest problems I've had with large C codebases are deep assumptions about data structures, spread throughout. The biggest benefits of OOP, IMO, come from firewalling off internal details from client code through the use of an interface; knowing that client code has to call you, rather than simply follow your internal links, gives you a lot of freedom to change things after the fact. A polymorphic reference that the client can't dereference and poke about with gives you that.

<comment><USER2> I think the point is "for the level of abstraction it targets". Add all those abstractions that are generally a good thing in a perfect world, and practically you shifted the language enough to be unsuited for many tasks we use it today.

<comment><USER4> Polymorphism doesn't have to add runtime overhead. You can achieve polymorphism without RTTI through code duplication, as C++ templates do. (You can also use uniform value representations, like C void *, although this is limited in its applicability.)

<comment><USER5> Code duplication is an overhead. Not as bad as RTTI, but static memory footprint is still important in the embedded/systems world -- sometimes more so than runtime memory footprint!

<comment><USER3> You don't need any RTTI or code duplication for polymorphism, so long as you don't need general support for type-checked downcasts. If you do need type- checked downcasts, it can be as cheap as a single pointer on antirez's mylist->ops function table - a pointer pointing to the ancestor function table.

(Specific support for any single downcast is trivial - just write a function for the function table, typed appropriately and implemented appropriately.)

</comment></comment></comment></comment></comment></comment><comment><USER6> If C isn't suitable for projects with more than 10K lines, then praytell, what language should my kernel be written in?

I've been meaning to try Go for a while (the fast compile times alone intrigued me), but this type of post really just puts me off - if you're telling me that C isn't suitable for large projects, then that tells me you may not know C well enough to make that judgement.

<comment><USER7> > If C isn't suitable for projects with more than 10K lines, then praytell, > what language should my kernel be written in?

The Xen hypervisor (which shares a lot of characteristics with an OS kernel) is written in OCaml, which seems to have proven a good choice in practice: <http://gazagnaire.org/pub/SSGM10.pdf>

<comment><USER8> Not the hypervisor, just the management tools.

</comment></comment></comment><comment><USER9> Unfortunately, the author seems to have misconceptions about a variety of things.

> projects with more than 10k LOC.

Other comments have discussed this. Linux kernel: ~4million lines. Compilers, interpreters, and so on... all well above 10k LOC. While C is not the best language for such things, by no means is it unmanageable.

> But when you try to do the modern funkiness of dynamic languages (lambda > functions, map/reduce, type-independence, ...)

All of the features can be used in much stronger type systems than C++ gives you. ML-family languages have all these features and are strictly type.d

> Javascript Javascript's whacky semantics suck, that's for sure, but for a > dynamic language that's par-for-course anyway. I don't really understand his > argument about embedding. Why is that relevant? Java and C# are not > embeddable either. ...So?

<comment><USER10> I had the same feeling. Node.js is a part of webOS, that uses JavaScript as programming language, and Tizen too.

</comment></comment><comment><USER11> _So while C may be as lightweight as it can get, it's not really suitable for projects with more than 10k LOC._

I believe John Carmack would have something to say about this.

<http://en.wikipedia.org/wiki/Id_Tech_3>

<comment><USER12> For that matter, _libc_ is considerably more than 10 kLOC (on FreeBSD 9.0, it's about 140 kLOC), and it's hard to think of a more stereotypical block of C code than that.

<comment><USER13> It is stereotypical library but not stereotypical software project per se. Functions in libc have (by design) very strict interface and little data interdependency.

I would say SQL or HTTP server or game or a word processor where you have to retain sizable chunks of data in memory for longer periods is a better example of big C project. And that's where lack of automatic memory management and data abstraction in C makes it hard.

<comment><USER14> Oracle is written in C.

</comment></comment></comment></comment><comment><USER15> > What makes me stay away from it is the non-free nature. Yes, there is Mono, > but I wouldn't like to base my stuff on a language that is there because of > Microsoft's benevolent permission which it could turn into patent-lawsuits > any time. We all know the tricks that company (well, actually any large > company) has up its sleeves.

Microsoft has standardized C# and the CLR through ECMA, and issued a promise stating that they will not assert their patents against alternative implementations thereof. Non-standardized APIs like ADO.NET, ASP.NET, and System.Windows.Forms are not protected by that promise, but Mono discourages their use anyway and if they had to remove them, it would not affect the C# compiler or CLR in any way. So this is not a legitimate reason to avoid using Mono, unless you (a) need to use the non-standardized Microsoft APIs or (b) are Richard Stallman.

<comment><USER16> Agree. I would have preferred he kept politics out of the argument and actually reviewed _the language._

</comment></comment><comment><USER17> The Java comments are wrong IMHO. Yes it has some legacy cruft. Yes you can import 10 million libraries and build abstractions on abstractions. Yes you can architect your application to resemble a Rube Goldberg machine.

Guess what? Those same points apply to an language. Heck the evolution of a Python programmer <https://gist.github.com/289467> currently on the front page which does the same thing for Python which is usually pretty clean. Even PHP which is mentioned as the alternative can quickly become a spaghetti ball mess of imported code and shared snippets.

I don't love Java, but for certain classes of problems it is an excellent choice and to discount it based on a wrong perception just shows how shallow a technologist you are.

<comment><USER18> _The Java comments are wrong IMHO. Yes it has some legacy cruft. Yes you can import 10 million libraries and build abstractions on abstractions. Yes you can architect your application to resemble a Rube Goldberg machine. Guess what? Those same points apply to an language._

Potentially, yeah, but guess what? It does not happen in every language. That's why it's most often brought up for Java. Because it's not just the potentiality that matters, but the actuality too. In other words, it also takes a culture, and Java very much has that kind of culture.

 _Heck the evolution of a Python programmer<https://gist.github.com/289467> currently on the front page which does the same thing for Python which is usually pretty clean_

See? Usually, as in, "Usually pretty clean", is the key word here. Whereas Java program design is usually pretty convoluted.

And the "Evolution of a Python programmer" is mostly a joke, meant to show the tendency of some Python types to use some newer/cooler/functionaler (sic) features in place of more simple and readable ones. It's not what commonly happens in Python projects though.

</comment></comment><comment><USER19> Just from the title I can tell this is going to present a completely objective, well thought-out, unbiased appraisal.

<comment><USER16> This is Hacker News. You have to have a conclusion or command in your title to get upvotes. "Why the cloud is wrong for your business." "Why your language sucks." "SaaS-de-jour, we have a problem."

<comment><USER20> It hasn't always been this way but lately it sure seems that you need a sensational, controversial headline to make it to the front page.

</comment></comment></comment><comment><USER21> I wish people writing things like this would write about the positive aspects of the language first. Are you really going to convince people who like Java that Java is bad, in one paragraph? And, do you want to just annoy everyone with your opinions before you get to the neat facts you want to convey?

Positive first, negative second, or better yet, you understand the negative argument through the positive.

</comment><comment><USER22> > Go has no exceptions.

I'm not a fan of the verbosity of error handling with exceptions either. It is particularly bad for fine grained error handling.

However, I do like that the default state of a non-handled error is to propagate and eventually crash the thing rather than continue with errors that may subtly corrupt things. I haven't used Go, but from the explanation of error handling Go seems to do the latter rather than the former (please correct me if I'm wrong).

In most languages, exception handling doesn't seem designed for fine grained error handling, which makes one not want to use it for that. Rather than complain about the verbosity of their methods, why not try to fix the issue with a less verbose method?

E.g. something like: handle := openSomeFile() catch err

Or ignore it if you want, letting it automatically propagate: handle := openSomeFile()

<comment><USER23> In Go, the accepted way to report errors is to take advantage of multiple returns, such as:

       result, err := somePotentiallyFailingFunction()
       if err != nil {
          // Try to recover here
          ...
          // Not recoverable?
          panic()
       }

And this call to panic works the way you prefer. Note that doing the following:

       result := somePotentiallyFailingFunction()

won't compile since the number of values on the left doesn't match the right, so if a function can fail and returns an error, you will know. If you do something like:

       result, err := somePotentiallyFailingFunction()

And then never check err, it's actually a compile-time error, which enforces error checking, to a point. What's next is the kind of thing you don't like, and it's poor style.

       result, _ := somePotentiallyFailingFunction()

This assigns the error to _, which causes no errors if you don't use it.

Hope this clears some things up.

<comment><USER24> Ok but exceptions also give you alot of context about the error like exactly where it occured. How is that handled in Go?

<comment><USER25> The error type is an interface. You can return values that contain contextual information as long as the error value you return has an Error() method returning a string.

        type ParseError struct {
            line int
        }

        func (e ParseError) Error() string {
            return "Parse error at line: " + fmt.Sprint(e.line)
        }

Note: The current release may vary slightly on the details. I'm using a pre- release build. But older versions are similar.

<comment><USER23> And then in the code for handling the error, you can do

       switch err.(type) {
          case db.IOError:
              // Database exception here
          case io.FileNotFoundError:
              // File exception
          default:
              // Pass it to our caller for them to handle.
              return nil, err
       }

Which gives you the ability to selectively catch errors based on type.

</comment></comment></comment></comment></comment><comment><USER26> _I wouldn't like to base my stuff on a language that is there because of Microsoft's benevolent permission_

So, he chooses a language that is there because of Google's benevolent permission.

<comment><USER27> Go has been released with a BSD-style license including patent grants. If Google dropped it tomorrow they couldn't stop anyone else from just picking right up where they left off.

<http://golang.org/LICENSE> <http://code.google.com/p/go/source/browse/PATENTS>

</comment></comment><comment><USER28> I hope nobody reads this, is irritated by the listed criticisms of other C-like languages, and decides to avoid Go. Go is a very well-designed language. Instead of piling on features, they have optimized for practicality and productivity. After reading "The Practice of Programming", so much of the language is obvious.

</comment><comment><USER29> At work we have tools that automatically concatenate the lines of our .c files into one giant line of code. That helps us get around the pesky 10K LOC limit.

</comment><comment><USER30> Imo the 'Rant about C-oid languages' part of this article is a bit weak (though I agree with some of it), but the 2nd half of this article is actually a pretty good rundown of Go features.

</comment><comment><USER31> Actually, all languages suck because there are benefits and tradeofs to every design decision -- cross compitable binary format means JIT compilers, garbage collection means more wasted memory, etc. It is all tradeofs.

</comment><comment><USER32> <http://news.ycombinator.com/item?id=2631964>

<comment> why-el Thanks. I was starting to wonder why this is not generating as many comments as it normally would have for this type of articles.

</comment></comment><comment><USER3> No, I have never written exception-handling code like that mocked in this article. There's a strong correlation between uses of 'catch' and the probability that you're using exceptions incorrectly. Go's lack of exceptions is probably what pushes me away from it most strongly.

<comment><USER33> That's my take as well. Most of the code I write doesn't attempt to recover from error conditions. I would say at least 85% of the time I want the program to exit with enough information that I can tell what happened. So I propagate the exceptions up to the top level. Nothing could be easier.

This may all be a function of the environment in which my code runs, but I certainly have no interest in going back to my C days when 95% of the source was devoted error handling.

</comment></comment><comment><USER34> I really like some of the ideas in Go however it still hasen't hit that critical mass that languages need to hit to really make it in the crowded world of programming languages. This is going to be even more difficult for Go then it was for Python or Ruby since they both can serve very well as prototyping language or glue languages. As a systems language Go needs to be able to gain traction from nothing.

<comment><USER35> It just needs an OS to go with it. I think Rob Pike should port Plan 9 to Go.

</comment></comment><comment><USER36> __dynamic_cast <MyData _> (funky_iterator<MyData &const_>(foo::iterator_type<MyData>(obj)) Yeah. Right. Don't get me wrong, I love templates, but contemporary C++ using STL looks like a classic case of the "If all you have is a hammer"-syndrome. GCC had to implement special diagnostic simplifications just so you can actually find out that that 5-line error message was a simple const'ness mistake when using a std::string method. Even worse, they can be slow as hell. Ever waited for Boost to compile? Good idea, bad realization. __

I have been programming (in C) for 12 years, and when I see something like this I still get a shivering feeling. How can one design such a shitty programming language like this?

<comment><USER20> Every language has its pathological corner cases. Modern C++ using the STL is almost as terse as modern dynamic languages but runs 100x faster.

<comment><USER37> I would argue that C++ _is_ a pathological corner case.

<comment><USER20> Even Stroustrup has said there's a cleaner, simpler language within C++ struggling to get out. But C++11 is a big step toward that language and C++ is still the go-to language for a large class of applications for good reason.

</comment></comment></comment></comment><comment><USER38> One concern I have with garbage collected system programming languages is GC pauses. I have worked with several java applications that were simply not capable of handling fast, continuous, time critical processing tasks because every now and then they would pause for garbage collection. Most of the time they were fine, but suddenly you'd get brief but unacceptable drops in performance. Does anyone know if go is likely to suffer from this?

<comment><USER39> Currently, there is a world stop, yes. The garbage collector is parallel, but not concurrent. A concurrent garbage collector would make that disappear. How bad it impacts you depends on the workload, personally I've never felt it. YouTube uses Go[1] and mentioned[2] world stop is significant in their case, but tolerable.

[1] <http://code.google.com/p/vitess/>

[2] [https://groups.google.com/forum/?fromgroups#!topic/golang- nu...](https://groups.google.com/forum/?fromgroups#!topic/golang- nuts/U5ilNZpXzNU)

</comment></comment><comment><USER40> About this point :

> What's even better: you can put labels on your nested loops and break out of > multiple levels using them. Finally!

This is possible in other languages, too, even if it's a little known fact.

For example in java :

        ext: for (int i=0; i<4; i++) {
            System.out.println("ext "+i);
            for (int j=0; j<4; j++) {
                System.out.println(" in "+j);
                if (j==2) break ext;
            }
        }

</comment><comment><USER41> _So, what's fundamentally wrong with JS? Not a lot._

At this point the article lost all credibility with me.

<comment><USER42> Some of the implementations in JS went wrong, but fundamentally it really doesn't have anything horrible going on for what it's meant to do.

Unfortunately some of the implementation details do allow for seriously horrible code and some seriously horrible traps. But if you can clear the fog, and use "the good parts", it's actually pretty nice.

As for the article, I think it's very well written and seems to have a good overview of the language. Also, the author seems to have an above average experience level in an above average number of programming languages (guessing here), so it might be worth a read.

<comment><USER41> I am not talking about any APIs in JS or any "implentation in JS". JS, the language, as specified, is wrong at the core. It has a lot of insensible semantics. It's not even at a local maximum. I could just write a list of 10 changes to the language right now that would spur near-unanimous agreement of benefit with no downside.

<comment><USER43> Go for it.

<comment><USER44> There is a site dedicated to collecting them but I cannot find it atm. This one does a decent job however:

<http://bonsaiden.github.com/JavaScript-Garden/>

</comment></comment></comment></comment></comment><comment><USER45> > One reader detailed the history of Pythons ternary operator

i'd love to see this

</comment><comment><USER46> Minor nitpick: I think for is a special case of while more than while is a special case of for.

</comment><comment><USER47> Why is he grouping JavaScript with the "C-oid languages"? Not even close!

</comment><comment><USER48> ctrl-F Rust

...nothing? ok here: <http://en.wikipedia.org/wiki/Rust_language>

</comment><comment><USER49> "[Issue 9] is a C-like language...It is intended to be a systems programming language..."

What? Google's Issue 9 is neither a C-like language nor a systems language.

<comment><USER49> Figures this would get downvoted for not blindly buying into the propaganda: The syntax is clearly not C-style, that's just plainly-apparent. And just because a language is natively-compiled doesn't make it a systems language.</comment></comment>


The Monkey and the Apple (Steve Yegge on developing his MMORPG for IOS) - <AUTHOR> http://steve-yegge.blogspot.com/2016/11/the-monkey-and-apple.html <comment><USER2> >But I have some pretty darn loyal players.

I am one of those players, Wyvern was an amazing game that actually got me interested in programming beyond little games on my TI calculator. I eventually found Steve's (Drunken) Blog Rants and his writings pushed me into functional languages and Emacs.

I hope we get plenty of new Blog Rants, and I hope the new Wyvern inspires in even one person a desire to program.

</comment><comment><USER3> I'd love to see details on the hand rolled authentication (without giving too much away)</comment>


Facebook Now Pushes Site Updates Twice A Day - <AUTHOR> http://thenextweb.com/facebook/2012/08/03/facebook-is-now-pushing-updates-twice-a-day-thanks-to-new-hires-in-nyc/ <comment><USER2> Releasing twice a day makes sense, if you're not the most visited website in the world. There's something about Facebook's approach to things like that that screams, "immature startup" Facebook is an adult now and should act rightfully so, it has stakeholders and investors to appease and if something breaks for even 5 minutes the share price could tumble having a roll on effect and everyone knows Facebook can't really afford to suffer any more share price drops.

</comment><comment><USER3> I guess that explains why I've been twice as annoyed by it.</comment>


Why Doesn't Anyone Give a Crap About Freedom Zero? (2008) - <AUTHOR> http://www.codinghorror.com/blog/2008/01/why-doesnt-anyone-give-a-crap-about-freedom-zero.html <comment><USER2> I hope the irony of asking about the _Free Software_ "Freedom Zero" and then only talking about Open Source was not lost on Atwood.

People don't care about Freedom Zero for the same reason why Open Source took over Free Software. Because the vast majority developers and businesses embrace it only for their only self-interest, by reducing development time and costs. They don't give a single fuck about user freedom, as it's well shown by the number of companies who release open source backend tools but keep their customer-facing applications proprietary.

In fact, this is no secret: the whole _point_ of creating Open Source as an alternative to Free Software was to keep the code sharing parts while shedding the ethical positions of the GNU philosophy, such as Freedom Zero, which were unpleasant to the money makers in the industry.

<comment><USER3> By the same token 99.9% of consumers don't care about the legalities and 'freedoms' that Atwood talks about - only what they can do with their computers and the ease with which they can do it.

<comment><USER2> "what they can do with their computers" is the whole point of freedom zero.

<comment><USER4> No, "what a hypothetical user _could_ do, _potentially_ , given unlimited skill in the computing domain" is the whole point of freedom zero.

All everyday users give a shit about is what they actually _can do easily_ , given their shallow understanding of computing devices, to get the shit they need doing done.

This rarely taxes or even approaches the limit of commercial, closed software, so they perforce give zero shits about hypothetical freedoms that for all intents and purposes do not exist for them given their time and skill constraints.

<comment><USER5> You think the average computer user rarely approaches the limits imposed by proprietary software? You must have never met someone who:

* Wanted to rip a video DVD

* Wanted to copy songs from one iPod to another

* Wanted to use Remote Desktop while another user is logged in

* Tried to deal with HDCP problems between a cable receiver and television

These are _all_ software problems, _all_ imposed by artificial restrictions, and _all_ violations of Freedom 0. You seem to think Freedom 0 is about technical competence; yet weak technical skills are what proprietary software vendors _take advantage of_ when they impose these sorts of restrictions.

<comment><USER6> > _These are all software problems, all imposed by artificial restrictions, > and all violations of Freedom 0._

Those problems _can not_ be separated out and analyzed independently like this.

> _Wanted to rip a video DVD_

> _Wanted to copy songs from one iPod to another_

Without those two limitations _you wouldn 't have_ either DVDs and iPods, as the economics of these technologies wouldn't made sense for companies which created them.

> _Wanted to use Remote Desktop while another user is logged in_

This sound like an accidental technical limitation.

> _Tried to deal with HDCP problems between a cable receiver and television_

This is, again, the limit that allows you to have those movies in the first place.

I'm all for the open source and Freedom 0, but please don't forget that it's not about Freedom 0 being violated or not. It's about it being violated or _not having anything at all_.

<comment><USER7> You seriously think that DVDs wouldn't exist if they couldn't have their little ROT-13? Well I don't think this is going to be a very fruitful conversation.

Oh but while you're here how about you explain the popularity of DRM-free mp3 downloads :)

<comment><USER8> That's why after DVDs encryption was cracked they stopped making DVDs

<comment><USER9> I thought that was because better formats came out... With no improvement on the 'encryption' end as far as I can tell, because I can find bluray rips for any movie that's come out on bluray.

<comment><USER10> He was being sarcastic. CSS (the pathetic 40-bit "encryption" used on DVDs) was cracked in 1999. Blu-ray wasn't commonplace until 8-10 years later.

Blu-ray's AACS actually is much better than CSS ever was, and as far as I know it hasn't been attacked in either a brute-force or break-the-algorithm sense. But like all other DRM, there are inherent flaws it can't work around. You need only extract a player key and you can freely decrypt the data.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I don't quite understand Jeff's point in the article. Is Windows really that much more open than OSX?

I got my (first) Next^H^H^H^H Mac about a year ago. I don't want to stop running Linux yet, but the Mac works much better than any Windows machine I have ever been forced to endure. While the Mac might not have open hardware, it at least lets me load a wide variety of open software onto it: Libre Office, Groovy, Go-lang, Ruby, etc. (Windows does also, but the BSD personality on the Mac makes the experience more frictionless)

I do care about freedom, but the platform which often simply does not _work_ well enough to be playable is no freedom at all.

I should probably add that my first programming job was back in '85 working on (dead language) under MS-DOS, so I have a long history of abuse at the hands of Microsoft. I'll agree that the Apple II, and also the C64, were nice little machines to tinker with, though.

<comment><USER12> You cannot control or change the OS according to Jeff. Which means that you are as free as the OS allows you and not as free as the hardware allows you.

I do agree that OS that allows you to run self signed code and unsigned code and have root access is almost on the top of the freedom ladder.

<comment><USER10> You have exactly as much technical control over Mac OS X as you do over Windows. You can execute arbitrary code and modify any system file you wish, even the kernel.

I'm not clear why people don't know this. Do non-Mac users really think OS X has to be "jailbroken" like an iPhone?

<comment><USER12> But can you change the OS without bootcamp? Arbitrary bootloaders etc?

<comment><USER10> What? Yes. Of course. Again, I don't get this. Where is the idea that Macs are locked down coming from? Who told you this is a problem?

Edit: By the way, in 1996, Apple released MkLinux. [http://en.wikipedia.org/wiki/MkLinux](http://en.wikipedia.org/wiki/MkLinux)

This was even _before_ they stopped using non-standard components in their computers.

How anyone could ever have thought Apple was blocking installation of alternative operating systems is beyond me.

</comment></comment></comment></comment></comment><comment><USER13> Because nobody can exercise it anyway. Freedom 0 is really just a corollary of freedom 1, "The freedom to study how the program works, and change it so it does your computing as you wish." If you can't change a program, you can't run it for any purpose, you can only run it for the purpose intended by the original author.

Freedom 1 is pretty hard to exercise too. For any given bit of technology, there are very few people outside of the original authors that are capable of changing it in meaningful and useful ways, and even they will need to put in a lot of effort do so.

It may be apocryphal, but the Apple II discussed in the article is said to be the last computer designed entirely by one person. Modern computers are just too complex for any one person to entirely understand. We can only answer questions, fix bugs and add features in a narrow speciality. In order to use a computer system we have to rely on other people to handle issues outside our areas of competence. Those people might be part of communities that help each other for free, or might work for companies that provide support to their customers.

So freedom 0 is a bit like the freedom to go to the moon. Having it is better than not, but most people don't benefit from it.

<comment><USER14> Not totally true. If I, as a programmer, can excercise Freedom 1 to write a new programme, then I can give it to you, and you can excersice Freedom 0 to run it on your device. If the Overlords™ don't want that type of programme to run on your device, there's nothing they can do about it.

<comment><USER15> Xcode is free. Write/download source code, click Run. Where isn't Freedom 0?

</comment></comment></comment><comment><USER16> Plenty of people care about Freedom Zero. Millions or tens of millions or even hundreds of millions. That's great; that's their prerogative. Jeff seems to be really saying "why doesn't _everyone_ care about Freedom Zero?", and that's a very different and much more interesting question.

Unfortunately for him (but not for humanity as a whole), the answer is that everyone has their own Freedom Zero that they care about, and one of them might be, "I want to use the hardware and software that I want to use, that works for me, rather than be restricted to what Jeff Atwood personally approves of and claims to do so for moral and ethical reasons that I don't necessarily agree with."

I'm not saying he's wrong. It's just much more interesting to live in a world where tons of different philosophies perpetually collide and mutate and influence each other, rather than one in which we've collectively decided that there's one and only one way to do something, and there's no room for debate or people just doing whatever the heck they want to do provided they don't hurt anyone else.

</comment><comment><USER17> Variants of this come up from time to time, and that alone rather undercuts the question in the article title -- if _no one_ gave a crap about "Freedom Zero," then people wouldn't keep asking the question.

My biggest problem with Atwood's specific argument is that claiming that Macs are "dongles" for OS X is that it's essentially an argument that _platform incompatibilities_ violate Freedom Zero, which is, with all respect to Atwood, a little nutty. I owned a TRS-80 in the late 1980s, and I'm pretty sure that my inability to run Apple II software on it could not be accurately blamed on hardware-based copy protection. The Mac is not a dongle for OS X any more than OS X is a dongle for Cocoa software. Or are we seriously going to argue that it's harmful for consumers if we can't run all applications on all platforms, and that the differentiation should only be a matter of aesthetics? (Which, all platforms followed Freedom Zero, would be easily changeable anyway, right?)

The thing I'd really like to see more focus on is _data freedom._ Maybe what I'm using to read ebooks, play music, watch videos, create word processing documents and spreadsheets, write code, and edit photos in is open source, maybe it isn't -- but switching to something _else_ to do those things in shouldn't require me to lose fidelity/functionality in a conversion process, let alone require me to either re-buy something due to DRM (or crack the DRM). Yes, if I had the freedom _and the ability_ to modify every application on every platform, I would theoretically have complete data freedom -- but I should be able to have that even if I'm using 100% closed source software.

<comment><USER7> It's not just architectural differences; Apple goes _out of their way_ to make OS X break on the hardware they don't sell. This is a definite violation of freedom zero.

<comment><USER17> My understanding was that it's less malevolence on Apple's part than Macs not being _quite_ like PCs architecturally, particularly with respect to firmware -- but it's somewhat orthogonal to both my (strained) analogy and my point. :)

I like _both_ OS X and Apple hardware. But we're living in the future, compared to back when I first got into computing, and data is a _lot_ more easily transportable between platforms. If at some point I decide that I don't like that combination enough to pay the price differential between a new Mac laptop and a comparable PC laptop[1], switching platforms will suck a little, but it won't be a nightmare. I simply don't agree with the assertion that my freedom is cruelly curtailed if I can't run OS X on a cheaper Acer laptop.

[1]: Please nobody tell me that I'm paying three times as much for "exactly the same thing," or conversely argue that Macs are cheaper than PCs if you only look at it the right way. No, I'm not. No, they're not.

</comment></comment></comment><comment><USER18> I love this post intellectually, but I believe it has a fairly simple answer - convenience and design. @patio11 also discussed these on his blog[1], which I'll get into:

Most people (users/customers) don't give a crap about freedom zero because most people _aren 't hackers._ Most people want things to "just work." Most people don't want to tinker and screw around hunched in front of a lit screen for a few hours just to set up their drivers in a specific way.

On the other side, most employees don't care about perpetuating freedom zero or that philosophy because it's not as rewarding. I mean, yeah, it feels good to have open source projects and contribute to the community. But let's be honest, it doesn't pay the bills as well as working at, say, Microsoft does. Proprietary software attracts the more highly skilled engineers ( _usually_ \- obviously some people are possessed of such personal conviction in software freedom that they will give up high salaries for their hacker community, but this is not the norm).

Here's a few examples to illustrate my point:

My mother is barely computer literate. If I presented her with Banshee instead of iTunes, she'd freak out. It would either gray out, become non-responsive, and subsequently close on her while syncing, or she wouldn't have all the features that a coordinated group of engineers in a multinational company built and designed for mass production.

As a programmer, I'm the same way. I want things to just work. Just because I know how to do things most other people don't using a computer doesn't automatically mean I'm invested in the free software movement. I dual-boot linux on my Mac, but I only use it for technical reasons. I don't honestly believe it's applicable or relevant to most people's uses of a computer. It doesn't "just work" _a lot of the time_ \- enough for it to be annoying. There's a "feel good" euphoria that occurs in an intellectually superior sort of way when you install linux, but it quickly drops off when it's a hassle just to get YouTube videos to play properly.

Secondly, and _just as importantly_ \- design. Do rhythmbox or banshee have as _sexy_ a design as iTunes? Could they, with the resources they have? No, and no. Sure, they have accomplished something impressive, and in some respects, they have higher utility than iTunes. But overall, it's not an attractive interface. As Dave Wiskus would say, it isn't _relevant_ and it doesn't _match_ \- a program needs to look like it _belongs_ in the system it's designed under in order for it to be liked by a user many times. This doesn't just mean that software has to look like Windows or Mac, but that it has to _understand_ the user and take out cumbersome decisions while preserving features in a way that is _similarly intuitive to the system it resides in_ \- that's very hard. It's also why UI and UX designers are as well paid as programmers.

We see this with apps all the time. When an app doesn't look like it matches the sleekness of iPhone's design i.e. it's clunky or looks "themed" with no custom overhead, it has a verifiable impact on the marketability of the app. The same applies to software. patio11's Bingo Card Creator competes with open source by being _better_ because he has higher motivation. It's _easier_ to obtain proprietary software (read: not cheaper, easier) because there's no hierarchy of betas and alphas and complicated names. There's a simple "download" or "install" button. The design has full teams of people behind it, knowing which hundred things to take out for which one thing to keep. Open source can't afford that.

This is why freedom zero isn't popular. I love free software, and I have a good advantage over "normal" (non-technical) users in utilizing it, but it's just not practical if you desire convenience _and_ utility.

[1]: [http://www.kalzumeus.com/2009/03/07/how-to-successfully- comp...](http://www.kalzumeus.com/2009/03/07/how-to-successfully-compete-with- open-source-software/)

<comment><USER2> _Most people (users /customers) don't give a crap about freedom zero because most people aren't hackers. Most people want things to "just work." Most people don't want to tinker and screw around hunched in front of a lit screen for a few hours just to set up their drivers in a specific way._

Oh, please, not this outdated crap. As long as you don't choose a particularly hostile machine, nowadays GNU Linux distros don't require almost any manual driver installation, and even restricted drivers can be installed with a couple of clicks.

Linux just doesn't offer anything that most users can appreciate. How hard it is to install or run doesn't even enter the picture.

 _My mother is barely computer literate. If I presented her with Banshee instead of iTunes, she 'd freak out. It would either gray out, become non- responsive, and subsequently close on her while syncing, or she wouldn't have all the features that a coordinated group of engineers in a multinational company built and designed for mass production._

Clearly you haven't used the Windows version of that marvel of technology. It features all of that plus randomly not detecting the iPod, being bloated as hell and slow as molasses.

I agree that Free Software is not as convenient as proprietary software, though, and I frankly have no interest in convincing any of my relatives to use Linux instead of Windows.

<comment><USER18> I'm glad you agree with my conclusion.

What you said about drivers is defensible; it was just the first thought that popped into my head. Nowadays linux has progressed enough to bypass that _usually_ \- but what about being required to use the terminal just to install?

Most users don't know what _sudo_ , _wget_ , _make_ , or _apt-get_ commands are, just to start. Most users don't know what _commands_ are, in fact. They don't care about root access or custom options. They need and expect a graphical wizard to walk them through the core basics of their programs, and even then they shouldn't try to perform anything other than the checked box "basic installation". Perhaps that's a better example?

Now, you can blame this on third party developers not packaging their applications as handily as they do for Mac or Windows, forcing people to gather and compile sources themselves. But this doesn't change the bottom-line - linux is _not_ convenient (which we agree on).

And I have used iTunes on Windows, and I found it wasn't bloated. It seems to be more or less on par with my Mac to be honest, though frankly I haven't used it for that platform except to help other people in the past year.

<comment><USER19> To be fair, if you use a friendly distro like Ubuntu you don't have to touch the command line unless you want to or you're trying to do something reasonably advanced.

Ironically I also find that I can often get things to work much more easily too.

Tried to setup a printer the other day under Windows 7 and went through a process of faffing around with HP drivers, updates and weird dialog boxes.

Under Ubuntu I told it to print and it basically said "on this printer?" , I said "yes" and it printed.

Also trying to share files between 2 computers on a LAN is an order of magnitude easier.

The bigger problem is that lack of strong options for certain types of software (e.g Music editing, Graphics editing, Games) under Linux and also support for some types of hardware. Though these would be quickly rectified if it had marketshare.

<comment><USER18> The problem with marketshare is that it's a cycle. Getting marketshare requires those kinds of features (generally), which requires paying your engineers a better salary (again, generally, there are exceptions). But that won't happen without a marketshare to bankroll better engineers. And at that point, you might as well be proprietary.

<comment><USER19> Not sure what salaries Canonical pay , but I assume that they are competitive enough. I have heard that the perks are good, work from home etc. So I doubt that they have a problem attracting good talent, I would wager that their average level of developer skill is significantly higher than the average devshop.

Of course they are a smaller company (than say Apple), so may not have the resources to build every single program people want. OTOH third party vendors can certainly fill this gap, but then you hit the chicken and egg problem that third party vendors don't want to develop for it (at least desktop software) because marketshare is low.

Web based and cross platform software alleviates this problem significantly though.

Of course it depends if you are Richard Stallman and must use 100% GPL software for everything, or whether you are happy with certain compromises. I would say that having your core OS as 100% open source software even if you run proprietary apps on top is a significant step forward.

<comment><USER2> rms doesn't have to use 100% GPL software, he's fine with MIT, Apache, BSD, etc ;)

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> The whole argument is a non sequitur. The products and companies the author is hoping people defer too, are not prevalent in mainstream society yet. Ubuntu and Arch Linux do not have stores in the mall. Sparkfun is not making arduino based mp3 players and phones down by the food court.

I think this highlights an interesting point, but we aren't there yet as a culture, globally.

</comment><comment><USER21> I've always been interested in maintaining the ability to perform general computation. To me, that's being able to run any program I construct on my hardware. I don't demand that the program be able to interact with other systems, but I do demand that I be able to execute the instructions I want.

That generalizes freedom 0 to the set of programs the user constructs.

If a general-purpose program has to pass an authentication protocol before it's allowed to run, the surrounding environment is an attack on the construction of free speech by more efficient means.

Or something like that.

</comment><comment><USER22> There's always been this sort of philosophical disconnect in the programming world.

"We love Windows and Linux because they don't lock down their environments like Apple does!"

"We love Android because its ecosystem isn't locked down like iOS's!"

Yet, on the other hand:

"We hate products that are designed by committee!"

"We love Rails because it forces convention over configuration!"

<comment><USER2> It's almost like there are different people with different opinions.

<comment><USER22> Don't be ridiculous!</comment></comment></comment>


Ask HN: Do I let my brother take over as CTO? - <AUTHOR>

So I'm going to start by explaining my experience with coding and/or computers in general before I go on to my question. I've been a Computer Technician for a few years and I've had a computer my entire life, and I've been tinkering with computers in general for as long as I've had any (Kindergarten). I started programming early last year, and I audited a course at UCDavis over the summer (ECS30). I'm currently 15. I learn fairly fast with these things and I've put an enormous amount of time into this idea.<p>Last night, I finished designing the UI of the idea, and this morning I called my brother because I had a question relating to the class diagram. My brother didn't answer that question, and instead told me he had watched the Social Network last night, and it made him want to work on this with me. I had asked him awhile ago to work on it, and he said no because of school. He had about two weeks off because he had just graduated from UCDavis (with a bachelors in Computer Science and BioTech) and he agreed to work on it with me. At the end of those two weeks he decided not to work on it with me because he had just gotten a job at Autonomy.  He knows Java, C, C++, and Python. He now wants to work on it, but under a  condition. That condition being he takes care of the technology side of things, mostly because I don't know any other languages than .NET/Mono/Silverlight. This means that I'm going to have to learn Java and PHP, and as he's doing the coding for the project I'm going to be spending the time playing catch-up and as a result end up making considerably less contributions. I personally think that I have more to contribute to this project in the idea itself than he does, but he knows how to code well. I can learn to code well, it will just take more time. My question is should I let him take over as CTO? <comment><USER2> On the tech side, if you've got a silverlight-based app that you'd think might be better as a pure javascript-based offering (the 50% issue you mentioned elsewhere) bringing someone in who is not a js guru isn't going to get you any further along. So... someone coming in and wanting to change tech mostly just to suit them (although I think there _can_ be some financial advantages to java/php over a .net approach) doesn't sound like a good move.

Putting on my "old guy" hat... you're 15. He's not much older. You're both young and he's wanting to horn in on your baby because he saw a movie. This just doesn't good to me, but the ages - and family angle - make it worse. I'd steer clear of this one as politely as possible.

If your current project doesn't pan out, perhaps you can start something new together later, but approach that with a clean slate.

<comment><AUTHOR> I do kind of feel like he's taking advantage of me, I get that feeling a lot actually. I do think he could be a great asset in the future, mostly when the work becomes too much for me but I really do get the feeling that he wants to take over and do it all.

I want this to work out, I don't like high school. I am willing to accept failure but there is more than one idea I've thought of that I like, only this is the one that I think I can do the best on right at this moment, and in the far future I want to work on those. (Those have high starting costs whereas this has almost no costs in the beginning and I see personal gain from this because K-12 Education is awful)

<comment><USER2> Old man speaking here again. It's fashionable the past few years to drop out of college and head to Silicon Valley to strike it rich. I get that. I would _not_ recommend dropping out of high school. You've got perhaps 2 years left of it. If you want to slack there and hone your skills on something else - fine. But unless people are already paying you a crapload of money for stuff you've done, stick it out. That probably sounds very 'stick in the mud', and it possibly is. Just... stick it out. Out of the probably 70-80 years you've got left on this planet, another 2 spent getting the most rudimentary education and exposure to a variety of ideas (even if it sucks) isn't going to kill you, or indeed kill your startup baby.

If there's one thing I've learned over the years is that good ideas and good opportunities constantly present themselves - it's like a river. You need to be able to grab on to one when you're ready, and at 15 I'm just not sure you're ready.

Yes, we see stories of 9 year old CEOs making fortunes on the web (one started a furniture company or something like that) but they also have close-knit supportive parents and families. You've not mentioned parents, but you're already not on the same wavelength as your brother, which is a big red flag.

I did a 'startup' (services consultancy, really) with my brother for several years - it didn't end well, but we've stayed friendly and in touch, which (to me) is ultimately more important.

<comment><AUTHOR> Well I never said I'd drop out, even if it came off that I implied that. The idea I'm working on involves K-12 education. It's essentially a file-sharing network for academia and hobbyists. But the file-sharing part is mashed in with your courses, so when a teacher posts the homework any other teacher can use that homework as well or if a student doesn't understand how to do the night's homework they can just search for the concept (i.e Quadratic Equations) and it will come up with a list of videos made by teachers for that concept. That's a very informal and not a very elaborate description but that's essentially it.

</comment></comment></comment></comment><comment><USER3> > My question is should I let him take over as CTO?

I say remove the word "CTO" or any other 3-letter acronym that starts with C from your lexicon for now. Can he be your _partner_ \-- that is, can you depend on him and be open and honest with him?

> told me he had watched the Social Network last night, and it made him want > to work on this with me

Yikes.

<comment><AUTHOR> I honestly don't know if I can depend on him or not, if it's any indicator of dependability, he had around a 2.8 GPA in College and he wasn't really doing any side-projects. His main ordeal would probably be his job, as he has a full-time job as a System Admin. If I judge his dependability based on that then it's shit. I think I'll ask him why he wants to do this and if he's honest about that his response will tell me whether he's dependable.

Him watching the Social Network and being motivated from that is slightly worrisome to me as well, but it was a movie that even with it being mostly fictitious, it still showed the possibility of success in Silicon Valley.

<comment><USER4> Everything you've said on this post leads to a big, flashing, neon sign saying "DON'T DO IT, MAN".

It's your own choice, but if you can't depend on him, doesn't have the skills in the areas he'd need to have, and seemingly wants to muscle in because he's watched a movie, then I think it's probably better if you find a way to decline without being too rude about it.

Maybe help brainstorm his own idea he can run with, if only to be supportive?

</comment></comment></comment><comment><USER5> It seems just from your tone in the post and your comment below that you already think he's not dependable and not someone you want to work with.

If you think he brings VITAL skills to the table that your venture won't get launched without, I would consider using reverse vesting to make sure he gets out what he puts in.

For an explanation of reverse vesting: <http://www.venturechoice.com/glossary/reverse-vesting.htm>

</comment><comment><USER6> I think you should take this project on your own. You are 15 and have a lot to learn. Even if this idea fails you will learn from it's execution more than if your brother takes over. Also, you are in my eyes more passionate about it compared to someone who gets a bit of fire in his belly due to watching Brave Heart, oh i mean socialnetwork. Learn you some python!

<comment><AUTHOR> I don't want this to be just something I learn from. I want this to be something useful to many different people and allow people to both learn and enjoy their own hobbies better. I might explain later what the idea is if it's relevant to what someone comments.

<comment><USER7> Good, do it. Forget your brother and get something working that people can use. I can guarantee you, however, that by doing so, you will learn something. Don't be averse to that.

<comment><AUTHOR> I'm fully expecting this to be a learning process, only I don't want that to be the goal. I'm still deciding whether or not to tell him no, I sort of like the idea of working with him, mostly because he knows a whole lot more than I do for development but I also feel like I'll do a lot better job than he would, and I don't like the idea of founding a company based upon cronyism. Maybe I'll need him in the future but right now I don't think I do

</comment></comment></comment></comment><comment><USER8> This sounds like a disaster waiting to happen.

No way I would let someone who wasn't interested in this sort of thing until he saw a movie take over as anything beyond coffee-maker and maybe QA monkey at first.

<comment><AUTHOR> His exact words were something along the lines of "The Social Network made me realize I don't just want to be an employee of a big company"

I might have over-exaggerated or I might not have, but I interpreted that as "I want to work with you because I saw the Social Network."

<comment><USER8> Back to the Future made realize I want to travel through time, and eventually ride a levitating skateboard.

However, reality never quite mirrors the movies.

It's great that your brother, after watching a movie that encapsulated about .000000001% of his total lifetime, realized he might want to pursue a different path in life. But, IMO, the best approach to this is not to think he is suddenly capable of taking over the technology operation of ANY startup. Maybe what wasn't clear in the movie is that most of the people involved in the early iteration of facebook had been performing their roles for some prior amount of time. Zuckerberg had been hacking for a while, the finance guy had been involved in finance for some time (he was the president of the investment club or something like that). You don't just watch a film and say "I'm CTO, bitch"

<comment><AUTHOR> Yeah, this is true.

</comment></comment></comment></comment><comment><USER9> i don't see any problems with "I don't know any other languages than .NET/Mono/Silverlight" if it gets the job done.

Execution matters more than what programming language it is. Don't switch programming languages to suit somebody else.

That doesn't actually answer your question, but it is something you should think about.

<comment><AUTHOR> I completely agree but I haven't done any real underlying code yet. I've completely designed all of the UI in Silverlight, and there are somethings I don't like about that, i.e all users have to have Silverlight installed, and even with a roughly 50% install base that still leaves the other 50% to install it, which some people won't want to do and overall just reduces the maximum number of users. But I didn't want to go ahead and jump on the bandwagon to learn PHP or ASP.NET because I think Silverlight is better than all of those. It has almost everything this needs out of the box and I can develop for it for free with DreamSpark. My real main issue with my brother working with me on this is that we completely disagree on what to use to code it. I do agree that a normal website would be nice but to get the same level of power and clean user-interface would be a huge amount of work and time.

</comment></comment><comment><USER10> I'd be weary of any new college grad that lists Java and C and C++ and Python on his resume, all while having no side projects to show work in such languages.

If anything, he may have taken courses where those languages were used to complete assignments, but that leaves you far from a software developer.</comment>


Leadership Bits – short podcasts for tech execs - <AUTHOR> https://leadershipbits.transistor.fm/ <comment><USER2> Somehow it rubs me the wrong when people philosophize about "leadership". I think we have way too many leaders or people who want to be leaders and give a lot of respect to these people but neglect the people who are doing the actual work.

<comment><USER3> Leadership is actual work. I don't think anything is harder than being in a leadership position - it's usually lonely, isolating, exhausting, precarious, and with little support.

<comment><USER4> So what you're saying is if work is already lonely, isolating, exhausting, precarious, with little support, then I might as well go into leadership?

<comment><USER3> I'm saying you may find it even more so in a leadership position.

</comment></comment></comment></comment><comment><USER5> Modern leadership practices have become a truly qualitative phenomenon with a lot of feel good conversations. I wish leadership evangelists can support effectiveness of their leadership philosophies using some numbers. Like demonstration of how their version of leadership achieved results x, y, and z. And please let's not even talk about increasing engagement scores.

<comment><USER3> How can you possibly create a controlled enough experiment to give quantitive results? You'd need two different leaders leading the same people and companies to be able to compare.

<comment><USER5> I may not have an absolute answer but I think it's not impossible to measure the leadership styles. There is a lot of survivorship bias in leadership stories and acknowledging that is a very first step to measure it. To me a good leadership style inspires and help others to become a leader particularly those who at first glance don't seem like a leadership material. We can simply count the number of people one personally guided to either become a leader or grow as leader. We can also measure the impact they created in their own functional area as well as in whole business unit.

</comment></comment></comment><comment><USER6> For a unique view on leadership, i recommend the Jocko Podcast[0]. Approximately one third of his podcasts are directly about leadership from a military command and control perspective, and he does great interviews with his guests.

[0] www.jockopodcast.com</comment>


Xbox controllers used in the military – life mimicking art? - <AUTHOR> http://www.90percentofeverything.com/2010/01/21/xbox-controllers-used-in-the-millitary-life-mimicking-art/

<comment><USER2> Well, at first I thought 'What the ...'

Then I thought 'Well, it _is_ pretty cool'.

And then I realized this makes a ton of sense. Those controllers are very mature and thus, precise and fault-tolerant (because a game needs precise controls, as does a robot). And you get a lot of other benefits too, those game industry developers worked on making them ergonomic, they are cheap, ...

wow. ingenious.

</comment><comment><USER3> We used them to control robots too. The reason why is 1> they're nice 2> they're hardy, 3> their comm protocol is USB</comment>


Quick tip - save your MacBook's hard drive - <AUTHOR> http://www.davidalison.com/2008/10/quick-tip-save-your-macbook-hard-drive.html <comment><USER2> I installed the smart sleep preference pane. Now, both my MBP and I will sleep better :-)

</comment><comment><USER3> I've been doing this for a couple of years now. with 4GB of ram sometimes it will take a minute to dump everything.. so i was very eager to get rid of that delay

</comment><comment><USER4> Is it that hard to wait 10 seconds before moving? Take the time to tie your shoe or something before you run off.

<comment><USER5> Yes. Not knowing exactly when it will be finished, trying to see if the light is just "on" or pulsating. Getting off the train while it's still at your station or getting on a plane etc.

</comment></comment><comment><USER6> If everyone regularly backed up their data, this would be less of an issue.</comment>


BERG Little Printer available to pre-order - <AUTHOR> http://uk-shop.bergcloud.com/

<comment><USER2> Erm. $300 bucks for a thermal printer, seriously?

Those can be had for $50 on Amazon.

[http://www.amazon.com/High-speed-Receipt-Thermal-Printer- Bla...](http://www.amazon.com/High-speed-Receipt-Thermal-Printer- Black/dp/B005HH2YVY/)

<comment><USER3> Also <https://www.adafruit.com/products/597> if you want to have a more generic case to build around.

<comment><USER2> And if you want something that "just works" then you can't go wrong with:

[http://www.amazon.com/Brother-QL-570-Professional-Label- Prin...](http://www.amazon.com/Brother-QL-570-Professional-Label- Printer/dp/B000ZHEVZ8)

$90 bucks (3x cheaper than the BERG), automatically cuts the labels, very fast, linux-support...

<comment><USER4> Does it really support Linux, or just Linux/ia32? The last Brother printer I had was binary only for Intel (when I dug into the drivers), which you might not think important, until you try to put it on your NAS or other server made of non-Intel (ARM, PPC, etc, etc).

</comment></comment></comment></comment><comment><USER5> Shame, this looks very fun, but for fun purchases, my "I'll buy that right now!" price limit is usually around the 50 GBP mark. 200 GBP can buy me too much stuff that is less "just for fun" and more genuinely useful, not to mention saving towards still more expensive items.

That said, I don't doubt that there are some people that will a) find this genuinely useful and b) can therefore justify the price.

Best of luck!

</comment><comment><USER6> It fails to reveal what problem it solves; it even fails to reveal what use it could be. The marketing here is beyond terrible, and make it looks like a useless, expensive gadget.

(Hint: As many, I have way too many gadgets and stuff around; I need another gadget to be seriously useful to even consider the possibility of acquiring it).

<comment><USER7> Sadly, I couldn't find a link on their site to a video outlining a few of its uses, but one does exist!

<http://vimeo.com/32796535>

</comment></comment><comment><USER8> Hold on... so we're going back to printing things out again, things that are easily accessible on our phones or computers? Really? I don't quite understand why anyone would want this apart from the gimmick factor.

<comment><USER5> _I don't quite understand why anyone would want this apart from the gimmick factor_

I can buy tickets for the local tram/busses/trains on my phone. It's a great service that works close to flawlessly. If I could print off tickets at home though, and thus not rely on a network connection (to buy the tickets) and battery life, I'd do so in a heartbeat.

I think there are plenty of uses for small things like this. Personally, it's too expensive for me to use for small fun things like this, but I imagine other people will have more useful ideas that'll make it worth the money.

<comment><USER9> But that kind of usage, which sounds pretty much exactly how you'd use a desktop printer, is not at all what they seem to be selling. Their idea is that you should use their cloudy goodness to define a bunch of subscriptions to pre-curated "publications", which is what get printed on a schedule. So you could probably get your daily Wired synopsis in the morning, on paper. Or something.

<comment><USER5> _But that kind of usage, which sounds pretty much exactly how you'd use a desktop printer, is not at all what they seem to be selling. Their idea is that you should use their cloudy goodness to define a bunch of subscriptions to pre-curated "publications"_

Yeah, it was more the small form factor that was working for me, rather than the publications aspect. Basically, I guess that I'm 100% not their target market :)

</comment></comment></comment></comment><comment><USER10> If you're interested in getting involved in tiny printers, but £200 is more than you can afford, then you can always make your own: <http://gofreerange.com/hello-printer>

<comment><USER11> This page highlights a bunch of cool use cases for a gadget like this, quick sudoku puzzles, weather, maps, a few twitter post etc. It would be nice to have a daily sheet containing these printed out every morning for the bus, especially if you don't own a smartphone.

</comment></comment><comment><USER12> With this announcement, might be a good time to review my design analysis of the BERG Little Printer. I compared it to a related, unreleased "alternative printer" project I designed several years ago:

<http://vitor.io/little-printer-design-analysis>

</comment><comment><USER13> Why does this need its own wifi bridge? This is supposed to be a cool gadget, yet it can't even use standard wifi?

</comment><comment><USER14> Its far too expensive for what it does. in the UK its £200 + shipping, while you can buy a brand new 7" tablet (the Nexus 7) for £159 + shipping.

And i daresay you'll get much more use out of a tablet than a small printer. This ones DOA.

unless the price drops to around £19.99 it will never see any traction. (Also no mention is made of how much the replacement paper rolls will cost; since its so dependent on consumables that's a glaring omission on their part)

</comment><comment> one-man-bucket The €210 price tag is a bit too steep for me. I would have bought one for €60.

<comment><USER15> Don't laugh, I read the shipping fees as the total price. I thought it was adequate.

</comment></comment><comment><USER16> I came here to complain about the price. Looks like I don't have to. I still think it is a nifty idea. My GF wants one for printing off recipes but now that we know the price, that isn't going to happen.

</comment><comment><USER17> Just ordered one. Completely useless, expensive but ridiculously cool. Who's going to be the first to write a Hacker News publisher for it?

</comment><comment><USER18> Hm, it is nonsense, but I can imagine all sorts of random fun happening. One idea: what if upon press of a button, I could get a printout of the next task on my TODO list? (I know this is probably not what the BERG cloud does, just thinking about little printers in general).

<comment><USER19> It might be possible: it doesn't cost anything to publish to the Little Printer, anyway. Publishing app specification dox here [http://www.bergcloud.com/download/Little_Printer_Publication...](http://www.bergcloud.com/download/Little_Printer_Publications.pdf)

</comment></comment><comment><USER20> I like the aesthetics of the hardware, but don't like the environmental impact this will make.

In my personal opinion design should strive to solve problems or answer hard to answer questions like 'how can I print without the environmental impact printing has had for quite some time' instead of creating aesthetically pleasing toys.

For this same reason I'm in dubio about 3D printing & fablabs in general. Unless we find a way to re-use materials we're just creating more junk and roadside litter.

Maybe BERG should rethink Little Printer and let it output eatable paper so we can use the freshly printed news as part of our breakfast ;)

</comment><comment><USER21> BERG Little Printer with UK postage and packing: £205.50

16Gb iPhone 4S on Vodafone's cheapest contract (£26): £219.

Can someone explain why anyone would buy this thing?

<comment><USER22> Because they're completely different things.

<comment><USER21> Sure. But the use case of the Little Printer is to get a little daily digest of interesting and useful things you can take with you. That already exists in the form of smartphones.

<comment><USER22> There's many reasons why I like Little Printer, but one of those is that it upsets so many people who don't understand that the most functional way of doing things is not necessarily the most enjoyable.

People that don't understand why paper has a role in people's lives, why we reach for pens rather than tablet computers, and why while we love the internet, not everyone wants it to use it while stabbing at a glass screen all the time.

It's OK to not want one, but your anger at the product should be redirected towards making the tools you prefer, rather than deriding people for theirs.

<comment><USER21> Anger? Upset? I'm neither. I'm amused that the Hacker News crowd are so disconnected from reality as to spend £200 on something like this. A friend of mine on Twitter yesterday pointed out that £200 is enough to clothe her two kids for a year.

I'll sit back, save my £200, giggle slightly that you call a novelty printer a "tool" (for what, exactly?) and sigh that making such a pointless device gets you the adulation of the crack-addled UX design community who seem more interested in creating "delightful" user experiences than anything that actually improves the world in a meaningful or tangible way.

<comment><USER22> Sorry, you just seem very upset about it all.

I don't recognise "crack-addled UX design community" you think this belongs to. Everyone I know working on Little Printer is intelligent, thoughtful and very grounded in reality. They've spent a long time working on a product they want to make, solving difficult problems, from logistics and manufacturing through to RF and power electronics.

It's expensive, niche and unashamedly beautiful. That's OK. Not everyone has to be curing cancer 16 hours a day. I'm glad that we live in a world where people can make silly, enjoyable things too.

It's up to them to produce the product they want to make, and it's up the market to decide whether it's viable. Everyone makes a different value judgment, and that's fine.

</comment></comment></comment></comment></comment></comment><comment><USER19> All of you talking about this as a printer appear to have missed the point very slightly. This isn't a general purpose printer, its more like a personalized newspaper producer.

Edit: <https://www.youtube.com/watch?v=N6nVVdwa3bs>

<comment><USER23> > All of you talking about this as a printer appear to have missed the point > very slightly. This isn't a general purpose printer, its more like a > personalized newspaper producer.

I think people are GETTING the point: "that stuff you prefer to view on a screen? Now you can pay a lot of money to get it in a less useful form-factor: paper!"

<comment><USER24> Paper is nice, it's disposable, shareable, etc :) .

However, the sticking point is the "lot of money" part, as many have pointed out, since tablets became mainstream it will have to compete with them.

</comment></comment></comment><comment><USER25> Their price point seems a bit crazy, my brother just started doing a project in a similar vein. [http://www.kickstarter.com/projects/1953425088/mprinter- an-a...](http://www.kickstarter.com/projects/1953425088/mprinter-an-analog- printer-for-a-digital-world)

<comment><USER26> Looks cool. Is your brothers project based on this: <http://gofreerange.com/hello-printer> ?

</comment></comment><comment><USER27> It would be nice if one could place this in one's toilet and if the paper it prints on was toilet paper

</comment><comment><USER28> You know, my mom still prints 80% of her emails. Maybe she needs this.

<comment><USER29> seriously? make her stop.

</comment></comment><comment><USER30> I don't understand what this printer is trying to solve, or prove, or to showcase. I mean the webshop is nice, perhaps it is a showcase for their webshop?

Give me a clue??

</comment><comment><USER31> We're back to "ticker tape." (Except thermal printers have little Steampunk aesthetic value.)

</comment><comment><USER32> Whimsy goes a long way. People own plenty of things with dubious utility.</comment>


DD9 Kaypro Edition - <AUTHOR> http://www.chrisfenton.com/dd9-kaypro-edition/ <comment><USER2> That has an absolutely lovely picture in it. Congratulations on being able to type quietly :) !</comment>


Pay someone - <AUTHOR> http://sourceware.org/bugzilla/show_bug.cgi?id=4980 <comment><USER2> I guess what I don't really get is why Ulrich couldn't just post a simplified explanation for the code he checked in. As one commenter put it, to an outside observer Ulrich comes across as an arse.

Even if the technical explanation can't really be simplified effectively, then conveying the impetus for the change would probably have diffused the thread. He wasted more time ordering people to stop opening the bug than he would have spent explaining himself.

</comment><comment><USER3> I know nothing at all about the "bug" being discussed, but it seems to me that the attitude displayed by the initial two commenters is poor form. I'm not sure what the guy from RedHat has against the guy from SuSE, but it seems like a private phone call could have cleared it all up.

When you work for a company that maintains open source, makes money from open source, and has public discussions about issues with the code, I think you're held to a slightly higher standard. You ought not act like that when your bug tracker is public.

</comment><comment><USER4> I remember emailing Ullrich Drepper once when I was young and foolish. He hasn't changed.

</comment><comment><USER5> Unrelated to posted item, but why does Opera tell me:

"The page you are trying to open has been reported as fraudulent. It will likely attempt to trick you into sharing personal or financial information. Opera Software strongly discourages visiting this page."

when I try to go to that site?</comment>