Profile cover photo
Profile photo
Elvis Joel D'Souza
Machine Learning & Information Retrieval Enthusiast. Loves chocolate. Loves startups.
Machine Learning & Information Retrieval Enthusiast. Loves chocolate. Loves startups.

Elvis's posts

Post has attachment

Post has shared content
I flipped the developer switch on my $249 Chromebook, downloaded crouton, typed in a few commands, waited several minutes, and now I'm running a full version of Ubuntu alongside stock Chrome OS.

My Chromebook is no longer just a content-consumption device, as I now have access to the full suite of GNU/Linux programs that I'm already used to using. I immediately installed Emacs, GCC, gEDA, and a cross-compiler so I can use it to design circuit boards and program microcontrollers.

There is no dual booting involved, nor am I paying the performance/memory hit of running an entire OS in a virtual machine (it shares its kernel with Chrome OS). The Chromebook still cold boots in just a few seconds, wakes from sleep instantly, and receives its updates like normal. Chrome OS handles the network, power management, and other hardware like a champ, the only difference being that if I want to do something more than just surf the web, I can hold down a few keys, and instantly switch between Chrome OS and Ubuntu.

I can't believe that I ever considered buying an expensive MacBook Air and installing GNU/Linux on it, when for just the price of the AppleCare Protection Plan alone, I was able to buy an entire (brand new) laptop that got me the same end result with minimal effort.

Post has shared content

Post has shared content
Wanted: experts in Twisted, Tornado, asyncore or other Python async APIs (greenlets/gevent, Stackless, libevent all welcome!). In we're trying to hash out the async API for the future (for the Python stdlib) and we need input from expert users of the current generation of async APIs.

Post has shared content
Washington Post is hanging out with 9 people right now in a live Hangout On Air! #hangoutsonairmartin atjetplab, Aaron Stehura, tracy atjetplab, steve atjetplab, Scott McCloskey, Emi Kolawole, Marc Kaufman, Jonathan Grinblat, and Priscilla Vega

Post has shared content
A lesson in shortcuts.

Long ago, as the design of the Unix file system was being worked out, the entries . and .. appeared, to make navigation easier. I'm not sure but I believe .. went in during the Version 2 rewrite, when the file system became hierarchical (it had a very different structure early on).  When one typed ls, however, these files appeared, so either Ken or Dennis added a simple test to the program. It was in assembler then, but the code in question was equivalent to something like this:
   if (name[0] == '.') continue;
This statement was a little shorter than what it should have been, which is
   if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;
but hey, it was easy.

Two things resulted.

First, a bad precedent was set. A lot of other lazy programmers introduced bugs by making the same simplification. Actual files beginning with periods are often skipped when they should be counted.

Second, and much worse, the idea of a "hidden" or "dot" file was created. As a consequence, more lazy programmers started dropping files into everyone's home directory. I don't have all that much stuff installed on the machine I'm using to type this, but my home directory has about a hundred dot files and I don't even know what most of them are or whether they're still needed. Every file name evaluation that goes through my home directory is slowed down by this accumulated sludge.

I'm pretty sure the concept of a hidden file was an unintended consequence. It was certainly a mistake.

How many bugs and wasted CPU cycles and instances of human frustration (not to mention bad design) have resulted from that one small shortcut about  40 years ago?

Keep that in mind next time you want to cut a corner in your code.

(For those who object that dot files serve a purpose, I don't dispute that but counter that it's the files that serve the purpose, not the convention for their names. They could just as easily be in $HOME/cfg or $HOME/lib, which is what we did in Plan 9, which had no dot files. Lessons can be learned.)

Post has shared content

Post has shared content
Judge on the Oracle vs Google case has written code in Java, educates the Oracle lawyer #win
As a counter to this, I present exhibit A: Judge Alsup from the Oracle vs Google case, from the GrokLaw transcript today:

Alsup tells Boies Oracle's only doing damages because they haven't won anything else and they're in a fix. "This is a fishing expedition."...
Alsup says he's been writing code since this trial started. He's written rangeCheck code a "100 times". Incredulous Oracle claiming damages...

Yes, the Judge in the case has been learning Java code. :)

Now here is a later followup where the Judge slams Oracle:

Judge: We heard the testimony of Mr. Bloch. I couldn't have told you the first thing about Java before this problem. I have done, and still do, a significant amount of programming in other languages. I've written blocks of code like rangeCheck a hundred times before. I could do it, you could do it. The idea that someone would copy that when they could do it themselves just as fast, it was an accident. There's no way you could say that was speeding them along to the marketplace. You're one of the best lawyers in America, how could you even make that kind of argument?

Oracle: I want to come back to rangeCheck.

Judge: rangeCheck! All it does is make sure the numbers you're inputting are within a range, and gives them some sort of exceptional treatment. That witness, when he said a high school student could do it-- ---

Maybe it's a good idea for people to learn programming to make better judges and juries if our whole society is going to be based on information and computing in the future?

Post has shared content
Although the actual subject of the shared post (Facebook selectively blocking comments based on content/sentiment) is interesting, a quote on the importance of aggregators caught my eye -

"I no longer visit blogs. I watch Twitter, Google+, and Facebook, along with Hacker News, Techmeme, Quora. These are the new news sources."

- Robert Scoble
Facebook is keeping you from being an asshat in comments

OK, so I go over to +Max Woolf's content area on Facebook, and respond to his post about +PandoDaily, (which is here: ) but Facebook keeps me from posting the below comment. It gave me this error. Looks like Facebook is doing content analysis in real time before it will let you post and is looking to keep the service "happy." I sure wonder now what kind of algorithms Facebook is running on content.

Has anyone ever seen anything like this before? I haven't, and I've posted tons of comments to Facebook.

My comment?


I'm so glad I didn't start a media business. It's actually really tough to get new and interesting stories and to avoid falling into drama. People forget that Techcrunch was built step-by-step as a new publishing form was taking shape. PandoDaily doesn't have that advantage and, is, indeed, facing competition from social networks that is quite good indeed.

I no longer visit blogs. I watch Twitter, Google+, and Facebook, along with Hacker News, Techmeme, Quora. These are the new news sources.

Plus, Pando Daily actually doesn't have enough capital to compete head on with, say, D: All Things Digital or The Verge, both of which are expanding quickly and have ecosystems behind them.


UPDATE: we're discussing this over on Facebook too:

Post has shared content
Maybe this whole "browser as an app" thing can really work.
- Linus Torvalds

I have one of the early chromebooks - it has happily been used in our kitchen as the "family calendar" and most all it does is run google calendar with the occasional google info lookup and/or directions on maps.

Today it decided to update itself to the new chrome version with the Aura window manager. And I haven't really played around with it all that much, but as a desktop it really doesn't look that bad. I could name worse desktops (cough cough).

It allows such radical notions as having easy mouse configurability for things like how to launch applications. Things gnome removed because those kinds of things were "too confusing", and in the process made useless. And a auto-hide application dock at the bottom.

Revolutionary, I know.

If that thing had a terminal window and you could install a development environment on it (and if it wasn't that dog-slow Atom thing - it's literally too slow to really be useful for even web games like Bejeweled - I'm not exactly talking Chrysis here!) it really might be quite usable as a laptop.

And I have to say, it also seems to improve on the experience even in the non-laptop mode. Making the calendar start as a "window" instead of as a browser tab also means that when you use it in the single-use mode that we traditionally did, the app takes up the whole screen, without the browser buttons etc.

So the new Aura approach seems to work both as a traditional window manager and as a more limited "apps take up the whole screen". Maybe this whole "browser as an app" thing can really work.
Wait while more posts are being loaded