Code Golf Style


I have been meaning to put a few of the chapters of my book here. The Code Golf Style is one of my favorites; fun too, and a crowd pleaser! I’ll start with it. Here is the complete Code Golf chapter.

Before I do that, here is the post I wrote some time ago explaining what the book is about; you may want to read it. TL;DR: 33 different styles of writing a term-frequency program — count words in a text file, excluding stop words, print the 25 most-frequently occurring words in decreasing order. The emphasis of the book is on the constraints behind each style, as the task itself is trivial on purpose. All the code is in github. In my courses, my students go through these exercises one by one, rewriting them in their favorite programming language. It’s… a challenge!

Continue reading

Posted in epsbook | Comments Off

Optimizing OpenSimulator, Part I

Load Test

Back in September, I blogged about one of the the most amazing conference experiences I ever had, the OpenSimulator Community Conference (OSCC’13). This was a 2-day, purely virtual conference with a total of 360 attendees, held on an OpenSimulator virtual environment hosted here on one of my super-duper servers. I’m one of the core developers of OpenSimulator; I do it partly to keep my work in software research real [by means of being in the trenches of a complex server with a relatively large user community] and partly because I love to use virtual reality environments, and use my vLab on a daily basis.

This post explains some of the optimizations that I made to OpenSimulator last summer so that it could actually support this event. This is the summary of a paper that will be presented at the Summer Simulation Conference, joint work with my student Eugenia. The preprint, pre-revision, version of the paper is available here.

(The work described in the paper and this post focuses on only one of many improvements that were made last summer by several developers.)

Continue reading

Posted in research, simulation, virtual reality | Comments Off

Exercises in Programming Style

I’m happy to announce that my book Exercises in Programming Style is now available for pre-order from Amazon, and that it will be shipping starting June 9! This is the book behind the talks I gave last year at StrangeLoop and GOTO. This is the story of how this book came to life, the inspirations behind it, and what the book is trying to do that is different from the hundreds of textbooks about programming.

Continue reading

Posted in academia, epsbook | 3 Comments

House of C(ards)

How many more security flaws do we need to go through before people accept the fact that almost all of them have a single root cause: the use of C?

Continue reading

Posted in commentary, social software systems | 1 Comment

New Words

I’m officially making up these new words, because they correspond to activities that I do on a regular basis and that I need to convey to my students. I hope that by giving these concepts their very own words, they will lose the threatening overtone that these remarks usually come with — because students will realize that these are all very common problems indeed!

Continue reading

Posted in academia, advice | 1 Comment

That’s bad, do it better

One of the most brutal things to adapt in life after college is the sheer amount of feedback, criticism and rejection that come with real life. This happens in just about any direction one decides to go: graduate school, industry, public service or self-employment. It may not feel that way for students, but school is an overly protective environment; getting a C or even an F may seem like the end of the world at the time, but that’s nothing compared to doing the best we can in a project/job, giving it all we have, just to hear from someone we respect that what we’re doing is not good enough. I’ll talk about Academia because that’s what I know best, but these observations apply in general.

Continue reading

Posted in academia, advice | 1 Comment

The Evolution of CS Papers


This post was prompted by a Facebook interaction regarding Dijktra’s famous “GO TO Statement Considered Harmful” article, a letter he sent to the editor of CACM back in 1968. Seen through the lens of currently accepted research reporting practices, Dijsktra’s article reads like a technical rant, something that we might find in today’s blogs, but that have been essentially abolished from peer-reviewed research publications. Here’s a person stating his strong opinion about a language construct that he dislikes, starting with a strong premise about the negative effects of that construct without presenting any data whatsoever supporting that premise! As far as anyone can tell, the premise was based entirely in his own experience and intuition — which happened to go against opinions of other famous Computer Scientists at the time like Knuth. Granted, this was just a letter to the editor, not a full-blown technical article. However, the influence of this letter is unquestionable! Following Dijsktra’s rage against GO TOs, practically all programming languages that came after it avoided that construct, and the ones that didn’t, work hard at hiding it from programmers, sort of like “oops! sorry! there’s goto, but try to avoid it, ok?” (Also, this letter was single-handedly responsible for starting the meme “X considered harmful” that has been going on in CS since then, although credit for that meme goes, not to Dijkstra, but to the CACM editor, who spiced the title a little bit from its original “A case against the GO TO statement.”)

Whether GO TO is harmful or not, is besides the point. In the process of writing my upcoming book, I spent a considerable amount of time over the past year looking through old CS literature. It’s fascinating! The topic of this post is the evolution of methods in Computer Science research for the past 60 years, and the changing ways by which ideas are considered well-argued for.

Continue reading

Posted in academia, research | 5 Comments

Immersive VR is here and it’s awesome

oculus 041

Virtual Reality is one of those ideas that has been part of the tech folklore for ever, but that haven’t quite taken off. Popularized in the 80s, VR has seen a number of ups and downs, hits and misses, hypes and backlashes — the most recent one being the rise and fall of Second Life. With VR, it’s always been two steps forward, one step back. Suddenly, a programmable, kickstarter-funded $300 headset falls in our laps from out of nowhere, and… it’s another two or four steps forward!

Continue reading

Posted in simulation, virtual reality | 4 Comments

The Story of a Journal Proposal

This is the story of Jan Vitek and I approaching the ACM Publications Board with a proposal for publishing the OOPSLA papers in a journal. Even though we did this together, the analysis and opinions in this post are mine alone.

TL;DR: if there’s any lesson to be learned from the ACM Publications Board’s policies on scientific publication is this: pay attention to their policies, then do the exact opposite.

[WARNING: this post is irrelevant for all but academics]

Continue reading

Posted in academia, conferences, research | 20 Comments

The Future of Conferences


I’ve seen the future of conferences. And it runs my code!

Continue reading

Posted in conferences, simulation, social software systems | 12 Comments