Learn C programming and the rest will come - <AUTHOR> https://www.zeroequalsfalse.press/2017/11/29/c/ <comment><USER3> I agree that learning C gives you a great foundation to understanding a computer. I notice that a lot of people who have only learned languages like Java or JavaScript often have a fundamental lack of understanding of what's going on under the hood. Some assembly would be helpful too.

<comment><USER4> The best class I ever took was a computer architecture course where we built up an 8-bit minicomputer from individual gates onward in a logic simulator. It was based on the Tanenbaum _Structured Computer Organization_ and the Patt and Patel "Introduction to Computing Systems* books. By the end we were programming it in a limited dialect of assembly and also with a minimal version of C that compiled down to that assembly dialect. Very cool, and I've never been mystified by pointers since then.

<comment><USER5> I almost think a better post would be "Learn Computer Architecture and the rest will come". For that, I can't recommend [http://nand2tetris.org/](http://nand2tetris.org/) enough.

</comment></comment></comment><comment><USER6> I largely disagree with this article. C has too many pitfalls that a beginner can either be discouraged by a non-working program, or not understanding the subtle gotchas.

Avoiding undefined behavior in C is difficult, even for experts. Failing to understand UB leads to very inconsistent, often latent, hard-to-debug situations long after the bug has occurred. Other languages - <USER2> assembly language - don't have this extremely hostile concept of UB. C encourages bad habits like ignoring error codes from I/O functions. Also, doing concurrency correctly in C (or Java for that matter) is a grand effort, but is easier in languages like Go and Rust.

Managing language minutiae in C, like function prototypes and header files, is something not found in newer languages. Another problem is having a global namespace instead of a more structured, modularized one (C++, Java, Python, etc.). And finally, manual memory management means that a lot of extra code is written (contrary to the author's claims about conciseness), and it especially makes string processing hard.

Personally, I only use C to implement cryptographic primitives (ciphers and hash functions) and some numerical kernels. These are straightforward calculations that don't require memory management or tricky pointer arithmetic.

<comment><USER7> > C has too many pitfalls that a beginner can either be discouraged by a non- > working program, or not understanding the subtle gotchas.

Totally agree with you - personally C would have been a very difficult first language for me. Java and Ruby were tough enough at the outset when I started down the programming path. Now I work primarily in C and have been doing so for the last four years or so. Still get hung up on subtle gotchas, especially when interfacing with hardware!

</comment></comment><comment><USER8> Meh. Learn any language and "the rest will come" if you then learn other languages. Some of these points don't lead to C's being a better first language or pedagogical language — like, why should a learner care that C is so fast? I teach HS computer science and we do use C, in our Data Structures course, after students have used Racket, Python, and Go. Using those other languages lets us cover interesting and important topics like recursion, data abstraction, concurrency, and more, all while doing projects that hold kids' attention (sometimes using outside libraries for image or sound processing, e.g.). C is well-suited to the data structures course where students have to think carefully about memory and efficiency.

I can certainly imagine a different sequence, where students learn logic gates, hardware, assembly, then C, working their way up to higher levels of abstraction. Even in this case though, the goal isn't to jump in and start writing big programs in C right away.

<comment><USER3> I think people should understand pointers, heap vs. stack and other things. even in higher level languages a lot of performance problems can easily be explained if you understand how memory works. I often see people allocating and copying huge arrays back and forth and then thinking they need bigger machines.

<comment><USER9> I learned all those concepts in Pascal, BASIC and Z80, about 4 years before seeing C for the first time.

C isn't the only language with such features.

<comment><USER10> Anyone seen Pascal, BASIC, or Z80s in the wild recently?

<comment><USER9> Pascal:

[https://www.freepascal.org/](https://www.freepascal.org/)

[https://www.embarcadero.com/products/delphi](https://www.embarcadero.com/products/delphi)

[https://shop.mikroe.com/compilers?programming- language*=pasc...](https://shop.mikroe.com/compilers?programming- language*=pascal)

Basic:

[https://www.visualstudio.com/vs/universal-windows- platform/](https://www.visualstudio.com/vs/universal-windows-platform/)

[http://gambas.sourceforge.net/en/main.html](http://gambas.sourceforge.net/en/main.html)

[https://shop.mikroe.com/compilers?programming- language*=basi...](https://shop.mikroe.com/compilers?programming- language*=basic)

Z80:

Any Assembly will do, pick ARM, RISC-V, AVR, PIC, ....

</comment></comment></comment></comment></comment><comment><USER11> > With C code, there's no going into a program without fully knowing what it's > going to do at every step of the way...

This guy seems to be putting C on a pedestal. It's OK, for certain jobs. Like kernels, CLI utilities, C/C++ for games, etc. But even there Rust and Go and other tools are invading that space and doing well.

When I want to make something, I usually use whatever I think can get me to something usable fast. C is rarely the answer. I think the same holds for someone trying to learn programming. Python or Go removes a lot of cruft that new programmers shouldn't have to deal with, at first. They are good intros to "you want X? Well import X, then start using X.foo" instead of "You want X, well first let's start a Makefile so we can get our libs linked in properly depending on if this is debug or release, and then maybe CMake so we can use it on other systems, and so on and so forth..."

</comment><comment><USER12> I will state that the article itself was a fluff piece. However by posting the title it will bring interesting discussion on hn. I do agree with the title, very much so.

I think the Java then C then whatever else you fancy is the best way to start programmers/software engineers out. Put them in a structured environment (strong typing, little room for catastrophic errors), then learn why the structure is there with C, then let them free roam to Python/JavaScript/Rust/Go with the experiences gained by the planning at the C level

<comment><USER13> I think learning java first would be very very detrimental to someone's coding skills. They would spend the rest of their careers trying to deprogram themselves from that useless way of structurng problems. For me the best would be first c, then assembly, then lisp. In my experience people That started with java and then learned python or js or something else tend to write horrible convoluted code.

<comment><USER14> I don't think anyone should go with a language that allow him to do bad OOP. In my experience, this lead to poor code in the beginning, even when this person is one of the most brilliant you ever met.

People that learned with C (Pascal too) piss more straightforward code on average, and have better debugging skills. And they are more "aware" of the computer.

PS: I did go C, assembly (had to rewrite some libc functions) then emacs lisp (before trying to write stuff in Common Lisp). I don't think going assembly will help a webdev much (even if he work mostly on backend), but lisp is definitly helpfull for anyone. Assembly is great if you like having some fun, but beside CTF and "that one time" (i had a really nasty C bug), the stuff i learned while writing assembly were not really usefull to me.

<comment><USER13> You are right about assembly. I was thinking c, then a little bit of assembly just enough to demystify it. I think learning just a little bit assembly makes you a braver programer hahaha. In any case if ound a lot of people really damaged by java. Its horrible what that language can do to some people's coding style and framework when thinking about problems.

<comment><USER15> > In any case if ound a lot of people really damaged by java. Its horrible > what that language can do to some people's coding style and framework when > thinking about problems.

What problems are you thinking of, specifically? In high school, I had a semester each of BASIC and C++, but my first serious programming was with Java in college. That is, beyond things like a "guess the number" game, getting into actual study of algorithms and data structures.

I'm mostly a C++ dev now, and I've never had complaints about my coding style. Then again, I never bought into the WidgetFactoryFactoryImpl kind of crap.

</comment></comment></comment></comment></comment><comment><USER16> In my opinion, and assuming the author is talking about learning C as first language, my answer is that it depends. It depends on what you're trying to do with what you're learning, and what you will do after.

Basically, if you're studying to be an electronics engineer, I say that C is a good first language to learn the constraints of electronic devices. But if you're studying to be a mechanical engineer, I guess you want to learn programming to solve "data" problems (equations, graphical plots, etc). For the latter ones, something like Python with packages like numpy, matplotlib, etc., is probably more adequate.

In a nutshell, I think of learning C first as the bottom-up approach, and learning something like Python the top-down approach. Choosing one or another depends on how down or up you want to go..

</comment><comment><USER17> > _What's so good about it? Well.. C is fast._

Agreed! I also agree that K&R "The C Programming Language" is a classic book that everybody should read, at least to admire how well written is it. And of course C is a good language to learn. Not as a "first language" but as one of the "languages to know".

> _Also, C is flexible. You can do more with C than you can do with newer > languages._

What?! Yes, you can do anything with it, only if your time doesn't cost. The same is true of Assembly code.

There are many languages that are more expressive and powerful than C, and some of them aren't really that slow.

<comment><USER18> I feel like in the end most of it just comes down to how memory is managed and the type system, at least if you consider C++ instead of C.

Personally I just wish for something like C# without the garbage collector (and some good options for static compilation). Right now it just seems like the only two choices are C(++)/Rust, where your only option is to deal with everything manually even if the compiler or optimizer would know better, and most dynamic GCd languages, where your only option is summoning Cthulhu to do it for you.

<comment><USER19> I have slight hopes for Zig. Maybe there will finally be a real C replacement. I never understood why C has not been brought into modern context. Go is probably nearest but it has GC and C interop seems cumbersome.

<comment><USER18> Looks like a mash-up between C and Rust, though with somewhat funky syntax. Still, C(++) with no preprocessor and non-nullable pointers is a huge improvement on it's own, but is that full-blown CTFE with first-class types I see? Hot damn. I could definitely see myself using that if it evolves further.

</comment></comment></comment></comment><comment><USER20> Bigger question for me was when does one truly learn C?

Finishing C course on college didn't felt like I learned C. Nor implementing some common algorithms and data structures. [Lets mark my experience until this moment as `phase 1`] This attitude made me stay in C for a bit longer, getting my self interested in systems programming and that is when I got to see truly what programming and debugging C really is. I was learning and experimenting for 2 years with that, and I felt recently like I was ready to move on, (Python and Clojure taking over for the most part) and the conclusion was rather strange:

Everything after phase 1 didn't brought me that much, considering cost/benefit factor I was not impressed by the end results. While whole first few years and college in C were significant and I recommend it to everyone to learn C even up to a point where you write basic CRUD program that read some data from txt/bin and create linked list with that data and represent it, my venture into systems and lower level programming didn't bring me as much of "general" knowledge. Sure it was good, and I learned C++, and combining those two now I do some other things that are related to the things I learned during that period (like GPGPU), it wasn't that mindblowing as I expected initially.

</comment><comment><USER21> I will never understand this trope of "pointers are hard to understand." Yes, they can get you in trouble if used without care. But hard to understand? What's so hard to understand about an address?

<comment><USER22> > I will never understand this trope of "pointers are hard to understand." > Yes, they can get you in trouble if used without care. But hard to > understand? What's so hard to understand about an address?

I don't think anybody ever said that pointers are hard to understand, they aren't. Go is a proof of this as even people coming from Python or Javascript can easily pick pointers up even if they have never heard about the heap and the stack before.

<comment><USER23> There are posters in this very discussion claiming that pointers were remarkably difficult to learn.

I'm firmly in the "WTF is the big deal?" crowd. Every time I see posts like that I think, "maybe I've thought I understood pointers just fine, and even used them without issue, for _years and years_ , but somehow I actually _don 't_ understand them?"

I had a harder time with OO when I first encountered it than pointers, because I kept running into terrible "Sally wants to buy some lemonade from Tommy"-type introductions in crappy, cheap '90s C++/Java programming books and bouncing off it.

<comment><USER15> > I had a harder time with OO when I first encountered it than pointers

Pointers weren't too hard to learn (although, the deeper they're nested, the harder they are to think about, for me). OO felt immediately intuitive, using the "shape class, rectangle class, square class" examples. Recursion is the concept that I understood the general idea of, but had to do immense amounts of work to be able to visualize.

I think that everyone has their own areas that they learn easily, that others have a hard time with.

</comment></comment></comment></comment><comment><USER24> For me, C programming is kind of like Calculus, Physics to modern day Engineering.

If you don't know Calculus, Physics, you can be a very good construction workers but hard to know the fundamental behind why/how the Buildings, Cars, Airplanes, are designed that ways.

Same for C, if you don't know C. You can certainly a very good program Python, java script, web developers, but might not have deep understand of Kernel, Browser, Database, Network, nor why Java, Go and Rust need all those new language features.

Know how the tools are different will help you to choose the best tool for the jobs.

</comment><comment><USER25> Having learned Python, then C++, then JavaScript, then C, then Java, I have to say Java is probably at the sweet spot; it strikes a good balance between providing enough conveniences over C and C++ to help avoid frustrating a programmer (garbage collection, no need to use pointers explicitly) without encouraging total carelessness like Python and JS do (inadvertently) with their lack of built-in static typing.

With that said, if you want to provide instant gratification and therefore encourage a beginning programmer to keep learning, Python and JS may be the best for introductory classes.

MIT's approach of using Python to do a one-semester survey of CS and Data Science, then using Java to teach serious Software Engineering, appears to be an effective compromise (I did three of their CS courses on edX).

</comment><comment><USER26> Agree with it, but it's an unpopular opinion.

I often advocate python as a first language, but when you discover that python uses references most of the time, it can get confusing.

Ideally, you would teach the basics of assembly, learn the basics of a compiler, and go forward.

<comment><USER5> I agree with the last statement. I think it's best to learn basic computer architecture before learning C, which assumes a close relationship.

I took [http://nand2tetris.org/](http://nand2tetris.org/) before learning C; starting from a single logic gate, you build memory, CPU, assembler, and a compiler for small language (you implement malloc and free yourself). [0]

Though some folks say it sacrifices depth for breadth, I feel very comfortable learning C now.

[0] HN thread for part 2 of the course: [https://news.ycombinator.com/item?id=14526344](https://news.ycombinator.com/item?id=14526344)

[1] HN thread for part 1 of the course: [https://news.ycombinator.com/item?id=13209452](https://news.ycombinator.com/item?id=13209452)

</comment></comment><comment><USER27> Counter-anecdata: My stepfather tried to introduce me to programming via C as a kid (with the very same Kernighan & Ritchie book), and it didn't help at all.

An environment with a better REPL and which can do more "fun" programs is better to start out.

Motivation to build fun stuff is important - I ended up starting my learning on GWBASIC of all things :) and there were some cool BASIC games.

I absolutely agree that C is very important to learn when formalizing a programming education.

</comment><comment><USER28> As one who's working to get to a productive place with functional programming I disagree: Decades of embedded c preceded by asm hasn't helped out at all.

</comment><comment><USER29> Most should choose a more pleasant and productive language, so that the road to make something working and interesting is not uneccesarily long. Starting with C increases the chances of getting stuck and never getting a good feeling about programming - which is sorely needed to stick to it.

</comment><comment><USER30> I agree.

With C, you are in control of everything your program does. That means you're also _responsible_ for everything your program does. C requires a very different mindset than dynamic languages.

</comment><comment><USER31> C for s/w eng is like classic ballet for dancing.

</comment><comment><USER32> i could not disagree with this more, holy cow. C has so many weird and painful quirks, and is missing a lot of things that a novice programmer will need to know (like object-orientation, especially).

it's a great second or third programming language to learn though.

<comment><USER14> From what a saw, exceptionnal people aside, those who learned to code with a language favorising bad OOP (most OOP languages, maybe with the exception of Lisp) write nasty code. Especially when they work with a language like javascript, but even with c++ or Rust you can easely find abominations.

Everybody should learn proper data structure before learning OOP. I don't like Go, but i'd much rather work with an intern who was first taught Go than any OOP language, even one i like. OOP is a great tool, but people that learned with it have the tendancy to use it poorly and everywhere, and to use abstractions of abstraction when this is not needed. Maybe for you, it was not an issue, because you were brilliant enough, but for average devs like myself, it is.</comment></comment>


Customer culture - <AUTHOR> http://www.marco.org/2011/09/17/customer-culture-apple-and-microsoft <comment><USER2> _The question isn't whether Metro will be good: it probably will be. And that's a huge accomplishment for Microsoft that they should be commended for.

But how will their customers react?_

The way Metro is implemented vaguely reminds me of Windows Media Center PCs (simple front-end interface). When I read this question by Marco, I couldn't help but think of my experience with MC which was generally a move to disable/not use it entirely. Not to say that this will happen with everyone, but I'm curious to see how it is adopted and whether or not users will be evangelists or expect something more/better. Great article.

</comment><comment><USER3> "The Windows message is much more palatable to corporate buyers, committees, middlemen, and people who don't like to be told what's best for them..."

"[P]eople who don't like to be told what's best for them" sure ended up in some strange company there.

Further, I would have thought that "Think Different" would not have welcomed, and not (I guess) repelled, "people who don't like to be told what's best for them".

</comment><comment><USER4> "You can do whatever you want, and we'll attempt to glue it together. It won't always work very well, and you might not like the results, but we will do exactly what you asked for."

Sounds a lot like Facebook right now actually.

</comment><comment><USER5> In 2000 MS killed their consumer-oriented OS: Windows 95/98/Millenium and focused on a more business-facing product, based on Windows NT.

It looks like they are now introducing a for-consumer version again, this time probably with a really consumer-friendly setup, where there should be not too much for the end user to worry about (and change).

<comment><USER6> Ehh. You really think Windows XP is a "business-facing" OS? It accounted for the overwhelming majority of all home computer installs during the time it was sold. The internals of the OS aren't what makes it "business-" or "consumer-" facing. iOS's internals are more sophisticated than Win2k's were.

<comment><USER5> networking and account management is what makes XP more pro-business than pro- consumer. And all the servers - Windows 2000 to 2008 are based on the same kernel basically.

<comment><USER7> Account management had everything to do with security & privilege containment.

People got tired of every exe running in ring-zero and wreaking havoc. To authorize actions they needed authentication, so .. accounts.

Multi-user operation and remote access were just fringe benefactors of the security. The system itself needed delegation of roles to operate safely. The fact that networking was becoming so widespread forced them to go for a full account management, instead of BeOS style dual-user mode.</comment></comment></comment></comment>


Malls Aren't Dying, They're Thriving - <AUTHOR> http://www.newgeography.com/content/004947-malls-aren-t-dying-they-re-thriving

<comment><USER2> The traditional closed-air mall is in fact dying, in most locales across the country. The transition to online shopping reduces the need for trips to the big box "anchor" stores, and as a result the smaller stores receive less foot traffic walking by, and in time are forced to close.

This is very similar to how many American downtowns suffered in the 1970s when malls themselves were rising in popularity. Big box stores, seeking lower rents and closer quarters to one another (captive pocketbooks!), re-located to the more affordable fringes of town. As cities sprawled and families piled in their cars for shopping trips, independent locally-owned stores in medium- sized urban downtowns went out of business when the "anchor" stores packed up and moved to indoor malls. This lead to economic stagnation in the former "hearts" of small American cities, as the economic drivers moved from the geographic urban centers to further into the suburban sprawl.

Quite a fascinating cycle.

Large city center malls don't suffer the same fate, since they don't rely on the draw of a few anchor stores, and have a higher percentage of out of town visitors.

What you are seeing emerge instead in most of suburban America is a new kind of open air, "commons" type of shopping destination, which provides a uniquely different experience than either a closed-air mall or online shopping can afford.

<comment><USER3> > The traditional closed-air mall is in fact dying, in most locales across the > country.

I'm seeing the exact opposite.

> The transition to online shopping reduces the need for trips to the big box > "anchor" stores

Most of the malls in this area have transitioned to entertainment destinations. Huge movie theaters, the stores are more showroom ... Tesla, Perch, Apple, etc., tons of restaurants.

They're building a new mall nearby. [http://en.wikipedia.org/wiki/American_Dream_Meadowlands](http://en.wikipedia.org/wiki/American_Dream_Meadowlands)

Apparently the cost is 3.5 billion? The new mall will have an ice rink, amusement park, water park, concert hall, movie theater, and an indoor 12-story ski slope for skiing, snowboarding and tubing.

Does that sound like something that's dying?

<comment><USER4> > The new mall will have an ice rink, amusement park, water park, concert > hall, movie theater, and an indoor 12-story ski slope for skiing, > snowboarding and tubing.

> Does that sound like something that's dying?

Yeah, it does. It's saying "we can't exist as just a shopping center any more, so we've got to become an all-in-one entertainment destination instead." Which, I'm sure will be successful, but not every city can support a $3.5 billion complex like that, and it doesn't bode well for the thousands of existing locations which _are_ just plain shopping malls.

<comment><USER5> Malls as all in one entertainment centers were the norm most of the existence of malls; as well as shopping they usually include dining, included arcades when those were a viable business, very often movie theaters, and often some other, usually child/family-focused, entertainment venue. If anything, they've narrowed in focus from the latter 1990s to today -- arcades mostly gone, diversity of shopping reduced to mostly clothing stores, etc. -- broadening the focus returns malls to the kind of destination that they've been four most of their history.

</comment></comment></comment></comment><comment><USER6>
      Warning: User 'newgeog_todbot' has exceeded the 'max_questions' resource (current value: 720000) query: SELECT CASE WHEN status=1 THEN 0 ELSE 1 END FROM access WHERE type = 'host' AND LOWER('18.104.22.168') LIKE LOWER(mask) ORDER BY status DESC LIMIT 0, 1 in /home/newgeog/public_html/includes/database.mysql.inc on line 172

Exposing your SQL queries in an exception on a public-facing website does not seem like a best practice.

<comment><USER5> From a UX POV, probably not.

If this is a security complaint, well, its less exposed information (a strict subset) than if your app was open source, so I don't see it as particularly a problem.

<comment><USER7> Actually it's not a subset. Even if the app is open source, what you gain from this error is: username, installation path, resource limits. All of those add something you don't know from the code itself. All can be useful when trying (respectively) injections / bruteforce auth, path traversal / secrets access, denial of service.

Also line numbers can help you identify the deployed version.

Also optional table prefixes which are deployment-specific.

<comment><USER5> You're right, I was wrong; leaving the grandparent post just for context for your response, otherwise I'd delete it.

</comment></comment></comment></comment><comment><USER8> The author, Joel Kotkin, definitely has a preconceived notion about development, suburbia, and malls. (That being, he is a booster for all three, for example, see [http://www.slate.com/blogs/moneybox/2013/04/30/kotkin_on_sub...](http://www.slate.com/blogs/moneybox/2013/04/30/kotkin_on_suburbia_he_forgot_about_prices.html?original_referrer=http%253A%252F%252Ft.co%252F2JtEULybXo))

I mention this _ad hominem_ tidbit because he always presents himself as a neutral observer, who happens to have brought a counterintuitive fact to light. It's tiresome.

</comment><comment><USER9> I can think of half-a-dozen closed air malls within 30 minutes of each other where I live. Some of them are absolutely thriving, packed full of shoppers pretty much all day and on a race to expand space and amenities with the growing crowds.

Others are near-dead ghost towns with something like 50% occupancy and entire wings blocked off because of a homeless/drug addict/gang problem.

Most of the open-air "town center" style malls around me are also packed to the gills at all times. It's actually unpleasant to shop at them because they're _so_ crowded, but they usually mix in outlet stores with regular stores and draw huge tourist crowds.

I'm not sure what the trend is, not all that long ago I would say they're definitely - most certainly dying. But then one of the near-dead malls near me just changed hands, is undergoing major renovation and the numbers of stores and shoppers is growing.

I think people like the social aspect of shopping, the walking around and browsing, touching things, trying them on. My wife orders lots of clothes on- line, but the smart stores let her return non-fitting clothes in-store, where she'll also check out what they're offering, try some things on and then buy more -- she's not the only one.

</comment><comment><USER10> There's a pretty close parallel here with American libraries. Conventional libraries suffered in the transition to online information/book sources. But, they've become a great community gathering place, especially for kids. I've seen evidence that malls are headed this direction with the increasing size of their indoor play areas, etc.

The stores can come and go, but I think the folks running the mall properties will figure out what to do to stay a viable destination for large numbers of people.

<comment><USER9> I agree. The local libraries around me have been undergoing a steady transformation into resource-rich study centers for school-aged kids to college kids. On-line degree programs also seem to attract loads of people looking for quiet places with reference sections to study.

My county system also has a robust e-book, book-on-tape on-line check-out system, community activities (kids Minecraft club, adult retrogaming Saturdays, book club guest speakers, puppet shows, etc.) The library system in my county is actually _growing_ due to so many people using them. They've become true community centers and I personally find it a beautiful thing.

<comment><USER11> I pity the poor people who simply want dead tree books to read.

</comment></comment></comment><comment><USER12> Awesome! _goes to her local mall_... Oh wait. Its dying and has quite literally two businesses left in it. It's the only mall within an hour from where I live.

The mall at the last place I lived closed down a couple years ago, also due to lack of business.

I know my experience is of a very small sample...

<comment><AUTHOR> The failure of your local mall doesn't extend to the concept of "malls are dying". As the article says:

 _To suggest malls are dead based on failure in failed places would be like suggesting that the manifest shortcomings of Baltimore or Buffalo means urban centers are not doing well. Like cities, not all malls are alike._

</comment></comment><comment><USER13> Anyone have a mirror?</comment>


A Sprinkle of Seaweed Could Deflate Gassy Cows (2016) - <AUTHOR> http://www.nationalgeographic.com/people-and-culture/food/the-plate/2016/11/seaweed-may-be-the-solution-for-burping-cows/ <comment><AUTHOR> Summary points:

> _the average cow produces_ 200~500 liters _of methane per day._

> _There are_ ~1.5 billion _cows worlwide_.

> ~14.5% _of anthropogenic greenhouse gas emissions come from livestock. That > is more than global car and airplane traffic emissions combined._

> _While sheep, goats, buffalo, giraffes and camels all generate methane,_ 65% > _comes from cows_.

> _dairy cows not only produce more methane than beef cattle, but outnumber > them by a ratio of_ 10 _to_ 1 _in the United States._

> _They tested_ ~20 _different species of seaweed in artificial cow stomachs. > In the presence of_ Asparagopsis taxiformis _, methane production was cut > by_ 99% _. Experiments in sheep showed that if dried Asparagopsis taxiformis > seaweed made up just_ 2% _of total feed, methane emissions drop by_ 70%.

> _Asparagopsis is so effective because it contains a chemical called_ > bromoform (CHBr3) _that interferes with the microbial digestive enzymes > responsible for methane manufacture._

Lastly:

> _Unfortunately, seaweed isn't a quick fix for our atmospheric methane > overdose. We just don't make enough. Scientists calculate that it would take > some_ 6,000 hectares (15,000 acres) _of seaweed farms to supply a mere_ 10% > _of Australia's_ 29 million _cattle; to supply America's_ 92 million _would > take over thirty times more. While seaweed farming is a rapidly growing > global industry, it's not yet up to such herculean demands._

<comment><USER2> >> Asparagopsis is so effective because it contains a chemical called bromoform (CHBr3) that interferes with the microbial digestive enzymes responsible for methane manufacture.

[https://en.wikipedia.org/wiki/Bromoform](https://en.wikipedia.org/wiki/Bromoform)

Good news is you don't need seaweed to make it. Bad news is it's probably going to cause other problems when it starts building up in the environment.</comment></comment>


How Scientists Can Thrive in the Startup World - <AUTHOR> http://macro.ycombinator.com/articles/2015/11/science-startups/ <comment><AUTHOR> Submitted because I really wanted to comment on this sentence: "For a startup, work needs to be both faster and more rigorous than an academic lab."

In our academic lab, if we knew how to be faster, more rigorous, or both, we'd be doing it.

The notion that a startup can do rigorous research faster than academia is curious. The scientific journals are _not_ full of the output of startups. Industry in general, and startups in particular, can't expend the resources on covering corner cases and tidying loose ends. The profit is generally in getting the gist of an idea, not in writing it down, vetting every detail, and sharing it broadly for free.

<comment><USER2> > "In our academic lab, if we knew how to be faster, more rigorous, or both, > we'd be doing it."

There are some cases where it's obvious how to be faster (and occasionally more rigorous): judiciously throw money at the problem. In academia, where grant funding is pretty limited and equipment is expensive, you probably want to only have enough infrastructure for, say, the 50th-90th percentile of load (microscopes, thermocyclers, analysis compute power, what have you), and accept that 10-50% of the time there will be a queue. If the difference between being successful in the market and having your lunch eaten by someone else truly is a matter of weeks, then it makes sense to you and your investors to put some extra money into a widget that will sit idle for most of the time but that helps when things are crunched.

That said, money can't fix everything---9 women can't produce a baby in one month!

<comment><USER3> > 9 women can't produce a baby in one month!

> Then you're just not thinking hard enough!

\- My boss

<comment><USER4> You could have 9 women on a constant baby producing staggered cycle so one baby gets produced every month. Then, when you need a baby you will be able to get one in 15 days, +/-15 days.

<comment><USER5> you would need 12 to be precise.

</comment></comment></comment></comment></comment><comment><USER6> The title kind of misled me. It's about how scientists with a degree in _biotechnology_ (or a related field) can move from academia to the startup world, not about scientists in general.

For many academic fields there's no equivalent startup tech sector (which is the actual problem for scientists here) since the most important aspect seems to be the ability to become a horse with a horn. This means that before all else, there needs to be a huge potential market.

As a scientist working on a very specific topic, I can assure you that my market would be approximately five companies in the whole world. Although every computer and smartphone user could ultimately benefit from advances in my field of research, my customer would not be the end user, but the manufacturers.

I assume that this applies to the vast majority of scientists so the picture actually looks quite grim if you want to keep working in your profession. Many scientists need to change to an unrelated or remotely related field in order to get out of academia.

<comment><USER7> I think that scientists in industry are usually desirable for their skill set rather than knowledge in their specific field of study. I bet that you would be able to find industry work in your general field, but, as you say, probably not in the specific subfield that you've studied so far (this is obviously somewhat unsatisfying for people who have dedicated years of their lives to studying something). Out of curiosity, what are you working on?

<comment><USER6> Simulation of CMOS-Transistors by a semi-classical approach. A self-consistent deterministic solver for the Poisson equation, Schrodinger equation and Boltzmann equation including small signal analysis and noise characterization of the device.

Basically you want to gauge the crude models of circuit designers. But nanoscale transistors are hard to accurately understand. In particular, there's currently no good way to get predictive small signal parameters and noise characteristics of devices at such a scale.

So here I am, doing some of the first decent simulations for transistors at current technology nodes.

Definitely not something a startup is looking for :)

<comment><USER7> My focus is on biotech :) but what about Thermofisher working on their Ion Torrent platform (although this isn't a startup). They use ISFETs for DNA sequencing. Also there is Oxford Nanopore Technologies which sequence DNA by measuring changes in current as DNA passes through a nanopore. ONT is a startup :)

</comment></comment></comment></comment><comment><USER8> This article is interesting to me, but I have to take issue with the concept of "thriving" for a scientist. I assume the conditions for thriving will be different for different people, so what follows is my perspective only.

Can a biotechnology startup really provide a better standard of living than academia? Almost certainly yes, from my experience; free lunch and swag are fun, and the pay is much better, but still far out of proportion to the effort put in, which is only slightly less than academia. Can a biotechnology startup really remove the fun and wonder from science? Definitely yes, especially when money questions are prioritized over science questions (always). Is it worth trading the abject discomfort of academia for the semi-comfort of industry and the fun of science for the humdrum of product pipelining? Only individuals can answer that question, and I have not yet answered this question for myself. It is true that industry feels like "selling out" and is seen as such by the academics, however this may be caused by sour grapes style reasoning when jealous.

I hate to say this, but most of the industry people I know are far less intelligent and far less ambitious than the people I knew in academia. They're far less cut-throat, and have far better teamwork, too. The office politics are much friendlier, and non-science people aren't looked down upon in industry in the way they are in academia. More efficient and profitable to have the industry folks around, sure-- but not a single scientific idealist around, and certainly no veritable philosophers of science, meaning that experiments are at worst (either by ignorance or malice) exercises in manufacturing the desired results, just like in academia. At best, I'd say the quality of results are comparable between the two institutions. The emphasis in industry is on production of cash rather than knowledge, which seems fundamentally not science to me.

So, what is a scientist to do? Hard to weigh in on either side with confidence. The trouble is that you can't simply leave academia to "try out" a startup for a while-- it's heresy, and will be punished by refusal of reentry. I guess this may be changing, but up to the present, that's how it's been for people. There is a flow of people to industry from academia, but not in the opposite direction. It's also no secret that industry can be the graveyard of highly intelligent people who were rising stars in academia before switching... sometimes they get lost in a dead-end department (recently, such as many promising folks at Novartis' siRNA team, before it was shut down and hit with layoffs) and other times they get stuck beneath an imperial-style boss-- a similar trap in academia.

</comment><comment><USER9> This is the style of thinking that leads to MetaMed. "Everything I don't know the tawdry details of is simple because I am smart and radical and _more meta than you_ in my thinking and know the One Weird Trick!" Perhaps you are and do! But it's overwhelmingly likely you aren't and don't.

</comment><comment><USER10> I'm getting S3 Access Denied errors.

</comment><comment><USER11> Malformed URL here:
Jessica Richman, the co-founder and CEO of human microbiome testing startup uBiome

</comment><comment><USER12> "Coming from academia, there's a myth that it's really risky to join a startup, and in my experience that's not true at all,"

Tell that to CS PhDs. Granted, this is mostly about bio, but even here there is a lot of hope with the bioengineering applications and the disease modeling. Generally, my anecdotal view is that folks don't want to go to industry as they all see themselves as getting a tenure track job. Then the 2nd postdoc is not a startling success and they change tunes with only 3 months of funding to go.

Also, as other commenters have noted, Matt De Silva of Notable Labs may have had a bad quote attributed to him.

"Think about what a 'hacker' was to traditional computer scientists. Startups need the life sciences equivalent of that." This, as most people looking at bio from CS, is a laughable statement. I started out as a physicist and got interested in neuro. I thought that it was just because the bio peeps were lazy at learning the math, that a mathy person could sweep in and teach 'em real good-like. Bio is a astoundingly complicated field. You have N overlapping Gaussian curves describing just 2 variables and each interacting in an unknown number of orthogonal (you hope) dimensions and variables. Just take a look at the KNOWN pathways for mammalian mitochondria [0] at some pressure, temperature, salinity, etc. Any variable can throw this off incredibly so, or not, or maybe a little bit. Also, what about muscle cells versus glia? But your study was on mice, not humans, or the humans' mitochondria has a mutation in it's own DNA (yes mitos have their own DNA). Oh, and this is just the people you could get samples from. Bio is soooo very complex. Bio people are nothing but hackers. We have a very small idea of what is actually going on, and we try to exploit that in any small way we can. Look at Rita Levi-Montalcini's discovery of NGF for proof [1]. She is an admirable person and a cherry picked outlier, but a hacker in the truest sense of any CS person. She set up the lab in her bedroom after being fired for being a Jew in WW2 Italy. Her dedication to knowledge for knowledge's sake is amazing. She discovered there is a molecule that pre-destines daughter cells to be neurological by playing with chicken eggs and viper venom in he closet. If that is not a hacker, please define.

"The story of a business is about vision and progress: What are you going to do, how far have you gone so far, and how are you going to make money." This is exactly how grants are written as well. They claim a difference, but there really is none. You have to sell your grant just like you sell any pitch. Yes, the grants are mostly on paper and not in front of a person, but the story element is the same.

"In academia, there's no wheeling and dealing around the grant process." Yes, there are a lot less places to apply to than there are investors to find, but there is a LOT of behind the scenes stuff happening here as well. If you have a proven track record of getting grants and of getting out research, you get the grants with a lot less questions asked. But, yes, I admit there are a lot less rejections. A grant a month is typical. 2 a month is a little high.

Overall, the article was largely a PR piece. I think to help Ycombinator (the site I am posting on) to drive people to them for investment. Not surprising really. I could feel a bit of the "pick up artist's" technique of 'push-pull.' You insult a little, then you back it off and repeat. I don't think that was intentional though. I like the article, but I feel it had a lot of naivete. Maybe a lot of VCs out there see biotech as a great space, as there is not really a lot of people in it and the ground seems fertile. I would caution against that. Biotech is very very hard to get going. FDA approval is notoriously difficult and expensive. The flip side to that, however, is that once you make it through, there is almost no competition and you essentially have a monoploy (hooray patents).

[0][http://s437.photobucket.com/user/teriden/media/metabolism.jp...](http://s437.photobucket.com/user/teriden/media/metabolism.jpg.html)

[1][https://en.wikipedia.org/wiki/Rita_Levi- Montalcini](https://en.wikipedia.org/wiki/Rita_Levi-Montalcini)

</comment><comment><USER13> Maybe try for a little more rigor in your blog hosting.</comment>


Gun Cults - <AUTHOR> https://www.drrandallcollins.com/sociological-eye/2018/3/23/gun-cults <comment><USER2> This is pretty interesting. However the idea of guns a a symbol seems like it would apply to groups that are organized around gun control, or the prevention of gun violence just as much as it does to those who value guns. Those surely have to count as 'gun cults' by the same reasoning - they just regard the gun as a negative symbol rather than a positive one.

<comment><AUTHOR> That's an interesting thought and one I hadn't thought of. I think the author would agree with you too given how he (briefly) describes the animal rights movement.</comment></comment>


Circle-Ellipse Problem - <AUTHOR> http://en.wikipedia.org/wiki/Circle-ellipse_problem <comment><USER2> Circle can inherit from Ellipse if objects of both classes are immutable. The "stretch" method should return a new Ellipse. The implementation of "stretch" gets inherited into class Cicrle, so stretching a Circle yields a new Ellipse as the method signature says.

That example may look impractical. Here's a better one: define SanitizedString as a subclass of String (if your language allows that). Methods that output HTML to the client can take SanitizedStrings as input, so the type checker ensures the absence of XSS attacks. The constructor of SanitizedString could take an ordinary String and sanitize it, and that's the whole implementation of SanitizedString, because all other methods are already provided by String and none of them can break the sanitization because String is immutable. So using immutable objects allows you to write less code and get more compile- time guarantees.

<comment><USER3> Since there is no universally safe string, it would be better to call it HTMLString (different context such as SQL, e-mail headers, CLI require different _types_ of sanitisation).

string.convertToHTML() would escape special characters as HTML entities, preserving the fact that it's just a benign text.

</comment></comment><comment><USER4> I think the main problem here is that OO "is-a" isn't the same thing as mathematical "is-a". A square is a rectangle, but a square cannot perform every action a rectangle can.

In the ass-backwards mutable-OO world, a rectangle "is-a" square, because it can _be_ a square. Under the same requirements (x==y), a rectangle _is_ a square. Any action which acts on a square will do precisely the same thing with a square rectangle which inherits from a square.

Similarly, a get-bounding-box for a rectangle inheriting from a square must always return a square box - a get-bounding-rectangle method must be created to handle the new, non-square output.

Rectangles supercede squares _in every way_ , therefore a rectangle _is-a_ square, and it is more. The mathematical "is-a" is essentially the reverse of this - a square is a rectangle _with restrictions_.

</comment><comment><USER5> Bay Area HN readers may want to attend live a lecture by Barbara Liskov reprising her Turing Award lecture, The Power of Abstraction, on W4:15-5:30PM in Gates B01 on the Stanford Campus. This lecture is open to the public. The lecture will be live streamed and also archived for on-demand viewing. Female HN readers may want to attend a Stanford WICS reception before the talk. See <http://ee380.stanford.edu> for details.

<comment><USER6> I just found the talk on youtube for anyone who wants to preview it: <http://www.youtube.com/watch?v=GDVAHA0oyJU>

</comment></comment><comment><USER7> The real takeaway from the circle-ellipse problem is that mutators and conversion methods are inappropriate for use in inheritance. Essentially these operations (including stretching) are merely a more complicated form of class casting. Perhaps the worst offender of this principle is the toString() method. A class designer must not suppose that the string representation he implements should be the canonical representation of that class. Instead, he should provide the user with accessors and iterators, and provide an external string conversion function which generates the strings from these methods.

<comment><USER8> I agree that a class designer need not suppose that "the string representation he implements should be the canonical representation of that class," however if you take that line, you should not suppose that _any_ class ought to know how to convert itself to another class. If phone numbers shouldn't know their canonical representation as strings, then why should circles know their canonical representation as ellipses?

Perhaps, as you suggest, this is a function that should be external to the instances. But I repeat myself:

[http://weblog.raganwald.com/2007/10/too-much-of-good- thing-n...](http://weblog.raganwald.com/2007/10/too-much-of-good-thing-not- all.html)

</comment></comment><comment><USER9> I've seen people encounter this problem and say, "OO hierarchy is broken for programming." This is the wrong message to get; for many problems simple linearizable hierarchies are very useful.

What's broken is relying solely upon this mechanism to express all relationships. When your only relations are "Has" and "Is", even English would be hard pressed to express things elegantly.

<comment><USER2> English has no problems saying that a circle is an ellipse, though. Neither does math. I'd like my programming languages to be able to express math.

<comment><USER9> "is like" is not in the vocabulary in many OO languages, and that's the rub. A circle is not (in a general, behavioral sense) an elipse and can't support all the operations an ellipse is expected to do.

As for asking for expressing math, things like CL's generic methods or Haskell's typeclasses model this sort of ad hoc series of relationships much more elegantly, in my opinion.

<comment><USER2> Haskell's typeclasses are still a few hacks away from perfection :-) See the last part of this document: <http://www.haskell.org/tutorial/numbers.html>

</comment></comment></comment></comment><comment><USER10> _The existence of the circle-ellipse problem is sometimes used to criticize object-oriented programming. It may also imply that hierarchical taxonomies are difficult to make universal, implying that situational classification systems may be more practical._

I think this is why everyone was saying "reuse failed" back in the late 90's and why projects, like IBM's, to produce standard business object models failed. Shortly afterwards, folks like Ralph Johnson were saying stuff along the lines of how software reuse wasn't a failure, that it worked well, but it only worked in the small context of specific projects or applications.

</comment><comment><USER11> So, in short: every Circle _is_ an Ellipse; an XStretchableEllipse is a different thing from a mere static Ellipse; every Circle is _not_ an XStretchableEllipse; and there's no such thing as an XStretchableCircle.

</comment><comment><USER12> tl;dr - OO design, modeling, hierarchy ... all dependent on your situation. OO: Learn it, love it, add it to your toolset, but don't assume all problems are the nails to its hammer.

First thought: don't provide scaling methods - that's an operation best left to non-method functions or procedures. We scale lots of shapes in lots of ways that can make their original names less applicable.

After that, I started considering the models and their respective inheritance. If we expect the programming organizational structure to match the geometric organizational structure (e.g. circles are ellipses with the same axial lengths), then we might be thinking about the problem the wrong way. Do we model the hierarchy on the Real World or in a way that makes more sense in our library? I suppose it depends entirely on our purposes.

Sure, a circle's requirements for state are less than an ellipse, but it won't hurt to just draw a circle based on that additional state. Even the circumference and area formulas work out fine. So why, if I'm not coding for an resource-limited environment, am I creating a circle class anyway? They're all elipses anyway.

<comment><USER13> Alternative moral of the story: Mutation complicates things.

</comment></comment><comment><USER14> The very useful property of subtypes, i.e., that they may be substituted for their parents without causing error, is in conflict with mutable state.</comment>


Did Blowing into Nintendo Cartridges Really Help? - <AUTHOR> http://mentalfloss.com/article/12589/did-blowing-nintendo-cartridges-really-help

<comment><USER2> Sometimes, you just have to believe.</comment>


The Slippery Slope of an App Store, and Why Windows Should Never Adopt It - <AUTHOR> http://www.winextra.com/archives/the-slippery-slope-of-an-app-store-and-why-windows-should-never-adopt-it/

<comment><USER3> Did he seriously write that entire article without bringing up Steam?

Wake up and smell the coffee, Windows users: you've had an app store for seven years now, and its primary target (gamers) are actually pretty damn happy with it now. If they branched out and sold regular apps (not that they would, it seems too dilutive for the brand) you'd basically have a pretty competent Windows App Store. (I can see it now: "Achievement Unlocked, 10 page paper")

<comment><USER4> Ya, I seriously did. Reason being is basically what you said actually. Their primary target is gamers, and it will probably stay just for gamers, and even if Microsoft releases their own store with games, it probably won't be better than Steam.

But that is also what makes me not bring up Steam. It is not an "app" store. It's a game store, and a very damn good one at that.

<comment><AUTHOR> They do have their own store for games: Games for Windows - <USER2>

</comment></comment></comment><comment><USER5> "Mac App Store is basically a copy of what many popular Linux distributions such as Ubuntu have had to offer for years."

There is MacPorts, Fink, homebrew and probably other systems that are like Ubunutu's apt, deb, and other linuxes rpm (and other) systems.

What's the point?

Also as other people have mentioned there is Steam on Windows, Impulse, used to be GameTap, and lots of other digital download stores.

</comment><comment><USER6> He makes a few good points: Linux _has_ had this for years, and they have done quite a good job with it (especially with the Ubuntu Software Center). But, as he says: Linux only has 1% market share. Mac OS X has almost 10% market share. If Linux has used this concept to good effect for years, why is it a bad thing that it's now being exposed to a more mainstream computing audience?

<comment><USER7> The author is not afraid of an app store, he is afraid of a "closed" OS X. Closed being:

* Unable to install apps that aren't App Store Approved(TM)

* Unable to run commands as root

* Unable to access the filesystem

Basically, the author fears OS X becoming iOS.

There's a lot of speculation about what OS X will become, but there is only one sure bet: It will follow the money.

Consumers -- in general -- have been proven not to care about things like "open". If you ask Joe Blow Android owner about why he/she likes their phone, they might tell you that they like how it's "open", among other things, but I'd lay you odds that they don't know what that really means. And you can bet that most people are not rooting their Android phones.

I'm not talking about _your_ friends. I'm talking about your mom's friends; your dad's friends; your cousins' friends. The ones who can't figure out how to update their anti-virus. They don't care about open, root access, or filesystems. They care about the specific task they want to achieve: to be entertained (music/movies), have some fun (games), do some work (productivity), or communicate with others (email/social networking).

These are the people that will drive the direction of OS X and Windows. But don't freak out just yet. There will always be another layer to the computing world. Apple builds a very small set of core iOS apps. A large part of iOS's success is owed to independent developers. Not big companies. Independents. The Mac has many popular independent developers, and Apple knows this. There will always be an "open" Mac, in the sense that there will always be a Mac you can develop on, if only by neccessity.

Let's consider what happens if I'm wrong. Even though we're (hackers) a tiny part of the market, we're not a "small" group by any measure. Imagine that all the talented people who like using OS X for development are suddenly forced to use Linux. So, you have this large group of talented people, and all of the sudden their platform is yanked out from under them. Where do they go? They go to the platform that solves their needs. They go to the next thing. That thing would be Linux.

I don't believe there will be any rug-yanking going on. I think the process will be much slower, and many won't even notice, but I do think we'll start to see more hackers moving to Linux as Apple develops their "walled garden" approach for OS X. That's not a bad thing. It's going to bring a lot of talent over to the Linux side of things, and that's gotta be a good thing.

<comment><USER6> Unless it has a door out of the garden, like Android's "install unsigned apps" toggle. It's the best solution to this "issue", but so far only certain Android phones offer it (and all but the Nexus series are locked down in other ways).

If Apple could just hide a Jailbreak button under 10 pages of warnings in iTunes, this wouldn't be an issue. But they don't, so fear of a locked-down Mac is reasonable. But, as you conclude, that isn't necessarily a bad thing.

</comment></comment></comment><comment><USER8> The irony is that the article's author doesn't realize that of all platforms, Windows needs an app store more than any of the others.

While most of my Windows use is confined to snapshot'ed VMs, I still don't download or use closed-source Windows software of any kind, free or otherwise. Spyware and malware have ruined the market for free-and-ad-supported, freemium, and nearly-free Windows software. A heavily curated and controlled Windows software market could improve the signal-to-noise ratio for low-cost windows apps from legitimate developers.

</comment><comment><USER4> Author here.

I am assuming the worst possible situation here. I do firmly believe that OS X will eventually be just like iOS, and we are seeing a lot the industry adopt methods that Apple has pursued previously. My worry is that Microsoft, if they happen to release an App Store themselves, will go down the same path. They have done this with WP7 and the Marketplace.

It's a slippery slope releasing an App Store IMO because I don't want to own a Mac that will eventually be locked down like the iPhone, and since that method will "most likely" still be a success, other companies, including MS, might be curious to adopt this.

Is an App Store bad? Hell no.

Is the way they are being implemented in our every day technology bad? Hell yes. Even on Android phones with AT&T you can't install from unknown sources. Granted, Android phones in this respect are not the norm, and thankfully so.

In short, let's all proceed with caution.

<comment><USER9> > I am assuming the worst possible situation here. I do firmly believe that OS > X will eventually be just like iOS...

This will never happen. As others have already stated, Apple would lose their developers and because they don't command the market with OS X they would never risk doing that. Let's not forget the professionals that use Macs: the design industry, the film industry, the music industry: these rely in some cases on third-party applications like the Adobe Suite, these industries are another reason why OS X cannot ever become iOS; they require a fundamentally open, extensible environment. Add that to the fact Apple has stated that the App Store will never be the only method through which developers may publish their applications to the OS X platform, and it just will not happen.

Your paranoia is irrational.

</comment></comment><comment><USER10> The closest thing Linux had to App Store was Lindows' Click-N-Run.

Typical Linux repositories, while very useful, don't address the important point — payment.

App Store is for commercial software, while Linux distros usually even put "non-free" software in separate silo.

</comment><comment><AUTHOR> just as a follow up to this in case any one is interested I posted a rebuttal to the original post - <http://wnx.me/Ku>

</comment><comment><USER11> > But if we are to follow precedence set by other Apple products, the Mac will > become more closed than ever, with the Web as our only option to access the > outside world. Much like the iPhone and the iPad. As a Mac owner, the > writing is on the wall, a closed computer is my future.

Em, the "other Apple products" mentioned were never open to begin with. And they are not general purpose computers.

The Mac, on the other hand, always had XCode built-in. I don't see a "closed computer" in the near future...

<comment><USER12> _Em, the "other Apple products" mentioned were never open to begin with._

Right, which indicates that Steve's preference is for closed systems. Every argument Apple makes in favor of locking down iOS devices applies equally well to Macs.

 _And they are not general purpose computers._

Only because of artificial limitations.

 _I don't see a "closed computer" in the near future..._

I believe with 60% probability that by the end of 2015, Apple won't sell any consumer-targeted products that allow root access or installation of arbitrary software.

<comment><USER13> There's one aspect of the iOS situation that doesn't apply on the Mac: Apple can't get away with it on the Mac, and they know it. It's much easier to open platforms that are closed than to close platforms that are open. If they locked down the Mac as much as iOS, you wouldn't even be able to install another operating system, which I think is fairly common among Mac users. Even if it's not common, they've used the ability to do it as a big part of their push for people switching.

Even if there are a lot of users that wouldn't object to the Mac being a closed platform, developers would. Developers want root access to their development machine. Apple doesn't want to lose developer support, because they know that it is the lifeblood of the platform.

I'd make the exact opposite prediction. I think it's more likely that iOS will allow sideloading than that Mac OS will forbid installation of software other than through the App Store. On the other hand, I can see both platforms moving toward a system where it is locked down by default, but it is trivial, and officially supported, for the user to allow installing software through unapproved sources.

</comment></comment></comment><comment><USER9> It seems like ever since the conception of iPhone people have worried that somehow OS X will merge with iOS and the desktop platform will be completely closed and therefore dead, leaving only Windows and Linux.

I just don't see it.

> But if we are to follow precedence set by other Apple products, the Mac will > become more closed than ever, with the Web as our only option to access the > outside world. Much like the iPhone and the iPad. As a Mac owner, the > writing is on the wall, a closed computer is my future.

What's all the rage? It's an application distribution platform. You can still and will still be able to install applications of your choosing. The operating system is still and will still be largely open source (<http://opensource.apple.com/>). Compared to Microsoft and Windows, OS X is a paragon of openness.

Will Apple encourage people to use the App Store? No doubt. But that doesn't mean the door is closed to other distribution methods.

The fact remains that the operating system is far from closed, and there doesn't seem to be ANY indication that that will change in the near or even distant future; it would serve very little purpose as Apple does not have a commanding market share with OS X.

<comment><USER14> Right on, just because there is an app store doesn't stop any app makers or users from installing applications from other sources. However, finding and installing apps just became easier for users as well as providing a centralized distribution channel for the app makers.

</comment></comment><comment><USER15> Thought Windows was already going to adopt it in Windows 8.

I think the Mac app store would encourage a lot of adware(aka spyware) because consumers like free apps and developers would like a steady revenue stream.

<comment><USER11> adware != spyware.</comment></comment>


Anonymous v. Koch brothers - <AUTHOR> http://www.dangerousminds.net/comments/koch_brothers_tea_partiers_union_bashers_anonymous_/

<comment><USER2> > Governor Walker's union-busting budget plan contains a clause that went > nearly un-noticed. This clause would allow the sale of publicly owned > utility plants in Wisconsin to private parties (specifically, Koch > Industries) at any price, no matter how low, without a public bidding > process.

Wow. I was skeptical at this claim, but it appears to be true?

* [http://drudgeretort.wordpress.com/2011/02/23/walker-to-make-...](http://drudgeretort.wordpress.com/2011/02/23/walker-to-make-no-bid-sale-of-wisconsin-power-plants-to-koch-brothers/)

* [http://wisconsin.onpolitix.com/news/36834/governor-walker-an...](http://wisconsin.onpolitix.com/news/36834/governor-walker-and-koch-industries)

Bizarre.

<comment><USER3> I don't see how this is bizarre. He's trying to jettison anything that loses money. Selling a business for nothing is a net profit to you if the business is losing money.

As far as Koch Industries they specifically said (in the 2nd link you posted) that they have no interest in the power plants.

<comment><USER4> For a moment let's assume that it is indeed in the government's interest to sell these properties.

Why is there a no-bid clause? Should the government not be obligated to try and get the best price it can on a major property sale?

The no-bid part just reeks of corruption - there's no solid reason to have it there. If someone bids ten dollars for a power plant and _nobody_ else comes forward with a better bid, so be it, but at least the process needs to be competitive and transparent.

<comment><USER5> If it's in the government's interest to sell these properties, the important thing politically might be to sell it as quickly as possible rather than wait to get the best possible deal. Trying to "get the best price it can" might be a false economy, letting the best be the enemy of the good. In the best case it adds delay, in the worst case fighting over the terms might prevent the deal from going through.

In other words, "Don't let the best be the enemy of the good."

<comment><USER2> How about the better? There's vast oceans between "the best possible price we can possibly get" and "whoever offers first".

</comment></comment></comment></comment></comment><comment><AUTHOR> They're becoming a pretty sharp political group.

<comment><USER6> How so? By hopping on the 2011 version of the George Soros freakout GOP supporters had years back?

By announcing that they're "targeting" an organization, knowing that _that_ will be reported and that people will completely forget this "conflict" by the time whichever person or persons within Anonymous made this announcement lose interest in this "operation"?

OK, that last is almost kinda sharp.

<comment><AUTHOR> 1\. They're jumping on hot topics like the Koch brothers.

2\. They're bringing up politically salient points like the "clause would allow the sale of publicly owned utility plants in Wisconsin to private parties (specifically, Koch Industries) at any price, no matter how low, without a public bidding process."

3\. Their writing sounds populist and they're boldly declaring attacks against powerful opponents which gives them a David v. Goliath story which is easy for the public to get behind.

4\. Colbert did a story on them so their name is growing.

5\. I'm not saying they're good or bad. But, whatever their ideology, they're becoming a stronger presence and they're getting better at diplomacy.

<comment><USER6> 1) So is everyone and his brother. Like the Soros freak-out or the Tea Party, it's a fascinatingly manufactured meme with real legs.

2) This is not their discovery. Or, you know, particularly remarkable. No-bid contracts have a long and dirty history.

3) That's not "sharpness", that's just grandstanding by individuals in a community that values attention-seeking.

4) And? See #3.

You're rather clearly confusing political acumen with "can get attention".

<comment><AUTHOR> It's PR, what else is it supposed to do? It doesn't need to be rocket science.

Brilliance in obscurity has no political impact.

</comment></comment></comment></comment></comment><comment><USER7> digital warfare goes commercial

</comment><comment><USER8> The sudden attacks on the libertarian Koch brothers from the Left is pretty silly and closed-minded.

<comment><USER9> They're not libertarian, they're movement conservatives.

And anonymous isn't part of "the Left".

In fact, almost any sentence involving a capitalized "the Left" is probably missing the mark.

<comment><USER5> > They're not libertarian, they're movement conservatives.

They've donated at least $20 million to the ACLU to fight the Patriot Act. They support the Cato institute. One of them ran for president on the Libertarian ticket.

The Koch family isn't unified in its views; collectively the group does support some "movement conservative" causes. For that matter, they've supported a few democrats and democrat-favored causes. But "libertarian" actually fits pretty well if you need an overall label.</comment></comment></comment>


Deis 0.9.0 – Dockerfiles, Domains, and HA Routing - <AUTHOR> http://deis.io/deis-0-9-0-dockerfiles-domains-and-ha-routing/

<comment><USER2> Deis maintainer here. I'll be happy to answer any questions you may have either here or on twitter :)

[https://twitter.com/bacongobbler](https://twitter.com/bacongobbler)

<comment><USER3> So, looking at the architecture, it seems like you have some design components that overlap with pieces design components in CoreOS. I'm not clear as to what components are really application components vs. platform operations components, so maybe that's it. But the use of rsyslog in lieu of systemd seems like really going against the CoreOS grain. Is this really a function of trying to mirror Heroku as closely as possible?

<comment><USER4> My understanding of Deis's design goals is that they will pick and choose their favorite components from any number of sources (including but not limited to CoreOS), but don't plan on locking themselves into any particular distro. Instead they are relying on Docker itself as the point of interoperability.

As a maintainer of Docker I think it's a good thing that you preserve the freedom to run your platform on any number of distros, and are not stuck, for example with having to install systemd everywhere.

<comment><USER3> I grok the container win (been using containers on non-Linux platforms and OpenVZ on Linux platforms for ages).

I agree a nice aspect of using Docker is that you have the flexibility of using whatever distro you want for each application component... however a heterogeneous container platform doesn't really provide much of a win, and to make that work you just end up implementing your own solution for each of the components that abstract you from the platform.

<comment><USER4> That's assuming Docker doesn't expand its interface to allow for more parts of the platform to be interoperable :)

The whole point of Docker is to introduce simple interfaces to important components of distributed systems, and get a critical mass of people to agree on it, producing interoperability. So far we did this for packaging and sandboxed execution of individual components, with some success. We plan on doing this for other areas in the future, including clustering, stack composition, application networking, service discovery, authentication and access control, etc. This will allow rival implementations to compete in each of these areas, without creating fragmentation. I don't want a World where "CoreOS containers" can't talk to "Atomic containers" or "Mesos containers" because we couldn't agree on a common interface - we can do better than that.

We are pretty open about that plan. The Deis guys know this and are making the bet that embracing "Docker-native" interoperability is good for them.

<comment><USER3> I think I didn't present what I was saying clearly.

I think you definitely want to be very open about what the inside of the container looks like and even what the interface is between the containers and the rest of the world.

I was thinking about the platform that the containers run on top of. You don't gain anything by using a given host platform, but building alternate components that handle deploying and wiring up those containers. You're better off either using the existing platform's components or contributing patches to it, and the latter really only makes sense if you're adding something distinctive.

<comment><USER4> I understand. But from the point of view of Deis, CoreOS is not a platform. It is a Linux distro with a loose collection of tools pre-installed, some of which Deis happens to use. One such tool is Fleet. Another is the systemd log journal. Each of those tools has dozens of competitors. Deis reserves the right to pick and choose from those competitors without locking themselves in. It also reserves the right to use some pieces of CoreOS without using the other. If you think of CoreOS as an end-to-end monolithic platform, this may seem strange. But it is perfectly aligned with the Docker philosophy, which is that big monolithic platforms are not a good thing. What you want is a vast ecosystem of small composable lego bricks.

<comment><USER3> > Deis reserves the right to pick and choose from those competitors without > locking themselves in.

Well of course! It is your own project.

> If you think of CoreOS as an end-to-end monolithic platform, this may seem > strange.

Yeah, but I'm not looking at CoreOS as an end-to-end monolithic platform. I'm looking at it as a bunch of components that happen to be bundled together, each of which is pretty nice all by itself. It doesn't mean you have to use them all, but on the other hand, you would hope that if you were going to replace one of them entirely you'd go with something with a significant advantage (and I'd argue in some cases it has gone the opposite way).

> What you want is a vast ecosystem of small composable lego bricks.

Understood. I just don't think you help yourself much if you take out one brick and replace it with one of your own, particularly if the new brick isn't any better than the old one (and might be worse).

<comment><USER4> I should clarify that I am not part of the Deis project, although I know Gabriel and follow their roadmap closely.. Sorry if I wasn't clear.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> I just interviewed Deis CTO Gabriel Monroy about Deis and how it works with CoreOS and how it differs from Flynn and Dokku. Great guy, great team, and awesome project.

[https://www.youtube.com/watch?v=j5EI16DG1sg](https://www.youtube.com/watch?v=j5EI16DG1sg)

</comment><comment><USER6> Is there any story for persistent data / running database services?

<comment><USER2> Indeed we do. Feel free to contribute to the conversation here: [https://github.com/deis/deis/issues/231](https://github.com/deis/deis/issues/231)

</comment></comment><comment><USER7> What is Deis using for this new HA routing? HAProxy, ELB, homegrown?

<comment><USER8> It is their own nginx HTTP / TCP router, which is backed by etcd and confd. You can check it out at [https://github.com/deis/deis/tree/master/router](https://github.com/deis/deis/tree/master/router). Essentially, you can fire up multiple of these instances, and Deis uses them to route application, controller, and git traffic to the proper container.</comment></comment>


I turned on every notification for a month - <AUTHOR> https://blog.rescuetime.com/notification-madness-focus-experiment/ <comment><USER2> It looks like the author wrote this to sell software. I tried scrolling down on my phone and got a full-page pop-up trying to sell me software. Not cool.

<comment><USER3> Even the point they're trying to make isn't well backed-up:

> Many would double up their notifications sending both a native one and an > email. For example, if someone messaged me on LinkedIn, that would trigger a > notification in the app, plus an email to let me know.

Obviously, you turned on _all_ notifications! Maybe some people like an email notification, and some like an app-based one. What's the alternative: deny some people their preference? Surely this only matters if one of the notification methods can't be disabled?

<comment><USER4> Similarly, my home security system is set up in a fashion that allows either [app notification], [email notification], or [text notification] - (or any combination of the three).

I can certainly see valid use cases where a user would prefer one over the other. Not sure anyone would prefer all three to be turned on, however, which appears to be similar to what the author opted for.

Personally, I couldn't imagine getting notifications for everything.

I have my emails set up to just display a number on the icon. Some other semi- important apps similarly. But a text message is important - so that goes off. Wife could have a flat tire or need a quick answer (arguably a flat tire on the side of the road justifies a call, but who knows these days).

I guess my main thing is that if my phone goes off in my pocket, I want to make sure I'm pulling it out for, at least what could be, a justifiable reason - and not because someone replied to something that I said on Facebook earlier this morning.

<comment><USER5> > if my phone goes off in my pocket, I want to make sure I'm pulling it out > for, at least what could be, a justifiable reason

There's an intermediate stage between "no notification" and "urgent notification" \-- you can configure notifications from different apps to play different sounds.

<comment><USER6> Actually, I don't think there is. In my experience, a notification, even if it tells you explicitly "I'm not as urgent as others" for instance by sound, is still a distraction. I found that I feel and work better with having only the most urgent notifications on - even my phone is often left in DnD mode. Notifications degrade quality of life a lot.

</comment></comment></comment></comment></comment><comment><USER7> The irony of receiving a notification 30 seconds into reading was not lost on me.

<comment><USER8> Keep going! 60 seconds in, it throws a huge pop-up at you.

</comment></comment><comment><USER9> As this is evidently an advert for Rescue Time and I'm a real sucker for anything productivity related, has anyone tried it out? Any interesting results to report?

I didn't like the idea of a service that sent all my visited websites to some remote server so I never got round to using it. Is that info at least encrypted so only you can see it?

<comment><USER10> No. It's only encrypted "so only you can see it" if it never touches a remote server.

Anything that ever touches a server you must assume is done so in plain text (including passwords).

</comment></comment><comment><USER11> My 6 year old tries that with every "free" game installed.... it's a nightmare!</comment>


Grady Booch revealed in a lecture in 2007 what Snowden leaked 6 years later - <AUTHOR> https://www.youtube.com/watch?v=adiVOdztQ34&feature=youtu.be&t=7m17s <comment><AUTHOR> [https://www.reddit.com/r/programming/comments/58g7z7/grady_b...](https://www.reddit.com/r/programming/comments/58g7z7/grady_booch_revealed_on_a_programming_lecture_in/)</comment>


Justice Department Settles with 6 major Technology Firms - Employee Solicitation - <AUTHOR> http://www.justice.gov/opa/pr/2010/September/10-at-1076.html

<comment><AUTHOR> A friend of mine works with Intel in a Senior Management capacity. He informed me Intel tells their employees they have a 2x limitation for returning to work with Intel if they leave for a competitor. Meaning, Intel will only accept you back so many times.

Unsure if anyone has any insight into other major firms such as the targets of the article.

Thoughts on the depression of potential compensation this could have caused since 2006?</comment>


The Observatory of Economic Complexity - <AUTHOR> http://atlas.media.mit.edu/en/ <comment><USER2> I really like the concept. The makers might want to reconsider the resource- hog on this one. My 300mbit connection and Mac Pro with 64GB Ram can barely handle navigating this.</comment>


Pakistan government is accusing me of a crime. Twitter is its messenger - <AUTHOR> https://torontosun.com/opinion/columnists/furey-the-pakistan-government-doesnt-like-one-of-my-old-tweets-and-twitter-passed-along-the-message <comment><USER2> Pakistan's intent is to create chilling effect here. Twitter has informed the tweeter that you are in their cross hairs, don't show up in Pakistan because your head is on line. What can Twitter do here? Or even Pakistan do to the tweeter?

Should Twitter keep it a secret that there has been a legal proceeding against you in some country? That's just what Twitter is doing here. It doesn't violate their laws, but Pakistan's.

Just don't understand the article. Using newspaper space as a self aggrandizement instrument.</comment>


Show HN: Discount widget - <AUTHOR> https://github.com/rspective/voucherify.js#5-discount-widget <comment><USER2> Did you mean to link to the entire readme, or specifically the section about the discount widget? Not sure what you are showing exactly :-)

<comment><AUTHOR> Actually it's a part of our product [http://voucherify.io](http://voucherify.io) but one can untangle it and use as a standalone component as well.

<comment><USER3> Probably a better idea to repost your original Show HN. We'll email you a repost invite.

<comment><AUTHOR> Thanks dang, here's the link [https://news.ycombinator.com/item?id=11428437](https://news.ycombinator.com/item?id=11428437)</comment></comment></comment></comment>