Graphics Programming Black Book by Michael Abrash (2001) - <AUTHOR> https://github.com/jagregory/abrash-black-book <comment><USER2> "Is performance still an issue in this era of cheap 486 computers and super- fast Pentium computers? You bet. How many programs that you use really run so fast that you wouldn't be happier if they ran faster? We're so used to slow software that when a compile-and-link sequence that took two minutes on a PC takes just ten seconds on a 486 computer, we're ecstatic—when in truth we should be settling for nothing less than instantaneous response."

Not sure if I want to laugh or cry at how 100% relevant this still is 20 years later...

<comment><USER3> I've had people tell me all of the extra bloat/slowness in modern software is because it has more features, and because accessibility / localization is a thing more often. I'm not sure I actually believe that's true. Maybe accessibility and localization contributes to bloat/slowness, but that doesn't mean it couldn't be much much more efficient and keep the same features.

<comment><USER4> Present day programs aren't optimized because they don't have to be. No one needs to gain a competitive advantage by squeezing the last bit of performance out of hardware because for a long time we've had steadily increasing performance levels and backward compatibility. Applications which need more performance than the present level of hardware can deliver so badly that they need to optimize to that level are very rare.

That's why Windows is the size it is nowadays... it's optimized for delivering the same user experience on all hardware, compatibility, language flexibility, manageability and user friendliness (don't laugh) instead of performance. It essentially performs the same function that Windows 3.1 did, but it does it on a far greater variety of hardware running a far larger assortment of software.

It's bigger and slower than it could be, but there are always trade-offs, and Microsoft hasn't really had any competition in operating systems for decades... Linux and variants have their place, but it's not on the desktop for most people, at least at the moment.

<comment><USER5> I disagree. Software nowadays is atrocious because it's not optimized. It's just that average users have become more accepting of long load times and bloat.

Here's an example. In the mid to late 90s, gamers would complain a lot about load times for CD ROM games. For some gamers, the load times were a deal breaker. This was one reason Nintendo could get away with using cartridges on the N64.

Fast forward to the present, and load times for many mainstream games is FAR worse than the 1-2x speed CD based consoles of the 90s. And a lot of this is due to sloppy, unoptimized code, e.g. loading assets. And yet no one bats an eye.

Another example is the web. There are so many garbage, unoptimized sites that load on my smartphone as if I were on dial up (I'm looking at you, Gawker). Yes, those pages contain a lot more multimedia content nowadays, but they still load at the same rate as a typical page in the 90s would have on dial up.

And with Moore's Law now ending (ended?), optimization may come back in vogue.

<comment><USER6> The N64 lost its console generation and solidified Sony as the market leader, in part _because_ it used cartridges while everyone else used CD-ROMs. Way to choose an example that disproves the very point you were trying to make.

As for load times today, most modern games are implemented as scripts and assets for one of the big engines, usually Unreal or Unity. It's hard enough to manage all the assets that go into a modern game; an optimized loader would just make wrangling them all even more difficult.

<comment><USER5> _The N64 lost its console generation and solidified Sony as the market leader, in part because it used cartridges while everyone else used CD-ROMs. Way to choose an example that disproves the very point you were trying to make._

Yes, I realize that. But the point was that poor decision was not enough to kill it, and the N64 was still a commercial success. A lot of gamers even preferred cartridges back then because of they didn't require load time.

 _As for load times today, most modern games are implemented as scripts and assets for one of the big engines, usually Unreal or Unity. It 's hard enough to manage all the assets that go into a modern game; an optimized loader would just make wrangling them all even more difficult._

That's not a real reason to not optimize.

</comment></comment></comment></comment></comment></comment><comment><USER7> This takes me back to the early nineties, when these articles where published in monthly installments in Doctor Dobbs Journal and, later, PC Techniques.

Incredibly, these 2 magazines were stocked monthly at my local newsstand in a sleepy suburb of Antwerp, Belgium, and every month around publication time, I'd bike there daily to check if the next issue had arrived.

I learned a lot of good stuff in college, but I don't remember anything as exhilarating as this series, which eventually would lead to a career in the computer graphics industry.

<comment><USER8> I had the same experience (Belgium and Italy) - I would add in the same category the old Game Developer magazine, which had a regular series on game physics and math. Still have a bunch of them. Those were the days :-)

</comment></comment><comment><USER9> This is such an awesome book. I read this back in the day and loved every minute of it.

I think there is a lot to learn from it still, even if you're highly unlikely to be writing the same kind of graphics code.

The book has a great balance between: \- Micro-optimization - fiddling with ASM and data structures, memory alignment and such, custom math functions that lose precision in tradeoff for great acceleration due to hardware features

\- Algorithmic optimization - trying to do things in ways that are mathematically faster (computational complexity)

I work in enterprise software, not games or anything touching hardware.. it is depressing algorithmic complexity is ignored so often these days and if you give an interview question it is often greeted with blank stares and there seem to be college undergrad curriculums which don't even touch on it.

I'm in that camp that feels like software has gotten so inefficient in a lot of cases that the user experience is no faster than 20 years ago. We have acceleration & optimization for certain things but every day applications are no faster than they ever were and when you have to use a web application stuff is often a lot slower than a native app was 10-20 years ago.

There are still a lot of great college texts on computational complexity even though trade publications ignore this stuff with a vengeance.

<comment><USER10> From my experience (graudated in 2016), most interviewing is centered around algorithmic complexity or at least regurgitating logarithmic complexity algos.

Potential hires still in or just out of school should have no problem answering those questions, but a few years out and most people forget those skills since most of the time the answer is to use an existing implementation or find a way to avoid the problem entirely. All of the people I know with a 4-year CS degree learned all about that stuff in their data structures/intro to algo classes.

I work in games and have had to both implement a few data structures on my own (mainly specialized trees and graphs). I've seen them help performance a ton and I've also had to scrap one or two of them because the naive implementation was faster. Nowadays a lot of indirection means your processor is spending most of it's time waiting on memory reads, while flat arrays can be loaded into CPU caches a lot more efficiently.

</comment></comment><comment><USER11> 2017: [https://news.ycombinator.com/item?id=14897512](https://news.ycombinator.com/item?id=14897512)

2014: [https://news.ycombinator.com/item?id=8803883](https://news.ycombinator.com/item?id=8803883)

2014: [https://news.ycombinator.com/item?id=7149973](https://news.ycombinator.com/item?id=7149973)

2013 (with cameo by Michael): [https://news.ycombinator.com/item?id=6659279](https://news.ycombinator.com/item?id=6659279)

2010: [https://news.ycombinator.com/item?id=1301086](https://news.ycombinator.com/item?id=1301086)

2008: [https://news.ycombinator.com/item?id=119494](https://news.ycombinator.com/item?id=119494)

</comment><comment><USER10> I work in games doing mainly graphics work - it's amazing how many of these concepts still exist and have been recycled in interesting ways. Well worth the read if you're in my line of work.

For example, the concept of "sorted spans" in Quake is conceptually the same as how "light culling" is done in deferred and forward+ rendering pipelines. The first I'd heard of the technique was how Battlefield 3 used the PS3's SPU to do light culling for 64x64 blocks of pixels at a time.

</comment><comment><USER12> This book is a great resource for thinking about how to optimize your code. And while VGA programming is not as relevant as it was, I still found it really fascinating to read about. Plus, the chapters on Quake are really interesting to read

</comment><comment><USER13> Questions for experts: are part of this "timeless" and still relevant today, or is it mostly historical ? (Chapter titles like "Pushing the 286 and 386" are a bit scary :D)

<comment><USER14> Some parts are timeless, like this introduction in the first chapter about optimization:

\---

Understanding High Performance

Before we can create high-performance code, we must understand what high performance is. The objective (not always attained) in creating high- performance software is to make the software able to carry out its appointed tasks so rapidly that it responds instantaneously, as far as the user is concerned. In other words, high-performance code should ideally run so fast that any further improvement in the code would be pointless.

Notice that the above definition most emphatically does not say anything about making the software as fast as possible. It also does not say anything about using assembly language, or an optimizing compiler, or, for that matter, a compiler at all. It also doesn't say anything about how the code was designed and written. What it does say is that high-performance code shouldn't get in the user's way—and that's all.

That's an important distinction, because all too many programmers think that assembly language, or the right compiler, or a particular high-level language, or a certain design approach is the answer to creating high-performance code. They're not, any more than choosing a certain set of tools is the key to building a house. You do indeed need tools to build a house, but any of many sets of tools will do. You also need a blueprint, an understanding of everything that goes into a house, and the ability to use the tools.

Likewise, high-performance programming requires a clear understanding of the purpose of the software being built, an overall program design, algorithms for implementing particular tasks, an understanding of what the computer can do and of what all relevant software is doing—and solid programming skills, preferably using an optimizing compiler or assembly language. The optimization at the end is just the finishing touch, however.

<comment><USER15> Think about the software you work on and maintain day to day: how much of it _runs so fast that any further improvement in the code would be pointless_? Truly we have strayed far from the light...

<comment><USER14> Well, i work in a AAA game engine that needs to run on consoles, so... :-P

(though i work mostly on tools nowadays but even then, optimization is important - from my experience people wont tell you that the tool is slow, but they'll _really_ like it if you make it faster, which is why i always dismiss comments like "people like Electron/otherslowstuff, otherwise they wouldn't use it" as way more often than not, people wont tell you about something being slow and they'd rather get used to it, unless it _REALLY_ affects them in a major way)

<comment><USER15> Sorry, when I said "you" I meant the average "HN you", who tend to have 4 abstraction layers and 5 third-party frameworks between their users and the metal :)

</comment></comment></comment></comment></comment><comment><USER16> I still keep the original version. I bought this book with very little money in 2001. Back then not many book covered algorithms.

I can hardly remember from todays perspective how it was looking after some code snippets in books without google, github, stackoverflow, strg+f.

</comment><comment><USER17> The best part of the book is the part about The Kennedy Portfolio, in Chapter 9. "Reader John Kennedy regularly passes along intriguing assembly programming tricks, many of which I've never seen mentioned anywhere else."

</comment><comment><USER18> I wrote a game of life screensaver for Windows years ago using the optimizations recommended by this book in C# if anyone is interested. [https://github.com/masterwok/Game-of-Life- Screensaver](https://github.com/masterwok/Game-of-Life-Screensaver)

</comment><comment><USER19> This is great, but I can't seem to find a generated version? A PDF for example would be nice?

</comment><comment><USER20> A while ago I bought the paperback version of this book since I hate reading on the computer. It's huge, was $100 on Amazon, and someone wrote "Trash" on the side before they realized they could sell it.

And to think now I have a Kindle... >.<

</comment><comment><USER8> Thank you for making this available. I had the original book which unfortunately went missing between moves. A great book!

</comment><comment><USER21> I read "Graphic Programming Black Block" and for a moment thought that the demoscene had an awesome revival!

</comment><comment><USER22> I read it long time ago, good book!

</comment><comment><USER23> > Markdown source (2001)

This looked like a peculiar anachronism, as Markdown was created in 2004. But apparently this isn't the original _source_ , but rather a scraped HTML[1] version converted to Markdown[2] in 2013.

1: [https://github.com/jagregory/abrash-black- book/commit/b946ff...](https://github.com/jagregory/abrash-black- book/commit/b946ff9e70a7dc0c313f107833935e53c71a7935)

2: [https://github.com/jagregory/abrash-black- book/commit/5e1079...](https://github.com/jagregory/abrash-black- book/commit/5e10794a24a45e84a709e64577912999fe5bc557)

<comment><USER24> Repo owner here. You are correct, not sure why this wasn't made clearer by OP.

Book released 1997, made available online in 2001, converted to Markdown/ePub/etc by me in 2013.

<comment><USER25> Could you also add PDF version? (converted from Markdown)

<comment><USER26> You can add the following target to the Makefile:

      pdf:
              rm -f out/black-book.pdf
              pandoc --to pdf -t latex --pdf-engine=xelatex -o out/black-book.pdf --toc $(FILES)

Or here's a link to the copy I generated: [https://u.teknik.io/pAxm9.pdf](https://u.teknik.io/pAxm9.pdf)

</comment></comment></comment></comment><comment><USER27> To save others the disappointment of expecting a 2019 update, this is a cleaned-up copy of the classic text.

<comment><USER28> I don't think I'll ever be disappointed to see this work linked. :) In some ways I feel like modern graphics programming has little to do with traditional optimisation. Rather than coding tight inner loops and wizardly algorithms, it's all about managing cache lines and pipelining data flows into your massively parallel desktop supercomputer. Which is awesome, but compared to the older stuff it's like a high speed rail network compared to a motorbike.

<comment><USER29> Just curious, is it OK to say that most of the book is irrelevant for today?

<comment><USER30> It's not irrelevant unless you intend to focus on modern, triple-A graphics engines. Lots of indie game developers don't care about that stuff! There are even people working on new games using engines from the 90s, such as the Build engine [1]. Ion Fury [2] is one example.

I think the more you focus on modern graphics engines, the more difficult it is to stand out from the crowd. You end up in a rat race where you need a huge team of artists to create all of the assets for your photorealistic game.

On the other hand, with an old engine (or a new engine using traditional rendering techniques), you can make something distinctive and stylish with a smaller team. After all, they say the enemy of art is the absence of limitations.

[1] [https://en.wikipedia.org/wiki/Build_(game_engine)](https://en.wikipedia.org/wiki/Build_\(game_engine\))

[2] [http://www.ionfury.com/](http://www.ionfury.com/)

<comment><USER28> Just to build on this, modern triple-A games are incredibly asset-based. It doesn't matter how good a coder you are, unless you have an art _department_ producing every single tiny little detail of your in-game assets, they're going to look terrible.

This is part of the reason low-fi games are making a comeback in the indie scene, because they can actually look good with only one or two artists working on them (or even sometimes with programmer art.)

</comment></comment></comment></comment></comment><comment><USER29> I'm actually wondering who is Wendy Tucker...</comment>


What the Heck is Cuneiform, Anyway? (2015) - <AUTHOR> http://www.smithsonianmag.com/history/what-heck-cuneiform-anyway-180956999/?no-ist <comment><USER2> There are a couple of errors in terminology.

      At first these phonemes (one symbol for one thing, instead of letters to make a word) symbolized concrete things;

Should say "pictograms", "logograms", or "ideograms", but definitely not phonemes, which are minimal units of sound in a language, and have nothing to do with writing.

At the end,

       Fifteen other languages developed from cuneiform,

Confuses the cuneiform writing system with a language that uses cuneiform. It should probably say "fifteen other languages developer from Sumerian", though I'm not certain if that's actually correct. This is a particularly surprising error given that, right near the beginning, the article acknowledges that "It was used to write at least a dozen languages, just as the alphabet that you are reading now is also (for the most part) used in Spanish, German and many other languages."

<comment><USER3> Sumerian is a language isolate, so the second quote may only correctly refer to writing systems.

<comment><USER4> Exactly. The languages didn't evolve from Sumerian, they just borrowed the writing system in the same sense that non Indo-European languages like Finnish borrowed the Roman alphabet.

</comment></comment></comment><comment><USER5> It recorded an early flaming in the diatribe against Engar Dug: [http://etcsl.orinst.ox.ac.uk/section5/tr5411.htm](http://etcsl.orinst.ox.ac.uk/section5/tr5411.htm)

<comment><USER6> Hilarious!

" _Engar-dug, blocked at the anus_ "

I wish the writer had given some idea as to why Engar-dug earned his enmity.

Other pearls of wisdom:

" _a young woman did not fart in her husband 's embrace_"

Was the reverse equally untrue in their culture?

<comment><USER7> I have it on good authority (the guy has a PhD and reads cuneiform, Syriac, Hebrew, ancient Chinese, etc.) that one of the early religions of Central Asia which spread to China along the Silk Road lauded farting as releasing the souls of vegetables or something similar, I think it was Manichaeism... [https://en.wikipedia.org/wiki/Manichaeism](https://en.wikipedia.org/wiki/Manichaeism) ... but can't find a reference online. Pythagorus had a lot to say about farts too:

 _Pythagoras also said that no one was to ever eat a bean under any circumstance! His reasons for making such a drastic statement are based on the theory from a Roman peer of his named Diogenes Laertius. Around the first century, B.C. it was felt that beans are " the materials which contain the largest portion of that animated matter which our souls are made of." Let me explain. The Greek word for soul was "anemos" which also meant wind. The animated matter which Diogenes is referring to is the intestinal digestion that goes on inside us with the beans. Are you starting to catch on? In other words, they believed that the buried dead released their souls in the form of gases or winds, that got absorbed into the fava beans. When you ate these beans, (the intestinal process) these spiritual soul winds got released and then ascended into Heaven._ \- [http://www.brownielocks.com/beans.html](http://www.brownielocks.com/beans.html)

<comment><USER5> Diogenes Laertius cannot really be described as a peer of Pythagoras, as Pythagoras lived in the 6th century BC, long before anything Roman might be considered a peer to anything Greek, and Diogenes Laertius in the 3rd century AD.

</comment></comment></comment></comment><comment><USER8> Of related interest: "Digitale Keilschrift / Digital Cuneiform unites the oldest communication technology with the newest, completing a kind of historical circuit. It is an offshoot of the decodeunicode project (see Eye 64), which aims to create Unicode versions of all forms of writing. This has practical importance where living scripts are concerned, opening digital technology to marginalised language communities; for archaic scripts the rationale is vaguer, or more quixotic. Digitisation will allow for ease of reproduction and searchable versions of cuneiform documents (more than half a million of these mostly hand-sized clay tablets survive). But, as Johannes Bergerhausen writes, its main appeal will be to those 'who love losing themselves in signs and symbols' – or, to put it bluntly, geeks."

[http://www.eyemagazine.com/review/article/elegantly- nerdish](http://www.eyemagazine.com/review/article/elegantly-nerdish)</comment>


No accident Instagram's videos are exactly as long as a television commercial - <AUTHOR> http://qz.com/96475/its-no-accident-facebook-made-instagrams-new-videos-exactly-as-long-as-a-television-commercial/

<comment><AUTHOR> I think what is interesting about this idea is that a lot of television ads are noise. they don't bring any value what so ever. the other class of ads are so well thought out that many mistake them for content. For me, my friends and the people I follow on instagram spend time crafting photos, sure there are some pictures of food. If Instagram/Facebook can ensure that the videos that I see in my feed are crafted that they fit the look and feel of instagram then sure let them in, but I could do without garbage ads.</comment>


Ask HN: What are the best techniques to prepare for behavioral questions? - <AUTHOR> <comment><USER2> [https://pstree.cc/the-unusual-way-for-cracking- interviews/](https://pstree.cc/the-unusual-way-for-cracking-interviews/)</comment>


Writing a Forth in Haskell - <AUTHOR> http://reinvanderwoerd.nl/blog/2017/06/08/writing-a-forth/ <comment><USER2> Surely you just take an existing LISP implementation and call "reverse" at the correct location in the code? :p

<comment><USER3> Even at the most basic level, Forth and lisp are quite different. Lisp has grouping and evaluates using a tree. forth has no grouping* and evaluates completely linearly.

* well you can hack it to give it grouping, but usually it doesn't.

<comment><USER4> Lisp's abstract model doesn't use stacks to pass arguments. Arguments are just lexical variables and they live in environments like other lexical variables: completely foreign stuff to Forth. Environments often have to survive the termination of a lexical scope's execution; it is required when a closure has escaped. So things can't even be compiled to a stack-based machine, using a "pop everything when returning" strategy: only in some cases.

(ANSI) Lisp function calls are safe w.r.t. wrong number of arguments, and support optional and variadic arguments also. This is true of compiled code without source: when we load someone's compiled file and call a function in it with the wrong number of arguments, it is diagnosed.

Forth and Lisp are so miles apart, that I have to scratch my head why a comparison comes up in discussion from time to time.

(It is pretty much _always_ from someone who uses Forth and doesn't know Lisp (or, worse, anything that isn't Forth). "Hey, I heard Lisp is also interactive and meta-programmable, so it must just be a Forth with postfix switched to prefix and parentheses added ...").

<comment><USER3> I had this dumb idea of actually evaluating LISP in a forth inspired way. It would be a stack of subroutine/accumulator pairs. so given

        (+ 1 2 3)

"(" would pop an pair on a stack, + would set its subroutine, and 1 2 3 would be fed to the subroutine and accumulate a value. when ) is encountered, the data is fed into the subroutine/accumulator pair lower on the stack, so you could still have nesting.

Horribly inefficient, but I thought the idea was neat. I'm sure I'm not the first to think of it though.

<comment><USER5> some antique famous lisper (Henry .. forgot last name) did write a linear lisp that works by stack evaluation. From the few that I grasped, since everything is mostly duped, it's like a new value each time; free borrowing ?

</comment></comment></comment></comment></comment><comment><USER6> Can anyone point me to a Forth implementation where the absolute bare minimum is written in (C/assembly/whatever) and everything possible is then bootstrapped in Forth itself?

I recall reading what the minimal word set needed to be able to write the rest of standard Forth (Fig Forth if I recall) but I seem to remember that most implementations don't push the purity quite that far for performance reasons.

<comment><USER7> Jonesforth is pretty minimal bootstrap

[https://rwmj.wordpress.com/2010/08/07/jonesforth-git- reposit...](https://rwmj.wordpress.com/2010/08/07/jonesforth-git-repository/)

</comment></comment><comment><USER8> [https://github.com/anse1/firmforth](https://github.com/anse1/firmforth)

has not been mentioned on hn afaik.

<comment><USER9> The very neat part about firmForth is that if you compile the firmForth JIT with cparser (libfirm compiler), it can inline C functions into the JITted code.

</comment></comment><comment><USER10> On an unrelated note, this is a pretty nicely designed website, OP.

</comment><comment><USER11> I think it's also valuable to take a look at how Joy handles quoting program fragments. I just wish there were better online resources around the language.

<comment><USER3> Links? When I tried I just used "[" to construct an empty dynamic array, and pushed words into it until I found "]". Very inefficient, but simple.

</comment></comment><comment><USER12> Doesn't really give Forth the credit it deserves. Totally misses the point of Forth: the simplicity of the environment and it's relationship to the underlying hardware, defining primitives like : and VARIABLE with CREATE and DOES>, threaded code, , (COMMA) , ... Nice promotion of Haskell though

<comment><AUTHOR> You're right of course, this is an ongoing exploration. I hope to learn the deeper truths in the process.

<comment><USER13> I would suggest re-doing the exercise on an 8 bit cpu with < 8 K of RAM. That will open your eyes to what is so special about Forth.

<comment><USER14> I'm curious about Forth, as it's probably the most important language I've never learned. I've done a fair bit of low-level, micro-optimised coding in C and assembly, but don't get much time for that kind of thing these days.

How would you describe Forth in relation to those? What makes it stand out and what are its weaknesses?

<comment><USER13> Forth is probably the smallest true high level language there is. It is entirely self-contained, needs just about nothing in terms of hardware support and can run in as little as 2K of memory.

It is well suited to things like real-time control, you'll probably have a hard time getting used to stack manipulation (especially in the beginning) and it tends to keep you up all night (not sure if that is a strength or a weakness ;) ).

It will also be the most fun you've had with a computer in a long time and it will likely make you look at the rest of what we do with computers as clunky in the extreme.

What Forth is not really suitable for is large projects and things built with a team. It is more of an artisanal thing, something closer to watchmaking or jewelery than major construction.

If you want to know more about why Forth is the way it is you could do worse than to start with studying the life of Chuck Moore for a bit, the language and its author are roughly equally interesting and for want of a better word peculiar.

One thing Forth is not: wasteful.

<comment><USER15> I remember writing a fairly trivial program in Forth on a ZX81 for a school open day. You needed the 16K RAM pack thing with the usual lump of Blu Tac to stop it wobbling.

When I "discovered" Forth, it seemed like science fiction (soo fast!) to me after BASIC juddering around the screen.

<comment><USER16> Probably worth mentioning the Jupiter Ace here[0] - a ZX81/Spectrum era computer which had Forth in ROM, instead of BASIC which was common at the time. The basic model only had 1K of RAM. I never used one but I remember when it came out, reviewers commented on its speed and memory efficiency.

[0]: [https://en.wikipedia.org/wiki/Jupiter_Ace](https://en.wikipedia.org/wiki/Jupiter_Ace)</comment></comment></comment></comment></comment></comment></comment>


Justin Kan: I'm starting a new startup incubator, Zero-F - <AUTHOR> https://twitter.com/justinkan/status/838857587948834816 <comment><USER2> I'm interested in this guy's stuff, he's got an AMA for this, but everything he posts is through his Whale app which is Apple only and it's been like that for awhile, so is everyone on Android just fucked? Not even web versions available? Frustrating :/

<comment><USER3> I think you can log into the website with twitter and then go here: [https://askwhale.com/add/justinkan](https://askwhale.com/add/justinkan) The link in the twitter post didn't work for me.

//edit: but that link might just be a "Greatest hits" thing or something? Idk. I might go steal an iOS test device from one of my coworkers.

<comment><USER4> I wrote up most of the video's in [https://news.ycombinator.com/item?id=13807203](https://news.ycombinator.com/item?id=13807203) so anyone can ready them.

</comment></comment></comment><comment><USER5> Justin, I love the concept of Whale, but many of us don't have iOs phones. Could you run a more traditional AMA at some point?When will there be a web player or an Android app for Whale? I feel that many people in the early user base for Whale are being alienated here.

<comment><USER6> Sorry - this is really annoying I know. You can watch the videos on the web here [https://askwhale.com/p/5efd87/ama-justin- kan](https://askwhale.com/p/5efd87/ama-justin-kan)

I wish I had a better answer than "we're still figuring things out and I don't want to duplicate work yet", but that's where I'm at. We are a really small team (1 designer, 3 engineers, 1 community manager, 1 ceo, 1 professional snapchatter (me)) so right now we are conserving our meager engineering resources until we really believe that it is worth replicating on Android. But we will eventually.

<comment><USER5> Last time I looked there wasn't a way to view on the web, that at least works for me. Appreciate the reply, good luck on Whale and Zero-F

</comment></comment></comment><comment><USER7> Trying to understand the mission behind this program. The site has no information. With YC, 500, and Techstars it's pretty clear they are very team/founder focused. It would be nice to understand why founders should look at Zero-F and how they can benefit from going through this program.

<comment><USER6> This isn't a YC competitor. YC is the best accelerator out there and there isn't need for another in my opinion.

A year ago I looked at my life and realized I really enjoy and get fulfillment out of three things:

1) learning about new industries and thinking about how technology can improve them

2) developing products and consequently seeing numbers go up (users, revenue, anything really)

3) mentoring people I really enjoy the company of over extended periods of time (years)

Zero-F is my attempt to build a thing where I maximize my ability to do those things. It isn't a program or application based. It's me opportunistically building 1 to 2 startups a year with friends or people in my extended network or even new people. I provide business building insight, product knowledge, capital, recruit talent, and they bring grit.

<comment><USER7> Thanks for the explanation Justin. We met years ago when you just started doing Justin.tv. Excited to see where your next adventure takes you. If I can be of any help please let me know. Happy to provide my unique perspective. :)

</comment></comment></comment><comment><USER8> See also: Justin Kan's attempt at launching a startup competition on Snapchat: [https://justinkan.com/snapchat-pitch- competition-359bf25a44a...](https://justinkan.com/snapchat-pitch- competition-359bf25a44a5) (HN discussion: [https://news.ycombinator.com/item?id=11678286](https://news.ycombinator.com/item?id=11678286))

And the aftermath by the winner of the competion: [https://hackernoon.com/how- to-make-20-000-on-snapchat-and-ge...](https://hackernoon.com/how-to- make-20-000-on-snapchat-and-get-into-y-combinator-2513a7ee371d)

</comment><comment><USER9> I feel like I'm missing some back story here. Why is he leaving YC?

<comment><USER10> And what does F stand for in Zero-F?

<comment><USER11> [1] Zero to Funded. He mentioned it in the AMA.

[1] [https://askwhale.com/q/a9dc38](https://askwhale.com/q/a9dc38)

<comment><USER10> Thank you!

</comment></comment></comment></comment><comment><USER12> Zero-F's emblem is a fox, Zero-Fox given!

</comment><comment><USER13> Link to zero-f, if it exists would help.

<comment><USER14> [https://zero-f.co/](https://zero-f.co/)

</comment></comment><comment><USER15> Looks pretty cool. I really dug JK's writing when he sold Twitch. The whole, _fuck-what-everyone-says-build-yo-shit-they-will-come_ really resonated with me.

I wonder if he's leaving YC because he didn't find what he wanted or maybe something changed that inspired him to go out on his own.

Inspiring to see a fellow Asian American make it.

<comment><USER16> pretty sure justin is chinese-american!

<comment><USER17> I'm _pretty_ sure you're clarifying, not challenging the OP by somehow suggesting Chinese-American isn't Asian-American... right?

<comment><USER15> I thought Justin Kan was Korean but he corrected me saying he was Chinese American and I had to use the AA blanket card to justify feeling proud for an entrepreneur from a different ethnicity because as Korean we are only allowed to feel proud of other Koreans.

<comment><USER6> I married a Korean American and love Korea so there's that if it helps!

<comment><USER15> Big up Justin!

</comment></comment></comment></comment></comment></comment><comment><USER18> W.r.t askwhale.com, seems like it is a mashup of Quora/Reddit and video based Q&A. Given that there is greater friction in video compared to text based Q&A sites, who would be interested in contributing this?

<comment><USER19> Apparently people with iPhones. This feels like forcing an album release on tidal. I get it, you're promoting your product, at the expense of your other product.

</comment></comment><comment><USER20> Zero Fucks?

</comment><comment><USER4> Justin has been amazing for YC and has done a great job promoting entrepreneurship on social media. I wish him all the best. To help everyone better understand this move I transcribed the answers given by Justin in [https://askwhale.com/q/23caaa](https://askwhale.com/q/23caaa)

Q: What's the mission behind Zero-F?

A: Empower entrepreneurs to start amazing startups and get back into building companies more hands-on which I haven't been able to do as much as I'd like to in the past couple of years. I am particularly interested in startups in industries where technology hasn't been applied yet. I think a lot of easy wins have already been taken and my goal is really to focus on industries where you can use tech to innovate their processes and improve efficiency. That's what gets me up every morning and that's what I'm excited about.

Q: Did you raise money for Zero-F?

A: Didn't raise money for it, it's fully self funded right now. So we'll see, maybe one day I'll run out of money and I'll have to beg Nick for an investment. (Asks Nick) What do you think Nick, want to be my first LP? Nick: I think we're in trouble if I'm your first LP.

Q: Can you share with us if you will be the sole investor for all ideas in 0-F or there are others too? Only consumer software or enterprise too?

A: So for new companies that we start through Zero-F, we generally raise money from other funds of mine, other investors that I have a connection with, when it's the right time. That's definitely something we do. It's a mix of startups, not just enterprise or software startups. I have an idea for an enterprise startup right now in the legal space that I'm currently thinking about. So we're always looking for new investors to partner with.

Q: What will you do differently at Zero-F that you couldn't do at YC? I.e. Why leave YC to do this? And why would they invest if you are competing with them?

A: Zero-F is not in competition with yC, we're not opening up applications for start ups. Zero-F is more about a vehicle for me and Nick to co-found start ups with some of my friends, people in my extended networks, people who have worked for me or my friends before, and basically start one or 2 startup opportunistically a year. So there's no program, there's no $150,000, there's no demo day. It's really just about starting startups that I'm interested in industries that I think are interesting where there's innovation to be had by applying technology and so it's very different from YC or 500 Startups or anything like that. I love YC, I think I could work there forever, it was basically like being an university professor and I think it was a really exciting challenge for me but what I really really wanted to do is go back to starting companies myself and so that's why I left.

Q: What are you hoping to enjoy most in this next stage of your journey? Any particular focus on the startups?

A: I think there are 3 things I know I really like in startups and I'm hoping that in this next stage I will get to focus on those 3 things particularly. Number 1: I love learning about new industries and thinking about how technology can be applied to improve them. Number 2: I really like seeing numbers go up, it doesn't matter what but I like iterating on a product or company and seeing something improve wether it's revenue or users. And number 3: I like working closely with a small set of founders to build a business and then mentor them on growing a company over a long period of time. And so I'm hoping with Zero-F, my new vehicle for creating startups I'll be able to focus on those 3 things, and only those 3 things and that's what I'm really excited about.

Q: Why start another incubator? The market seems pretty saturated and YC dominates the market. How will Zero-F differentiate? Also, explain the name!

A: So YC is not an incubator, in fact, PG always hated that whenever anyone would call it an incubator. YC is a seed fund that invests in early stage startups and it takes applications and gets founders from all over the world. What I'm imagining for Zero-F is a really company that help start companies with friends of mine, people in my extended network for ideas that are mine or theirs. It's not a public facing incubator like YC or 500Startups or Techstars, really it's just a vehicle start a few startups opportunistically, probably just one or two a year and mostly things that I'm interested in and interested working on. So I think it quite different from what else is out there, it's more like a startup lab, something like Expa or Betaworks, but even smaller scale, it's just me and Nick over here.

<comment><USER6> Thank you Sytse!

</comment></comment><comment><USER21> I'm really hoping you meant F-Zero. If so, sign me up.

</comment><comment><USER22> Fal-Kan punch!

<comment><USER23> I don't get why you're being downvoted. Great pun. Can't have Zero-F without Captain Falcon.

<comment><USER22> It's a bit esoteric and perhaps adds unwanted levity to the proceedings, so I get it.

Worth the downvotes? Absolutely.

</comment></comment></comment><comment><USER24> Good luck in your new venture</comment>


Decision Node: NewCo or BigCo?? - <AUTHOR>

I recently sold my startup after slaving for close to a decade. It wasn't a home run nor was it a brand name buyer, but I'm not complaining. Was certainly a win and put $$ in my pocket and has given me lots of time to think on what I want to do. Been thinking about my next move, and I'd like to get a better sense of my worth as an employee at a startup or existing big company. I had one angel investor and didn't have much a relationship with any VCs.<p>My hunch is it takes a special kind of hiring manager to understand how a founder can be fully maximized as an employee and some exec search firms are better at this than others. Who out there has experience, what worked, was it too depressing so you turned back to Silicon Valley, etc...? Have you tried meeting with VCs to pitch yourself as an EIR/hired gun, etc...? Looking at job postings doesn't make any sense. <comment><AUTHOR> Really? Nobody wants to comment on this thread?</comment>


DOJ abandons warrantless attempt to read e-mail - <AUTHOR> http://news.cnet.com/8301-13578_3-20002722-38.html

<comment><USER2> What I don't understand is cops usually have no problem finding a judge to sign any kind of warrant, no matter how crazy or wide the scope.

So exactly how wild of a goose-chase are they doing that they can't even find a judge to give them a warrant that they feel the need to skip the process entirely?

Also very bothersome, Yahoo gave them a great deal of info already without any warrant, they just didn't want to give them email that were less than 6 months old.

The emails they want must have been internal to yahoo's system (yahoo to yahoo account) because there is no way you could convince me that the government doesn't have a copy of every email sent via pop3/smtp since 9/11 because they are completely in plain text.

<comment><USER3> 'The emails they want must have been internal to yahoo's system (yahoo to yahoo account) because there is no way you could convince me that the government doesn't have a copy of every email sent via pop3/smtp since 9/11 because they are completely in plain text.'

Maybe I'm just being naive but can someone comment on how accurate this actually is?

<comment><USER4> Very, any email that does not stay on the same network (i.e. yahoo to yahoo, gmail to gmail etc.) is usually transmitted in plaintext and will pass through any one of a number of routers that the NSA is using to sniff traffic.

Shameless plug- a rant by me on the topic of little to no security when communicating on the net, even when using encryption.

[http://my.telegraph.co.uk/dublinclontarf/blog/2010/04/13/cry...](http://my.telegraph.co.uk/dublinclontarf/blog/2010/04/13/cryptography_has_failed)

<comment><USER3> No no I don't mean the feasibility of it I mean the actual accuracy of it: do we have any reason to think the NSA etc. is SAVING every email sent? Beyond sniffing etc.

<comment><USER2> They cannot possibly process that much email in realtime and terabytes of storage is dirt cheap (especially on an endless government spy budget) hence the storage.

I am betting gmail poses a real problem for them because so many people use it, but since one of the google founders has ties to the CIA, you can be sure they have an official backdoor.

<comment><USER3> 'but since one of the google founders has ties to the CIA, you can be sure they have an official backdoor.'

Source? Never heard that...

So they are realtime STORING all that stuff, but not processing it? DOesn't this mean it's constantly growing and eventually will become impossible to process unless they really speed up the processing right?

</comment></comment></comment></comment></comment></comment><comment><USER5> That was quick.

<comment><USER6> Sure, but it feels a lot more like the DoJ is backpedaling to avoid the PR fallout (or worse, from their perspective, legislative reform) if they keep charging ahead with this. It's only a temporary victory.

</comment></comment><comment><USER7> You believe this?

<comment><USER8> Well, they abandon an _above-board_ attempt to do this, certainly. As to whether they're doing it anyway, we can't tell.

</comment></comment><comment><USER9> YAHOO!!!! (HOORAY!)</comment>


Hacker facing an 8-year jail term for exposing vulnerabilities in Magyar Telekom - <AUTHOR> https://cyware.com/news/hacker-uncovers-vulnerabilities-in-magyar-telekoms-network-gets-a-jail-term-of-8-years-56c4d478 <comment><USER2> Some details that as it appeared (in Hungarian) on the Civil Liberties Union blog ( jelenti.blog.hu/2019/01/25/igy_kert_bortont_etikus_hacker_vedencunkre_az_ugyesz ):

(it was translated to English by me, sorry for any mistakes):

\- he was invited to visit Telekom's office (the expenses was on him), and wanted to give them the details

\- he was not convinced by the meeting that they'll solve it (close the doors): tried again, successfully (yep, that's a bit grey hat).

There are several issues not with the hacking, according to the Hungarian Civil Liberties Union:

\- the prosecutors used a way too generic accusation which missed several important details, like [regarding the crime] when, how, etc.

\- the accusation claimed that the hack was done by using the Internet (seriously).

\- they (the prosecutors) offered a deal of "admit the crime == free to leave" but when the guy denied they asked for more prison.

\- the prosecutor stated: "we are not IT people but we know from the media (!) that with Internet and certain competence he could have hidden more of his digital footprints". And the prosecutors didn't asked for expert advisory for more than one an a half year long.

\- they asked for 8 years because the hacker should have been able to disturb a public interest service, though the company claimed that this server/service was not affected any of their customers.

</comment><comment><USER3> Hungarian here (Magyar means Hungarian in our language).

The guy was not sentenced yet, likely won't be, but given how incompetent everyone involved one can not be sure.

Telekom does not want to press charges as far as I know, so despite their gross technical incompetence, at least their they have that going for them.

Hungary recently had a bunch of ethical hackers getting into trouble, but fortunately the people are so outraged at the powers that be trying to jail them that they don't get harmed.

<comment><USER4> > The guy was not sentenced yet, likely won't be, but given how incompetent > everyone involved one can not be sure.

Does the public prosecutor in Hungary have a poor conviction rate? I know nothing about your country, but if I were facing a similar charge in the US I would be _very_ concerned.

<comment><USER5> The public prosecutor actually has a unusually high conviction rate (can't cite a source right now for this), but there was a very similar scandal last year where a similarly young security enthusiast figured out he could buy public transport tickets for any price in the then recently launched web interface of the Budapest public transport company (BKK). He did this simply by editing the form post URL on the order page.

BKK then tried to prosecute him but quickly dropped the case since there was a huge public outrage. The website and the related services has been down ever since the incident.

So this is why people suspect they will drop the case soon again, but as an other commenter already said, they are incompetent and corrupt to the bones, so who knows?

</comment></comment></comment><comment><USER6> > gets a jail term of 8 years

The article says the prosecutor's recommending an 8-year jail term, but since the court hasn't decided on the case — how did the hacker "get" a jail term?

Is the article wrong, or is the Hungarian legal system different from what I'm used to?

<comment><USER7> I think the threat of prosecution in this case is already some form of damage. Even if he is ultimately not convicted, future whitehats will think twice about coming forward because this one was _threathned_ with prosecution, thinking "what if I don't get so lucky?"

<comment><USER8> The smart thing to do, if a company has no public vulnerability bounty program, is to sell the information on the blackmarket instead. This will incentivize all companies to start their bounty program, whilst still getting some cash reward.

<comment><USER9> I don't know about the "sell the information on the blackmarket" part. But uninvited pen-testing seems pretty risky. Maybe it'd be prudent to have an ~anonymous pseudonym for this stuff.

And if you really care about reputation building, you could use an ~anonymous pseudonym plus the sha256 or sha512 hash of some string. If it all works out, you just share the string, and reap the credit.

<comment><USER10> I agree. No need to get way too unethical to make a buck.... Ask for Monero or something if they want the full disclosure before you publicly and anonymously do a full disclosure.

</comment></comment></comment></comment></comment><comment><USER11> This reminds me of the Vtech hacker story. Darknet diaries did an excellent podcast on it [0].

As someone having worked in pentesting, I have mixed feelings about this situation. Whitehat or not, the hacker knew that what he was doing was illegal. Of course this gives the hacker a dilemma, as not disclosing might result in a blackhat exploiting the same vuln.

[0] [https://darknetdiaries.com/episode/2/](https://darknetdiaries.com/episode/2/)

<comment><USER12> The hacker in this case, if they want to do the Right Thing but without any reward, is report it anonymously - they of all people should know how to hide their tracks. Creating a throwaway e-mail address through half a dozen proxies and/or TOR is relatively easy.

<comment><USER13> The hacker did report it anonymously, there's no evidence that the hacker was caught from the email they reported the vulnerabilities from. They of all people should know how hard it is to remain completely untraceable.

</comment></comment></comment><comment><USER14> \- Never do unsolicited pentesting

\- If you do, be very careful about how you report it; must be to a recognised bug bounty program

\- Especially don't do this in a repressive state

<comment><USER15> Since it is major public company serving many Hungarians, it can be arguing that hacker did a public service.

I understand that he did not want to admit _wrongdoing_ , since he believed it should be considered an extenuating circumstance where public interest requires such action.

</comment></comment><comment><USER16> Whenever I hear another case like this, I'm once again reminded of how the mainland Chinese deal with being witnesses to accidents or crimes taking place (as long as they aren't the victim), they simply walk on by as the "reward" for them is often not good, and in many cases they end up getting implicated.

Maybe it's time for solo security researchers to stop being the nice guys. I'm not saying they should start behaving like blackhats, simply that self- preservation must come first and when you are faced with an industry who treats what I'd consider acts of generosity with contempt and legal action, then fuck them.

</comment><comment><USER17> Article with sources: [https://www.zdnet.com/article/white-hat-hacker- discloses-mag...](https://www.zdnet.com/article/white-hat-hacker-discloses- magyar-telekom-vulnerability-faces-jail/)

> the first vulnerability allowed the hacker to obtain an administrator > password through a public-facing service. The second bug allowed him to > "create a test user with administrative privileges."

Translated source article with much more information: [https://translate.google.com/translate?sl=auto&tl=en&u=https...](https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Findex.hu%2Fbelfold%2F2017%2F07%2F26%2Ftelekom_t- systems_biztonsagi_res_nni_etikus_hekker_rendorseg_nni_orizetbe_vetel%2F)

> She browsed and found a user guide in a PDF file on the Telekom website that > contained the IP address of a DNS server. Performed a routine scan for this > IP address and then surprised to find that it was relatively easy to get an > administrator password from here.

</comment><comment><USER18> This is a better article with a better headline:

[https://portswigger.net/daily-swig/hungarian-ethical- hacker-...](https://portswigger.net/daily-swig/hungarian-ethical-hacker-faces- eight-year-prison-sentence)

</comment><comment><USER19> When in a country you reward unethical behavior and you punish ethical behavior you are going to the fall.

This is outrageous and ridiculous. Magyar Telekom is a bunch of crooks anyway, why in western Europe phones plans are so much cheaper?

<comment><USER3> Because Hungary is just a free for all market for every corrupt big corp and organisation that wants easy profits.

Everything costs more than in Western Europe (except rents and services), yet people make 1/6th of the money. Hence why third of the working population left the country.

<comment><USER19> I know, I wrote a couple of articles about Hungary for Jacobin, for those interested:

\- [https://www.jacobinmag.com/2018/03/viktor-orban-hungary- fide...](https://www.jacobinmag.com/2018/03/viktor-orban-hungary-fidesz- authoritarian-opposition)

\- [https://www.jacobinmag.com/2018/04/fidesz-viktor-orban- hunga...](https://www.jacobinmag.com/2018/04/fidesz-viktor-orban-hungarian- elections)

</comment></comment></comment><comment><USER20> Why would you set a precedent for not reporting vulnerabilities ? Are they stupid ? This just means "next time you find something, exploit it or just sell it to someone".</comment>


The Costs of Spying - <AUTHOR> https://www.theatlantic.com/ideas/archive/2020/02/costs-spying/607177/ <comment><USER2> The Register's take on this story: [https://www.theregister.co.uk/2020/02/26/nsa_calllogging_pro...](https://www.theregister.co.uk/2020/02/26/nsa_calllogging_program/)</comment>


What's New In Git 1.8.5 - <AUTHOR> http://blogs.atlassian.com/2013/12/whats-new-git-1-8-5/ <comment><USER2> The changes look good!

Can't help but notice OP's blog platform replaces "\--" (dash-dash) with "–" (U+2013, en dash), even in <span>s meant for code highlight. This prevents straightforward copy-paste of arguments like "\--prune" to console ;-)

<comment><AUTHOR> Hey dexen, I'm the author of the post, yes I've reported the issue before to the internal team in charge of the blogging platform. I'll report it again. I've also been lobbying to move our technical blog to a different technology (I'd love a statically generated solution). Hopefully soon(tm).

<comment><USER3> Since migrating to a new platform might be considerable work you could suggest they install this plugin to disable the em-dash miss-feature: [http://wordpress.org/plugins/disabler/](http://wordpress.org/plugins/disabler/)

<comment><USER4> I believe wrapping the text in <code> tags might be a workaround, though I haven't tested it.

</comment></comment></comment></comment><comment><USER5> was hoping to see the deadly recursive merge disabled as a default and a one step mechanism to revert a branch.

instead a lot of relatively minor things i don't really care about (i'm sure its useful) - also seeing 'something now implemented in C' instead of 'something now 30% faster (because implemented in C)' is slightly worrying because users don't care about implementation details unless you get something else very very wrong...

my issue with recursive merge is that 'works for 90% of linux kernel changes' or whatever it is is just not the same as 'works reliably'.

git fails to meet my minimum requirements for usable source control because of the extreme difficulties I seem to have with undoing a merge if i don't change settings ahead of time (i.e. there is a bug which is a bad choice of defaults). i give it a good go, i get help from the community, i exhaust documentation and google - it doesn't work for me. maybe i don't understand something - i don't want to understand it, i want it to 'just work' and 'be user friendly'.

<comment><USER6> I'd be interested to hear your complaints with git-merge-recursive. Unless your common ancestor is multiple ancestors (eg, criss-cross merges), which I can't imagine is really commmon, it shouldn't differ appreciably from git- merge-resolve except that it can do rename detection.

<comment><USER7> My guess would be the default "fast-forward merge when possible". In this case there is no merge commit. When more is committed on top, you can see no trace of a merge anymore.

</comment></comment></comment><comment><USER8> "While we wait for the next major git release which will bring about some serious updates"

Is this referring to git 1.9? Are there any resources to learn what that will bring?

<comment><USER9> I think that's referring to git 2.0—I get regular warnings when pushing repos about the coming changes. This stack overflow question[1] (which was closed, unfortunately) points to these "what's cooking in git" posts [2], but as far as I can tell, there isn't a really nice walkthrough of the new features yet.

1: [http://stackoverflow.com/questions/16308484/any- information-...](http://stackoverflow.com/questions/16308484/any-information- on-git-2-0)

2:[http://search.gmane.org/?query=%22what%27s+cooking+in+git.gi...](http://search.gmane.org/?query=%22what%27s+cooking+in+git.git%22+%22git+2.0%22&author=Junio+C+Hamano&group=gmane.comp.version- control.git&sort=date)

<comment><USER8> Thanks! As @chbrosso says, these aren't exactly easy to digest, but it's nice to have something to skim through. :-)

</comment></comment></comment><comment><USER10> Yay, now I can stop doing "git fetch && git rebase -p origin/master" and go back to "git pull --rebase".

</comment><comment><USER11> > _HEAD has a new alias, instead of typing four capital letters you can say > "@"_

fwiw you've been able to type "head" for quite a while (forever?). TYPING IN ALL CAPS is a bit of a pain, I agree, but at least for me "head" is somewhere on the same level of typing-complexity as @, possibly easier.

<comment><USER12> Uh, _where_ can you use "head"?

        $ git show head
        fatal: ambiguous argument 'head': unknown revision or path not in the working tree.
        Use '--' to separate paths from revisions, like this:
        'git <command> [<revision>...] -- [<file>...]'
        $ git show head --
        fatal: bad revision 'head'
        $ git version
        git version 184.108.40.206

<comment><USER13> most likely on case-insensitive file systems, like the default HFS+ on the Mac and NTFS on Windows.

EDIT: to expand, reference lookups are filysystem lookups:

        01:42:24 (gh-pages) [bpowers@fina myproject]$ strace git show HEAD 2>&1 | grep HEAD
        execve("/usr/bin/git", ["git", "show", "HEAD"], [/* 79 vars */]) = 0
        lstat(".git/HEAD", {st_mode=S_IFREG|0664, st_size=25, ...}) = 0

EDIT2: formatting

<comment><USER11> Aaah, good point, that's probably the cause. Yeah, this is on a Mac.

</comment></comment></comment></comment><comment><USER14> Sigh, why use "@" for HEAD? The currently checked-out commit should be called ".", just like the current directory. Doesn't this make more sense? A Unix person thinks "." means "this one" or "current".

I only complain because in hg, "." is the equivalent to git's HEAD, and it's already difficult enough for git users to understand any system other than git after they spend time learning its idiosyncratic and inconsistent UI.

<comment><USER15> What's wrong with HEAD anyway? Do we really need to save 3 characters that badly?

git is already scary enough without stuff like

      git show @~3^2^

<comment><USER16> Not just three chars, but three capital chars. I remapped caps lock to be the ctrl key, and didn't put caps lock to another key because I rarely use it anyway. For standard key mappings one still needs to hit caps lock or hold shift while typing. Is the change revolutionary? Will it totally revitalize my workflow? No, but it's a nice-to-have.

As for your scary example, if you don't like using "@" as an alias for HEAD, don't do it. <shrug>

</comment></comment></comment><comment><USER17> Does anyone know if Git 2 is breaking repository compatibility or just command line compatibility?

I remember Linus wanted to add a "generation" counter (empty commit=0, other commits=1+max(parent commits)) to speed up some merges; And I know I would love changes that would make big files properly supported (e.g. the way bup efficiently handles huge files inside a git repo).

<comment><USER12> Only command-line, and only in well-announced ways, such as push.default=simple (which you can set now) and "git add -u" run from a subdirectory being applied globally.</comment></comment>


Specially crafted message will crash iOS and OSX - <AUTHOR> https://blog.malwarebytes.org/mobile-2/2015/05/iphone-crash-what-you-need-to-know/

<comment><AUTHOR> Sending this will also crash the OSX telegram client before the message has a chance to go out. Chrome and other OSX applications also appear to have issues with that string.

       رً ॣ ॣ ॣ لُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ رً ॣ  ॣ ॣ 冗 رً ॣ ॣ ॣ</comment>


Proving the fundamental theorem of arithmetic - <AUTHOR> https://gowers.wordpress.com/2011/11/18/proving-the-fundamental-theorem-of-arithmetic/ <comment><USER2> Just saw Gowers yesterday in the first row of a conference talk given by Peter Scholze about perfectoid spaces. I left after 10 minutes as I was lost after 5 minutes :-)

In my opinion conference talks are just not the right way to spread mathematical knowledge, except if you are deep into the subject matter. That can be seen because after the talk, there is usually just 1 question (maybe 2 questions), out of politeness. Blog articles like this have a much bigger impact!

<comment><USER3> It helps that the fundamental theorem of arithmetic is a significantly more approachable topic than perfectoid spaces :)

</comment></comment><comment><AUTHOR> Follow up to [https://news.ycombinator.com/item?id=11952290](https://news.ycombinator.com/item?id=11952290)

<comment><USER4> Which step in the proof succeeds on the integers, but fails when applied to the ring of {a + b*sqrt(-5)} ?

<comment><USER5> Bezout's theorem fails in that ring.

The particular proof given of Bezout's theorem here uses the fact that modding out the ambient ring by one of its prime (in the sense of not further factorable) elements yields a resulting ring with a prime (in the sense of not further factorable) cardinality, and therefore no nontrivial additive subgroups.

However, in the ring Z[sqrt(-5)], there are irreducible elements such that modding out by them produces a ring with non-prime cardinality; for example, 2 is irreducible in this ring, but there are 4 values mod 2 in this ring. 4 is not a prime cardinal, of course. Thus, the provided proof of Bezout's Theorem can and does fail in this context. [Indeed, if we look at the range of multiplication by 2 on this particular additive group of size 4, we see that it is neither trivially of size 1 nor trivially of size all 4. It is an intermediate subgroup of size 2, which can exist because 4 has an intermediate factor of 2]

The provided proof works in the integers because integers can be lined up with cardinals so that A) integer arithmetic mod n has cardinality corresponding to n, and B) also, factorizations or lack thereof for an integer are the same as for the corresponding cardinal. This ensures that integer arithmetic mod a prime integer has a prime cardinality. This fails in other contexts.

[The proof of Bezout's theorem provided, incidentally, is not my favorite because it generalizes so very little. A nicer proof of Bezout's theorem, in my mind, is via the Euclidean algorithm, which then generalizes to all Euclidean domains (and, with minor modification, slightly beyond those as well, to principal ideal domains axiomatized in a manner analogous to Euclidean domains)]

<comment><USER6> How do you define "prime cardinal" without relying on the definition of prime numbers? "Prime" (as distinct from irreducible elements) doesn't have a clear meaning before you prove the Fundamental Theorem of Arithmetic, does it?

<comment><USER5> I defined it in the relevant way in the post you're responding to (indeed, inbetween the very words "prime" and "cardinal" where I first invoke the concept): the relevant notion is of a cardinal which can't be factored as the (Cartesian) product of cardinals other than 1 and itself. [Yes, people often call this concept "irreducible" instead, but I used "prime" for convenience, and explicitly described what I meant by that.]

This is the concept that is relevant to the provided proof: Gowers argues that, if a group's size is an unfactorable cardinal, then, by Lagrange's Theorem (which tells us |G'| divides |G| whenever G' is a subgroup of G), it has no intermediate subgroups. Thus, if the additive group mod whatever has size an unfactorable cardinal, then every homomorphism into it is either constantly identity or surjective (as its range is a subgroup); accordingly, multiplication by any non-identity element would have to be invertible (modulo whatever), which is the desired instance of Bezout's Theorem.

<comment><USER7> Thanks for clarifying. I was trying to be careful about understanding meaning since the OP was all about not taking obvious things for granted.</comment></comment></comment></comment></comment></comment>


Present one idea at a time and let others build upon it - <AUTHOR> http://sivers.org/1idea <comment><USER2> I understand the sentiment, but I think this over-simplifies things a bit. Often to really appreciate a good idea you need context. Also, often things that seem like good ideas turn out to be bad ideas given context. 217 pages of context is probably excessive on average, but really, sometimes it takes years to appreciate the reason certain things are good ideas or bad ideas.

The idea of context is especially important when presenting your ideas to smart audiences like HN. The reason? Smart people are generally skeptics, and will be quick to dismiss ideas unless you preemptively blow holes through the low hanging counter-arguments that are evident to anyone with some basic domain knowledge. I've seen this time and time again, where readers naturally assume their obvious counter-argument wasn't considered by the original poster -- when it actually was but the poster assumed that _they_ were going to be assumed to have thought of it :) This usually isn't how it works, and results in pages of back-and-forth arguments that could have been skipped with some better context presented up-front.

Edit: The irony on this comment is not lost on me :)

<comment><USER3> I totally agree. Like Einstein's "simple as possible, but not simpler" - it's a challenge to present an idea so succinctly that people actually read it, but not too succinctly to where it's not convincing.

Though maybe the counter-arguments are best dealt with separately - being a separate idea - like the following day saying, "Now let's take the opposite view."?

Context built gradually instead of trying to do it all at once?

<comment><USER2> Yeah using footnotes can work, too (PG style.)

</comment></comment></comment><comment><USER4> My first response to the title, even before I clicked on the link was that it was probably going to be a restatement of the amateur SF writer's error of trying to dole out ideas in their stories. Ideas are plentiful, trying to not put them in stories, apparently because they believe there should be only one or a few ideas per story is one reason most amateurs have a hard time writing good science fiction.

On reading the essay, I realized Sivers had an excellent point, but it was a point about feedback. Presenting one idea at a time makes it easier for readers to give good feedback, and they are therefore more likely to provide it.

I wonder if there is any way to combine the two views? To provide more background and context, with the necessarily larger numbers of ideas being presented, while still getting useful feedback from readers.

I posted a version of this with links here and to Sivers page on my blog at [http://williambswift.blogspot.com/2009/11/many-ideas-or- one-...](http://williambswift.blogspot.com/2009/11/many-ideas-or-one-idea-or- both.html).

</comment><comment><USER3> ... and of course the comments at Hacker News are always the smartest. I love you guys. :-)

<comment><USER5> I love having the articles here and the discussions that arise around them! Usually when I need some sort of inspiration or something to keep me grounded, I'll check out articles on your site. These tw hit home hard: <http://sivers.org/hellyeah> and <http://sivers.org/notwork> .

</comment></comment><comment><USER6> Wow, you are a machine! It's like you are one of those pro-bloggers who are determined to write something new every day, except your posts contain genuine insight. Respect!

<comment><USER3> Thanks!

Very conscious decision made 6 months ago, when I realized that writing these little articles was doing more for me than learning Haskell, going to conferences, or just about anything else.

I've met more brilliant people because of something I've written than because of any conference or party I've attended.

So I re-prioritized to make writing 2nd priority (1st is still my new company), instead of letting them fall to last priority. It means waking up earlier or staying up later, or saying no to many other things, but it's worth it.

<comment><USER7> Can you please elaborate? Just blog comments or Interesting people contacting you to collaborate because you wrote something that resonated with their philosophical tuning fork?</comment></comment></comment>


Ask HN: Require governments to open source their code? - <AUTHOR>

I recently learned that my city's web site [1] was upgraded at a cost of $75,000 [2].
Given the budget, the work described is not impressive. But as a developer, I understand that there are lots of ways a project can become more costly than a set of features would imply.
This story got me thinking about whether it's a good idea to require more transparency with regard to information technology. I would love to see the code that was delivered so I could judge myself whether or not it's worth what was paid.
Does anyone know of any government bodies that require their contractors to open source their work?
I understand that there would be challenges to open sourcing this type of code. I the code wouldn't be designed to be generic enough to run in other environments, and I understand that there are changes that would have to be made in order to obscure sensitive details. But, I do think it would be possible for a government to open source its code base without exposing itself to attack.
As a hacker, would you like to see the code that powers your governments' sites? Would it lead to cost savings and higher quality code?
[1] http://www.louisvilleky.gov/ [2] http://www.wfpl.org/2010/07/21/metro-government-upgrades-website/ <comment><USER2> The code itself would only be one portion of the project price. You may look at code that might only take 1 week to produce, but it may have taken 5 weeks and 4 iterations to get to that point, specifically because the committees in charge did not know how to express their needs.

That's not to say I don't think open sourcing code is a good idea - in general I do. But don't use the code as the sole data point when judging whether it was worth what was paid.

I have done some work for the state of NC, and I took over a project a few years ago that was in a total mess. I had asked to rebuild it, and was told 'no' initially. So the first year dealing with it was basically patching and rewriting and _learning_ how that system was built. It took _far_ longer to understand spaghetti PHP than it would have to just ask what they needed and rebuild it, but there was no trust in me at that point (given what they'd been delivered at that point, I suspect they didn't trust anyone to deliver something moderately decent and usable!) Someone looking at what I'd 'delivered' for $x just looking at the code would have been horrified, but it was not solely my decision.

It might not lead to cost savings directly, but possibly over the long term. Other gov't entities might be able to reuse it and get their own savings, but the original entity might not see any direct savings initially.

I've also been involved using data from a fairly high dollar value NC-based project, and I'm rather appalled at how bad the data I'm given is curated. The entire project has taken years, run well in to the 8 figures, and from the few data points I've interacted with it on, plain shoddy. But... independents and small businesses basically would never be given a chance to work on 'mission critical' stuff, so those projects go to the big consulting houses and shops, who get to milk the taxpayers for years delivering substandard results which few ever even see directly, and fewer would know how to fix. That's what's so frustrating.

That said, open sourcing more govt code is a good idea.

<comment><AUTHOR> I agree that it shouldn't be the sole data point.

For example, one report that I heard said that some hardware was included in the $75,000. That information should be released alongside the code.

As you mention, there are lots of reasons that cause a project to go longer than necessary and become overly expensive.

I think there should be some sort of standard for reporting on these types of projects. A report was compiled at various points during a project could be very useful. I could see such a report including a status update from a project manager, costs to date, costs estimated to be remaining, code produced and impediments. (along with whatever I haven't thought of)

I think we, as technical people, should be pushing for this type of openness, although I'm not sure how to begin.</comment></comment>


EverythingMe closes down despite raising $37.5M - <AUTHOR> http://www.globes.co.il/en/article-everythingme-closes-down-despite-raising-375m-1001076002 <comment><USER2> > The three company founders initially went in a different direction, before > deciding to developing a launcher that would accommodate a completely > different interface on the Android device. The original idea was a search of > applications and the Internet, the results of which are displayed as icons > of the relevant content, such as Wikipedia, IMDB, YouTube, etc., instead of > an ordinary list of links.

I mean, really? They're reinventing the idea of pages of icons (my current launcher) by giving me a revolutionary page of icons? I assume (and hope) I'm missing the point...

</comment><comment><USER3> How do you spend tens of millions of dollars on creating and launching a launcher?

Perhaps they did something else as well, I don't know; I hope they were transparent on their spending – and that the sources are audited.

<comment><USER4> My guess is they spent (at least some of) it on paid customer acquisition. But this is only a guess.

</comment></comment><comment><USER5> Sad thing is that they were able to raise that much money while other companies who have a clear biz model of sales can't raise that kind of money. More buzzwords=more funding

</comment><comment><USER6> We wouldn't need these crappy launchers if we didn't need so many apps.

Sadly, people have been brainwashed into believing that they need different apps to do different things, and this only reinforces the application paradigm.

One day, hopefully soon, there will be a single app (probably the OS) that will be used for 90% of tasks. Shopping, setting up a meeting, reaching a friend and requesting a cab will all be done through a single interface.

<comment><USER7> Well yes, some apps exist because software can't talk to us in our natural language. But I don't think it's true for all of them.

<comment><USER6> What if there was a single app that could communicate in your natural language. Would you use any other app?

<comment><USER7> I don't think that natural language is appropriate interface for all the apps. Think of Instagram, Facebook. It's probably easier to swipe through pictures, or make some other action than say every command out loud. I don't believe in silver bullets.</comment></comment></comment></comment>


So you want to be a trader? - <AUTHOR> http://qoppac.blogspot.com/2015/09/so-you-want-to-be-trader.html <comment><AUTHOR> _" In the olden days it was relatively common for people to begin in the mail room and work their way up to CEO. Exchange floor traders would frequently start as clerks and runners."_

One of the most famous examples: Jesse Livermore[1], whose _Reminiscences of a Stock Operator_ [2] is one of the most recommended trading books ever. (I recommend it too. It's awesome.)

He never climbed the corporate ladder, but did start out writing prices on a blackboard for a brokerage. He went on to become a hugely successful trader, only to lose it all, and repeated this cycle many times.

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

[2] - [https://www.amazon.com/Reminiscences-Stock-Operator-Edwin- Le...](https://www.amazon.com/Reminiscences-Stock-Operator-Edwin- Lef%C3%A8vre/dp/0471770884/)</comment>


Om No! Trouble in paradise with ClojureScript and React.js - <AUTHOR> http://getprismatic.com/story/1413760839515

<comment><USER2> Rather than repeat my response to the solid criticism here I'll link to the reddit conversation where I talk about some of the solutions and pending solutions [https://www.reddit.com/r/Clojure/comments/2jq0cu/om_no_troub...](https://www.reddit.com/r/Clojure/comments/2jq0cu/om_no_trouble_in_paradise_with_clojurescript_and/)

</comment><comment><USER3> I agree. I've had a few troubles with Om, and while dnolen and the community have been super helpful on IRC and lists, there are some basic things that I personally felt trapped by.

\- The inability to cleanly have om components co-exist with a static template, rather than having to render the entire thing using sablono or om/goog is one. The rationale is that multiple roots aren't good for you, but the alternative is to render your entire template within clojurescript code which can be a pain if you're working with someone who thinks in html/css.

\- The API for IResolve is currently in super early alpha, and while there are some examples [1], one of the the recommended solutions [2] is to use NativeStore or Derive, which seems overkill for simpler use cases such as mine.

(It isn't my intention to be _overtly_ critical of a great library - I like it a lot. I've used it to some extent and faced a bunch of issues, which I hope will get resolved over time as the APIs and design become more stable.)

[1] [https://github.com/swannodette/om/blob/master/examples/two_l...](https://github.com/swannodette/om/blob/master/examples/two_lists/src/core.cljs) [2] [https://groups.google.com/forum/#!topic/clojurescript/WCz57-...](https://groups.google.com/forum/#!topic/clojurescript/WCz57-k8leY)

</comment><comment><USER4> [https://hn.algolia.com/?q=trouble+in+paradise+clojurescript#...](https://hn.algolia.com/?q=trouble+in+paradise+clojurescript#!/story/forever/0/trouble%20in%20paradise%20clojurescript)</comment>


Freshly Squeezed: The Truth About Orange Juice in Boxes - <AUTHOR> http://civileats.com/2009/05/06/freshly-squeezed-the-truth-about-orange-juice-in-boxes/ <comment><USER2> Being a east central Florida native, I grew up picking Valencia's off neighborhood trees, before the terrible canker in the 90's forced the state agriculture office to basically bulldoze and burn every non-commercial orange tree in the state.

IMO, the real treat is fresh squeezed _grapefruit_ juice, not orange. Fresh grapefruit juice tastes nothing whatsoever like the stuff they sell in markets, and has a sublime flavor that's both refreshing and delicious.

<comment><USER3> >before the terrible canker in the 90's forced the state agriculture office to basically bulldoze and burn every non-commercial orange tree in the state.

Could you elaborate more on this, or link me to a place where I can read more about it?

<comment><USER4> Was curious about this too. A minute after some quick googling: [https://www.miamiherald.com/news/local/article76614477.html](https://www.miamiherald.com/news/local/article76614477.html)

<comment><USER3> "Citrus canker was first found in the United States in 1910 not far from the Georgia – Florida border. Subsequently, canker was discovered in 1912 in Dade County, more than 400 mi (600 km) away. Beyond Florida, the disease was discovered in the Gulf states and reached as far north as South Carolina. It took more than 20 years to eradicate that outbreak of citrus canker, from 1913 through 1931, $2.5 million in state and private funds were spent to control it—a sum equivalent to $28 million in 2000 dollars.[11] In 26 counties, some 257,745 grove trees and 3,093,110 nursery trees were destroyed by burning. Citrus canker was detected again on the Gulf Coast of Florida in 1986 and declared eradicated in 1994.

The most recent outbreak of citrus canker was discovered in Miami, Dade County, Florida, on Sept. 28, 1995, by Louis Willio Francillon, a Florida Department of Agriculture agronomist. Despite eradication attempts, by late 2005, the disease had been detected in many places distant from the original discovery, for example, in Orange Park, 315 miles (500 km) away. In January 2000, the Florida Department of Agriculture adopted a policy of removing all infected trees and all citrus trees within a 1900-ft radius of an infected tree in both residential areas and commercial groves. Previous to this eradication policy, the department eradicated all citrus trees within 125 ft of an infected one. The program ended in January 2006 following a statement from the USDA that eradication was not feasible"

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

<comment><USER5> Funny, I was picture a terrible old crony in government as the "canker" that made everyone bulldoze their non-commercial trees.

</comment></comment></comment></comment></comment><comment><USER6> The real story here is not that Tropicana is chemically adulterated fruit- derived sugar water produced and stored at industrial scale. The real story is that the USDA lets PepsiCo call this product "juice" even though it's nutritionally indistinguishable from Coca Cola.

<comment><USER7> Even freshly squeezed orange juice with no additives is almost nutritionally indistinguishable from Coca Cola.

<comment><USER8> In Shanghai, I found a vending machine offering fresh-squeezed orange juice. The front of the machine was a window, so after buying a juice you could watch as a few oranges were rolled into a press and crushed. Then you got a sealed cup with the juice in it.

The juice had barely any orange flavor at all. I concluded that fresh-squeezed orange juice is overwhelmingly just water.

This suggests that it is in fact distinguishable from Coca Cola.

<comment><USER9> Trader Joes used to have 2 machines in the late 80s which were Fresh Peanut Butter and Orange Juice. Both machines ground the ingredients fresh on demand. Peanut butter went into little tupperware like containers. OJ went into jugs. It seems all current commenters who might frequent TJs are too young to have experienced these things. The biting tart flavor of fresh squeezed OJ is often what is attempted to be imitated by homestyle or tart labels. Trader joes non pasteurized is still not the same flavor.

<comment><USER10> A lot of grocery stores (Whole Foods comes to mind) have a self-serve machine in the grocery department that squeezes fresh oranges into a plastic bottle for you: [http://c8.alamy.com/comp/JT6NJ6/self-served-orange-juicer- fr...](http://c8.alamy.com/comp/JT6NJ6/self-served-orange-juicer-fresh- squeezed-orange-juice-machine-at-the-JT6NJ6.jpg).

</comment></comment></comment></comment></comment><comment><USER11> Juiced fruits should be considered the same as full sugar soda and self regulated as such.

<comment><USER12> Except fruit juice has health benefits soda doesn't have. Fruit > juice > soda, and the gap between juice and soda is probably as high or higher than fruit and juice.

[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4045306/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4045306/) [https://www.sciencedaily.com/releases/2010/03/100330151949.h...](https://www.sciencedaily.com/releases/2010/03/100330151949.htm) [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3519311/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3519311/)

<comment><USER11> The problem is the sugar load. No amount of nutritional value can justify it. You can get those nutrients elsewhere without the insulin response.

<comment><USER13> I hear that a lot in the US (never elsewhere), but the only people in bad shape are those who abuse fat food and sodas. I've never seen anyone obese from drinking too much fruit juice alone.

<comment><USER11> It is not abuse, it is biochemistry. Your body is extremely efficient at absorbing carbs because in nature they only appear mostly encapsulated in fiber which gates their abortion. If you absorb a large amount of sugar your body has to immediately turn it to fat with insulin or you die. This results in a situation where you have met your caloric needs for the day but you will get very hungry again even though you met your needs. Most people can't deal with that and succumb to the natural desire to eat. The high sugar loading destroys your satiety mechanisms.

<comment><USER14> Your post is very well-written, but fructose does not affect insulin. Fructose is absorbed directly in the gut and converted to starch in the liver.

I don't want to stop the anti-carb echo chamber, though, because it's helped a lot of people.

<comment><USER15> This doesn't sound right.

The Wikipedia entry for fructose[1] has this to say:

 _Excessive consumption of fructose may contribute to insulin resistance, obesity, elevated LDL cholesterol and triglycerides, leading to metabolic syndrome, type 2 diabetes and cardiovascular disease._

So it would appear fructose does cause an insulin response.

However, it then goes on to say:

 _Uptake of fructose_ by the liver _is not regulated by insulin. However, insulin is capable of increasing the abundance and functional activity of GLUT5 in skeletal muscle cells._ (emphasis mine)

 _GLUT5 is also expressed in skeletal muscle,testis, kidney, fat tissue (adipocytes), and brain._ [2]

1\. [https://en.wikipedia.org/wiki/Fructose](https://en.wikipedia.org/wiki/Fructose)

2\. [https://en.wikipedia.org/wiki/GLUT5](https://en.wikipedia.org/wiki/GLUT5)

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> (2009), and doesn't seem to differentiate flash-pasteurized options like Odwalla and Costco's brand, which have a taste much closer to fresh-squeezed. I'm guessing those products omit the deoxygenation and flavor enhancement described.

<comment><USER13> Didn't someone died drinking odwalla because of exactly this?

<comment><USER17> "Following the E.coli outbreak, an outbreak that was caused by Odwalla not following proper sanitary procedures that caused the death of at least one child, Odwalla adopted flash pasteurization and other sanitization procedures."

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

</comment></comment></comment><comment><USER18> I grew up on a small orange farm in SoCal and have never heard of a Californian saying Florida oranges were better. We could get almost year round oranges locally so I'm not really sure why the author would inject that Californians would say Florida is better. We also grew navels and valencias. The navels were amazing for fresh juice if you drink it right away.

If you really want to treat yourself, go find some Ojai pixies. So delish.

<comment><USER19> Fresh oranges are good no matter where they are grown.

I too grew up in SoCal and remember eating backyard grown oranges as a kid - nothing is better than a fresh orange, I dont bother with boxed juice most of the time, I'd rather eat the fruit.

</comment></comment><comment><USER20> > But Navels have a lackluster flavor compared to the Valencia

I disagree with that. Valencia was a good old variety from the 'blancas' group of oranges, but is not the best variety. There are even better Valencia oranges (the newer "Valencia seedless " delta and midnight varieties for example). And many navels score higher for taste also than Valencia.

<comment><USER21> Yes, where I'm from (Australia) navel oranges are considered the premium eating orange.

</comment></comment><comment><USER22> I'm fortunate to live by local Florida orange growers. Nothing like juice made from Valencia Oranges.

The economics of Oranges and juice are fascinating. In Florida, we had a major outbreak of citrus canker that made most of the oranges grown here unsuitable for sale by USDA standards (still safe for consumption). So, off to the juice factory to be stored in those massive vats.

<comment><USER23> interesting. in SoCal there are a lot of urban citrus trees growing amongst the houses and apartments, including Valencia oranges. most of the time, the oranges are a bit on the tart side, but there are some sweet ones here and there. IDK what makes the difference. maybe sun exposure on the tree, or more cold weather in a given year. in any case, i'm surprised at how many go to waste.

... which leads to my question: what happened with all the citrus greening disease in Florida? i heard it had destroyed a lot of trees. have they found a good way to combat that?

<comment><USER24> Sweet citrus needs heat. You can grow sweeter fruit farther from the coast. If you're near the coast, plant it in an area that collects heat.

Citrus needs a lot of fertilizer. I finally did the calculations one year and I was astounded at how much nitrogen I needed to apply. Once I did, I got amazing yields. Micronutrients are important too, but man, that nitrogen. In socal, stick to an acidifying source like ammonium sulfate or cottonseed hulls.

<comment><USER20> Some Citrus are much hardier than another. Tangerines, the fruit that gave its sweetness to oranges are much hardier (orange is an hybrid, it does not exist in nature).

Grapefruits suffer even more with cold than oranges

</comment></comment></comment></comment><comment><USER25> It's interesting the degree to which people will defend their fruit juice drinking in this thread. I wonder if it's a mild form of addiction.

I used to drink a lot of OJ when I was still under the illusion it was healthy to do so. Simply stopping that I lost about 15 pounds without changing anything else. It was tough at first, I really craved it and it was a daily habit. It's turned out to be the biggest health improvement I've made in recent years.

<comment><USER26> It's crazy the number of really smart people who are steadfast in their belief that fruit is good. It's non-stop propangda starting at birth, direct from the mothers mouth.

I wonder where this meme started and why? I cant imagine 'big fruit' is that big or sinister.

<comment><USER27> > I cant imagine 'big fruit' is that big or sinister.

Are you familiar with the phrase "banana republic" and it's origin?

Big fruit is, historically, not any less sinister than big oil, and, while less influential, powerful enough to be a major international force, and drive wars and major power policy.

<comment><USER26> Wow, yes, good point.

</comment></comment></comment></comment><comment><USER28> I grew up in the US, but my wife, inlaws did not. I have a daughter, who is only 2. Sams Club started offering juicing at the store last year. You see them fill up a machine w/ oranges and it cuts, grinds, and does whatever...and out comes fresh juice.

Maybe me having grown up on American sugary substance, my palate has gotten worse. But my wife, inlaws definitely prefer the fresh one when I do a blind taste test. Me...I'm just like meh, no difference, just get me the box one (which is like 1/3rd the cost). My 2 year old...that's the only one she'd drink. She did not touch the box juice before, and I was surprised she liked the fresh one, and asked for more.

<comment><USER29> > _Maybe me having grown up on American sugary substance, my palate has gotten > worse._

Serious question: how is your sense of smell?

<comment><USER28> My smell is pretty good. Taste...meh.

Example: Things that my wife feel is salty, like can soup, I don't give a second thought to.

<comment><USER29> Hmm, well that's quite interesting then, because the ability to notice nuanced flavours should have more to do with the _smell_ of food than whether the taste buds are desensitized or not.

If your sense of smell is still good, it is very likely that you _do_ taste all of these things, and the problem is more one of attention. The simple thing to do is to train that. Simply eating more slowly and trying to focus on what you smell when chewing should already make the flavours noticeable to the brain. It is easier if your nose does not have to "compete for attention" with the other senses, so closing your eyes will help, as will being in a noise- free environment.

As for the taste, if you don't notice salty soup your taste buds are indeed likely t obe desensitized. But even if you "grew up" on food too rich in salt and sugar, that not a permanent thing. You could try a kind of "taste detoxing" month - reducing salt/sugar intake to essentials for a while by setting strict rules to what kinds of sugars are allowed. It's hard for various reasons, but it works - WheezyWaiter made a very entertaining and IMO "neutral" video showing his experience trying it[0].

So you should be able to address both if you want. I recommend it! In general, getting in touch with one's senses is an enriching and fun experience (not just for tasting food).

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

</comment></comment></comment></comment><comment><USER30> Good advice, as far as it goes:

>try something new for breakfast: a whole Florida Valencia orange ...

Usual way to do this is to slice into wedges and bite against the inside of the peel, leaving much of the pulp attached.

An easier, less wasteful way: Using a sharp, heavy knife, slice patches off both stem and blossom ends, down to the pulp. Halve along the equator and lay equator-side down on a cutting board. Now "shave" off patches of the peel with short downward strokes, rotating the orange half frequently to maintain an easy cutting angle.

Finish by cutting into bite-size pieces, and grab yourself a fork. Squeeze a fresh Key lime over the top, for extra flavor complexity.

</comment><comment><USER31> If you haven't tried fresh carrot juice, you don't know what you're missing.

I got myself this cheap machine for that purpose:

[https://duckduckgo.com/?q=mean+juice+machine&t=chromeos&iax=...](https://duckduckgo.com/?q=mean+juice+machine&t=chromeos&iax=images&ia=images&iai=http%3A%2F%2Fimages.bidorbuy.co.za%2Fuser_images%2F727%2F1116727%2F1116727_130421213643_IMG_4197.jpg)

</comment><comment><USER32> If you can get your hands on a pineapple orange, they are truly Florida's finest IMHO. Also they were synonymous with juice oranges in earlier times before they switched to Valencia oranges. Unfortunately the trees are very susceptible to disease, or so I hear.

</comment><comment><USER33> Probably still rings true in 2019, but I think it should have a (2009) tag behind the title.

</comment><comment><USER34> is the industrial food era about to fade ?

</comment><comment><USER35> Offtopic. I recently bought a juicer. But turns out that after drinking one glass of fresh orange juice, my face turns pale, and I start sweating. It's nothing serious (I hope), but curious if anyone can recognize/explain this phenomenon? I have no such effect when eating large amounts of sugar. And I have no known allergies (recently tested in the hospital for another issue).

<comment> Y-bar Possibly stupid question: Did you thoroughly clean and wash the juicer first? Might have been some residue from manufacturing.

<comment><USER36> also not to forget the insecticide residues on the oranges themselves</comment></comment></comment>


Regenerative Breakthrough in Subway Cars Could Boost Battery Industry - <AUTHOR> http://earthandindustry.com/2010/10/regenerative-breakthrough-could-grow-battery-business/

<comment><USER2> Regenerative braking in subways almost seems like a no-brainer. maybe this will drive some movement in the price of li-ion batteries.</comment>


Open Source Alternatives to VSCode - <AUTHOR> https://opensource.com/article/20/6/open-source-alternatives-vs-code <comment><AUTHOR> > Microsoft released VS Code as open source, but the version you download from > Microsoft is not open source. However, you have several options for using VS > Code as open source or selecting one of its open source alternatives.

It's an interesting argument to make.

> VS Code's source code is available on GitHub. Yet when you download the VS > Code application from Microsoft, you'll find that your download is licensed > under the Microsoft Software License. This isn't an open source license. The > difference is in the build process.</comment>