Jolie Rouge


all ur parentheses Я belong to me


Managing your own git server

For work I need to use git to manage various aspects of client projects, and because the code is proprietary, I have to manage a private git system. The way you do this is to create a user called git and to setup your authorized keys for that user. Then you make sure the user is using the git-shell with “chsh git -s $(which git-shell)” and make sure that you echo $(which git-shell) >> /etc/shells.

On my local machine I have a script like so:

#!/bin/bash
mkdir -p $1
cd $1

The difference between a Tech Company and an Advertising Agency

You might think this is a no-brainer, but in today’s market, people are consistently incapable of distinguishing between the two. At a certain point, let’s say in the early 2000s some companies operating on the internet came up with the single greatest market innovation in decades. No, it wasn’t new technology, it was a new idea.

If you could invest in and build a service, give it away for “free”, then you could create a dedicated viewer base, which would be your actual product. This was the point where factory farming met internet services. Cows get fed, watered, in some places they even get massages. The whole point of doing that, feeding, watering, massaging – is to fatten them up to be consumed.

It was a masterful idea, it was brilliant, and genius. Today you have companies like Google $GOOGL, Facebook $FB, Twitter $TWTR, and even companies like Apple $AAPL, which masquerade as tech companies, but are really just advertising agencies. Instead of targeting advertisement of their product to a wider consumer audience, these companies turn consumers into the consumed, and have a B2B model of selling their consumer livestock to the highest bidder.

Think about it. What has $GOOGL ever really done or invented? The simple answer is: nothing. Nothing that google did was particularly innovative. Networking a bunch of computers together for distributed computing was already a thing people had done. I was there when $GOOGL won the search engine wars. The idea google sold to users was not that their search was particularly the best, but that they didn’t allow companies to pay for placement in search rankings. We all see how today, they’ve reversed that position (though they kindly delineate between paid placement etc.)

I don’t consider this a problem in and of itself. I’m not anti-advertising. I simply find it ironic that 15 years ago, what all of us thought was the shining gold star deserving point for Google has essentially been turned on its head: once it won the search wars, it essentially did what every Eyeore said it would do.

Why Jim Chanos wants to tank DNKN Dunkin’ Brands Stock Price

Jim Chanos took to CNBC on earnings day for $DNKN to reveal to the market that he short DNKN. Uh…he is short $DNKN, for 12 months. Being early is the same as being wrong.

Jeez, I wonder why he did that? He did it cause he’s in the hole, and if $DNKN goes any higher, he might get a margin call. He was in the money for 5 months, but wrong for 7 months. $DNKN is now trading SUBSTANTIALLY higher than his entry price would have been.

That’s if Jim Chanos is telling the truth, or acting out of desperation. He might just be misdirecting.

Now, it might actually be that $DNKN will go down. But that’s not genius, that’s market manipulation.

The takeaway is:

Scheme – Recursion Templates

If you haven’t had the chance, you really should pick up a copy of Common Lisp: A gentle introduction to symbolic computation by David Touretzky, in there you will find a series of “templates” for recursion. Consider these like tools in you toolbox.

The following is a presentation of these “recursion templates” in Scheme code with generous examples. Not as clumsy or imprecise as a for loop, they are elegant weapons, from a more civilized era.

Double-Test Tail Recursion

This template is a simple search recursion across a list.

(define (has-odd? lst)