Bangin' on a Rok Amarok, KDE, and all that good stuff

2Apr/090

GSoC 2009: Last chance for student applications

A friendly reminder: you have just under 24 hours to get your applications updated (if you are a student...you've already submitted it, right?) or to get students to update their applications (if you are a mentor).  Applications that arrive before the deadline will not be penalized (and applications that arrive afterwards won't be accepted at all) so it's not too late to get your SoC on...

Filed under: GSoC, KDE No Comments
31Mar/090

Important: Submit your GSoC application *NOW*

Google has just asked all students to ensure that their application is submitted *now*, even if they are not done.  You will still have until 19:00 UTC April 3rd to modify them, but Google is having trouble gauging participation because so many students (in all organizations) are discussing applications with mentors and refining them outside of the official site.  So if you are a student, or mentoring students, please ensure that your applications are submitted ASAP.

Filed under: GSoC, KDE No Comments
31Mar/090

GSoC 2009: Student Application Deadline Reminder

Remember: the student application deadline is April 3rd at 19:00 UTC.  If you are a student, you should be checking for comments and revising your application while you still have the chance.  If you are a mentor, you should be checking the applications and commenting on them as appropriate.

Filed under: GSoC, KDE No Comments
23Mar/092

Reminder: Student Application period for GSoC2009 open…

...NOW!  Students have until April 3rd to get their applications finalized and turned in.  Good luck!

Filed under: GSoC, KDE 2 Comments
18Mar/090

GSoC 2009: We’re in!

We've been accepted to participate in GSoC 2009.  Hooray!

This means we have a lot of great work ahead of us.  The first order of business is that everyone that wants to be a mentor needs to sign up at http://socghop.appspot.com.  You'll need a Google account (which does not have to be a Gmail account).  Click the link that says "Apply to become a Mentor" and proceed as instructed.  You should also ensure that you're on the kde-soc-mentor mailing list.

Students: now that we're accepted, get to it with contacting mentors!  The application period opens March 23rd and closes April 3rd, so it's not a huge amount of time to get all the details of your proposals worked out.  Be sure to check the ideas page at http://techbase.kde.org/index.php?title=Projects/Summer_of_Code/2009/Ideas, or contact the appropriate mentor if you have a different idea for a project that you'd like to work on.

I'll be sure to keep everyone informed of events as they occur and deadlines as they arrive.  Here's to a successful summer!

Filed under: GSoC, KDE No Comments
10Mar/090

GSoC 2009: Application Submitted

Today the application for KDE to participate in GSoC 2009 was submitted.  They check out our ideas page when they're evaluating applications, so be sure to get your ideas up there!  We'll hear back by March 18th.  Some other upcoming dates:

  • March 18-23: Students discuss applications with mentoring organizations (you can and should do this earlier, of course)
  • March 23: Student application period opens
  • April 3: Student application period closes

Of course, this hinges on us being accepted...but past years have shown that we have a good shot.

Filed under: GSoC, KDE No Comments
4Mar/0911

Licensing to Kill

Could FLEXlm be one of the world's worst-designed programs?

They've just rechristened it FLEXnet Publisher, and I can only think it's to try to get away from existing FLEXlm stigmas.  It's so bad that according to a VMware engineer I spoke to on the phone a few months ago, in the next release of ESX (whatever the new name is going to be) they're ditching it to go back to their own serial-number based scheme, entirely because of a large amount of hugely negative customer feedback.  This is only one major release after they switched to it.

Let me describe the structure of it (if I were to go into the user interface issues, this would become far too long a post, so maybe another time).  There's a management daemon, called lmgrd, and vendor daemons.  These vendor daemons are (often along with the management daemon) provided to you, often without an installer and simply as a bunch of files.  There's also quite often a node-locking generator (based on things like hostname, MAC address, and all manner of things easily faked in a VM) provided to you by the vendors, which as far as I can tell is different for every vendor.  This is possibly so that they can build in their own criteria, but more likely because the FLEXlm people are lazy and can't be bothered to provide a comprehensive set of criteria on their own.

Now, why is there a vendor daemon and a management daemon?  Good question, and I don't know the authoritative answer, but from using it I can make an educated guess or two: either to allow vendors to validate some part of the licenses in their own manner, or to simply confuse and annoy the hell out of you.  See, the different vendor daemons are built against some version of the FLEXlm software, and they may, or may not, have been built against the same version.  This may, or may not, cause problems, including crashes.  It may explain why every time the license server reboots (thanks, generally, to automatic Windows updates), lmgrd fails to start up successfully.

Now, you can run multiple instances of lmgrd -- if you can figure out how to get it installed so that it starts up on bootup, since there isn't much in the way of help in the official help PDF, and only one of the three vendors whose licenses I deal with actually provided an installer (thanks, VMware, I'll be using your installer long after you've switched off of FLEXlm).  This lets you have each license under a different copy of lmgrd, perhaps so that you can attempt matching versions, but mainly so that if one of the lmgrd instances crashes, it will only take down that license.  (Actually, it's because in this configuration you need to run them on multiple machines, so if one machine goes down, most of your licenses stay up.  But I know what they really meant.)

Alternately, you can combine licenses into a single file, a process that the manual warns is time-consuming and error-prone.

Finally, you can simply have all your licenses be handled by a single lmgrd instance.  Now, this isn't really a bad idea, except for port numbers.

See, each vendor daemon needs to run on its own TCP port number.  You can specify the port number in the license file, except when you can't because some vendor hardcoded it into their software.  If you don't specify a port number in the license file, the vendor daemon will be given a port number starting at 27000 on up, giving you an address like 270...@mylicenses.thissucks.com.  Now, because everyone likes autoconfiguration, if in your program you leave out the port number (giving you something like @mylicenses.thissucks.com), then it will automatically search ports 27000 through 27009 for a matching vendor daemon.  Unfortunately, I haven't seen a single vendor product that doesn't puke on such an address, claiming it is invalid because of faulty validation, even when the FLEXlm manual in front of me says it's perfectly legal.

If you don't then modify your license files to specify ports (which you have to remember to do every time you get a new license file), then you better be aware of when the license server reboots, because the ports are given out in the order that the services come up.  So if you're in my situation, where the first of the vendor daemons always crashes the first time it tries to load on bootup, then the other two will have their normal ports decreased by 1.

I haven't even gotten to things like functions to reread license files that don't actually reread them, a UI that doesn't tell you if a server is running or stopped until you hit the buttons to try to run it or stop it, a status window that displays a large amount of license data in a tiny, non-resizable window, and more.  The product feels like it was developed in 1988 (it was) and is a study in market leader stagnation.  I would be very surprised if they have a single developer left and haven't fired everyone to just sit there and watch the money roll in.

If license servers are necessary for some product you're creating, there are other license servers out there that simply run on a well-known port and don't require any of this idiocy.  Unfortunately, in my experience I've seen more companies switch to FLEXlm than away from it. I hope this isn't an industry-wide trend.

Where's the KDE angle?  There isn't one specifically, other than this: if someone in the KDE community thinks this is a good design, or can see themselves designing such a scheme, please just leave.  Now.  (Don't worry, I'm sure this doesn't apply to any of you. :-) )

Filed under: KDE 11 Comments
27Feb/093

Amarok Power User Feature: Batch-mode collection scanning

A long-requested feature has been a way to decouple Amarok's collection scanning from its GUI.  There are various use-cases for this.  For one, it can actually help us with debugging, by allowing us to control the inputs into the scan parser.  For another, many people have all of their music stored on a single machine, and would like to do the scanning locally where it's fast instead of on their e.g. laptop running Amarok, where it's over wireless and slow.

Yesterday and today (as of r933010) I put half of the solution into trunk.  I say half, because full collection rescans are now supported in batch modes, but I am still working on the methodology for incremental scans (I have a few ideas, but have to sort out which is the most reasonable/doable/makes the most sense). Below, I'll explain how to do it.  Keep in mind that this is designed to be (lightly) scripted, not done by hand...so it can be done by hand (which I did during testing) but it has some safeguards in place so that if you script it, and forget about it, Amarok still works normally.  However, there are actually some interesting things you can do now if you script the scanner...

One important thing to note: the scanner requires various bits of Amarok code, mainly centering around the extra taglib plugins we support.  So you're unlikely to have it work on a machine that doesn't have A2 installed, and certainly won't be able to compile it without the rest of the Amarok source, although you may be able to get it to work in a binary-only fashion with just kdelibs and taglib...YMMV.

So, here's the flow:

  1. Run amarokcollectionscanner with the -b or --batch option.  Although this doesn't directly modify the output, it sets some internal flags (some for safety, some to enable other options).  The output goes to stdout; save this output as amarokcollectionscanner_batchfullscan.xml (yes, it must be that specific filename).  You'll probably want to use the -r flag too...check --help for more options.
  2. Cool feature: if your scan is of files that have a different mount point on the local machine than the machine that will be using the output, add the --rpath option and give it the mountpoint of the directory on the consuming machine.  For instance, if on the local machine your music is at /opt/music, and this directory (music) is mounted as /mnt/music on the remote machine, run amarokcollectionscanner from /opt and use --batch --rpath /mnt/music.
  3. Cool feature: You can scan multiple directories and simply append the output to the end of the file from step #1.  Yes, directly append, including the xml version/encoding header.  Amarok's scan manager will detect and handle this.  You can even scan directories that are not defined as collection directories in Amarok (these entries will work fine, but the next time you do a full rescan from within Amarok without using the saved output, they will be gone).
  4. Place the amarokcollectionscanner_batchfullscan.xml file in your Amarok data dir.  Usually, this is ~/.kde4/share/apps/amarok.
  5. Trigger a full rescan from inside Amarok (in Settings->Collection).  It should be super-fast.  :-)   Note that this step deletes the amarokcollectionscanner_batchfullscan.xml file.  This is on purpose, so if you want to keep re-using it, you'll have to keep copying it over.

As you can see, it's designed for scripting, but it's not terribly complicated even to do by hand.  I'll post more as I get incremental scanning working, and will at some point put a Wiki page up that has all of these instructions in a less transient form.

Filed under: Amarok, KDE 3 Comments
25Feb/0913

Camp KDE videos: Come and get ‘em

After a month's delay, they're done.

In the interim (after the delays mentioned in my last post on this topic), my poor, underpowered desktop machine has endured transcode after transcode (from the original source material) and my Internet connection upload after upload as I tried to figure out just why Blip.tv wouldn't work with X or Y.  (In fact, I can quantify these: X is Vorbis/Theora, which produced awful audio and very desynchronized audio/video upon their conversion to .flv; Y is a lot of things related to the original anamorphic encoding of the videos, which Blip.tv can't handle, and finding the right combination of settings and flags and adjustements to make the aspect ratios come out so that everyone didn't look like Gumby®.)

This was followed by a few days of uploading; Blip seems to max out uploading speeds somewhere between 100kbit and 200kbit, so uploading almost 6GB of data, one chunk at a time, took a bit.

The end result is thirteen videos, each Xvid-encoded (at least it's OSS, although patent-encumbered...see Vorbis/Theora problems above) with a Matroska container.  You can get to them through my show or to individual videos directly (these might not be in strict as-presented order):

Enjoy!

Filed under: Camp KDE, KDE 13 Comments
23Feb/090

#kde-soc

Just a note to make people aware that #kde-soc exists. There's basically no activity in there right now, which is rather expected, but as SoC-related activities pick up steam so will the channel.

Filed under: GSoC, KDE No Comments