RSS
 

Obama Scary

12 Aug

I hope I’m not the only one who finds this incredibly amusing. I made this clip:

From this clip:

The Daily Show With Jon Stewart Mon – Thurs 11p / 10c
Healther Skelter
www.thedailyshow.com
Daily Show
Full Episodes
Political Humor Spinal Tap Performance
 
No Comments

Posted in fun

 

You don’t know when you’re done if you don’t know what done is

08 Aug

As I mentioned in an earlier blog post, we are working hard on a 2.0 version of the product. One of the questions our team is asked quite frequently is “when will it be ready?” This question is impossible for us to answer, because ready is not defined. It’s one of the dangers of working without a real spec.

There are a lot reasons why we don’t use a real spec, none of which are up to me so I’ll not discuss them here.

Whenever 2.0 gets close to what everyone thinks we have agreed on, people look and poke at it, decide they don’t like things or realize nobody ever asked for critical feature x, or it somehow didn’t make it onto our bug list, and then we have to go back and get new designs, file a bunch of bugs, and set a new milestone. Repeat, repeat, repeat. It’s not just for 2.0 that it works this way, it’s whenever you’re working without a complete spec. When the goal posts for done are constantly moving, the question of “when will it be done?” Is really a question of “when will the goal posts stop moving?”

To break the cycle, we’re picking a done date, and mandating that the goal posts stop moving some time before that date. Working towards that, we’ve submitted our “last chance” milestone, meaning after this milestone any decisions/changes/designs must be final, because we’re going to call it done when those have been implemented, or when we hit our chosen date, whichever comes first.

 

Coming soon to Grooveshark

25 Jul

We’ve been very hard at work here at Grooveshark, working on version 2.0, *and* a new feature that will allow some users to use the site without seeing ads, ever, and the opportunity to try version 2.0 before anyone else.

I can’t say exactly when it will be, but expect more updates soon.

 
 

The Old Man of the Woods

10 Jul

Well it’s out of the bag now that I am interested in collecting mushrooms, and so far I haven’t had to venture beyond my own yard to find many interesting specimens!

I am very new to mycology and still learning a lot about identification, and a positive identification is extremely exciting. Fortunately, my most recent mushroom discovery is an easy one to identify: The Old Man of the Woods (also hanging out with the creepy field of spiders). Not only is this one not deadly, but apparently quite edible!
Correctly identifying this mushroom also helped me to identify another one I had recently collected: The Other Old Man Of The Woods.

Don’t worry, though, I have no interest in eating mushrooms of any kind, so even if I am certain I have positively identified something, I am in no danger if I turn out to be wrong.

It’s becoming apparent that I need to get my hands on a decent quality microscope for help with identification of species, and to that end Chris Bates (one of our newest interns, who’s also helping us make Autoplay better) is letting me borrow one, and longer term I am on the lookout for a deal like this.

For anyone else interested in mushroom identification, this Key to Major Groups of Mushrooms — a sort of choose your own adventure guide for mushroom identification — is an amazing resource. As I did with real choose your own adventure books as a kid, I like to cheat and follow multiple paths simultaneously, because I’m not always sure how to answer some of the questions yet and I like to hedge my bets. Some day, I think it would be neat to build an expert system to help newcomers like myself identify mushrooms by providing their observations and then answering questions (accompanied by pictures wherever possible) and assigning a confidence to those answers. I will of course need time, and access to several experts in order to build such a system, and I am in a severe shortage of both (although MushroomExpert.com is aptly named.)

 
 

Glimmering spider eyes

06 Jul

This is either creepy, awesome, or a weird combination of the two, but it would appear that I have hundreds of smallish wolf spiders living in my yard.

I occasionally go out at night with a flashlight hunting for mushrooms in my yard (most recent discovery: destroying angel or a close relative). On one such occasion I noticed a strange glimmer reflecting from where I shone my light, almost like a dew drop but different…more colorful. On closer inspection, it turned out to be a small wolf spider. I saw a couple more of those glimmers that evening and every time it was another wolf spider.

Last night I went out, and virtually the entire yard is glimmering in the same way. I looked at quite a few and found wolf spiders every time, so I can only assume that I have hundreds of wolf spiders in my yard right now.

I might be slightly more creeped out by this fact if I didn’t live in Florida, but since I do I know they must be feasting on all the palmetto bugs that have made a happy home of this entire state, so I certainly can’t complain. :)

 
1 Comment

Posted in life

 

Not giving you the password

06 Jul

Raymond Chen’s post about passwords reminded me of a humorous* java exception I frequently experience when trying to do something in the Palm Pre developer section:

java.lang.UnsupportedOperationException: Not giving you the password
com.atlassian.crowd.integration.acegi.user.CrowdUserDetails.getPassword(CrowdUserDetails.java:52)
org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices.makeTokenSignature(TokenBasedRememberMeServices.java:285)
org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices.autoLogin(TokenBasedRememberMeServices.java:240)
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:104)
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
com.jivesoftware.community.web.filter.ApplicationStateFilter.doFilter(ApplicationStateFilter.java:112)

“not giving you the password” — not only is this phrase funny as an exception, but it clearly looks like someone is doing it wrong. No, you shouldn’t be requesting the actual password in order to get a “remember me” type token. Of course, they’re doing a lot of other things wrong too, like showing this error to the user, and apparently not alerting themselves to the error, as I’ve been getting it off and on for several weeks at least.

*and, yes, annoying when I’m trying to actually accomplish something

 
 

500,000 Users and scaling

29 May

Grooveshark surpassed the 500,000 registered user mark today.
Ignoring the fact that many of our users never bother to register (it’s not necessary in order to use the site), 500k is an absolutely phenomenal number, especially compared to where we were just a year ago: 33k. The scary thing is that under our current growth rate, we will have over a million registered users in roughly 3 months.

Can we double our capacity in just 3 months? Obviously, history implies that it’s possible; we’ve already done much more than that. In fact we’ve done better than that: with little change in infrastructure and much of the same server capacity we’ve managed to make Grooveshark faster and scale at the same time.

On the other hand, much of the low-hanging scalability fruit has been picked now. We use memcached extensively, use a master/slave DB configuration with a data warehouse for logging or writes that don’t need to be processed in real time, and have begun doing some rudimentary sharding for stream-related activities.

What’s left? Well, we aren’t yet at the point where we can scale linearly simply by adding more servers, except probably for streaming servers. For that we need more sharding, primarily. There are still some SQL optimizations that can be made, like bringing session ids down to 16 bytes from 32 (32 on disk and 96 in memory, thanks to utf8) and ultimately getting them out of the database altogether, and using memcached even more heavily, but really all of those things only buy us time. Not that there is anything wrong with buying time, because we also need time to work on new features like last.fm scrobbling, a super-secret redesign, launching on half a dozen mobile platforms, etc., all with a relatively small dev team, but ultimately there are some fundamental architecture changes coming, and if we’re going to keep doubling our number of users every 3 months, it’s going to have to be very soon.

Update: A lot of people have been looking at this post as evidence that we are working on scrobbling support. I should point out that scrobbling support now exists for VIP users: Enable it here.

 
 

Microsoft + SeeqPod?

09 May

There’s a rumor floating around that Microsoft has bought Seeqpod, mainly fueled it seems by the fact that they have a link to Microsoft live search on their home page.

I may regret saying this, but I think that link is a red herring. Microsoft is the last company I would expect to have an interest in SeeqPod, unless their search technology is incredibly impressive and Microsoft intends to apply it to other forms of search. A possibility, but it seems pretty slim. Besides being a bad fit in terms of corporate culture, SeeqPod is probably under an NDA and would most likely be in big trouble for leaking that sort of information early.

If Microsoft is buying SeeqPod for their search technology, don’t expect to see the free streaming service re-launched after the acquisition, at least not until Microsoft has signed deals with the majors, which as we know is a lengthy and expensive progress. Of course Microsoft can afford it, but can they profit from it?

In the meantime, Grooveshark is still running, still growing, and we have an API as well, for all those developers left out in the cold after SeeqPod shut down.

 
 

Grooveshark has outgrown Gainesville

04 May

We have just about completed moving all of our servers from Gainesville to Colo5 in Jacksonville. Why did we have to move? Bandwidth! We simply could not get a fat enough tube to handle all of your music streaming demands into Gainesville. Why Jacksonville? Because it’s cheap, and close! We were considering moving to a similar facility in Atlanta, but Colo5 came in cheaper, while offering the same sort of bandwidth that we could expect to get in Atlanta. How much bandwidth? We should have room to grow up to about 20Gbps before we will have to consider expanding to other facilities. We’re going to need a lot more servers before that can happen.

Although we now have plenty of bandwidth for the near to mid-term future, there are still plenty of other bottlenecks that are starting to pinch us, so don’t be surprised if playback is still laggy sometimes or results to buffering. The next big improvement we need to make is the “bandwidth” we get from our disks. No point having 20GBps of headroom in the tube if we can’t actually get that much off of our servers. We have several strategies we are applying to this end, and I may post more about them later if I have time.

The transition from Gainesville to Jacksonville was, of course, not as smooth as we had hoped. Everything was going along swimmingly until we went to install our crappy “downtime server” in Gainesville to let users know that we were down and why, while allowing us to take the real web servers with us. The server and router simply would not acknowledge each other’s presence. Our laptops could connect directly to either one just fine, but both thought they had no connection when interfacing directly. The solution? A crappy old Linksys hub, which both the router and server were able to see.

Loading up all of our servers containing all of our data into a UHaul was more than a little scary, but we packed everything very carefully using lots of cardboard, furniture blankets and rope. Not a single server was harmed in the moving process!

Ben got a lot of pictures of the whole event, if you’d like to see more. Big thanks to Ed, Skyler, Joe, Colin and Nate for all working so hard to make the transition as quick and painless as possible, and thanks to Paloma for driving us home and letting us sleep on the way back; we were definitely in no shape to drive after all that.

 
 

Washington

30 Apr

The following song has infected my brain: Clementine by Washington