pphaneuf: (Sleepy Head)
[personal profile] pphaneuf
Go up somewhat late, and off to have breakfast with the lady [livejournal.com profile] azrhey. Of course, by "breakfast", we really mean roast beef and pastas. There was orange juice, it's breakfast, right? Wee!

Although I had somewhat different goals originally, I felt particularly like hacking today. There's that occasional fantasy I have which struck me again, so while I wasn't wearing particularly hip clothes (just my standard black logo'ed t-shirt, cargo pants and combat boots get-up), I was inside rather than on a terrasse (considering the weather, smart move!), not in Europe, had no headphones or music (forgot the headphones! duh!) and only sipping hot chocolate, it was fun anyway! There was wireless Internet, but expensive, so I didn't use it, which helped me keep focus on my hacking. There was a pretty law school student a few tables over which seemed to have been checking me out every so often (and so was I!). This was, all in all, quite nice!

I really ripped through some refactorings I wanted to do to XPLC, my pet project, mostly renaming and moving stuff around (which I've wanted to do for a while, not enough to warrant the pain of doing it with CVS, but now that I've switched to Subversion, whee!), but also ripping out some rather misleading stuff about monikers. I should have done that long ago, would have saved me quite some time in explanations.

I've faced silly annoyances with iTunes some more, once I've got home. I was hacking in bed, and the tinny sound of my Powerbook's built-in speakers was starting to grate on my ears something fierce, and there was the cables going to the television set lying on the floor beside me. I figured I'd use the television's speakers, and could put on some visualization, while I'm there. Nope, I'm not having any of that. First, picking the screen the visualization comes up when in fullscreen mode is quite iffy. The iTunes window has to be on that screen. But it's not as if that would help, as the fullscreen mode would also black out the laptop's screen, rendering it useless. Well done, Apple.

I researched some more iTunes-related stuff, and going through bug reports for it, it seems the iTunes developers are, well, a bunch of silly monkeys. Someone (Steve?) has vision, somewhere, but the execution is terrible. This makes it that much more frustrating, because you see the great vision, only to have it ruined by bugs and interface mistakes. An example: when consulting the information for a track, the player won't advance to the next track! Yep. You close the information window, then it resumes playing. Who the fuck let that through QA?

And then, I look at some other players, and either they have nice execution, but no vision, or even worse, no vision and terrible execution as well. Argh.

I vowed to myself again that I will not start coding a music player (or any other significant project) without XPLC being advanced enough to use for it. I might assist [livejournal.com profile] sfllaw with a Mac OS X port of whatever he hacks on, though... ;-)

I learned an awful lot about how bundles and frameworks work in Mac OS X, and how you build them using Xcode. I like the toolset, it's a bit more complicated than the Linux ELF toolchain, but gains more functionality and is easier on the end-users for it (the two-level linker, for example, helping prevent crazy crashes because of unwanted shared libraries interactions).
(deleted comment)

Date: 2006-01-03 07:17 pm (UTC)
From: [identity profile] pphaneuf.livejournal.com
Well, my day job is "mad scientist" at a computer company. I just hope computers could stop being so horrible, one day. In the past, we had the excuse of them being under=powered, but nowadays, it's just us (programmers) being stupid.

Date: 2006-01-03 02:55 pm (UTC)
ext_157608: (Default)
From: [identity profile] sfllaw.livejournal.com
This strategy of consistently remind me that I have potential users is a good one. :)

Date: 2006-01-03 07:19 pm (UTC)
From: [identity profile] pphaneuf.livejournal.com
The trick would be to do the marketing right to dislodge XMMS and Rhythmbox. The latter is annoying close enough to being decent, but I wonder how fixable (and also, the ability to make it a good Mac OS X player seems dubious).

Date: 2006-01-03 09:11 pm (UTC)
ext_157608: (Default)
From: [identity profile] sfllaw.livejournal.com
I'll have to admit that I don't care very much about supporting your non-free operating system.

I also have to admit that hacking on Rhythmbox is very tempting, because it is well maintained upstream and the developers seem to be friendly people.

Flawed design too

Date: 2006-01-04 06:57 pm (UTC)
From: [identity profile] guspaz.livejournal.com
iTunes also suffers from a flawed design. For example, the non-native GUI might LOOK nice, but it is also SLOW compared to native Windows widgets.

And of course, as you pointed out, there is still the poor execution. How come it can take iTunes over 30 seconds to recognized that there is an iPod hooked up to the system, even though Windows realizes this in half a second? If you're going to have a process called "iPodService" running in the background 24/7 sucking up memory, you'd damned well better detect the thing nearly instantaneously.

Re: Flawed design too

Date: 2006-01-04 08:33 pm (UTC)
From: [identity profile] pphaneuf.livejournal.com
It's slow for other reasons. Native widgets aren't magically faster than hand-drawn widgets. In fact, if I remember correctly, on Windows, the "native widgets" are just a library that most people use. It's like shipping Linux with Qt and saying that those are the native widgets.

I'm using it on Mac OS X, where it is slow as well, even though it's now in it's semi-native environment (it actually isn't, because it's a Carbon application rather than a Cocoa application, but my previous comment applies). Apple bought a small company that made an MP3 player previously for Mac OS 8/9, and it turns out they're just idiots, that's all.

I should give the sampling profiler a try on iTunes, see what seems to take so much time (won't know what's happening in their code, but if they call out to libraries a lot, I might be able to figure out something).

February 2016

S M T W T F S
 123456
7891011 1213
14151617181920
21222324252627
2829     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 20th, 2026 09:30 am
Powered by Dreamwidth Studios