45
I Use This!
Activity Not Available

News

Posted almost 17 years ago
So, I’m not totally done with the Mork implementation yet - but there’s not much left. It’s just some basic things that I’m still unsure about (I’ve actually mailed a guy over at Mozilla about that) and some clean ups. But I still thought I would ... [More] post some heap-buddy numbers to show the progress. Here’s the heap-buddy output from the old implementation: Allocated Bytes: 55,6M Allocated Objects: 943118 GCs: 17 Resizes: 12 Final heap size: 25,3M Distinct Types: 114 Backtraces: 2269 As you can see, these numbers are very bad. Final heap size at 25,3MB isn’t that ideal (the file I’m parsing is 1,2MB in size). There’s also a lot of allocated objects, many more than necessary. This is not strange in any way since the old implementation used strings and regular expressions to work. The new implementation has ditched this concept totally and use only byte arrays. Now, here’s the current heap-buddy output: Allocated Bytes: 4,8M Allocated Objects: 150837 GCs: 15 Resizes: 11 Final heap size: 3,0M Distinct Types: 92 Backtraces: 976 The numbers above are more rational than the first ones, but I’m still not 100% satisfied with them. They could be lower. But I can’t whine too much about it, it’s decent since the parser is fully implemented in managed code (=decreasing the speed and adding some memory overhead compared to native code and my code isn’t ideal either). And it’s also much much better than the previous implementation. Maybe I find a way to decrease the memory usage more later on, who knows. I also just want to point out that the numbers displayed here are preliminary and don’t reflect the finished implementation. There might be some variation, but I can’t know that yet. I haven’t done any scientific speed measurings as of this time, but I do have a Beagle.Util.Stopwatch that gives me an idea of how fast the parser and database is. The old implementation currently take about 0,9 seconds to parse the same file I took the heap-buddy numbers from above. The new implementation needs only about 0,37 seconds, so it’s more than twice as fast. Which is nice. [Less]
Posted almost 17 years ago
Shameless electioneering: I want the Banshee Web UI to win the Novell Hack Week People’s Choice Award so that I have more time to hack on it. To do that I need votes! So visit the project page and click on the “Vote” box in the upper left.
Posted almost 17 years ago
A quick roundup on the Banshee Media Server: Nat pointed me to SoundManager 2, a Javascript- and Flash-based framework for playing sound. The actual playback is done using Flash, but the whole thing can be controlled and monitored from Javascript. ... [More] This is exactly what I wanted for audio playback, and I replaced JW MP3 with it. Thanks to this, I implemented basic controls (pause, stop, next and prev) and now the playback proceeds through the playlist. I added table sorting, using the TableSorter plugin for JQuery. The audio even proceeds through the sorted list, so if you change the sort of the table while something is playing things don’t jump around. Jakub had a good point that you might want to use a very similar UI for controlling playback on the server, essentially making this interface a remote control. Imagine using a Nokia n800 in your kitchen while you are making dinner to control the music playing there. While that probably won’t be a focus for the first version, it should be pretty trivial to do this with the same UI. Longtime Beagle contributor Lukas Lipka has started hacking on the server side of things. He has a stripped down XSP starting up. The Banshee D-Bus API isn’t quite ready yet, but hopefully we’ll have a static library on the server that dynamically generates the JSON data. I hacked up Aaron’s random library generator to create some huge JSON files and served them. Surprise! We don’t scale to a one million song library at all. The evil part of me wants to use Google Gears to handle processing of the data in a separate thread, but probably we’ll just have to deal with paging through huge numbers of results. As before, I have an oft-updated server running. Hopefully by the end of the week we will have it serving some live data. [Less]
Posted almost 17 years ago
By now you’re probably all sick and tired of hearing about Novell’s hack week, so this is a great opportunity to tell you about my hack week project. I got a late start (ie, today) because I was off yesterday, but I’m working on a web interface to ... [More] Banshee. The need is obvious: my iPod can only hold 8 gigs of music, and I often want to listen to a song somewhere in the other 40 gigs of music stored at home. DAAP is great for local sharing, but if you want sharing across a WAN, you need the web. This is also my first attempt at learning JavaScript. I’ve touched it a bit here and there — mainly in the Beagle Firefox extension — and still don’t know many “best practices”, but I am enjoying learning as I go. I’ve been using the excellent JQuery library thus far in building the UI. Right now there are a few AJAXy requests in the page. The list of artists is loaded separately from the page. Clicking on one or more artists loads a list of albums. Clicking on one or more albums loads a list of tracks. Right now all the data is in static files of JSON and there isn’t a server component, so it doesn’t matter what you select. Lastly, I plugged in the open source JW MP3 flash player for actually playing the music. This is probably a temporary solution, but it’s nice to be able to play the music on the page without reloading or opening an external application. Jakub created the fantastic layout and has been helping with the UI — it was a train wreck before. He also helped me set up git so that we can share our work. You can play around with a “live” setup here. I hope you like my Grammy award-nominated song, because that’s all you get. Now that the sun has set and the temperature has dropped below 90 I can go home. [Less]
Posted almost 17 years ago
So I’ve managed to reach the devilish point of this project: Mork. Used yesterday to brush up on it and created the various types that I will need to create my implementation. I’m currently hacking on some basic parsing methods and everything seems ... [More] to be going pretty well so far. Since this implementation is stream based (reading byte by byte, the way it should be), adding debugging capabilities will be a breeze. One of the things I just added is line and position count so that debug message can give the exact position where a parsing error occurred. One of the major pros of this is that no one will have to send me their Mork files to me when debugging, just a few bytes around the trouble area so that I can locate the error. Much better from a privacy standpoint IMHO. Time to continue hacking! [Less]
Posted almost 17 years ago
I’ve just committed new code from the past week and sent my weekly report to the dashboard mailing list. It’s been a great week (I actually managed to complete my goals) and I’m very pleased. The upcoming week will probably be the most interesting ... [More] and hardest week for me this summer: I will have to implement the Mork parser. Mork is this projects beast and I really hope to be able to complete it this week as I don’t want it haunting me. It would be nice to finish like a day or two early as well, leaving a few days for reviewing and testing before we enter next month (when I will begin to write the actual backend, woho!). I’ll leave it at that for know. Update: The API is updated. Forgot to mention that. [Less]
Posted almost 17 years ago
Just wanted to give a small status report since last time (which would be last Friday). I’ve been working on the RangeList a lot, has taken some work but is mostly done and working. Might save some memory one day. The PreferenceParser (as mentioned ... [More] in the API) is also almost finished. The remaining part is to fix a small bug in the FileReader (which is not yet in the API btw). I hope to be able to take Friday as my “update documentation and write tests/regression tests”-day so that I can post them here, in case anybody wants to help out by testing my accomplishments. I also want to point out that the API is quite out of date at the moment and will be updated sometime this Friday. [Less]
Posted almost 17 years ago
Google is a strange and wonderful place. I highly recommend it. The Admiral for Memorial Day
Posted almost 17 years ago
Finally - I’ve set up a new Subversion branch and uploaded some code. It’s all stubs and can’t be used for anything yet. So… filling all the blank spots and writing some code will be the next step. All planning and documenting is pretty boring when ... [More] one do it to much, so I need to get some coding done to increase my motivation a bit. I’ve added a lot of things to my new branch, so just check it out if you are interested. [1] There’s also an “API” page with some reference material as well. [2] If you want to do an anonymous check out, you only have to type: svn co http://svn.gnome.org/svn/beagle/branches/beagle-tbird-soc07 …to get a local copy. Just compile and install it as usual. [1] Browse the code [2] API reference [Less]
Posted almost 17 years ago
Has anyone else been getting absolutely slammed with trackback spam lately? Usually I get two or three spams caught up in my moderation queue a day, but since the weekend I’ve been getting at least 20. I was running Akismet 1.2 and upgrading to 2.0 ... [More] didn’t help. As it stands right now, Akismet has caught 1085 spams and failed to catch 96. I wasn’t really been keeping tabs on the numbers, so I am not sure if this is roughly the same missed spam rate I was seeing before or if the volume of trackback spam has increased tremendously. At this point, my mailbox is getting so full of moderation requests that I’m about to just turn trackbacks off altogether. I’m not crazy about this, as I don’t have regular comments turned on, but I don’t know what else to do. If anyone has any ideas or insight, drop me a line. [Less]