So, apparently, if you use iTMS on your Linux/GNOME machine, you can buy songs and play them back. Against all expectations, these songs are:
- not tagged (shame on you, Apple!)
- not encrypted (woohoo! love ya)
She said: "Ronald, I've been doing something different lately. Do you want me to take you to this new world and show you the code that will rule your hard disk tomorrow?" and I said "sure, why not" and off we were.
And there we went off, to a computer, she showed me a dark terminal with a GNOME mountains background through the transparent background (yes, that's slow). And she typed, magically, but it worked as if it was a P-4 2 GHz: "search Korn", and output appeared. Free preview (~15sec), played back through GStreamer, $0.99 for the full song. This is not just a price. Those knowledgeable know what this means.
Apple iTunes Music Store accessible on your Linux box (with a shiny GNOME UI, of course). Coming soon.
Special were the talks I had with Oyvind (GIMP/GGGL/Oxide), Charles (MLT/Kino) and Edward (Pitivi) on how to do more advanced stuff with our respective video solutions w.r.t. video editing (plus lots of cool demos) plus the obligatory amounts of lunch and beer. It's good to have talks with people that know their stuff. It gave me some pretty good ideas on things I can try to do in the future, and some starting points for basic interoperation. More on this is yet to come. Here's some cool stuff: Oyvind can do pretty wacky advanced motion vector and interactivity stuff in his framework that we cannot do yet. Oyvind has some really wacky examples (like live pong using a webcam), people really should look at those. Charles has some very well-working video editing things that are being used in the industry. It's very well-thought-out ideas that we can adapt and use ourselves, too. Long live free software!
We're currently preparing for a new gst-plugins release, which should be out within a few days.
Current GStreamer-0.8 design has various generally agreed-on problems that cannot be fixed easily without breaking ABI/API. Worse, for a long time we did not know how to fix it and did not agree on a common direction towards fixing it.
Generally agreed-on solutions:
Here is what came out of this discussion:
Solution #1: -threaded:
-threaded is an experimental branch that aims to add locking in the right places, adds protocols on locking and variable usage and make it all just work. It also adds some nice extra features such as media processing on events (e.g. "preroll", which means that the media is preloaded while a user executes an action).
Solution #2: -nonblock/async:
-async/noblock is another experimental branch that aims to remove the requirement for threads by using an event-based scheduling model. Elements are only scheduled when all preconditions for a non-blocking execution of their function is met (e.g. a file descriptor, a clock, etc.). Interesting features are seamless mainloop integration, which allows out-of-dataflow pipeline processing (e.g. expose an X window on expose events).
The rest of friday was spent on discussing both approaches, fetching problems, setting a short-term path and some more. Wim and Dave believe that the async/noblock approach can be merged in the otherwise nice -threaded approach (which already implements the other stuff that we agreed on).
Next few days, we'll be experimenting with the design and implement all of the above. We will also discuss various directions for gst-plugins that are not directly related to GStreamer core. For the near future, we will work on preparing core to become the 0.9 branch, port the various subsystems from -threaded and -noblock/async over to this 0.9 branch (and have various people understand and review this), write a porting guide, remove deprecated code, write reference plugin implementations, updating documentation and porting plugins. From then on, we hopefully rock.
Time for beer. :).
Friday was the most important day, where I got to have interviews with the faculty staff; they will ask you about previous research experience, academic results, science interest and goals and social interests. It's the same as when applying for undergraduate schools in the US, yet very uncommon in Europe. The good thing was that I already met with half of the faculty staff when I studied at Cornell as an exchange student last year. The first three talks were laid-back and easy, all in the prebytorian hospital / weill medical college building. I was basically told that they were happy to see me back and were very satisfied by the fact that I wanted to come back to Cornell (and that they would happily accept me). Actually, it was mostly just social chatting rather than an acceptance interview. So far so good. The next interview was in Memorial Sloan-Kettering (a heavily funded cancer research center) and went surprisingly well (I didn't know the guy, he didn't know me, and he was said to be fairly critical; well, he was very nice and invited me to come over in August to discuss a possible research project there). The last talks were in the hospital building again, and again all was fine. I met up with my former supervisor (who was interviewing other prospective students that day) at the reception afterwards, and he told me that I was one of the top-of-the-list students. Good to see a good feeling being confirmed.
Obviously, there's many good universities in the US: MIT, Harvard, Columbia, Yale, etc., they all have as excellent, or maybe even better, research facilities than/as Cornell. What they don't have, is The City [ok, so Columbia is in New York City, too, but that's Harlem; it doesn't count]. So in order to get all of us in love with all this, Cornell paid for a full day of New York entertainment that Saturday. A total of 125 youngsters got to go to some of the finest restaurants in town, and after that they spread out to see broadway plays or visit jazz and comedy clubs. I went to a Japanese restaurant where we had delicious wines, good sushi and good-old lobster right at Union Square. We ate some chocolate specialties as well, and had a good night of jazz with it [ picture ].
The day after, we were about to go home again. My plain left only late in the afternoon, so me and some other students had brunch together [ picture ], and after that some of us went to the park, where a bulgarian artists' orange creations were decorating the ice-skating track. The ice-skating-in-central-park is one of those things that I fell in love with last year already [ Picture ]. I just arrived at Schiphol this morning, tired but happy.
The weekend was just great. My class was great so far (obviously, not everyone may be accepted and not everyone may accept the acceptance) and the city was just as great as in my memories. I can't wait to start here in August.
Cleaned up again today, back to 175 (incl. enhancements, excl. needinfo), and - as Christian said - out of GNOME's hall of shame. Yay. I guess hall of shame isn't really a good word, it just implies your software is used a lot. Unused software gets no bug reports, no matter how buggy it is. So I guess we should be happy with the amount of bug reports we get. Good job, people. Keep them coming. We still have many bugs and I hope to get to an acceptable level of workability (which is not the same as 'well, that may crash and this may be broken, but playing this specific Ogg works!') when GNOME 2.10 comes out.
However, I won't be triaging for a while, at least I hope so. I'm off to Manhattan thursday morning for my in-take talks at Cornell medical gradschool (plus the usual get-to-know-the-city night-stuff), and am flying onwards to Barcelona (GStreamer team 0.9 summit) and Brussels (FOSDEM) right after. I'll post some pictures if I can.
Gotta love it. I definately do. :-).
In other news, I'm said to have ported a plugin to the threading branch in GStreamer. It's not hard, which is good. I'll port some more plugins later this week. This branch may end up becoming GStreamer-1.0.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!