Cover photo
Corey Thomasson (cthom06)
Lives in Chesapeake, VA
85 followers|108,833 views


Finally using acme for a serious project (read: work project) and so far its been wonderful. Except (on plan9port at least) the End key takes me to the end of the document; in every other editor I use it's the end of the line. 
Aram Hăvărneanu's profile photo
Use ^a and ^e, they are faster to type and work virtually anywhere, acme, Unix shell, emacs etc.
Add a comment...

An interesting post, and something I've had trouble putting into words when talking about Go. You can write fast Python, and you can write slow Go. The difference is that slow Go is typically unidiomatic and fast Python involves using parts written in C or writing obtuse code.
A few weeks ago, Alex Gaynor gave a talk at waza entitled "Why Python, Ruby, and Javascript are slow". A video if his talk is unfortunately not available at the time of writing, but his slides are tho...
Add a comment...
ilGen.Emit(OpCodes.Ldc_R8, 1)

Add a comment...
I need to get around to publishing the gob library for c# I wrote. 
Add a comment...
I bought a digital video download today that required a video player from Leaping Brain. As usual, the proprietary player wasn't great and to transfer it to my iPhone I'd need another proprietary player. Ugh. But I browsed around and found that the video had been downloaded into a hidden directory as a bunch of .mov files. Great, except none of the files would play.

It turned out the actual player, launched from their compiled app, was a Python wrapper around some VLC libraries. Nothing funny going on, as far as I could tell, but when I tried to launch the player directly, nothing happened. The compiled app was modifying the .mov files right before they were loaded into the player, and then reverting the file on disk. According to

 "We apply our BrainTrust™ proprietary video encryption to your movies before we upload them to our servers. If someone ever was able to gain access to your content, the files would be useless and unplayable, because they are stored in a scrambled, encrypted format. Once downloaded to the user’s hard drive, the files are still encrypted and only readable via the MOD Machine Player by a legitimate owner. We are not aware of a better DRM scheme than ours. Where Windows Media DRM is easily crackable, and doesn’t run on Macs, BrainTrust™ works great on Windows 8, Vista, Windows XP and Mac, and is virtually uncrackable."

Virtually uncrackable? Well, since they load the file from a Python script, it's easy to make a copy of the "decrypted" file before it's reverted. Having done so, I was curious to see the encryption scheme. By comparing the binary files, I discovered the "proprietary video encryption" algorithm: for the first 15kB, each 1kB block has its initial bytes xor'd with the string "RANDOM_STRING". That's the "scrambled, encrypted format" that leaves these files "useless and unplayable".
Add a comment...
Love it... Rob Pike's response to a question on the go-nuts board about what programming language to learn prior to Go.

Several methods. 

A: Bottom up 

1. Learn quantum mechanics. 
2. Learn statistical mechanics. 
3. Learn solid-state physics. 
4. Learn semiconductor device physics. 
5. Learn quantum electronics. 
6. Learn electrical engineering. 
7. Learn switching theory. 
8. Learn computing architecture. 
9. Learn machine language. 
10. Learn assembly language. 
11. Learn a systems language. 

Now you know how a computer works and how to program it. 

B: Top down 

1. Learn geometry (Euclid; basics of theorem proving). 
2. Learn arithmetic. 
3. Learn number theory. 
4. Learn logic. 
5. Learn Boolean algebra. 
6. Learn complexity theory. 
7. Learn type theory. 
8. Learn Lisp. 
9. Learn a systems language. 

Now you know how a computer can be applied to solve problems safely 
and correctly. 

C: Unified 

Do A and B both. 

I suggest option C. 



Love it, no way I would have responded like that.

But, now that I see this, I personally would have put Lisp at the center, and not a systems language... My list B would have been quite a bit longer, and I'd keep the Systems Language isolated to the Bottom-Up list.

Mathematics (most of Rob's list B)
Cell Biology
AI / Machine Learning

I think Alan Kay would have an answer with some of those things in it - particularly something about Biology.  Many of his thoughts and inventions regarding message passing, objects, and concurrency emerged from his background in biology... but arguably, most of what's on my list is not necessary for programming.

Personally, my simple answer would have been that Go is actually an excellent first programming language for those just starting out today.  It's not large, nor complex, it's easy to read and easy to write, and exposes you early to concurrency ideas which are crucial in today's world.  It also has practical application and a modern standard library.

For those who really want to learn programming, you just can't go wrong with  ... start with Racket and move to Clojure.  The former has an excellent learning development environment, the latter just kicks ass.
Add a comment...
I've always loved how the "Unix Philosophy" can mean such radically different things to different people.
Add a comment...
To all the sites that insist I sign up to see any meaningful content:


You don't need my email/Facebook/Google/SSN for me to read a post. Enjoy one less pageview.
Add a comment...
Dean Thomasson's profile photo
So you think...I create more jobs everyday
Add a comment...
Just got my activation email from Verizon. Internet is now 75/35. Woo!
Add a comment...
qemu-system-x86_64 -hda /dev/sda -cdrom installer.iso

Im pretty sure ive been told not to do this
Add a comment...
I really wish I could disable these "hot on Google plus" posts on my phone. Most of them are annoyingly idiotic, and the ones that arent quickly become so in the comments. 
Jan Mercl's profile photoJason Couture's profile photoCorey Thomasson (cthom06)'s profile photoMaht Lawless's profile photo
put everyone in a "NOT HOT" circle and then use that as a filter
Add a comment...
I am a geek, and I love programming.
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Chesapeake, VA
Suffolk, VA - Portsmouth, VA - Blacksburg, VA
IT/Programmer, Computer Science Student