Releasing ViralSpread: A Contagion Simulation Program

Thu, Nov 17, 2011 - 8:21pm -- Isaac Sukin

ViralSpread is a FOSS program that simulates a competitive contagion scenario. You can adjust the simulation's parameters and it will report various statistics about the simulation including graphs and exportable data. You can download the program (including the source code and screenshots) or check out the source code on github.

You can also read about the development process.

Labeling Subgraphs

Mon, Nov 14, 2011 - 3:53am -- Isaac Sukin

On Friday I went to a series of talks for the kickoff of the Marketing and Social Systems Engineering (MKSE) department at UPenn, chaired by one of my professors. There were four speakers -- I missed the second -- and the talks ranged from monetizing people's browsing behavior on the internet to proving that humans exist.

I've been building an open-source suite of social networking software as a hobby since 2007 so the underlying topic of network science has interested me for a long time. I have mainly focused on building user engagement. Towards that end I've thought a lot lately about the right way to represent relationships on a social networking website given varied successes and failures of Facebook's Friend Lists and new Smart Lists as well as Google+'s Circles. My expertise is in Drupal and the choices there all require tediously, manually building your network. I'm convinced that the best approach for usability is to automatically identify people's friend groups. In general it's a good principle not to make users do anything that is not directly related to accomplishing their task of participating on your site, and manually maintaining friend lists is awkward anyway.

Java Validated FileChooser

Fri, Nov 4, 2011 - 7:55am -- Isaac Sukin

I happened to be working on a Java project recently where I needed to let the user save files through the GUI. The Swing toolkit has a nice JFileChooser class that lets you show a file save dialog so that the user can choose the directory and name of the file to save. However, not all filenames are valid, and Java doesn't validate them for you by default. If you try to save a file with an invalid name, Java will throw an error, and this is often considered the only way to know if the filename is valid. That's bad practice though since you should never rely on an exception being thrown as a condition of your program running correctly; by definition, exceptions are unreliable and sometimes unpredictable. Additionally if your file saves successfully then you have to immediately delete it (because you were only saving it to test the filename) and that's messy. So I wrote a ValidatedFileChooser class that checks various criteria to make sure that filenames are valid before attempting to save the file, and alerts the user if one of the criteria fails. The class is below, and I'm releasing it to the public domain.

Why Facebook's Redesign is Spot On

Wed, Sep 21, 2011 - 5:44pm -- Isaac Sukin

Facebook made a few significant changes that became visible to most users starting last night.

  • Restructured activity stream - you can now choose exactly who you want to see in your activity stream and what kinds of activity you want to see from them, as well as how much you want them to show up.
  • Subscriptions - you can subscribe to people you're not friends with, so you can follow thought leaders like on on Twitter without having to actually have a mutual friendship. This also makes your stream more interesting.

Blogging at Acquia

Sat, Sep 10, 2011 - 3:31pm -- Isaac Sukin

While I was at Acquia this summer I wrote a number of blog posts for Acquia. Check them out below.

Drupal Commons: Then and Now
A comparison of Acquia Commons at the beginning of the summer when I joined Acquia to the end of last summer when Commons was released and I wrote an analysis of it for Mediacurrent.
Status Streams in Commons
A sneak peak and overview of the status updates / activity stream features I developed that have become the centerpiece of Commons 2.0.
BrowserID: from announcement to Drupal module in under 24 hours
A discussion of how I wrote the BrowserID module for Drupal in under 24 hours since Mozilla announced the BrowserID initiative. This kind of effort can only happen in a large open-source community like Drupal's.
Commons 2.0 and Contributing to the Drupal Community
Throughout my time at Acquia, I made sure that I could contribute nearly everything I developed back to the Drupal community. As a result, any Drupal website in the world can now use status update and activity stream technology similar to the features that made Facebook so popular.

Engagement by Design: Principles of Building Engagement among Website Users

Sat, Sep 10, 2011 - 3:17pm -- Isaac Sukin

I've been building open-source social networking software for the past four years, which has given me the unique opportunity to be involved in a wide variety of projects to build social networks and related tools. My experience has revealed a number of insights into the way that user interaction patterns are designed on websites that encourage a website's engagement and adoption to the point that it can grow organically from almost nothing – or, conversely, that doom a website to silent irrelevance in a distant corner of the web.

Thoughts on the Alive Web

Sun, Jun 19, 2011 - 9:14pm -- Isaac Sukin

If you stay up-to-date with what's in vogue among the technology elite, you've probably heard about If you haven't, let me tell you: it's a website where you listen to music with other people. And when I say with other people, I mean it looks like your avatar is standing in a club with other people listening to DJs up on a booth. You can rate the song as "Awesome" or "Lame," chat with other clubbers, and even DJ if there's a free spot. DJs get points for awesome songs that let them get new avatars. It's absurdly addicting. And so the tech world has been abuzz with praise that has typically failed to see the really important lessons here.

Counting Characters in a Textarea with JavaScript

Tue, May 17, 2011 - 1:01am -- Isaac Sukin

About a year ago, I wrote about how I was using the JavaScript onKeyPress event to count the characters in a textarea. It turns out that among newer browsers, the trick I employed only works in Firefox. Other browsers (IE, Chrome, Safari, Opera) don't register keypress events for non-character keys like Control and Backspace. KeyUp and KeyDown have their own problems, but we can get around this by updating the character counter on both the KeyDown and KeyUp events. I've built a test below so that you can try it for yourself.


Subscribe to Front page feed