Loading...

Adventures in "This Week in Bazaar"

July 3, 2008 No Comments Tagged as: bazaar

Elliot Murphy and John Arbash Meinel were kind enough to invite me to co-write This Week in Bazaar. This week covers using bazaar in your build process. It was quite fun, and quite informative to chat with Elliot and John. Thanks to both of them Go read it!

Micro-Blogging, Web 2.0, and the Secret Sauce

July 2, 2008 No Comments Tagged as: web web-applications

I started writing this post last night after my wife fell asleep (a common occurrence). It was about Twitter, and why I twittered. The basic idea was that I enjoyed the micro-blogging because it was closer to a a real conversation than reading someone's blog and posting comments. It's more of a round table where you select who sits at your table. It was personal, and I enjoy that. I've strengthened already existing acquaintances, and created new ones. For something that initially seemed like such a novelty, it's become a great tool.

Then, this afternoon, after a 2+ hour outage of Twitter, a few friends/coworkers pointed me at Identi.ca, which is a fully open source micro-blogging site. I usually just ignored the Twitter clones, because no one I knew had switched. However, it seemed that a few people I was quite interested in "following" had moved to Identi.ca and, as mindless as it sounds, I tweeted because of those around me. So I naturally I got an Identi.ca account.

As I've been using Identi.ca, I've found a problem with it. It has no public facing API. This is absolutely tragic, as that's the only way I use Twitter. I have a little app called gTwitter that keeps me up to date. It crashes often, and I'm not fond of the Mono backend, but it did the job, and stayed out of my way. While Identi.ca apparently allows updating through a Jabber client, I can't get it to work. It has, however, been sending me updates from those I'm subscribed to, through IM. I hate that though, because it's an interruption I don't need.

In defense of Identi.ca, these features ARE planned. It is also an open source app, so any user (including myself) could build these features, and the sky is the limit at that point. You certainly can't say that about Twitter. I just won't jump ship completely until after the features are there.

I've got a little side project I've been putting 5-10 hours a week into (and less recently, as we're moving), but one of the high priorities I've been been working on is a public facing API. As far as I'm concerned, your web site is stuck in 1.0 world unless a user can easily write an external CRUD app with your database as its backend. It doesn't have to be fancy, maybe just a simple REST interface. The new internet is about mashups and using data in creative ways. A public API is THE secret sauce to successful web sites today.

When You're Delivering Newspapers and Want to Check Email

My wife and I are buying a house. It's not far from where we live, so I'm constantly riding my bike over there to look at the house and think about living there (we close on the 15th of the July). Every time I'm over there, I want to take notes, and even though I have a qwerty keyboard on my phone, it sucks greatly. I also wanted to analyze the wireless networks in the neighborhood to see if the upgrade to 5MHz is required yet.

I have a Nokia 770 tablet that's been collecting dust for a bit. I flashed the latest release of OS2007 Hacker Edition onto it, installed kismet, btscanner and aircrack onto it and tested it out. The only problem is that I can't always ride with no hands (one hand to hold it, one to use the stylus). With some Gorilla Glue and a modified reflector holder, I mounted the 770 to my bike.

I just got back from a ride, and while a custom interface specific to my needs would be helpful, I was able to analyze the area enough to see that the neighborhood will welcome my open wireless network (that complements my private one). Apparently my neighborhood is mostly Amish...

Now if only I could figure out how to hook a generator up so I can charge it while I'm riding... And maybe power my GPS so that I can really warbike. More photos here.

Like a Virgin : Typing for the very first time

June 20, 2008 4 Comments Tagged as: dvorak

I have four friends now all using the dvorak keyboard layout. I decided I would take the plunge and try it out for six months or so and see how it goes. So far it's slow going. Because I was interested in dvorak conversion stories, I figured I would share my story.

I'm sure that I won't get this under my belt overnight, and that I'll have to be patient with myself. I haven't written much code (or much of anything for that matter), but many of the common characters I use are better available to me. I can see the potential, if I can learn to make it work. If you're considering the switch, be prepared to type similar to your grandma when she first got a computer.

One caveat I would point out is that I couldn't quite get the Gnome tools at System->Preferences->Keyboard to work properly. It may have been a PEBCAK problem, but if it was, there's a usability bug that needs to be looked at. I eventually broke down and fixed it the old skool way by editing xorg.conf Granted, changing keyboard layout isn't something lots of users do, so maybe it could just use a bit more polish. Any pointers are appreciated.

Update: Quick tip for ubuntu dvorak converts: apt-get install dvorak7min It's a typing tutor similar to the ones I used on the old Apple IIe's at school.

How Launchpad Helped Entertainer Leave the Atmosphere

Entertainer Releases Today!

Today, Entertainer makes our first (rather crude) release. There are lots of known problems with the codebase, but we thought that releasing early would give us the flexibility and users that would file bugs and help us get the ball rolling faster. The 0.1 release of Entertainer can be downloaded here.

A special thanks goes to Lauri Taimila for starting the project, Joshua Scotton and Matt Layman for sticking with me through the quiet issues, and Michael Charclo and Jamie Bennett for jumping onto the team and hitting the ground running. Without them, there never would have been a release today.

Six months ago, when I joined the project, I never realized it would take as much work as it finally ended up taking. It required concentrated efforts, good tools, better developers, and great alpha users. It feels now as though the stars aligned, the tides were at bay, and a squirrel somewhere in Saskatchewan, Canada farted in just the right way for everything to fall into place in just a short amount of time.

Launchpad was the catalyst

After all of this reflection, I realized something quite important. Launchpad is THE reason for this release. It couldn't have come together as well as it did if we had still been using Google Code. Google code was great, but we encountered lots of problems making LARGE changes, and causing headaches for everyone else. Using bazaar, the headaches were fairly localized.

About three weeks ago, I went through all the bugs on Launchpad, and prioritized them all, adding a few to the milestone 0.1 release, and sending an email out to the mailing list stating that the bugs marked needed to be fixed by the 14th of June, so we can release on that date. I'm proud to say that only one bug will slip, and it's a bug that we can do after the release in support of 0.1, instead of as part of 0.1.

As we migrated to Launchpad, I saw a great community seem to pop up around Entertainer at that time. It could be because of pre-release reviews that were being done, but as I looked more into it, I realized that by adopting Launchpad as our development tool hosting platform, we were adding our project into an area that was FILLED with people ready and willing to try out alpha software, file bugs, and be responsible for following up with those bugs. We had users we'd never heard of (with seasoned Launchpad accounts) show up to ask for help, file bugs, or just flat out say "Thanks for the software."

What Launchpad is to me

Many critics will complain that Launchpad isn't open source, and so it shouldn't really be an open source software hub as it is. I disagree. I think that all the neat features of Launchpad (code hosting, bugs, translations, blueprints...) play second fiddle to something greater: Community. The community is absolutely open. Want to see how Launchpad's existence helps bring the best Ubuntu releases possible? Head over to #ubuntu-bugs on Freenode two weeks before Intrepid (the next Ubuntu version) is released, and see the coordination between users that Launchpad provides.

So sure, (old and busted) Sourceforge, Google Code, Github, and the like may provide code hosting services, and some even provide bug tracking services, but shoot, how many of them can provide you with users? Better yet, how many of them can provide you with users who are patient with alpha software, willingly file bug reports without the use of expletives/flames, and follow up with you to see if they can help any other way? That's what Launchpad is to me. That's WHY Launchpad is to me.

A Pygame Summer

June 6, 2008 1 Comment Tagged as: programming pygame python

This summer, my little brother has been charged with learning to write a game. Being the software guy in our family, my mother asked me to teach him. What better language to work on a game than Python? :) So I purchased a copy of Beginning Game Development with Python and Pygame, and he's been hacking away, learning the basics for the past week and a half.

I must say that I'm quite impressed with how well python teaches common programming methods. I'd heard lots about it, but had already had my share of programming experiences long before I got into python. In less than a week, my brother knew enough to write simple madlibs, which is something it took me quite a while to do in Visual Basic.

My brother's blog can be found at http://mattalui.wordpress.com. He'll be publishing what he learns there. His project is registered on Launchpad as Mattalui's Quest.

New Site Layout

May 29, 2008 No Comments Tagged as: ironlionzion

Alright, it's been a work in progress for more than two months now, off and on. I'm not a designer, and I finally decided to stop trying to force it. It's not the prettiest layout in the world, but I wanted to focus more on functionality anyway.

I had some trouble updating to the new version. The templates weren't the only thing to change, and Dreamhost is not very python friendly. It's fine, as I'll be getting a new host soon, but it was a headache that very easily could have been prevented. Among the big changes, the path to the feed has changed to http://theironlion.net/feeds/blog. I've set up an Apache redirect so Django will stop harassing me about the errors, but updating your feed reader will ensure that you don't get cut off when I decide to delete the redirect later on.

It's late now, and I really need to get to bed. It feels good to be back and blogging again after spending so much time working with the tools I use to blog with... Here's a tip: Don't roll your own CMS if you don't have to.

Update: I couldn't be bothered to test this on anything but Firefox 3, so if it's broken, drop me an email or something. There are a significant amount of features that didn't like python2.3 on dreamhost very much, and so they aren't being displayed currently. When I make the migration to a new host, I'll set them back up again.

Entertainer May Sprint Recap

May 20, 2008 No Comments Tagged as: entertainer

The May Entertainer sprint was this weekend. It was good push where some of the developers hadn't been going at full steam recently. After being featured on Linux.com, Entertainer saw another large surge of users. Coincidentally, we had also just moved back to Launchpad.

Michael Charclo, a new developer, was the star of the weekend. He got four branches merged to trunk, fixing three bugs that were generally a pain, and added some basic heuristics for Entertainer to discover movie files as TV episodes and catalog them accordingly. This is a rather big win for us, since we had been discussing ways of identifying a movie file as a TV episode, and many of the solutions just didn't seem to work. Michael's did, and I was happy to merge his branch.

Matt and I worked on the new backend stuff. It's encouraging to see how close we are, but where the code stands now is the hardest part. It's the last 5% that will take the longest part of the time. Since we're using storm to assist us in making the code clearer and more modular, our life has become so much easier. However, Matt and I together made a significant amount of progress.

Joshua got his branch merged in that makes the gnome tray icon usable again, and removed the backend dependency on X so that it can now run without the requirement of having a DISPLAY environment variable (previously, it imported gtk for the tray icon).

Entertainer is planning it's 0.1 release for early June, so we'll be buckling down and getting a lot of the bugs taken care of and getting the code stable and ready to be deployed.

Entertainer Moves To Launchpad (Or Returns?)

April 30, 2008 No Comments Tagged as: entertainer

When I first approached Lauri about working on Entertainer, he had released Entertainer on Launchpad. Not long after I started working on the project, Lauri had problems getting bazaar to work with Launchpad, and so we move to Google Code. We've been there since then.

However, recently, while working on the new backend-refactoring stuff, I found that svn was just too lacking in allowing me to merge in continuing development on trunk into my refactoring branch. It then got to the point where I dreaded the actual merging back into trunk. I think much of this was because I had been using distributed version control systems consistently in the work I was doing for my clients, and really enjoyed it.

After chatting with the rest of the developers, we decided we should move to Launchpad. With the option of having vcs-imports, it was a good option, for many reasons. After all, the idea of Launchpad is to have all open source projects in one place anyway.

So, the basis of this blog post is this: Entertainer can now be found at http://www.launchpad.net/entertainer. Mentoring is available to anyone who would like to contribute...

The Tale of a Developer and Too Many Half Made Hammers

March 28, 2008 1 Comment Tagged as: programming

A very dear friend of mine and I had a conversation yesterday. Somewhere in the conversation, he said (and I'm paraphrasing) "I'm going to make my own encryption algorithm, and it's going to rock." This struck me as odd so I responded "Why would you try to do that when so many really good encryption algorithms already exist?" By asking this, I didn't doubt his ability to write an encryption algorithm, per se, but more that the AES algorithm was the life's work of Joan Daemon and Vincent Rijmen, two doctors of cryptography. His response was that he just wanted to tinker, which is a valid response, and one that I'm sure every developer has had at some point in their career (and hopefully still have some variant of it).

So I thought long and hard about that. It's good to tinker. I remember the first time I wrote a linked list in C. Advanced concepts like pointers suddenly just made sense. I understand how you could make an array that changed its size. It was a to me. I optimized it as much as I could, and I still have that very code on my system today. Today, I have no need for it, and haven't looked at it since.

Why? Because I know how it works now. I can use someone else's linked list code, one that I don't have to maintain, and one that has had much more work than I'm willing to put into it to make it fast and efficient. I've moved on from that. I could spend my time focusing on how to make my own data structures and make them efficient, or I could make real software using someone else's library, and devote my ingenuity to that.

While still talking to my friend, I used the analogy of building a birdhouse (and did my best not to let my high school shop class experiences taint the analogy). If you write up plans for a birdhouse, and then write up plans for a hammer, and then write up plans for a nail, and then write up plans for a saw, then you'll have quite a mound of work to do. Chances are, you'll probably end your birdhouse project with a half-made hammer, and lots of grand plans. Everyone does this at least once or twice in their career, and if you're a developer, and you claim you don't have a single half-made project somewhere, I will say that you are a liar to supplement your developer title. --:-)

I no longer recompile my linux kernels from vanilla, or even the distro's patched version. I don't need to. The speed difference isn't all that dramatic, and frankly, there's really no purpose. But I know how to do it, should I need it, and I understand how the kernel works. It's not magic to me anymore.