Linux is the best shot at a granny proof OS in 2013 - <AUTHOR> http://readmystuff.wordpress.com/2013/09/16/linux-is-the-best-shot-at-a-granny-proof-os-in-2013/ <comment><USER2> Yes. I have multiple "granny users" using Linux (Ubuntu+derivatives of classic Gnome), exactly the way author describes: Here's e-mail, here's web, here's (video)chat, that's it.

No user-hostile distractions of the type "the computer has decided that it WILL reboot NOW", no useless "everything is all right, update has been installed" popups, no "oh look, a new flashdisk - guess what, the computer has decided that it needs yet another product reactivation," no "new printer? lol no, insert driver glork splurk mumbo jumbo" which I've come to know and loathe in Windows.

Updates are completely under the hood, devices simply work when plugged in (which shocks me to no end, after previous experiences with Linux and W8 driver issues), no crapware, no spyware.

<comment><USER3> Until you get that Ubuntu update that breaks the wireless driver.

For example, [https://bugs.launchpad.net/ubuntu/+source/network- manager/+b...](https://bugs.launchpad.net/ubuntu/+source/network- manager/+bug/995165)

<comment><USER2> I didn't quite say it was _perfect_, shit happens - and I've had my share of systems hosed by buggy updates everywhere: be it Windows, Linux, Mac or BSD. I still hold that in 2013, a modern Linux distro has _the fewest_ of such problems.

Or, to put it differently, of my simplified boxes for basic users, Linux generates the fewest trouble tickets.

<comment><USER4> I disagree. Ubuntu hosed our central devops MySQL completely on a 10.04 LTS update...

As with everything in IT, YMMV.

<comment><USER2> To reiterate: I'm _not_ saying that Linux is the silver bullet, or problem- free; just that switching _a specific set of users_ to Linux has, so far, ensured the least problematic operation for them.

How does your anecdote fit into that, apart from "it both says Linux, so a single user desktop and a MySQL server is totally the same situation"?

<comment><USER4> Well I'll bite on the whole anecdote thing.

My anecdote simply states that nothing is perfect and things do go wrong.

A more pertinent question is: is that less problematic as far as you are concerned or as far as the users are concerned? Also are you fully sure that you are qualified to judge this as a success based on the metrics you set out? Perhaps things take them ten times longer but they are ignorant to that fact?

<comment><USER2> Ten times longer in the same Firefox, Skype, Libreoffice, Thunderbird combo that they already had before? Not likely. (No, I'm not an UX expert, nor do I play one on TV; but I have seen the users "in action" enough to make an educated guess)

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> I realise what is meant, but not only is the term "granny" both sexist and ageist, it is also unnecessary. There is no useful distinction between a "granny" and a "user" in this person's hierarchy. MOST people view computers as tools to get things done and aren't interested in "exploring beyond that" \-- or are we going to distinguish between "car drivers" and "granny car drivers" as well, when talking about simplifying the interface?

<comment><USER6> More likely than being sexist or ageist, the author probably had his granny in mind when he was trying to think of the label. I agree that it's not a very good one though; it's too specific.

I don't really agree on your wider point, though. Car manufacturers do absolutely distinguish between "car drivers" and "granny car drivers", and also between "boy racers", "mums on the school run", and so on.

If you're going to manufacture a new car, you need to know who you want to sell it to. The same should be true of computer platforms.

</comment></comment><comment><USER7> ChromeOS is a better choice for today's grannies on today's hardware.

Linux can be made that granny-proof. And that's what ChromeOS is. Hell, it's so granny-proof that it doesn't ship with gcc, or even header files!

<comment><USER8> Chromebooks don't support Skype.

<comment><USER7> Google Hangouts provides a lot of Skypeishness, for what that's worth.

</comment></comment></comment><comment><USER9> The biggest problem isn't ease of use as such, it's consistency.

If you set granny up with Windows and she has a problem, you know she can probably find another grandson or nephew who at least knows how to google for the solution, failing that it's probably easy to hire a cheap tech support person to go to her house and fix it for her.

Once you set her up with a Linux distro , you're probably on the hook for that thing for it's entire lifetime. Granted it's probably easier to find Linux nerds now than it used to be but they're more likely to say "oh, this is Ubuntu.. I only use Arch".

<comment><USER10> That's not a problem because good boys and girls come visit their grandparents more often than their linux computer need fixing.

<comment><USER9> I'd be worried about the co-occurrence of me arranging to go out and get drunk for the evening, granny wanting to watch an important episode of coronation street on BBC iplayer and adobe releasing another broken flash update. "It was very strange! They painted all the actors blue, I didn't like it!"

<comment><USER10> You are in the IT/CS/computer field. Murphy's law is part of the deal :)

</comment></comment></comment></comment><comment><USER11> What's stopping Grannies from adopting Linux is the fact that legislators still seem to believe that it's not an abuse of monopolistic power by Microsoft to force laptop manufacturers into forcing the consumer to pay for an OS he doesn't need.

The EU's commission whose job it is to ensure healthy competition has been sleeping on this since a few decades now. They should get some of that coffee. It's really beyond me how MS is still allowed to operate like this. Why have companies like Redhat, Canonical, etc. not filed a complaint with the EU yet?

<comment><USER12> "pay for an OS he doesn't need."

Pay for an os HE? doesn't need. I know the hn community isn't exactly sensitive to gender and age issues but come on. Why is the consumer he? Especially when we are speaking about this mythical "granny."

<comment><USER13> This is one of the countless known bugs in the English language. You're welcome to try to fix it (the core developers died centuries ago), but the large userbase is unlikely to accept fixes.

</comment></comment></comment><comment><USER14> This makes sense if you look at it through your own tech-centric lenses. It seems plausible that Linux is good for a normal user when you try to put yourself in their shoes but the problem is that you can't really do that without bringing along your own knowledge and experience without realizing it. Linux is not okay for the basic user described in this post but it can be great for a lot of non techies.

"Grannies" don't like to deviate from the norm. The library has windows, friends have windows, by this point in time a person has come into contact with computers outside the home lots and they're almost always windows with an occasional Mac. You put Ubuntu on Granny's machine and she'll be asking why this doesn't look like what she saw elsewhere. Even if the function and UI are eerily similar there's this weird mental block that stops people from seeing the similarities and focus only on the differences.

The distribution described in this post is basically a Chromebook. Honestly, if your "Granny" needs email, skype, and the web then get an iPad + keyboard or a Chromebook. Not a full Linux install that you rip stuff out of. In fact, people with these granny use cases are already flocking to tablets over desktops in droves. A copy of Ubuntu "Gutsy Granny" as described here is bending a desktop to work not like a desktop save for the mouse.

I'm annoyed with the 2 mainstream OSes like anyone else and I especially hate having to troubleshoot problems that shouldn't come up for these Grannies but as annoying as it is I think switching these people to Linux is partly us trying to enlighten others (which comes off really condescendingly) and partly trying to make our lives easier rather than the user's by putting the user in the equivalent of a bubble where they can't break anything and if they do it's very convenient for us to fix.

</comment><comment><USER15> No. I don't think Linux (Ubuntu et al) is or will become so in the next 5 years (FWIW I use Linux both at home and at work).

But a Chromebook is - and I'm speaking with years of experience observing my grandfather's use of a computer. Chromebooks are hard to screw up. You kill one? Replace it and get all the settings back. No viruses. No antiviruses (worse than viruses, usually). It just works. And the price is very low too.

</comment><comment><USER16> > _Linux is the best shot at a granny proof OS in 2013_

No, it's not. Been following the "dream" since 1998. Then it was "a matter of 1-2 years" to "be ready for the desktop", nay, to conquer it.

Since then, the same three responses always come up:

1) "Well, I already use it for MY desktop, so there". Doesn't matter, you are an outlier. We're talking people at large here.

2) "Well, I installed it for my Dad and he goes along just fine". Sorry, a non-user with a friend to install Linux for him (and perhaps admin it) not representative of casual users.

3) Normal users are like "grannies" and "moms" (slightly sexist description which they use to mean: they do very little stuff with their PCs, like browse the web and check their email). Well, not really.

Some users are like that -- mainly older people. But most users are not, and as they spend more time with their PCs they become even less so. They would at some point want to: edit video from their compact camera, play a (specific, popular) game, create a presentation and share it, etc etc. As soon as they try a lot of those things, they find out that Linux doesn't cut it 100%.

<comment><USER17> Step 2 definitely counts for something, because "grannies and moms" aren't exactly buying bare bones PCs and installing Windows on them from scratch either.

<comment><USER16> Well, that's the old wives tale, but I've seen people like my dad (wholesale merchant, never used a computer or cared about them until 55+) that has, in the 3 years of buying one, reinstalled his Windows 2-3 times.

It's not that difficult. Insert DVD, next-next, done. With a Mac, perhaps, it's even easier.

<comment><USER18> But did he install it on a barebone pc? Getting all the missing drivers etc? This sounds like this was a factory installed PC with all drivers on the DVD ready to go. That's not barebone exactly. Also the question is why he was doing that; I haven't reinstalled anything (not Linux, not Mac) for many years and I actually like screwing around with hardware and drivers?

<comment><USER4> It's actually pretty easy these days. I haven't seen a single machine since about 2008 that doesn't work straight away off a vanilla windows cd.

occasionally you get a missing graphics driver but windows update just pulls a WHQL driver.

As for recovery DVDs: these are the first point of call usually and are pretty good generally.

there are many paths and they are all navigable by an average user.

<comment><USER18> Yeah ok, I didn't know that. I have the same experience with Linux these days, but I'm not a good example. I know what hardware to buy and what distro's to use in what cases. The last Windows install I personally did was Windows 7 on a 2007 Acer and 2009 Toshiba and that was an incredibly horrible experience; almost nothing worked out of the box and finding drivers was hard ('no drivers found' was the message and on the vendor sites it said that it didn't have drivers for Win7 yet; the drivers for XP half worked and half did not). Needless to say this was not the DVD or partition I installed; I used a shiny new Win7 USB.

I think though that although some people will reinstall their system (why?), it should not be needed and that's where we are growing to with, on the low end, tablets (mostly linux: android)/chromeos (linux)/windows laptops and on the higher end macbooks. These machines get thrown out before a reinstall would be needed by the less computer savvy (and even by the computer savvy who earn too much :).

In the mac space people buy a new macbook / iPad when the new shiny upgrades are announced (october?) and on the other end of the spectrum people abuse the stuff OR it gets 'too slow' and replace it. In between is the high end Windows market, which, so far, seems to be split between business users (which are more and more going tablet), high end gaming and geeks. And those three all do (or their company does) in fact reinstall / upgrade (hard and soft) their systems. But that's very far from 'most users'.

</comment></comment></comment></comment></comment></comment><comment><USER19> OS X works perfectly for grannies of my kid :)

the good thing is, that it is absolutely stable and requires close to zero support from me (I do updates 2 times a year)

<comment><USER20> Don't know why you got downvoted. An old iMac has worked wonders for my parents.

</comment></comment><comment><USER21> No, the best [insert unfavorable stereotype here]-proof OS in 2013 is iOS. Compared to iOS, Linux compares unfavorably on almost every factor:

\- For truly casual, non-savvy users the iPad is the ideal hardware platform. It's small, it's unintimidating, it's inexpensive.

\- Touchscreens are great. They're the natural interface for a casual user. I have a grandmother who became somewhat notorious for breaking LCDs in my family. This was back in the early 2000s before touchscreens were remotely common, but that interface mode still managed to stick in her head so firmly that she never did develop an instinct for using the mouse.

\- For users this casual, a Linux setup depends critically on having a friend or family member who's able and willing to set up and administer their computer for them. Very few people have that.

\- By contrast, the biggest problem I've had to support with non-nerdy friends/family and their iPads is, "I can't get this Send to Evernote bookmarklet working in Safari." That's obviously coming from one of the less intimidated ones.

\- The onscreen keyboard is generally fine because people this uncomfortable with computers generally don't touch-type anyway. For those who do, a case with a built-in keyboard is an easy solution.

Now I'll grant there are some political objections to iOS out there, and for people to whom those political objections are important, Linux is less problematic. To them I say, get over yourself. This isn't a computer for you. This is a computer for people who neither know nor give a damn about the GNU Manifesto.

Or if you think they really do want something that folds, a Chromebook probably works too. Haven't had a chance to try one of those, honestly.

<comment><USER22> "This isn't a computer for you. This is a computer for people who neither know nor give a damn about the GNU Manifesto."

The point of the GNU manifesto is that nobody, not even people who are hopelessly unable to manage their own computer, should be forced to give up control of their computers. It is one thing to lack a working knowledge of computers, but quite another to receive a computer that deliberately traps you. Beyond that, the GNU manifesto is about _not_ dividing people into special social classes like "programmers" and "end users;" everyone should have the same rights over their computers, regardless of their ability to exercise those rights on their own.

Some of us are not going to recommend computers that are designed to be controlled by their manufacturers. I would rather deal with a million annoying demands for computer help from my family members than to see their technical ignorance taken advantage of by Apple or by anyone else.

Consider what you are saying in the context of free speech (not such a stretch, considering the censorship of political apps in the Apple app store). Would you say that free speech only matters for philosophers and political commentators? Would you say that it is OK to curtail certain speech for everyone else, because most people never say those things anyway? That is what you are saying about computers: that the freedom to hack belongs only to people who have the technical knowledge needed to do so.

<comment><USER21> Yes. And for all that, if you present it as an argument for why people need to be using a computer that's inscrutable to them, they'll dismiss you as a hopeless ideologue at best. At worst, they'll get offended by your nerd chauvinism.

"No you can't do as much with this system and are generally much more dependent on others if you use it, but the point is that you _could_ be if you did have the technical knowledge. Which you don't, but that's beside the point!" might be a well-intentioned position, but it's horrendously privileged. For someone to whom the abstract Freedom offered by free software is, by any practical measure, inaccessible, the concrete freedom offered by well-designed user-friendly products is vastly more valuable.

<comment><USER22> I do not think you can say that the freedoms offered by Free software are entirely inaccessible to even the most technically illiterate users. We usually talk about things like the freedom to copy or study or modify software, but the most basic freedom is the freedom to _use_ software (and by extension, your computer) however you wish. That is not something Apple's snappy interfaces deliver -- you are only free to use iOS for the things Apple approves, and subverting that control (i.e. jailbreaking) is no less intimidating than using a modern GNU/Linux distro.

My experience has been that deliberate restrictions on software use affect non-technical people as much as they affect me:

"What does 'activation failed' mean?"

"Why can't I copy this DVD?"

"I want to record this TV show and then watch it on my tablet, how do I copy it from my DVR?"

"My friend had that app, why can't I find it in the app store? How do I install it?"

Dismissing the freedoms offered by Free software as abstract and inaccessible ignores the reality of how people use their computers. Nobody is claiming that someone who never touched a computer in their life is going to be hacking the kernel, but it is not far-fetched to think that they might want to copy a movie or that they might be angry if their books mysteriously disappear one night. The snappy UI is little more than bait -- it is attractive to people who are frustrated by more complicated systems, but hidden behind it is a system that denies people the right to use their computers they way they want to use their computers. In other words, what I said in my comment: an attempt to take advantage of technical ignorance.

<comment><USER21> How can you say that the freedom to use the software however you wish exists for someone whose ability to use the software is contingent on them having an acquaintance to set it up and then lock them into a sandbox so that they don't break it?

Maybe in principle that freedom _could_ exist for the non-nerdy Linux user. But in practice it simply doesn't.

Example: Retail Linux netbooks were an incredibly short-lived experiment. Reason? Customers kept returning them because they were having so many _more_ of the kinds of issues you list than they did with even Windows computers.

<comment><USER22> "How can you say that the freedom to use the software however you wish exists for someone whose ability to use the software is contingent on them having an acquaintance to set it up and then lock them into a sandbox so that they don't break it?"

A sandbox that stops someone from breaking their computer is a lot different from a sandbox that stops someone from installing software that a distant corporation did not approve. It is not a sandbox that stops people from doing things that make sense for them and that they do understand, like copying a movie from a DVD to their tablet.

In other words, it is a stretch to even call it a "sandbox." It is not any different than what I do for _my own user account_ on _my own computer_.

"Maybe in principle that freedom could exist for the non-nerdy Linux user. But in practice it simply doesn't."

Again, my experience differs. I have found that non-technical people are somewhat intimidated by complicated UIs, but that they become much more frustrated by simple UIs that tell them they are not allowed to do what they are trying to do, especially when they are trying to do something that seems simple and obvious. When my mother inserted a DVD into her computer and said, "Why can't I just copy this the way I copy files from a thumb drive?" was she not complaining about her lack of freedom? Do you really think it would be better for her to have a snappier UI, but to lack that freedom?

I have also found that non-technical people are more constrained by the fact that they do not realize what their computer can do than by the UI, regardless of what OS they are using. Of course my mother did not turn her desktop into a DVR on her own -- the idea that it was possible to do so never even occurred to her. Now that she has that set up, it has become something she relies on. The UI may be ugly (even by "geek standards"), but do you really think she would be better off paying a monthly fee to use some locked-down DVR that does not even let her copy her recordings to her tablet, or that only allows her to record certain shows?

(Yes, I like to use my mom as an example. Yes, I know she might be an exceptional case; however, other non-technical users I have interacted with seem to react similarly to these things, so I suspect this is not so uncommon.)

I think you are not giving people enough credit. Example: the outrage when Amazon deleted books from Kindles. People were complaining about the violation of a freedom they simply took for granted, a freedom they never realized they had given up when they purchased a Kindle, a freedom that had nothing to do with the UI.

</comment></comment></comment></comment></comment></comment><comment><USER23> Yes, yes, this is all fine and dandy until your linux distro updates and something causes the wifi drivers to crash or simply not work anymore. I think the OP wanted to have his granny just use an iPad or tablet of some kind where it's literally impossible to screw something up.

<comment><USER22> That sort of thing is the reason I switched from Fedora to ScientificLinux (i.e. RHEL). That switch happened years ago and I have yet to see anything critical break (in fact, I cannot think of anything beyond very obscure, configuration-specific breakage that is beyond what you would see for end user setups).

Why give your grandparents a toy someone else owns and controls when you could give them the real thing?

</comment></comment><comment><USER24> I've seen the kind of user ranking proposed in this article many times (from clueless users on to power users on to developers and elite hackers). The assumption being that those up the ranking have an all-around better command of computers than those down.

But it seems to me that a developer need not be a power user. It doesn't seem far fetched that one might be competent in (say) python while ignoring most of the innards of a unix-like system (modulo the part that she actually uses in her programming). Being able to code doesn't automagically turn you into an expert in, say, systemd service files.

<comment><USER25> In my experience some devs are power users, but many business devs are writers of code, they don't know dick about anything outside of their purview, and frankly, they don't care.

</comment></comment><comment><USER26> If by Granny proof OS you mean a kiosk with 3 apps.

<comment><USER27> But most people don't need anything else! I'd even go as far as saying that ChromeOS is a better "granny OS" than your stock Ubuntu...

<comment><USER26> Look I may have been snide but I totally reject the entire premise that a "Granny proof" OS is a terminal locked down to three main apps. Heck the whole article goes through pains to say "Granny isn't stupid" but they only need a browser. I mean at this point why give them skype and email when they can use webmail and Skype via a browser? (requires Outlook.com so your mail is there to)

Granny proof to me is an OS where my granny can easily install their damn solitaire or scrabble games without too much hassle. They can get around to their downloaded images, create a gallery and maybe edit a Word Doc or excel spreadsheet. Its not some mythical strawman dummy user who really just needs an iPad. Right now an iPad is more powerful and usable device for a less tech savvy user then this stripped down - non-existant Linux distro.

</comment></comment></comment><comment><USER28> We're not too far from a time when every Granny grew up in a highly technical age where basic digital competency is as assured as knowing how to tie shoelaces. Hopefully then we can stop the over emphasis on providing systems for the least technically capable.

<comment><USER29> Systems can be intuitive and novice-friendly without limiting the capabilities of technical users.

Also don't count on basic digital competency anytime soon worldwide. Where I live, young and old alike stare blankly into computer screens with no clue what's happening. Two days ago I unsuccessfully tried to explain to a 25 year old woman what a website is.

There are so many emerging markets for computers that intuitive UIs will be crucial for a long time to come. I'm glad for that, since the ease of opening my web browser or music player has never once prevented me from using command line tools, editing system/configuration files, etc.</comment></comment>


The Analysis of Buybacks - <AUTHOR> http://margin-call.mozello.com <comment><AUTHOR> The 1, 2, 3 after "<comment><comment> What's the deal with buybacks?" seems to be implying that the whole thing is the same as dividends.</comment></comment></comment>


The Fire Aside, Amazon's Lower-Priced Kindles Also Shine - <AUTHOR> http://www.nytimes.com/2011/11/14/technology/personaltech/the-fire-aside-amazons-lower-priced-kindles-also-shine.html?hp <comment><USER2> _"the Fire is not nearly as versatile as a real tablet. It is designed almost exclusively for consuming stuff"_

This is a criticism that can be made of all tablets, including the iPad.</comment>


Quantum Information Processing Near Spinning Black Holes| Portal to the Universe - <AUTHOR> http://portaltotheuniverse.org/blogs/posts/view/513001/#.V_tX4mPtK6A.hackernews <comment><AUTHOR> Waiting for the quantum computer to decode the messages coming from the black holes!!</comment>


Can one get a patent for a consumer mobile application? - <AUTHOR> I always wondered if mobile applications can be patented? How do you make sure it is protected? <comment><USER2> > How do you make sure it is protected?

It is automatically protected by Copyright the moment you create it (although filing a registration is a good idea if you want to enforce those rights later).

> I always wondered if mobile applications can be patented?

Consult a lawyer to determine if you could obtain patent protection.

<comment><USER3> Normally parts of the application are patented

<comment><AUTHOR> What is the registration that you are talking abut? I do not have any clue.</comment></comment></comment>


I want to become a consultant that helps startups scale. Where do I start? - <AUTHOR>

You have a startup that is struggling to scale your business model. So you hire someone to work as a consultant and solve this problem. How do I become this someone?
What should I read or do?<p>(Btw, I'm 17) <comment><USER2> I am about to do that part-time. Here is how it happened to me. I worked on various idea full time for about 2 years now and I joined a new accelerator about 10 months ago, working on my last project <a href="[http://www.relinkdevice.com">](http://www.relinkdevice.com">) Relink </a>. I use to talk a lot with the other startups about their problems and give them as many advises possible based on my previous experiences or what I learned in books (Lean startup, rework, blogs, marketing books, etc.). Now, everyone come to talk with me about their problems and look for my point of view. People managing the accelerator have a background in finance, lacks sometimes marketing or entrepreneur skills and noticed I become quite central in the accelerator.

I think the key take-over is you need to be credible to do so. There is some people who advice startup having a background in business but I believe it's much easier if you have/had a startup yourself.

You can contact me on twitter (@Atresontani) if you want to discuss that further and see if I can help you.

</comment><comment><USER3> What is scaling to you? I will assume that scaling means keeping up with increasing load on servers.

The number of different scaling problems are about the same number that startups having problems with scaling. It's a different thing for every company.

You should probably specialise in a tech that many startups use and learn how to deal with high load on that service. Learning this takes experience, gain that experience by working/consulting/running you own startup using the tech you want to specialise in.

When you feel comfortable with one tech, learn another, repeat.

When you have enough tools in your belt you could apply to a senior position at a fast growing company.

</comment><comment><USER4> > How do I become this someone? What should I read or do?

Go direct. Start meeting with local founders. Simply ask, 'Give me your toughest problem, what have you not been able to accomplish?' Some one will recognize your raw talent, take a flyer, and give you a break. That's how you build experience and track record.

Recommend reading the many books of Alan Weiss on the art of consulting > [http://www.alanweiss.com/store/books/](http://www.alanweiss.com/store/books/)

</comment><comment><USER5> Silicon Valley has several documented cases of someone being the first growth person at successful startup A being hired to scale startup B (which becomes successful as well). Each time you add one success to your resume, you become more valuable for the next startup. That's important because you want to choose potential winners. A bad startup (in a bad market or with a bad product), no matter how good you are, will not grow.

</comment><comment><USER6> Experience in business dev, sales, marketing. Perhaps theoretical but you better have some proven successes behind you.

</comment><comment><USER7> Try do your own startup, prove the business model, scale it and gain millions in revenue.

I will hire you then, guaranteed.

</comment><comment><USER8> make a list of startup companies that are of interest to you and approach them directly. Tell them you like what they're doing and would like to help them grow. Any amt of reading wont help you add sustainable value as real world projects.</comment>


Fuck college education, start minding your own business instead - <AUTHOR> http://damirhorvat.com/articles/22/2009/1/Fuck-college-education,-start-minding-your-own-businness-instead

<comment><USER3> Wow. Just wow.

The purpose of college isn't vocational training. It never was. My college education is not, was not, and never will be "a piece of paper". That's just plain ignorance. The kind of ignorance that just might get cured by someone who cared enough to get a decent college education.

<comment><USER4> You don't go to college to expand your mind...you go to college to get a good job after you graduate.

Or at least you are supposed to. The problem is that in our society, the college degree has become a commodity. You are supposed to have one, even if you really don't need it.

Someone getting a CS degree, paying $80K is an investment. Someone getting a Communications degree, paying $80K is borderline retarded, why? because they'll wind up working at the Gap after they graduate making the same 25K/yr that they made before going to college, except they lose 4 years worth of promotions and raises.

Yes college is not vocational training...but if your degree won't help you get a better job...then you are just pissing a ton of money away. Someone working at the Gap should not be $80K in debt.

Actually, vocational training now a days is probably a better investment than a college degree. A plumber won't get outsourced, and will still make as much money as a programmer.

<comment><USER5> _You don't go to college to expand your mind_

Speak for yourself. I went to college to expand my mind, meet interesting people, and learn things I would never have learned by myself. I am very happy that I did so, even though I barely use any of the actual Physics that I learned, in my daily job.

I will add that I learned far more than just Physics at university. I learned that there were a lot of extremely smart people out there. I learned about my limitations (cramming only gets you so far). I learned about my abilities (few things seem that incredibly hard after a physics degree). I learned how to learn new things (there are many ways to learn). I learned how to behave in a wider variety of environments than I had been exposed to previously. I learned that even amongst very smart people, there were things I could do that no one else could. I learned that if you make the right connections, you can benefit immensely. I learned many more things, far too many to list here.

What went in was a naive, uncouth, slightly ill-mannered boy, what came out was confident, friendly, approachable go-getter.

Perhaps your university didn't expand your mind. If that is so, it is deplorable, but might be the fault of either the university, or yourself. But certainly you should not generalise your unfortunate case and assume that everyone had your poor experience of university.

<comment><USER4> Expanding of the mind is extra. Would you have gone to college, if there wasn't a big bucks career at the end of the tunnel to repay you for the investment for the $80-160K and 4 years of your life?

<comment><USER5> Absolutely. I didn't go to university for the big bucks career, I went because I wanted to learn more Physics.

</comment></comment></comment></comment></comment><comment><USER6> Ooh, this meme again! Now, everyone line up and form teams and repeat your arguments from last time!

<http://news.ycombinator.com/item?id=275258>

<http://news.ycombinator.com/item?id=115158>

I think this one does win a prize for being the least articulate version of the three. ;-)

</comment><comment><USER7> This seems like a classic troll blog--write an extremely inflammatory headline that vastly overgeneralizes the subject, knowing it will annoy a whole lot of people.

It's a great way to get your blog posted on tons of social media sites and jack up your ad revenue (or, in this case, get more people to see your portfolio).

Hacker News should be above falling for this sort of thing.

</comment><comment><USER8> As I just posted on your blog:

I'm sorry to be harsh, but you're completely off-base with this rant.

"College Education is a Waste of Time"

Just like anything else, it's how you utilize that education. I built relationships with VCs, businesspeople, entrepreneurs, media, and many people who have been helpful and will continue to be helpful later in life. I built a company while in college. I lived my life while in college. People can't help but hear me out because of my specific college affiliation and my accomplishments there.

Everything's a waste of time if you don't know how to use it.

"College education is just a piece of paper"

No, it's not. It's a series of relationships, friendships, and knowledge that people can and do use. It's a door opener. VCs already know a lot about my qualifications when I walk into the room. The only person that can devalue that "piece of paper" is you.

"What is there after college?"

Whatever you want to do. I took the entrepreneurial path, not the "salary" path you generalize with.

I'll end it there, but the point is, you have it completely wrong. Nothing's a waste of time if you build meaningful relationships, knowledge, and happiness during that time.

<comment><USER3> College is more than just a networking opportunity. College exposes you to the vast world of ideas that you didn't know existed. It's a well established fact that the more incompetent someone is, the more confident they are in their own competence. This can be directly applied to knowledge. The more ignorant someone is, the more confident they are in their expertise.

College is the place you go to that educates you enough to realize how little you know. How little you will ever know. A college education is what turns people from ignorant and arrogant into basically ignorant but humble and ready to learn some domain well enough to be truly considered an expert. It gives you a lifetime of ideas to explore in detail, when time permits. This includes both the ideas of your professional domain and its neighbors, but also the domains of the general public good (like economics).

This post ignores the broader issue. It pretends the purpose of college is friggin vocational job training.. as in.. you decide when you are 18 what job you want, and then you train for that job, get that job, and work at it the rest of your life...

</comment></comment><comment><USER9> Bad spelling and foul language. Is this a parody?

Reminds me of "two years ago I couldn't even spell engineer, now I are one."

<comment><USER10> Yes, I can't resist saying that maybe with a college education you could spell rudimentary words like "business".

</comment></comment><comment><USER11> Fuck business, go get some education and become a decent Homo Sapiens.

<comment><USER12> A non-exclusive cheaper alternative:

      * Travel.
      * Read a *lot* (borrow books, use libraries, read online.)
      * Write some.
      * Make something happen be it for money or just to help someone else.

</comment></comment><comment><USER13> Well... as far as my college is concerned, yeah it does eat up a big chunk (8am to 4:30 pm, on 3 days a week) of my 24 hrs, plus till 3 years of 4 year course I need to study chemistry and physics along with core subjects, and surprisingly environmental science too is pushed into CS here, 4 credits (highest) for env. science... and chemistry shares same 3 credits with other topics like OS and Algorithms. I wonder why my education system fails to see the importance of less load on students and giving us free time to experiment, self-learn and spend more time in understanding what is important for us.

Plus a semester in my college has 5 tests, so every month we are really busy... its really hard managing time like this !

Imagine a student whose parents can't provide funds due to some reasons, how can he ever self finance or add some independence/comfort to his life!

While my friends in foreign universities do find great part time opportunities and free time to work some side-projects, this kind of scenario is majorly lacking in India :( most of my classmates just concentrate on getting 9+ gpa,don't even care to look at whats going on in the world outside... since grading is competitive, this creates a pressure on one and all to be at a nice position compared to those who give 24x7 to mugging based syllabus and never ever dream to achieve any self earned practical experience which I believe to be the best form of learning.

The case is not the same in premier institutes in India such as IITs, NITs and BITS. Getting to those colleges is achievable only after beating a huge crowd of super high IQ people. This can't be possible for everyone, anyways my point is the private institutes are really messing up with our lives as in case of my college due to outdated ideas and thoughts of people who run it. Major issues for my college are discipline which translates to -

1\. no use of laptops in the hostel for first 2 years of college....

2\. Uniforms on 2 days a week.

3\. ban on jeans and tshirt

4\. no cellphones

5\. no girls and guys hanging out

6\. not getting treated like adults even when we are 20 years old...

7\. many more like hostlers standing till 3am as punishment for making some noise on the last day of 2008

Now that really makes me think, my college is stopping me from getting rich and advancing in my own views! I could've learnt so much more if I was in a college that is run by people who are more broadminded and understand how education and knowledge are different and respect what Einstein said in "On Education" and aim for a better advanced society for future rather than creating huge crowd of people with zero creativity, experience and almost ditto common skills.

The best some screwd up colleges can do for people like me is relax the timings and test, syllabus load and let me have some college/life/fun ratio.

BUT COLLEGE EDUCATION IS NO WASTE OF TIME EVEN IF THESE STUPID ADD-ONS ARE ATTACHED TO THE ONE WHICH I GET :)

</comment><comment><USER14> I'm totally opposed to that. You just can't burn steps like that. What do I learn in high school? Almost nothing. So, I should never go to high school and "start my own business" and make money. That's complete nonsense.

There are plenty of things you can learn in college. If you know nothing about nothing, you'll have to start your business AND pay someone else to do the job because you can do nothing. This is starting with a handicap.

And... college is fun! You don't have to be an adult as early in your life.

</comment><comment><USER15> Part of the issue is that many places use a bachelor's degree as a screen for employees. As a token that gets you past one turnstile in the job hunt, it is worth a ton!

It also takes a certain type of person to be an entrepreneur. Not everyone has that instinct or motivation.

I'm a big fan of ideas to change the way post-secondary education is done. Right now, it's expensive, time-consuming, and undertaken when you don't know what you want or need. However, right now HR people just love that BA and that BA puts you in a certain class (beyond work or money, but in terms of associates/friends). And people are willing to pay up for that. How do you get the HR industry to start valuing alternative modes of education and experience? Our universities have a reputation built over hundreds of years - if not for educating people, then for screening intelligence.

It's a wonderful essay, I guess I'm just cautious and would want more social change around the issue before I felt comfortable following this path.

</comment><comment><USER16> Life isn't about getting vocational training for money. At the least, an education (university or not) could teach you that there are ways to state your point beyond using "fuck" in the title of a blog post: if you're talking about "selling" yourself, you may start off by not being insulting.

Second, if you're _just_ talking about vocational training and job preparation, a college degree in some field and from some schools can show that you have the capacity for approaching a topic with mathematical rigour and know the fundamentals of Computer Science (as opposed to fashionable frameworks and APIs). There are many other ways to do that - but a college education also buys you a great deal of free time (something that hackers in college probably won't realize until they're done), exposure to smart people and new ideas; finally it's a chance to fulfill other intellectual curiosities (take courses in other sciences, history, philosophy, so forth).

Third, starting your business does not conflict with going to college. More often than often than not, I've seen people who have never attended a university (as opposed to attended and dropped out when they had something more compelling) simply take full time jobs right away, usually in systems administration or web front-end development.

Both of these are essential and great skills to have (especially in a start- up), but you can't build a product on that expertise _alone_ : you can build a web design or systems administration consulting shop, but consulting won't (usually) bring you an exit.

</comment><comment><USER17> I think the flaw in the argument is the author's generalization of anedoctal evidence as if everyone was the same. Medical schools is not pointless. Getting a degree because many employers require it (as opposed to being stuck in customer service roles) is not pointless.

There are many ways that people can make the most out of their degree, and many ways to waste it as well.

It's very easy to dismiss something as being useless, but ironically, entrepreneurship is about doing the exact opposite: finding and exploring value where others see it.

</comment><comment><USER18> As a undergraduate bonus, one might learn an additional verb/adjective/noun to use when expressing one's dissatisfaction.

</comment><comment><USER19> Really? The things I learnt at university were priceless - even though it was economics it just gets your brain trained. And it's a signally device - <USER2> have a good degree from a good uni; people flock to you.

<comment><USER20> Another thing: It's easier to get a good job/find good people at a good uni, because that's where the good people are. It's a self-perpetuating cycle.

In addition to that whole "education" thing they have going there.

</comment></comment><comment><USER13> College is a big lesson in time-management for me, these days i'm trying to figure out ways to maximize the time I spend on side projects and work besides managing good grades at college which eats 12 hrs a day.

Its gradually leading me to a routined life where I plan each day and loads of sticky notes find their way on my wall :)

hmm... what about learning to collaborate and organize events, we can't do that so easily, schools and colleges provide excellent opportunity for that! :)

</comment><comment><USER21> Well college _can_ expose you to good communication practices... For example: remembering to spellcheck or even to proofread -- the latter helping with the impression you make by adopting conventional presentations (like "business") rather than idiosyncratic ones (like "businness") -- with possible benefits for coding as well? ;)

</comment><comment><USER22> Is there a word for when you improperly generalize your personal experience to the whole human race?

My time at college was excellent for a number of reasons, and where I am today is a direct result of decisions I made while studying there.

</comment><comment><USER23> Fuck all education. Start your own business instead of going to preschool

</comment><comment><USER24> For a guy who is apparently so pro-business, it's instructive to see another post on his blog about how to pirate books (the post doesn't even involve an interesting technical aspect, it's just "google for a pdf"). Apparently he is of the opinion that people should pay him for the product of his business, but he doen't need to pay other business owners for their products.

Perhaps a little education might have given him the critical thinking skills to see the problem with this position.

</comment><comment><USER25> apparently he doesn't know how to REALLY learn in college yet (but it's fairly tricky nowadays you have to admit)

</comment><comment><USER26> the link doesn't work, redirects to kleko.si :((

</comment><comment><USER27> I agree. Don't waste time and money in college. Start your own business. But keep yourself learning all your life. Online, business and management skills. Offline, social skills, the power of word.

New times we're living, adapt and evolve.</comment>


Apache Weex – A framework for building cross-platform mobile UI - <AUTHOR> https://weex.incubator.apache.org <comment><USER2> Is this still the main way forward for cross platform Vue apps? I really like Vue but I worry about the long term future without something as adopted as React Native.

<comment><USER3> There's actually several options, there is a react-native bridge for VueJS, there is quasar, NativeScript (recently started supporting VueJS), but I don't think the VueJS community has settled on a single solution.

<comment><USER2> Good to know, thanks!</comment></comment></comment>


Tesla, in SEC filing, says U.S. auto sales fell by $2B - <AUTHOR> https://www.mercurynews.com/2019/10/29/tesla-in-sec-filing-says-u-s-auto-sales-fell-by-2-billion-but-is-it-a-big-deal/ <comment><USER2> Indeed this is what happens when you are production constrained and can sell higher ASP models internationally.

Current estimated delivery time for a Model 3 in the US is "5 - 9 weeks". Basically they reserve about 1/3rd of their production for US sales which is all the units in the last month of the quarter, in order to minimize the number of units in transit at the end of the quarter, because they do not recognize a sale until the car is delivered.

<comment><USER3> The US sales decline is a non story.

However, "production constrained" is not really accurate, as it implies they could sell more units for the same price if they could make them.

Tesla has bumped down the price many times, suggesting they're selling their whole inventory for the highest price they think they can get (which is still a great position to be in if that price is high enough).

The demand for the higher trims in the US has hit steady state, and it's less than they can make.

If they stuck with the launch prices and their revenue was 10% higher with no corresponding increase to COGS, they'd be laughing all the way to the bank. Every single quarter would be profitable and absurdly cash flow positive.

[https://insideevs.com/news/343373/teslas-confusing-price- cha...](https://insideevs.com/news/343373/teslas-confusing-price-changes- heres-a-chart-of-the-adjustments/)

<comment><USER4> You are assuming any of the Elon companies are driven only by profit. I would hazard a guess that real M3 goal is to make a car that costs $35k while being profitable. Lowering price serves not only as incentive to sell more cars, but also internal incentive to figure out a cheaper way to make them.

<comment><USER5> They _are_ driven mainly by profit, as they are public companies and therefore Elon has a responsibility to maximize shareholder wealth.

<comment><USER6> Maximizing shareholder wealth and short term profits are very different things. De bears could flood the market with diamonds and make a lot of money in the short term, but it would be a terrible idea in the long term.

<comment><USER5> Yes I know. My point is that for profit, publicly owned companies are ran for profit where their ultimate goal is to maximize shareholder wealth. The parent seemed to imply that it may not be the case for Elon Musk's companies.

</comment></comment></comment></comment></comment></comment><comment><USER7> Tesla is producing as many cars as they can. The production line for the Model 3 is running at full capacity for some months now. With Tesla expanding into more markets, the number of cars sold in the US have to go down. But with the new Gigafactory in Shanghai coming on line these days, the production numbers are going to climb rapidly.

</comment><comment><USER8> They prioritize different markets on a Q by Q basis.

<comment><USER9> Margins are highest in the US market. Model mix may differ, but they're shipping their lowest end models to Europe and China; those would be more profitable to sell in the US.

<comment><USER10> You ship where the tax incentives are still available to buyers.

</comment></comment></comment><comment><USER11> Seems like a non story. Tesla prioritizing global growth and sacrificing some local demand.

</comment><comment><USER12> meanwhile UAW strike cost GM $3B in 40 days. If you believe Tesla is on its way to be as big as GM then $2B is small table stakes, not big news.

[1]: [https://www.usatoday.com/story/money/cars/2019/10/29/gm- gene...](https://www.usatoday.com/story/money/cars/2019/10/29/gm-general- motors-profit-uaw-strike/2494365001/)

</comment><comment><USER13> > U.S. sales, which account for the biggest share of the company's total > revenue, fell to $3.13 billion from $5.13 billion a year earlier. Sales in > China rose 64% to $669 million and its other segment, which covers the rest > of the globe, rose by more than a billion dollars to $1.83 billion, a > regulatory filing showed.

[https://www.usnews.com/news/top- news/articles/2019-10-29/tes...](https://www.usnews.com/news/top- news/articles/2019-10-29/tesla-filing-shows-us-third-quarter-sales-dropped-39)

<comment><USER14> Jeez why the slow down in the US? Maybe public perception? But at the same time I feel like I've been seeing more and more of them around

<comment><USER15> Tesla's are essentially a luxury car. There's a limited market for luxury vehicles with several well established competitors. I think most people interested in buying a Tesla has already bought one and they're running out of potential buyers.

</comment></comment></comment><comment><USER16> TSLA Quarterly Report [https://sec.report/Document/0001564590-19-038256/](https://sec.report/Document/0001564590-19-038256/)

</comment><comment><USER17> Holy moly. Sales fell by more than a third: "Tesla's auto sales during the third quarter quarter took a hit, falling by more than $2 billion, or 36% from a year ago, to $3.13 billion."

<comment><USER7> Tesla has sold more cars than ever before last quarter. They are just sold in more countries and Tesla is still expanding. Of course they can't sell a car they send to the UK in the US.

<comment><USER18> The question is: if a car sale in the US makes $X margin, but a car sale in the UK makes $Y margin, and X>Y, why are they selling the car in the UK in the first place?

Not only are they making less money on the sale, but they face higher costs even just getting the car to the UK, meaning that the effective margin on the international is even lower.

<comment><USER7> Why would you think the UK margin is lower than the US one? When Tesla expands in a new market, they start with the high margin top of the line models, so the margin should be rather higher. Also they have a large backlog in markets that have not been sold to, so they try to roughly equalize backlog across markets.</comment></comment></comment></comment>


The Mad Scientist of Bicycles - <AUTHOR> http://priceonomics.com/the-mad-scientist-of-bicycles/ <comment><USER2> > _At the time (mid-1990s), "parametric" design programs -- or those that > allow the user to input parameters, then scale and /or tweak them -- were > just emerging._

The thesis I'm currently writing is using EAs to "evolve" parts of bicycles (right now lacing patterns for the wheel), and I feel what this quote says is still a problem. Most CAD software now allows some paremeters, like certain lengths or radius can be changed. But if changing the value of such a parameter needs significant changes to something else, the end result is not very good. And trying to generate the model programmatically and read the results of the simulation from an outside program is often harder than it should have to be.

\--

I've seen these designs many times, cool to read more about them. Someone at my Uni built an upside-down-bike a while ago: [http://imgur.com/b8hEGYr](http://imgur.com/b8hEGYr)

</comment><comment><USER3> That tread-mill bicycle video may be the best fake commercial ever! - [https://www.youtube.com/watch?feature=player_embedded&v=reyt...](https://www.youtube.com/watch?feature=player_embedded&v=reyt3uiQqI8)

<comment><USER4> Interesting idea, but I'll stick to my chainsaw bike. [https://www.youtube.com/watch?v=DDWqJe1dCgY](https://www.youtube.com/watch?v=DDWqJe1dCgY)</comment></comment>


Why We Use Om, and Why We're Excited for Om Next - <AUTHOR> http://blog.circleci.com/why-we-use-om-and-why-were-excited-for-om-next/ <comment><USER2> I was the main author of Circle's frontend (the code is open-source: [https://github.com/circleci/frontend](https://github.com/circleci/frontend)).

I went on to build Precursor ([https://precursorapp.com](https://precursorapp.com)), which uses Datascript ([https://github.com/tonsky/datascript](https://github.com/tonsky/datascript)) to accomplish a lot of the things that Om Next promises. If you haven't tried Datascript, you should really take a look! It does require a bit of work to make datascript transactions trigger re-renders, but the benefits are huge. It's like the difference between using a database and manually managing files on disk for backend code.

My understanding is that Om Next will integrate nicely with Datascript, so you can keep using it once you upgrade.

If you're interested in learning more about building UIs with Datascript, I'm giving a talk on Monday at the datomic/datascript meetup: [http://www.meetup.com/sf-datomic-datascript/](http://www.meetup.com/sf- datomic-datascript/). I'll be going over Dato ([https://github.com/datodev/dato](https://github.com/datodev/dato)), a framework for building apps like Circle and Precursor.

<comment><USER3> There's a typo in your datascript url (s/k are switched). Here's the corrected one: [https://github.com/tonsky/datascript](https://github.com/tonsky/datascript)

<comment><USER2> Thanks, fixed!

</comment></comment></comment><comment><USER4> I've spent the last few weeks building a side project in Om Next, and this article is spot on. Really excited to see CircleCI's plans to migrate, as it'll be fun to read their code and learn how they use it.

Relay and Falcor are great, but when I look at their docs it's unclear how to integrate with whatever backend I want (especially Relay). Looking at Om Next, it was totally clear how to write my own backend. The tradeoff is that everything is a little more manual, but that control gives you a ton of flexibility.

In a small amount of code, I have a client that can query financial data in a bunch of different ways, and if the data isn't available it sends the query to the backend, which executes it against a SQLite database and returns it to the client. The components are all unaware of this: they are just running queries against data and everything just works.

Combine this is with first-class REPL and hot reloading support via Figwheel (both frontend and backend) and I'm blown away at how fast I'm going to develop this app.

</comment><comment><USER5> It seems like the setup I use is pretty similar to Om Next, but via independent libraries. I am looking forward to seeing the finished Om Next to compare.

ClojureScript is shaping up to be a fantastic way to program browser-based applications. This is what I use:

* Reagent -- another ClojureScript React wrapper

* Datascript -- An in-memory database with datalog query lang, this is used as the central store for all application data.

* Posh -- Datascript transaction watcher that updates Reagent components when their queries' return data changes

* core.async -- used for handling any kind of event dispatch and subscription. I do a unidirectional data flow type thing and it only took like 15 lines of ClojureScript.

This is one of the nicest front end development experiences I've had. Just the composition of these four libraries gives you a ton of flexibility and a good way to structure your application. You can use this setup to write a real-time syncing/fetching system with a backend database pretty easily.

</comment><comment><USER6> Our team used Om for our app (balboa.io) for the first 3 months of development. We switched to Reagent and have been using that for the last 8 months.

We ran into the same problems with Om as the CircleCI guys, specifically: 1) our front-end data model wasn't complex enough to merit a heavy-weight data access system that required a huge amount of extra digging to get right. We spent far too much time arguing about how to structure app-data, and it only got worse as the app got more complex. The cursor system in its first iteration was just too cumbersome (for exactly the reasons this author states). We kept trying to restructure the data model in order to get it to do what we needed. To be fair though, this is well known, and David Nolen has done a lot to alleviate this in recently releases (ironically by making it more Reagent-like). 2) our app is end-to-end encrypted and requires pulling down potentially hundreds of blobs, decrypting them, and inserting them into the dom. Under these conditions, Om would kick it and the UI would grind to a halt.

We switched to Reagent, and found that it was far faster and "got out of the way" of development. Add-watch is amazing too. Our app is quite large (front end SLOC is around ~50k lines), and Reagent has scaled beautifully and is a beast at large-scale insertions (on the order of 1000).

Om has some delightful features (undo ability is very powerful, routes coupled with Secretary is also great for Om), and David Nolen is a genius, but I think even the author has to acknowledge that the app-data/cursor construct is more of a pain than it's worth...

</comment><comment><USER7> I really like David Nolen as a conceptual visionary. His work with Om and core.logic is great and has inspired a lot of derivative work. But I would _never_ rely on his libraries in production. It seems like he always gets to 90% before moving on to the next new thing. 90% documentation, 90% cljs->js coverage, 90% tested, 90% issues addressed. I wouldn't touch Om unless I was willing to employ at least one person to work on Om full time.

<comment><USER4> I'd say 90% is pretty good for a single person. Open-source requires a community to work.

<comment><USER7> It _is_ pretty good, but the community never seems to form. Maybe it is just the lisp NIH culture, maybe it is the way the projects are managed, but either way it doesn't make for production-ready software. You have to be able to support it yourself if you want to use it.

<comment><USER8> Did you know that David wrote all of ClojureScript? [https://github.com/clojure/clojurescript/graphs/contributors](https://github.com/clojure/clojurescript/graphs/contributors)

<comment><USER9> Umm, taking nothing away from his incredible stewardship and everything, but that's not true. I believe Rich Hickey et al did the first implementation. Not to mention that contributors have added hundreds of commits.

</comment></comment></comment></comment></comment><comment><USER10> > Most data is not a tree

This is huge. I think it might even be the single largest problem to most projects' progress. I've seen a lot of projects that have tried to force non- tree data into tree-structures, and it never works out well. Projects grind to a halt after 6 months to a year because nobody can keep track of the dance steps they have to do with the tree-oriented code to manage their graph- oriented data.

Real, actual tree structures are just incredibly rare. Even some things that "obviously" seem like they should be modeled as a tree are far better off as a directed graph. Like databases of family trees - it's possible someone is literally married to their sister! Less cringe-worthy examples involving large families living near other large families with generational overlaps causing the children of one group marring the grand-children of the other, and vice versa.

You don't really _need_ React. If you can do the ostensibly hard work of figuring out the DOM edits yourself, your app will actually be faster than if you're using React, i.e. React has its own overhead. As long as the data relationship was right, I've never found it difficult to manage state thereafter. It's when the shoe doesn't fit that things become a problem.

The problem is, we have a systemic problem of treating front-end devs as not "real" developers, not capable of forging their own paths. It's not just from the outside-in, I see a lot of front-end devs lacking a lot of confidence in their own skills. As a culture, we yell at any JavaScript programmer going his or her own way, building their own thing. "Don't reinvent the wheel!" they are told. Screw that. I can think of at least 3 times off the top of my head that the wheel itself was significantly and usefully re-invented in the 20th century alone. The problem is not "reinventing wheels". The problem is this institutional fear of making ones own decisions, leading people to think they need to learn _everything_.

</comment><comment><USER8> > Application state as a single, immutable data structure.

react-cursor gives this pattern in javascript, immutability and all, but with regular old javascript objects. It also comes with all the same caveats as in this article. (I don't speak for the creator of Om, I speak for myself as the author of this library which was inspired by Om and Clojure)

[https://github.com/dustingetz/react- cursor/](https://github.com/dustingetz/react-cursor/)

The beautiy of the state-at-root pattern with cursors, is that each little component, each subtree of the view, can stand alone as its own little stateful app, and they naturally nest/compose recursively into larger apps. This fiddle is meant to demonstrate this: [https://jsfiddle.net/dustingetz/n9kfc17x/](https://jsfiddle.net/dustingetz/n9kfc17x/)

> The tree is really a graph.

Solving this impedance mismatch is the main UI research problem of 2015/2016\. Om Next, GraphQL, Falcor etc. It's still a research problem, IMO. The solution will also solve the object/relational impedance mismatch, i think, which is a highly related problem, maybe the same problem.

<comment><USER11> > Solving this impedance mismatch

The solution seems now to get rid of the REST paradigm(GraphQL ...).

While I have no opinion on what should be the right solution, I welcome the idea of questioning the usefulness and the significance of REST, especially in the era of fat web clients.

<comment><USER8> My opinion is that REST is exposing the O/R impedance mismatch to the client, and we are only feeling this now as our client apps get really complicated, and i think the O/R imnpedance mismatch is caused by pervasive mutability, and i think the problem can be solved by making the database immutable (e.g. CQRS/ES, Datomic), and i think that will make the problems with REST go away too. (This is not quite what GraphQL is trying to do, GraphQL is progress but doesn't get to the crux of it) This is all research of course, and completely my opinion. Om Next is meant to be paired with Datomic so while his solution is to throw away everything that is even a little bit RESTy, i think that might be throwing the baby out with the bathwater. time will tell.

<comment><USER12> "Om Next is meant to be paired with Datomic" \- although datomic makes some things easier, Om Next has no opinion on what backend you use.

</comment></comment></comment></comment><comment><USER13> This is a more coherent summary of Om than exists elsewhere, including the official Om site.

<comment><USER14> I wasn't surprised when I saw who wrote this. Peter's a great writer and educator. He has an excellent video series for explaining basic computer concepts.

</comment></comment><comment><USER9> What's not stated in the article, re: "Why we use Om", is that much of Om's adoption was because of its high-profile creator and all the status/momentum that brings along.

But I think it's approaching a consensus already within the CLJS community that, on API alone, reagent is the React interface you want.

It's extremely elegant and performant; probably the best frontend library I've ever used in close to a decade of web development.

</comment><comment><USER15> So I've been looking at Elm recently, what would the advantages/disadvantages for something like Elm over Om/Om Next?

<comment><USER4> Elm's HTML engine conceptually the same as React+Redux and Om Now. It's just a big single atom app state with ways to describe how to update it. It has all the same problems as Om Now (maybe not quite as bad because it doesn't have cursors, but it doesn't solve the data-as-a-graph problem).

<comment><USER15> Ok I see now. I think both methods have a place going into the future.

What I've understood from Relay/Falcore/etc. is those technologies are great for something like Facebook or Netflix, hence why they made the frameworks, but for many other cloud/web apps, it may not make sense. A single atom app state works really well. Is that along the lines of the right thinking? I'm using React+redux along with websockets and haven't had any problems with large state trees, but the whole state can be sent to and from the server very fast as it's not too big.

I'm sure Elm will have something comparable to Om Next/Relay/falcore as well then, to solve those use cases.

<comment><USER4> I don't think it's that's simple. It's not that it works better for hugely complex apps. It just works better for certain kinds of apps, even if they are small. The project I'm working on is small, but Om Next is far better suited to it (the complexity of using Redux+Redux/etc on it would be far greater).

The question is, are the majority of apps better suited for a tree-based state or a queryable graph? I'm not sure, but it's at least even.

I've heard Elm is working on something similar, so I wouldn't be surprised if that happens.

<comment><USER16> Is the same data displayed into multiple branches of the tree? :)

<comment><USER4> You mean the component tree? Sure, it can mixed in whatever way the component tree wants it.

</comment></comment></comment></comment></comment></comment><comment><USER17> Clojure and ClojureScript for president in 2016! No, but seriously, one of the most promising pair of practically useful languages in existence.

</comment><comment><USER18> I would love to see some code examples of this part "If we try to show a component that needs to know the current user's initiated builds, that triggers an API call that asks the server for the data. If we stop using that component, we stop making that request. Automatically."

I'm currently knee deep in a react/redux implementation, which I guess is quite similar.

<comment><USER4> There's a basic start to a remote syncing tutorial here: [https://github.com/omcljs/om/wiki/Remote-Synchronization- Tut...](https://github.com/omcljs/om/wiki/Remote-Synchronization-Tutorial)

Basically, you specify a query as a remote query and it calls a `send` function that you specify, and you manually pass the query to the server to execute, which will return results and automatically be merged into the app state (and of course, re-render components that depend on that query).

For the part where they stop making that request, they must do custom lifecycle code so that when the component unmounts, they are able to access current open requests (probably indexed by component manually) and cancel it. That part is not builtin to Om Next.

</comment></comment><comment><USER19> I am surprised their backend is written in closure. I would think it make hiring developers much harder (smaller group of people know it) and training people a lot harder. You can jump on to a project and learn enough go to fix bugs in a day or so (less than a week for sure). I am not sure the same could be said about closure.

<comment><USER20> It definitely did not make hiring harder. In fact, it was probably easier, because at the time, Clojure was more unique. The people interested in working in rare languages tend to be above average.

Also, I would avoid optimizing TTFBugFix the wrong way. You want the system to be easy to fix because it's well designed & documented, not because it's written in a language you already know.

<comment><USER21> What characteristics about these people makes them above average? I need some goals to set my sights on :)

<comment><USER20> Intellectual curiosity, and a desire to experiment with new languages to be more productive/write cleaner code.

</comment></comment></comment></comment><comment><USER22> >2 We could throw out the entire list and rebuild it in one go, but re- rendering large amounts of DOM is also slow.

Out of curiosity I tried swapping "

Artichokes

Broccoli

Cabbage

Dill

Eggplant

"

and the same without the broccoli and dill, back and forth a few thousand times using jquery.

The average time per change was 28 nanoseconds or 35000 changes per second (Chrome, MacBook Air). Trying swapping a list of 300 fruits for a list of 500 fruits was 1.4 milliseconds per change.

I wonder if using some convoluted framework to "solve—or at least mitigate" this might be premature optimisation? (As well as actually slower).

<comment><USER23> Author here. I actually glossed over some of the problems here, as the article was already getting quite long. In a trivial example like this, you're right. If you do this to the entire page, though, it gets stickier. An additional problem is that you're throwing away and rebuilding state that's associated with the elements, such as event handlers. (Also, letting React do the actual DOM manipulation makes it easier to implement transitions, where a Virtual DOM element goes away now, but the real DOM element sticks around for a bit while it animates off.)

To be fair, I haven't done actual benchmarks, and I'm basing this on the stated rationale for React. I'd be surprised if swapping out the DOM of most of the page wasn't considerably slower more difficult to work with than what React does, though.

</comment></comment><comment><USER24> Can anybody comment on how security is handled in Om? How do you ensure that certain parts of the database (which may depend on complicated rules) are not inadvertently exposed to the client?

<comment><USER25> In short that's up to the developer. It would be like asking how does Redux handle security? Well it doesn't, it just dispatches an action object to functions, the functions you wrote.

Om.next takes code you writes and makes it go.

</comment></comment><comment><USER26> > We could insert new list items into the existing DOM, but finding the right > place to insert them is error-prone, and each insert will cause the browser > to repaint the page, which is slow.

I don't think the last part is true. Browsers don't repaint (nor they reflow) the page until it's really needed. So if you have a loop that modifies the DOM multiple times, but does not read from the DOM, there performance hit described by the author should not occur.

</comment><comment><USER27> Essentially this is exactly what we have with Redux and pure JS. Gaearon has led the way here:

\- Redux as your single state tree/graph

\- Normalizr to denormalize data and store it in a graph, including pulling nested resources out as records

\- Reselect to query on your denormalized data

And the best thing is this is production ready, in JS, today.

</comment><comment><USER28> Nice article! I'm the author of [https://github.com/zubairq/AppShare](https://github.com/zubairq/AppShare) which using Om, and can say that Om Next is definitely the future of clojurescript apps

</comment><comment><USER24> > Om's creator, David Nolen, likes to show off how easy this makes it to > implement undo: just remember a of list old states, and you can reset! the > state atom to any of them at any time.

How does that work if multiple users are collaborating on the same state simultaneously?

<comment><USER2> > How does that work if multiple users are collaborating on the same state > simultaneously?

The state they're talking about here is local to the client--it's stored in memory on the browser. One one user can use it at a time.

</comment></comment><comment><USER29> The post mentions borrowing ideas from GraphQL and Falcor: if I used GraphQL or Falcor, is there some pain I'd hit that Om Next would avoid?

<comment><USER30> Yes, a few. Look for David's talk on Om Next he usually lists were he departed from GraphQL/Relay and Falcor. A big one is that both GraphQL and Falcor are string based, while Om Next uses data structures which are easier to programmatically manipulate and compose.

</comment></comment><comment><USER31> The new plan sounds a lot like Redux.

<comment><USER4> No, Redux is far more like Om Now. In fact, Om Now was one of the early influencers for the single atom app state idea. The only difference is that, instead of using cursors, Redux uses flux-style actions for mutations. You select data from the app state by digging into the app state manually, exactly like you would in Om Now.

It's a common misconception (I fell for this too) that simply having a single atom app state and colocating state accessors with the component is similar to this architecture. It's really not. The query syntax is an extremely important part here, with transparent server syncing, and support for arbitrary graph representations of the state.

<comment><USER31> Om's "parser" and query syntax seems to decouple state read/writes from components in the same way that action creators do, with similar benefits. Reading through Om.next didn't change that impression, is there any other resource I should look at?

<comment><USER4> Action creators do not read anything from the state. They are only for mutations. You read from the state by literally digging into the JS object.

Not sure what else to say, actions and queries are completely different things.

</comment></comment></comment></comment><comment><USER32> does anyone know how challenging it is to add Datomic subscriptions to Om Next?

<comment><USER33> This is pretty easy, because Om Next is low level and by design it can integrate into any back end. However, there is very little "hand holding" right now and it can be daunting to understand exactly how to do it.

</comment></comment><comment><USER34> For a lot of companies however a good first step would be to ensure that the pages work w/o Javascript.

When a basically crud website tells me my perfectly fine browser isn't supported I say: FAIL.</comment>


Bitcoinj: A Java implementation of a BitCoin client-only node - <AUTHOR> https://code.google.com/p/bitcoinj/ <comment><USER2> Duplicate from a few hours ago, still on the front page above this: <http://news.ycombinator.com/item?id=2297301> :)</comment>


STEM Needs a New Letter - <AUTHOR> http://www.theatlantic.com/education/archive/2014/01/stem-needs-a-new-letter/282973/

<comment><USER2> Belief in an opposition between sciences and arts is pure foolishness.

"In our ongoing studies of scientists and engineers we have found that significant arts and crafts experience is highly correlated with professional success in science and engineering as measured by outcomes such as major prizes and honors, patents, or the founding of new high tech companies."

[http://seadnetwork.wordpress.com/white-paper- abstracts/final...](http://seadnetwork.wordpress.com/white-paper- abstracts/final-white-papers/the-importance-of-early-and-persistent-arts-and- crafts-education-for-future-scientists-and-engineers/)

"Nobel laureates are at least as likely (and as much as a factor of 8 more likely) to be photographers than the average scientist; at least a factor of 2 (and as much as 18) more likely to be a practicing musician, composer, or conductor; at least a factor of 7 more likely to be a visual artist, sculptor, or printmaker; at least a factor of 7.5 more likely to be a craftsperson engaged in woodwork, mechanics, electronics, glassblowing, and so on; at least a factor of 12 more likely to write poetry, short stories, plays, essays, novels, or popular books; and at least a factor of 22 more likely to be an amateur actor, dancer, magician, or other performer. These differences are highly statistically significant [...]"

[http://emilkirkegaard.dk/en/wp-content/uploads/Arts- Foster-S...](http://emilkirkegaard.dk/en/wp-content/uploads/Arts-Foster- Scientific-Success-OCR.pdf)</comment>