Forced Vacation

I decided to pull up the holiday schedule for work yesterday and noticed something. “Vacation time cannot be carried forward.” On the first of the year, my remaining vacation time goes poof. There are no policies in place for paying back the time, so I’ve opted to do the only thing I could — take the rest of the week off.

Not exactly what I would have ideally done with my remaining vacation time, but it gives me some time to catch up on things around the house. I have a stack of movies I’ve been meaning to watch so now’s my chance.

My wife rules

We spent our traditional Christmas day with Dena’s parents. It was a fun-filled day of food, cookies, and naps.

I got some awesome gifts that I just have to share.

There was an envelope sticking out of The Works of Victor Hugo. I was shocked to find two tickets to Les Miserables (my favorite musical), and then had to do a double-take when I saw the seating. Orchestra, Row A, dead center.

I fell in love with the DLO TransPod FM All-In-One Car Solution after seeing the one in Kurt’s car. Dena’s mom got me one. It’s going to make long trips much easier to handle.

The Nintendo DS has to be one of the hottest toys of the season. I’ve been on the lookout for one ever since Jorge called to tell me about his. Dena and I had commiserated over the lack of DS availability. Boy she had me fooled. Here’s the Nintendo DS, some games, and the Lexar 512MB JumpDrive that I got (shown with the Fujitsu P5000 for size perspective).

I also got:

  • The most kick ass limited-edition print of Gimli (from Lord of the Rings). I’ll post more about it when the artist makes it available (I got issue 1/20)
  • Victorinox Cybertool 36
  • Wireless controllers for the XBox
  • Kill Bill Volume 2, The Bourne Conspiracy, and Dodgeball DVDs
  • A nice pair of Panasonic headphones
  • Super Mario 64 and Spiderman 2 for the Nintendo DS
  • Masters of Doom (How Two Guys Created an Empire and Transformed Pop Culture). Someone I’ve worked with read the book and told me it reminded him of me, so I figured I’d give it a read.
  • My mom got me a copy of the Davinci Code. I’ve always been facinated with this kind of story, and so far it’s a good read.

EMP: Import is done

Happy Holidays and all that jazz Best wishes to all my friends and family, wherever you may be.

I finally finished integrating the import code tonight. The screenshot below is fresh and showing newly imported data, no more hand-built libraries!

I need to rename this to the “Library Manager”, since it’s really (going to be) much more than just playlist management. That’ll also clean up the main player UI a bit (which I’m currently working on). I can’t wait to release 0.1 next weekend.

Posted in Uncategorized | 1 Reply

GStreamer, GLib, and Gnome-VFS oh my

I’m getting closer to the 0.1 release of EMP. I finished writing the code to import music this morning. There are some optimizations I’d like to make (mostly, spinning off the reading metadata off to a worker thread), but right now it takes just over six seconds to scan and import 248 songs. Some of the speed may be the drive in my laptop, and a large chunk the reading of metadata. It’s quick enough for the 0.1 release though. My next step is to integrate this with the UI, and then it’s time to finish the main player UI and get this first release out the door. I’m aiming to have 0.1 released around the turning of the new year.

The import code was pretty fun to write. One of the complaints I (and others) had about other music players, especially those using GStreamer, is that it tends to be slow importing, or hang trying to import. With that in mind, I’ve taken a two-step approach to music detection. First, I use Gnome-VFS to check the mime type of a file. I ignore anything that isn’t “audio/*”, then feed the file through GStreamer’s typefinder and checking its found mime type against a static list of playable mime types (essentially ogg, mp3, flac, mod, and wav). Only then do I add a song to the library. From my testing, it does a good job of only adding audio and not hanging on miscellaneous files (Flash seems to be a big problem for GStreamer).

EMP is now in my CVS, and the import code is currently living in test/import.c, if anyone wants to see an example of recursively scanning directories and GStreamer.

emp – easy music player

I’ve talked about other music players in the past. I’ve done some hacking on Rhythmbox and worked on some iPod-related stuff. I’ve tried many different players and found myself wanting something more. I like bits and pieces of each player, but none that I think are great (no offense).

I decide that I’d write my own. Big surprise there, eh? I also wanted to brush up my C skills and get a better handle on GTK. This is a win-win.

There are some key features that I want:

  • Playlists, Playlists, and more Playlists
  • Smart Playlists
  • DAAP support (both as a client and server)
  • Album artwork integration
  • Streaming Radio support
  • Fast loading of music library
  • Minimal, clean playback interface – simple is good
  • iPod support
  • Stability
  • Whatever else I think makes sense

Okay, one could argue that X, Y, and Z players do this and more. Other players do these things, but not necessarily well (or my interpretation of well). So, in a sense I am re-inventing the wheel but with good intentions. If anything, I’ll have a music player to fit my tastes and I’ll have brushed up a few of my technical skills.

I’m using gstreamer for music playback, and shared libraries when possible and feasible. Write them when necessary (like libipod). Make it easy to use, hence the name.

Enough of the boring stuff. I’m still a bit away from a release, but I’ve got a nice screenshot of the playlist manager to show off.

Playlist Manager

Create a playlist, add your music (drag and drop, or a context menu to add to playlist) and you’re ready to rock and roll.

Playlist Manager w/advanced filter

Can’t find what you’re looking for? The advanced filter lets you dig down deeper and do a more refined search.

Okay, so a pretty window doesn’t mean much if it doesn’t do anything. I still have much work ahead of me. I have gstreamer functioning. I have an xml document containing my music library (lots of cut and paste of AC/DC in there), and that’s loading into memory just fine. I’m making a little progress every day, so a 0.1 release will be coming by Christmas.

Job Rant

I’m normally not one to rant publicly. It’s kind of long and might be confusing in parts but the gist is there, somewhere. I’ve kept this bottled up for far too long and need an outlet.

Background:

I started at this little dot com startup in early 2000. Two years later, the investors backed out and tasked me and two others to shut down the company. We did so, and life moved on. I collected my severance and found a new job.

The night before I start the new job, I get a call from the original owner of the company. He wants to meet with me the following weekend. Shit, nice timing, but okay. I meet with him. Apparently he managed to negotiate a deal where he got the hardware and intellectual property of the former company, so he wanted to restart the business. He (and his partner, also a former part of the old business) wanted to bring me on as employee #1 to get everything back up and help build this new business.

Same salary, less benefits, but lots of promises of stock options, raises, and the like. It couldn’t be worse than my new job (another dot com that didn’t survive long after I left), so I agreed.

Mistake #1: I accepted their excuse that it was too expensive to put things in writing, and their promise that, once things were more stable, they would make things ‘proper’.

So, over the years, things had their ups and downs. I worked lots of long hours. I’d seen a friend of mine (who originally got me hired at the company in the first place) hired and forced out by one particular co-worker who used to be the VP of Development at the old company. Still, I stuck things out, chasing that carrot that they kept dangling in front of me (aka stock options).

Despite this, I still thought I was just being a dedicated employee, doing my job to make the company successful. Still working long hours (occasionally pulling 24-hour shifts to meet deadlines) and putting up with the endless stream of bullshit.

July of 2003, things were busy. Business was looking good and we had lots of work to do. I thought the company was stable and on the right track. We needed to hire another person to keep up, and I suggested Kurt (my fellow moderator) and he got the job. Life was good.

As the months dragged on, things weren’t feeling quite right, but I kept on doing my thing. I had never gotten along with my other co-worker (the former VP) but the tension seemed to be getting worse.

Fast forward to the present, almost a year and a half later.

Kurt was basically forced to quit by the former VP. Every request for hardware is denied arbitrarily, unless it comes from the former VP. I’m back at square one, the only technically competent person at a tech company. I’m not looking forward to these prospects. Throw into that mix a non-compete, non-disclosure, and intellectual property agreement that they’re trying to force me to sign — one that I have serious issues with and we’re playing with fire, baby.

Yesterday, I have a meeting with my two bosses. It started out going over a project I’m working on (one, I might add, that I initiated, and is increasing revenue yet again). We finish discussing that, but they’re still sitting there, looking at me. Uh-oh. Something else is up.

They ask me where I’m at on the contract, and I tell them again that I’m having someone look over it and that I haven’t heard back yet. Then they launch into I can only describe as an inquisition.

They say my refusal to sign the contract has thrown up “big red flags” about my commitment to making the company successful. I never refused to sign their contract. I told them that I had reservations about certain things in it, and I wanted to make sure that my rights were protected. I do contract work at home, after hours, unrelated to the business but under the terms of their contract, they would own the intellectual property of everything I do while employed by them.

Second, they’re trying to make me sign an agreement that’s retroactive to the beginning of my employment without any kind of compensation which, as I understand it, is against the law. When I met with them about it, I told them I wanted my own benefits in writing, such as my stock options, any 401k or profit sharing (which I apparently have, but they are listed as trustees on). They refused, claiming it would cost them $25,000 to have lawyers draw up the papers for it. Well, I smell bullshit right there. He did explain to me how the options would work, though. I have X options. If my employment is terminated, voluntarily or not, the options revert back to the company with no option to execute them on my part. In other words, the only way I can execute my supposed options is if the company sells.

By this point, I’m frustrated. I’ve had verbal promise after promise made and broken or had their terms ‘modified’ at their whim. The only real benefit I have is that they pay half of my health insurance, which I had to get on my own.

Next, they tell me that they question my dedication to the company, because I haven’t responded to their emails after 5pm or on weekends lately. They claim I’m not making my deliverables. They say I’m not “taking ownership” and “making things happen”.

I’m normally a quiet, mild-mannered guy but I’ve been dealing with this shit for way too long.

I start to call them on their bullshit.

If I’m not answering an email after 5pm or on the weekends, it’s because it’s not something I consider high priority, meaning it can wait til the next business day or there’s nothing I can do about it until then. If it’s an emergency, I’ve always put my life on hold to take care of it.

The reason my supposed deadlines haven’t been met is because they have either a) changed the priority of said deadlines or b) refuse to produce the necessary hardware to complete them. Right now, the only pieces of hardware that they’ve supplied me to work is an LCD (after the old piece of crap CRT finally died) and a hard drive to replace the failing one in my personal machine that I use for development. Every single piece of work I’ve done for this company has been on hardware bought and paid for by yours truly.

They challenged my claims of not having enough hardware. I should “find a way to make it happen”. I flat out told them I refuse to use any more of my personal hardware for them.

They weren’t happy being stood up to. I flat out told them that I felt the stock options they’ve been using to hold me were invalid. That they’ve repeatedly made promises to me that they’ve not lived up to. And then to top it all off, they question my commitment and dedication. As anyone who knows me will tell you, I’m a fucking workaholic. I’m good at what I do, and I do it all the time, day or night. I’ve spent way too many nights and weekends monitoring servers or writing code than I’ll ever be able to recoop.

I was getting angry to the point of being emotional, so I told them that we needed to break until the next day. They pushed that off, and now we’re meeting on Friday, the magical day where employers feel it’s safer to fire people. I’m supposed to come with a list of issues that I want addressed, and I’m assuming they want a signed contract, which I’m still not prepared to sign. The point they kept making about the meeting is that “We need to either fix the issues and move on, or not fix them and not move on.” In other words, I don’t think I’ll have a job after tomorrow.

I’ve already attempted to negotiate changes to their contract. They were willing to change one (which I later discovered language to the same effect elsewhere), and refused to make any other changes. Based on my past experience, I don’t see them being willing to make the changes I need in order to sign it and I don’t see them fixing the problems that I see, because they don’t see them as problems at all.

Christmas is approaching fast, I don’t have a new job lined up (although I am in the process of interviewing now), I’m both nervous and excited. I’m going to be happy to be out of this place once and for all, but I don’t look forward to waking up Monday morning and not having a job lined up and ready to go. I started looking for contract work again, hoping to fill in the gaps, but that kind of thing takes time to land.

Thanks for listening. I feel better now.