HNHacker News
TopNewBestAskShowJobs

ruggeri

641 karma · joined August 11, 2011

I was a founder at App Academy (http://www.appacademy.io), an immersive software engineering course. We were the first program in the space to use income share agreements, where we were owed tuition only when our students found work as software engineers.

I developed the original curriculum, taught the course, and trained several hundred students who subsequently became software engineers. It was very fun, and a privilege to work with so many talented and highly motivated students.

If you want to reach me, my email is ruggeri@self-loop.com.

submissionscomments
ruggeri··on Ask HN: What scientific phenomenon do you wish someone would explain better?
I found Quantum Computing Without The Physics epicly helpful. https://arxiv.org/abs/1708.03684

It explains in terms a computer scientist can understand. As in: it sets out a computational model and explores it, regardless whether we can physically realize that machine.

Hope this helps!

ruggeri··on 1.5M Packages a Day Bring Chaos to NYC Streets
This story about a delivery company that thought they were negotiating their parking tickets is hilarious:

https://www.nytimes.com/2017/05/09/nyregion/price-of-a-parki...

ruggeri··on Chile unveils Patagonian Route of Parks hiking trail
"""

To flip the scenario: How would you feel if Jack Ma had bought Yosemite in 1991, set up the valley as a private retreat, lived down in the Ahwahnee until his death, and had his widow donate it to the federal government?

"""

If the government had never set aside Yosemite as a park, and it had been private land that Jack Ma bought, I would be thankful for him to donate it.

It would be terrible conservation policy to rely on private individuals to donate land. But if people do, I would be thankful.

The fact that Jack Ma is a Chinese national feels like an irrelevant distraction. Why would that affect my gratitude?

ruggeri··on [dead]
I just wanted to mention Bitcoin for the Befuddled. That book helped me so much to understand Bitcoin.

It's also really well written, and the cartoons are super cute. Love love love.

https://www.nostarch.com/bitcoinforthebefuddled

ruggeri··on Understanding Uber’s Bleak Operating Economics
(I hope this comment is useful. Perhaps I am just confused by the article).

Interesting article. The article emphasizes that the $2B loss that Uber runs is effectively a subsidy for riders. But that isn’t necessarily necessarily 100% true. If Uber loses $2B/yr because it pours $2B in a hole and sets in on fire, that isn’t a subsidy to riders. If that’s the case, then Uber can stop losing money simply by stopping doing that.

What percentage of the $2B is spent on growth (minus subsidy to ride cost; e.g., advertising) which can be shut off eventually? What percentage is spent on software, which is a fixed cost and actually infinitely scalable? What percentage of engineering headcount can be laid off/replaced with cheaper people as the service approaches feature completion?

Uber spends about $2.1B in sales and operating expenses. I don’t know what the breakdown is inside these. But if it can turn off some of those expenses as growth slows, and if others are fixed as it grows, then is there no hope?

The article doesn’t give Uber enough credit for offering a definitely superior product, IMHO. Uber doesn’t necessarily need to be price competitive with previously existing companies, which were garbage. The accountability of Uber drivers, the ability to call a car to a specific location within minutes, these are things that, when I lived in Chicago, simply did not exist at all.

That said, there’s a limit to how much Uber can charge extra. If it needs to charge double the prices of previously existing competitors, then the extra service isn’t worth it, and Uber wouldn’t be worth anything.

I don’t understand how Uber could possibly need to charge that much more than existing companies. Yes, it misses out on the “fleet effect;” but if the largest cost goes to driver compensation, the economy of running a fleet is maybe a small percentage of overall costs. Yes, Uber needs to build and maintain software; but that ought to be a fixed cost (and mostly in initial years!).

I guess it comes down to this: I don’t understand the contention that Uber has no meaningful scale economies (the software, right?) or how it could be possible that Uber’s model needs to cost significantly more than pre-existing competitors. Since I can’t see inside of what Uber spends its revenue on, I don’t know how much it would need to raise its current prices. But if Uber costs, say, 10% more than pre-existing taxi companies, I would still expect to be worth >>$0. I can’t speak to $70B.

(Also, I offer no opinion on long-term defensibility of Uber's business to new entrants).

ruggeri··on Cal – Display a Calendar in Your Terminal
Killer feature of gcal for me is that by default it highlights the current day. Didn't know about `gcal .`, which is very convenient to know; I used to do `gcal 2016` if I needed to see prev/next months.
ruggeri··on Performance of green threads and why it matters
One difference is that inlining is a safe optimization in most contexts.

Parallelizing a goroutine is not safe if the goroutine shares memory. Obviously that's not the default Go style, but sometimes sharing state is unavoidable.

So that would be one point in favor of different syntax.

ruggeri··on Serializable, Lockless, Distributed: Isolation in CockroachDB
I just wanted to thank the team for this writeup. I've been excited to read it since the last post several months back. This was definitely very useful, and very clearly written.

So many thanks!

ruggeri··on San Francisco Home Prices Fell for the First Time in Four Years in March
https://en.wikipedia.org/wiki/Short_sale_(real_estate)
ruggeri··on Is the World Ready for a Guaranteed Basic Income?
The orthodox theory says that, in a competitive marketplace, producers should not be able to "capture" gains in the wealth of consumers. If prices of a good rise, it's because consumers are purchasing more of the good, and the good has increasing marginal cost to produce. (I ignore some 2nd-order effects related to wages as a production cost).

That's the orthodox theory. You shouldn't buy it wholesale.

On the other hand, it would be a very heterodox environment indeed if producers were able to steal all the increases in wealth from consumers. That could only happen in an environment of no competition, not imperfect competition. Or an environment with 100% occupancy and no ability to build more units of housing.

Also, there would need to be no substitutes for the good. For instance, that people couldn't move between cities.

Surely the game is, to some extent, rigged. But can it be rigged so badly that it is possible to believe that transferring wealth from richer to poorer will not lead to an increase in the purchasing power of poorer people?

I don't have a decided opinion on guaranteed minimum income, but to deny that it would have a marked effect on purchasing power of the recipients of the wealth requires one to posit a truly exceptional economic theory. To attack minimum income on its efficacy of all things: that is either an ill-considered or truly radical view.

If minimum income can't help, what possibly could? The only option left would be the confiscation and redistribution of capital.

ruggeri··on How to stop functional programming
With great comedy, you never know if they're being serious...
ruggeri··on A resizable concurrent map
When this last came up I started looking into Split-Ordered Lists, which are fascinating.

http://www.cs.tau.ac.il/~afek/SplitOrderListHashSS03.pdf

ruggeri··on How CockroachDB Does Distributed, Atomic Transactions
The writeup mentions that concurrent attempts to update a row will be discussed in a future post. The simplified discussion here says that a writer who encounters a write intent of an uncommitted transaction aborts the concurrent transaction.

I believe also that non-repeatable reads would be a potential problem. A transaction could read a row, then read it a second time; if a concurrent, committed transaction mutated the row, the repeated read will return a different result.

I believe that both these problems would be solved by MVCC which I suspect is the next blog post.

But I'm not super great at distributed DB stuff, so please correct me if I've misunderstood!

ruggeri··on Computer scientists prove that a 40-year-old algorithm is optimal
Am I reading this wrong? The title is wrong, right?

The paper says that if a strongly sub-quadratic solution exists than the exponential time hypothesis (that SAT cannot be solved in subexponential time) is invalidated.

That's very interesting, but it's not a proof that no strongly sub-quadratic solution exists for SED.

Note that exponential time hypothesis is strictly stronger than P!=NP. Even if SAT can't be solved in poly time, that doesn't mean it can't be solved in subexponential time. There are functions that lie between polynomial and exponential...

Of course, the paper was careful to explain it, but the media summary...

Edit: I was interested to learn about the notion of strongly quadratic; there are O(n^2/log n) solutions to SED, but this paper is casting doubt on solutions with time complexity O(n^(2-delta)) for any delta > 0. Another commenter mentioned a method to solve SED like this.

ruggeri··on BitTorrent's Maelstrom browser enters open beta
Yes, I do not trust any BitTorrent software. I wasn't being careful at installation and was shocked to find uTorrent changed my default search engine and added a bunch of bookmarks. I wasn't even aware it was developed by BitTorrent.

On the positive side: Transmission works great!

ruggeri··on A mysterious connection between number theory, algebra and string theory?
Kinda both, right? Mathematics is a human-created formalism inspired by, and intended to explain, the natural world.

Mathematics is not the real world; it's a map, not the territory. But of course it's not surprising if a map resembles the real world...

ruggeri··on The Lost Art of C Structure Packing
The article says throughout that sorting the fields in order of decreasing alignment requirement (i.e., size) minimizes slop. The proof for this is pretty straightforward. The article also discusses why you might not do this (e.g., structures might try to match layout of memory mapped devices).

Rudeness is a choice you make, by the way. You can change your behavior.

ruggeri··on Sortie en mer – A trip out to sea
I want to watch, but can't transfer fast enough. Therefore:

wget https://s3-eu-west-1.amazonaws.com/guy-cotten/videos/guy_cot...

Hope that helps someone.

ruggeri··on What Happens When a Restaurant Dies
What the hell are you talking about? Safe as in physical safety?
ruggeri··on Research into psychedelics, shut down for decades, is yielding results
Alan Watts said that, if you want an interesting person to read about and haven't yet :-)
ruggeri··on Doing Business in Japan
I think this article about Japanese companies' aversion to layoffs was fascinating when I read it a little while back:

http://www.nytimes.com/2013/08/17/business/global/layoffs-il...

ruggeri··on Square Raises $150M at a $6B Valuation
Hopefully c <= 1 :-)
ruggeri··on On the foolishness of “natural language programming”
Haha, the first thing I thought was that this was Dijkstra.

UTexas + "Foolishness" => Dijkstra.

ruggeri··on Dijkstra’s algorithm and the Fibonacci heap
Even without randomization of pivots expected run time is O(n log n). If the order of the input data is random, I don't believe randomizing pivots changes the distribution of running times.

What changes is that one very common permutation of data (ascending data) does not have O(n * 2) performance.

ruggeri··on Dijkstra’s algorithm and the Fibonacci heap
Strictly speaking, it is not true that shuffling first avoids the worst case. Given a deterministic shuffling function, some permutation of input needs to shuffle to sorted order, which will again trigger the worst case.

Of course, shuffling is still potentially helpful because ascending/descending order is often common in many applications.

ruggeri··on Dijkstra’s algorithm and the Fibonacci heap
Cool article.

Dijkstra's algorithm factors into two components: (1) time spent selecting best paths and (2) time spent updating the best currently known paths.

In a naive implementation, a best path to every unvisited vertex is kept. Selection of a best path to a vertex v_0 is made by a linear scan of the paths (O(V) each time). Locking in a path causes us to possibly update paths to every vertex v_1 that is touched by an edge from v_0 (constant time per out edge of v_0).

Overall, time complexity is O(|V||V|) selecting paths, and O(|E|) updating paths. Since |E| is bounded by |V|(|V| - 1), the time is O(|V| |V|) (insensitive to density).

Using a min-heap to store best known paths, we spend O(log(|V|)) time selecting each path, but an update takes O(log(|V|)). This means the total time complexity is O(|V|log(|V|) + |E|log(|V|)).

In the case of dense graphs, this is worse: O(|V| |V| log(|V|)). We're trying to keep the heap organized to allow fast extract, but there are too many updates and the heap is changing too much iteration to iteration. OTOH, if the grpah is sparse, |E| is in O(|V|), so we reduce the time complexity to O(|V|log(|V|)).

A fib heap keeps the same extract time, but updates are O(1) amortized. Thus the time complexity is O(|V| log(|V|) + |E|). If the graph is dense, this is O(|V| |V|) (as good as naive). If the graph is sparse, this is O(|V|log(|V|)) (as good as bin heap).

This is useful if we do not know whether the graph is sparse or dense. However, I am not sure what the constants are on Fib heaps. If you know the density of the graph, I certainly expect using the appropriate of the first two ways is superior. Another thought: you could always speculatively execute both algorithms and see which finishes first :P

Anyway, I hope that's not too boring of me.

Edit: Grr. Asterisks.

ruggeri··on The Kentucky Derby Is Decadent and Depraved (1970)
> One of God's own prototypes. A high-powered mutant of some kind never even considered for mass production. Too weird to live, and too rare to die. —Hunter S. Thompson, Rolling Stone December 15, 1977, eventually part of Fear and Loathing in Las Vegas.

http://en.wikipedia.org/wiki/Oscar_Zeta_Acosta

ruggeri··on A free full-time 7-week coding course in London
We (App Academy) did a free iOS course in 2013. It was fun and helped kick-start our business. I hope you have the same experience!

We broke even because we were able to collect some placement fees from companies that hired students. Even if we hadn't, the financial risk was not super high, since our time was the biggest investment.

If people from the US are interested in a similar program, you might want to look at [App Academy](http://appacademy.io). Our class is no longer truly free, but beside a refundable deposit, we don't collect any tuition until a graduate finds a job (and none if they don't).

ruggeri··on Mozilla Moving Forward
I like how the board continues to take no responsibility for the situation they created. Right or wrong that Eich was fired, this was a foreseeable event; Eich's prior contribution was well-known.

This whole thing really doesn't make me feel good about Mitchell Baker or Reid Hoffman.

ruggeri··on Start-up NY
"One for you nineteen for me"
← PreviousPage 3 of 6Next →