Thursday, October 27. 2005
How I Learned to Stop Worrying and ... Posted by Ian Monroe
in eean at
19:21
Comment (1) Trackbacks (0) How I Learned to Stop Worrying and Love the `moc`
One handy feature of amaroK's dynamic mode, the complation of a custom combination of playlists, are currently obscured behind right-mouse-button menus.
A while ago I thought of a possible solution to this: An idea struck me today. The Dynamic Playlists could be organized in a So the PlaylistBrowser KListView should sometimes have checkboxes and sometimes not. Sounds like a good time for inheritance, right? Actually no, and if it wasn't for `moc` I might of gotten away with it. The problem is that to add a checkbox you have to use QCheckListItem which inherits QListViewItem. However we're currently using KListViewItem (to get the nice alternating background) which also inherits QListViewItem. So through normal inheritance its impossible to have an object that can have one or the other parent depending on the circumstance. ...unless you use a template, right? Since we actually subclass KListViewItem into classes like SmartPlaylist, PlaylistEntry a template could be used to determine at compile-time which parent class (QCheckListItem or KListViewItem) should be used. However PlaylistEntry is a QObject (it uses threading to load playlists). `moc` forbides QObjects to be template classes. So I cursed moc and made a parent PlaylistEntry and had QObject and non-QObject subclasses. Once I figured out that I might have to do something similar with the KListView itself, I went to bed. Today I implemented a much better solution, one that had actually been on the back of my mind the whole time. I iterate through the existing KListView and create new QCheckListItem's using the text() and pixmap()s of the KListViewItems. No refactoring needed. Now I love the moc.
Tuesday, August 2. 2005
Meta-Information, Track Infomation, Tags Posted by Ian Monroe
in eean at
18:04
Comments (24) Trackbacks (0) Meta-Information, Track Infomation, Tags
For a while amaroK has used the clumsy language "View/Edit Meta-Information" for the menu items opening the "Meta-Information" dialog (where users can change the tags of track[s].) So I changed it:
![]() For a single track, it says "Edit Track Information". Markey suggested using "Tags" instead of "Track Information", so it would be "Edit Tags for This Track..." and "Edit Tags for %1 Tracks...". Or something like that. Is tags more or less clear then track information? Other ideas? Wednesday, July 27. 2005ALSA, Good Weather
Does anyone know anything about ALSA device name and plugs? The new Xine Config dialog is kind of full thanks to the fact that xine has a different configuration for sound devices depending on how many channels are being played.
For instance, by default the mono device for xine-lib is simply default and 6-channel sound is plug:surround51:0 Would there by some way to let the user specify which device they want to use (that's the goal, let users who have two sound cards specify which they want) and have that apply to all the channel settings? I don't think users have a need to change the plug settings, so it seems like it should be possible. I've looked at the xine-lib source code, it appears the device is being sent directly to the ALSA lib more or less. And now I refer you to Konversation's /weather script: Current Weather for Columbia, Columbia Regional Airport : Clear skies, Temperature: 71.1°F, Pressure: 30.15" Hg, Wind: 10 MPH N To translate, its great weather. Missouri's weather could be described as polarized: it can get really cold in winter and really hot in the summer. The Intermediate Value Theorem means its occasionally nice. Today is one of those days. Yesterday a cold front brought in some needed rain and today we're somehow having the cold front without the rain. Nice especially since we've just had a week or so of body temperature weather (to express it in a metric/imperial-neutral fashion). So when I went to desposit my check at the bank I proceded to go down a path to a creek and watch fishs for about 15 minutes. Then I skipped a few rocks, remembered I'm not any good at that, and just starting throwing large rocks. Saturday, July 16. 2005Friday, July 15. 2005Why Today is Good
A couple of weeks ago I figured out I could quit my job about a month and a half early (I had been planning to quit the last week of August) and have enough money. Meaning that if I kept on working, that would be greedy, and I can't have that. ^^ Probably more relevant I need to work on a couple of websites before school starts. So, I gave my two-week-notice with today as my last day since its also the end of this pay period.
Only later did I put two and two together and realize that its also the night of the Harry Potter release. I had already been looking forward to today, since I get off work at 23:00 about two blocks from the Barnes and Noble. Some friends I haven't in a while should be there as well. So while today should be awesome, I predict work will progress very slowly. Consider this perfect storm:
Outside of the website work, I should also start having time to get back into amaroK development. Here is my personal todo list, published to provide some pressure on myself:
Friday, June 24. 2005Slashdot; NDA
This is my first post that will be shown on the planet I believe. So to introduce myself, I'm Ian Monroe, a relatively new developer on amaroK.
Slashdot picked up the story I submitted about KDE, amaroK and Wikimedia. All credit really goes to Sven Krohlas for writing the original dot story. Anyways, this will give me some additional geek cred when I return to school this fall, as if I needed it. A couple of days ago I had to sign a Non-Disclosure Agreement for my company. I guess it just shows how out-of-hand NDAs are getting. I'm a laborer at a textbook warehouse. Exactly what would I be disclosing. Book sorting techniques? The secret methods of stacking books? Anyways, it also means I'm not allowed to work on any book-related software projects for the rest of the summer. Not an issue. It does show what a foe NDAs can be to open source development that they at least claim to restrict what you develop even on your free time. I understand other states have different laws about this, but generally speaking Missouri doesn't offer much protection for employees. Later today we get the results for the Google Summer of Code competition. My numerical chances are not very good, but I try to be optimistic anyways. I just hope Google realizes that KDE has the largest public revision control system in the world and allocates openings accordingly. Sunday, June 19. 2005Formula 1Wow, this year's Indy GrandPrix is even more thrilling than all the other races before it even started. Exploding tires ain't funny, but building a chicanery to slow down those, who could go faster, would be unfair, too. If you feel unsafe, then just advise your drivers to drive slower. Anyways, here's my TV setup for this evening: Sunday, June 19. 2005Hot as a ...Talking about the weather, of course. 30 centidegrees and more recently. Which is good on the one side: I love the summer, the sun, being outside... almost everything. Besides: - Being in the tube sucks. It's incredibly hot down there and all the sweating people don't look that happy. - Carrying a backpack wil leave funny sweat-marks on your shirt. - Sitting in the office, praying for some fresh air. In other news: I've been to the Hyde Park yesterday! Uploaded some new photos here. Afterwards I went to the Nike Town at Oxford Circus and left the store with four new shirts (which I desperately needed due to the sweat-marks I mentioned before *g*). Now if I only had have some new sunglasses, which I then wouldn't lose two weeks later. That'd rock Enjoy the summer! Cheers, muesli Tuesday, May 31. 2005Damn beer Tuesday, May 31. 2005Thursday, March 3. 2005new eq
Got the new eq working using the DCOP call I added today. For a while I was really stumped with some things, but they turned out to not be so bad. There's still some issues I need to figure out, need to put the equalizer in a proper dialog etc. Right now my plan is to make it an amaroK "script" and then putting it into amaroK itself at a later date (not in 1.2.x).
![]() Looking forward to the LiveCD. Sunday, February 27. 2005on Equalizer's
I went to a Barnes and Noble (a large book store with comfy chairs) yesterday and to my present surprise they had the Qt book from Trolltech. I read most of chapter 8, the one on QCanvas. It was quite an exciting read (really!). Got me thinking about amaroK's equalizer. Personally I find it cumbersome to use, it seems like it (and pretty much all computer equalizers) limit themself to being an analogy to the real world equalizer. However last year on my computer, aRTs had this really nifty equalizer that worked kind of like a line graph. You could define points on the line and drag them around, it was really the first equalizer that I found worth using. It came in handy when I DJed for a dance. Since then, I really don't know what happened to this aRTs plugin, I can't find the source for it anywhere.
So after wrestling with the KDevelop C++ template last night (it doesn't work with unsermake for some reason) I have successfully drawn a line across a qcanvas. I plan on developing it as a separate app and putting it into amaroK somehow when it is done. I'm not sure how it should integrate itself into amaroK, since the current equalizer has the advantage of being very simple to figure out. We've missed you mxcl! Friday, February 18. 2005being logical
Markey assures me I can blog about anything, not just amaroK stuff. So I'll take advantage of this and get this new blog thing rolling with one of those boring entries blogs are famous for.
To make a not-so-long story short, I've taken a year off my Computer Science degree at Truman (was getting burned out), failed to find a job in anything IT related, so I'm working in a textbook warehouse. Today I was assigned to 'corner', my first thought being "WTF is that?". It is the person who shuffles all the books as they come down on the conveyor belt into one of three lines, depending on which floor of the warehouse the books will end up. So, I was doing this. Having a good time, its one of the few jobs where you get to sit down. But I was sucking at it pretty bad. Despite being very simple (book marked three, put on the belt for line 3) I was having a hard time at it. Partly I was thinking about amaroK. In adding .ram file support yesterday, its apparent that amaroK deals with playlists in too simple a matter, making the decision solely on file extension. So BBC World Service plays fine, but not the stuff at real.com. This is what I was thinking about. So whole quantities of 3 were going into 2. So then I decided that I could pretend to be the one logic operations that gives ==, > and < results as 0, 1, and -1 respectively. Comparing with '2', line 2 became line 0, line 3 became line 1 and line 1 became line -1. For some reason this increased my accuracy quite a bit, I'm guessing because it forced me to pause an extra 100 milliseconds. Later I assigned the lines based on their cubes. I guess the moral of the story is simple doesn't always means easiest. Or that I get distracted too easily. But now, I need to get to bed (I'm at -6 UTC). I'm debating whether to watch the Daily Show that I just finished downloading. This blog is brought to you by Konqueror's spell check. |
Amarok LinksCalendarQuicksearchCategoriesSyndicate This BlogBlog Administration |

