Archive for the ‘technology’ Category

Ubigraph visualization

Friday, May 1st, 2009

My professor pointed Ubigraph to me as a way to make some visualizations for a project I’m working on. I’m incredibly impressed. Watch the demos, especially the algorithmic visualization one.

I messed around with this for a couple of hours today and it’s really easy to use. It’s am XML-RPC interface so you can interact with it from almost any language, the commands are intuitive and simple, and you don’t have to worry about a lot of the details in your visualizations. I had a relatively complex graph up in less than an hour.

If you ever find yourself in need of visualizing graphs, I strongly recommend Ubigraph.

Frustrations with Linux

Friday, August 8th, 2008

Check this out. After 11 weeks of work or so I think I’ve think reached the height of frustration with linux but at the same time I’ve learned a lot about dealing with those frustrations. I’ve always known that things are a little more complicated when dealing with linux, but I didn’t expect to get so annoyed with it. Anyway this xckd comic reminded me of some of the pains of messing with linux.

I spent most of today trying to install 1 (yes 1) perl module (DBD::Pg for those that care) and this was one of the most painful processes I’ve had to deal with. So I first had to configure CPAN which wasn’t that difficult but still required my attention for a bit. And when I tried install DBD::Pg the compilation failed with some C related error message. I spent some time trying to debug the module code, which I was pretty sure wasn’t the right thing to do (other people have installed it right?) Eventually after several hours, I found out that my machine had an old version of perl, an old version of a pre-requisite module, among other configuration issues so I fixed all of that and eventually got things to install.

And the other day, I got another monitor and was trying to set up TwinView on my machine and that opened another can of worms. I messed with my xorg.conf (the same as in the comic), and eventually I realized I had to install a new driver. This involved booting in a different run level and running through an installer which failed the first time for some strange reason. Eventually I got this to work, but this also took me a couple of hours.

And I guess what’s good is that I’ve come to accept that linux is more frustrating. At the same time, it’s good that I’m given a lot of flexibility to configure things and mess around with my system settings, so I guess it’s a tradeoff. A lot of stuff is oriented towards programmers; when I found compiler errors installed the perl module, I looked at the source code and made changes (although that’s probably not such a good idea in general).

Along similar lines, Vivek came over one day and he was all excited about partitioning his mac and installing linux on one partition. I warned him that linux isn’t all fun and games, especially if you’re not that computer savvy. When I stumbled on this comic, I promptly showed it to him as further proof that the warning is not to be taken lightly. But I’d still use linux over windows any day.

Drug mimics effects of exercise

Saturday, August 2nd, 2008

For all you lazy people out there: Check this out.

Researchers in San Diego have synthesized a compound that affects the metabolic pathways in muscle tissue to simulate exercise. What’s cooler for me is that they’ve come up with another drug that dramatically improves endurance when performing exercise.

Looks like the producers of Wall-E didn’t think that science would solve the obesity problems of the future

dude… use python

Thursday, July 31st, 2008

So haven’t written a techy/nerdy post in awhile and I presume that’s because my life outside of work hasn’t been that nerdy during the summer. But I thought it’s time to return to my normal self and so… lets talk about python.

This article is titled the way it is because I’ve heard that phrase uttered so many times in the past year or two that it’s insanse. So I spent a little bit of time last summer learning python and the interns and I worked on a project in python, but it wasn’t too involved and I promptly forgot a lot of it in the months to come. I still used php or perl for a lot of my scripting purposes because I was familiar with them and my friends would continuously nag me to make the move over to python, but I never really got around to it.

So this summer, I was initially given the option to write in whatever language I wanted and thought that it would be a good time to learn python, especially because it’s used in a class I’m taking next semester anyway. I took about a week in the beginning of my internship to learn about python and ported some of my old code over to python. I already knew that python was pretty cool, but it seriously makes programming much much faster. And even though I ended up using perl for my intern project, I’m pretty happy that I learned python and I think I’ll be using it more in the years to come.

Ok so why is python so cool. First there are the reasons that everyone says, it’s like writing pseudo-code, but then it actually works. That’s pretty cool because programmers learn to think in pseudo-code but then have to translate that to whatever language. The closer the language is to pseudo-code the better.

It’s interpreted, which has pros and cons. Interpreted languages are generally slower than compiled languages, and yes I think python is slower than C, but for internal scripts where performance isn’t that critical, python being interpreted is pretty helpful.

Python is a lot like scheme/lisp with lambda expressions and functions as first-class data. I was disappointed that you can only have 1 line lambdas, but they’re still pretty useful. And passing functions around is amazing and extremely useful. Also has built in functions like map() and filter() which just make list manipulation so much easier.

Consider this, lets say I have a list of numbers and I want to make a sorted list of all the even numbers. In python…
sorted ( filter (lambda x: return x % 2 == 0, myList))
In most other languages (except lisp)… I’m pretty sure it would be a lot less concise. And yes the same sort of thing can be done in scheme, but I like scheme a lot too.

I like the way that python allows me to include my test cases of a module within that actual module. The if __name__='__main__': feature is pretty cool. You can’t really do that in perl and it’s annoying because I need to have a testModule.pl script for every Module.pm. With python I pretty much reduce the number of files I have to worry about by a factor of 2.

Also python is pretty easy to read and that makes your programs easier to maintain. I’ve been experiencing this problem where perl isn’t that easy to read (especially if you use a lot of the uncommon features) and now that I have to go back and make changes to my code it’s pretty hard to figure out where I’m supposed to look and how I’m supposed to make the change. And not that I’ve done this, but I think it’d be a lot easier if I wrote in python.

Anyway, I’m not really an expert on python or programming languages in general. In fact I haven’t even used python for a substantial project or anything, but I have been reading about it and playing with it so I found some things that I like. And I think I’ll be using python more in the future so I’ll become more and more familiar with it and probably find more things I like and also some things that I can’t stand.

Disclaimer: If my facts are wrong here please feel free to correct me because these were the impressions that I got and it would be good if I got them corrected.

Startup School

Tuesday, July 29th, 2008

Another post that should have been several months ago…

In April of this year, I headed down to Stanford for something called Startup School. I didn’t really know what to expect but it’s hosted by Y-combinator so I knew it would be pretty cool. It turned out to be a bunch of talks by successful entrepreneurs, lawyers, and venture capitalists and all in all I learned a lot over there. Also it was way for entrepreneurs from all over the place to gather and meet each other, look for teammates, competition and all that stuff.

Since I wasn’t currently working on anything, and since I was one of the younger people there (most of the attendees were out of college) I wasn’t that interested in meeting a lot of other people, except to find out what they were working on, which I always think is very interesting. I was there pretty much to hear the talks, and hopefully take something from them that I could use maybe later on when I do try my hand at a startup.

Of all the talks (I believe all of them are on justin.tv), the most interesting, and most entertaining on was by David Heinemeier Hansson. DHH is I think the head developer of ruby on rails (or something like that) and now he’s working for 37 signals, which is doing exactly what he recommends (which you’ll know about if you either watch his talk or read the rest of my post). Here is his talk. I definitely recommend that you watch it if only for entertainment purposes (he’s really funny). But of all the talks, I think I learned the most from his as well.

His main point was that rather than trying to provide your product for free, charge a little bit. Then you don’t have to struggle to make ends meet, you don’t have to work so hard to monetize (by ads or whatever) and you get to make money. And granted most ordinary people are no longer willing to pay for your service, but almost all companies are willing to pay you if you are providing them a valuable service and doing it really well. So the real trick is to find something that companies need, make it, and then charge them for it and you’ve got yourself a pretty good startup.

So that’s the underlying idea, but there are a couple of problems with that. When you’re charging for your product, you’re held to a much higher standard, so you’d arguably have to work harder. This is even more the case when you’re making something for companies. But arguably this may actually be a good thing. When you’re trying to get something out to users (even if it’s free), the only way you’re going to be successful is if you hold yourself to a high standard, but it’s a lot easier to let things slide when there is no external force here. For example, If your free website is of the highest quality, you’re not going to get any traffic, and you’re not going to get any revenue from ads or whatever monetizing scheme you’ve thought of, so you have to do this anyway. The fact that you’re selling your product means that there’s an external force (namely your customers) holding you to that high standard and they definitely won’t let you slip up. Charging your customers is just force that keeps you working well.

The other problem and solution is talked about here. I won’t go into much detail there, just read that.

So I’ve become a convert to this thinking, I’m now looking for things that I could sell to companies and hoping to form my startup around one of these ideas. But it’s definitely much harder to find pain points of companies than it is to find pain points of ordinary people, so I’ve been looking for awhile without much success. I’ll still look for more consumer facing ideas, but I find that they are much easier to shoot down quickly and so I’m not sure if I’ll be working on something like that in the near future.

And that was pretty much startup school. If you’re interested, watch the talks; most of them are pretty interesting and they offer a lot of different perspectives from pretty big shots (Jeff Bezos, Marc Andreesen, and others). Definitely will be going again next year.