40
I Use This!
Activity Not Available

News

Analyzed 4 months ago. based on code collected about 5 years ago.
Posted almost 16 years ago by [email protected] (Tobias Rundström)
Last week I attended EuroPython 2009 in Birmingham, both as a speaker and as an attendee. This post won't reflect on my talks (one was not good, one was actually very good, I might do more posting about that later) but rather something interesting ... [More] that I observed during the conference this year.EuroPython have always been a very nerdy conference, no surprise there, so it struck me as very odd that several talks and seminars this year didn't include that much technology at all! They talked about politics and freedom.First out was Cory Doctorows keynote "The Copyright Wars" which I unfortunately missed, but Reinout van Rees have a excellent summary here. Hopefully the audio recording of that keynote will posted soon. It does bring up a very important point about the future of open source software in a world controlled by paranoid content makers.During the lightning talks (which was hugely entertaining at whole) two talks had the topic of politics.First out was Holger Krekel who talked about the internet and how the information about us could be used for mass surveillance and the need to do something about it. He touched on the very recent problems we have seen in Iran, how the state has been filtering the access to the internet. Holger went on and suggested that there are two ways to attack the problem.The first involves political activism ("We know it works, because we stopped the software patents"), he mentioned the Pirate Party (which makes me very happy) and that he considered joining it (Holger: You are very very welcome!). We need to start talking to the politicians and convince them that internet needs to be free!The second option for people that have a more technical approach to things (almost everyone at the conference!) is the need for new technologies that can't be filtered as easy as a centralized system for passing messages. Holger encouraged people to develop other ways to distribute information and getting around filtering equipment. My colleague and me was very inspired by this and started to scribble some notes on how a system like that would look like. I might blog about this later.All in all I really liked Holgers lightning talk, it was very inspirational and well delivered, thank you.The second lightning speaker that had politics as a topic was Jacob Hallen. Jacob strikes me as a very soft spoken and timid man (I actually talked to him right before his speech), which is why his talk really surprised me. He delivered a very passionate (improvised?) speech about how big content are using methods that are really scary and he drew a direct parallel to "men in high boots, abducting people in the middle of the night". Thanks Jacob, it was inspiring!For me it was very inspiring to hear this types of talks and speeches in a area so technology heavy (nerdy?), because this means that we are many that cares. Now we need to transform that care into action! [Less]
Posted about 16 years ago
Hey, this is the first post in this blog, so I’ll describe what’s the blog intentions: keep track of my Google Summer of Code 2009 (GSoC) work. post ideas of features to be implemented in the client. receive feedback form what have been done. I am ... [More] working in the XMMS2 official gui client mentored by Sébastien Cevey (theefer). If you don’t know XMMS2 click here, and for  cool posts of what an awesome client should be look at theefer’s Star Wars posts. [Less]
Posted about 16 years ago
In 2006 my girlfriend bought herself a MacBook, one of those white ones, pretty, easy to use, and all was well. About two years later the laptop started acting weird. I shut down even though there was still a lot of charge left in the battery and ... [More] other strange symptoms. A call to Apple and a quick battery check in the store and she got a new battery thanks to the battery exchange program they had running back then, almost no questions asked, and all was well again. A while ago the battery started acting up again. We came home from a short vacation and the battery icon had a cross over it and the battery didn’t charge. I got on the phone with Apple and they of course answered that I was SOL, but after refusing to accept that they told me to go to an Apple Support store to test if the battery was depleted, or defect. Needless to say it was defect, it had gone from acceptable performance to no performance in the blink of an eye. Ok, so with the blessing of an Apple technician I called Apple again and now things started to get strange. The support now told me batteries were something you used up and that this battery too was used up even though the technician said otherwise. After a while I had the support guy accept that Apple didn’t manufacture their batteries to suddenly die after a years usage, but rather become less and less able to hold the charge. Based on this acceptance I tried pointing out that Konsumentköplagen (law to protect consumers here in Sweden) protected me from manufactoring errors, and as we both agreed that the battery was incorrectly manufactured, as determined by their party, this would give me the right, and according to me, right to a new battery. This convincing had taken a while and the support guy was definatly not interested in Konsumentköplagen nor talking with me, so he redirected me up one level after he had explained the case to the next guy. The next guy had been told by his managers that batteries were something you used up, and thus the Konsumentköplagen didn’t apply, but when asking for a legal reference to his statement that batteries was specifically not covered by the Konsumentköplagen he got a bit defensive, specially after me pointing out that the first hit on Google has the title “Apple doesn’t care about Konsumentköpslagen”. After a short battle he sent me one step up to something he explained to be their office for more law-related questions. This time a Danish girl answered and the conversation continued in english and she didn’t seem to have ever heared of the Konsumentköplagen, but was kind enough to give me a 30% discount code on a new battery from Apple Store. I accepted this as the alternative according to her was to talk to their lawyers, and that seemed like a too big effort considering the price of a new battery. I’m still not completly sure who was right in this case, they never explicitly said that I was wrong. The Konsumentköplagen says that’s it up to the consumer to prove the manufactoring error, but as their technician had determined this already I belive that I was right, and I have still not found any explaination to the relation between Konsumentköplagen and batteries. [Less]
Posted about 16 years ago by [email protected] (Tobias Rundström)
I have already voted for Piratpartiet in the Swedish EU elections. For people who know me that can hardly come as a surprise. I just wanted to briefly talk about why I went with PP instead of MP (that I usually vote for), when they actually have the ... [More] same opinions about integrity and the future of Internet. I think it can be summed up in: I wanted to make a statement. There you have it. I want people in "power" to understand that it's not OK to ignore these questions (internet, freedom, integrity), it's not OK to push through new laws (FRA, IPRED) without consequences.I might be naive, thinking that voting for PP is a "consequence" for the sitting parties. At least it seems like most politicians seems to understand that they have to tackle this question these days, that's a start.Let's keep internet FREE, as in speech. [Less]
Posted about 16 years ago
Or why and how the new XMMS2 GUI client should be extensible (and what I mean by extensible anyway). Quizz: What do Winamp, Foobar2000, Emacs, Eclipse and Firefox have in common? (Vim users, we love you too, but shut up for now please.) They are very ... [More] popular and they highly promote extensibility. Now, we all know that correlation != causation. What is certain, however, is that all those projects boast many fan(boy)s, some of whom even get quite religious about it. This enthusiasm reflects itself in the emergence of strong communities: people who share content, tips, modules, extensions, themes, configurations, scripts, etc. And those people usually aren’t even core developers of the software, sometimes not developers at all; just users or hobbyists who like the project. Paradoxically, most of what they share is aimed at personalizing the software, i.e. making it the user’s own, fitting the user’s wishes and needs. This creates a feeling of ownership and satisfaction, because the user can bend it the way she likes and master it like a pro. In essence, the idea here is give power to people to shape the software the way they want, and they will extend it in creative ways and get together to share these extensions. And I think that encouraging this creative freedom is one of the many factors which contribute to popularity. Obviously, each of the projects mentioned above have their own way of allowing user extensions. Classic Winamp 2.* had (lots of) theme and some plugins (mostly effects, visualization), but remained otherwise quite static in terms of interaction or features. foobar2000 goes much further with theming and interface customization, allowing varied usage and user experience. Eclipse focuses mainly on extension modules (to interact with the VCS, manage project workflow, etc) and a jungle of configuration options. Firefox boasts rich installable extensions which add powerful new features, two levels of configurability (standard Preferences and advanced about:config), and recently themes (Personas). emacs allows essentially everything through scripting: altering and extending looks, interaction, features, as long as you have a high enough Elisp-fu (or enough curiosity to install other people’s modes). More to the point, extensions can be mapped along three mostly orthogonal axes: Themeable appearance (look) Configurable interaction (feel) Scriptable features (personal usage) Let’s take each of them and see what it means for our beloved imaginary music player. Themeable appearance Not an easy one, especially when one wants to rely on advanced features and widgets from a toolkit, which doesn’t necessarily allow for heavy reskinning. There are more and more ways to draw fancy stuff in a window (vectorial canvas, HTML view, etc) but those often come at the price of limited interactivity with the rest of the interface (drag and drop, event handling, interoperability with the MVC architecture). Using Qt StyleSheets (possibly with the help of QtScript) to style native widgets might be a better option, though I haven’t yet investigated in depth how much can be achieved with them. Anyone with a better clue is welcome to step up. While the whole layout of the player could benefit from imaginative and beautiful theming, one of the oft talked about use of styling was for the rendering of the playlist (usually out of jealousy for gorgeous foobar2000 screenshots), with album grouping, sexy styling of information instead of boring columns, etc. Viewing and browsing the medialib could definitely benefit from a rich, themeable design, which would ideally (and optionally?) smoothen navigation with animations (see a hastily put together demo I made with jQuery, a while ago). My foobar2000 - 6-28-08, by BestTechie Customizable interaction Power-users get easily nervous about GUIs, as they fear that their personal preferences might not be respected: Will there be a STOP button, or only PAUSE? The best way to approach such religious questions is to set a default reasonable with regards to the rest of the default settings (i.e. coherent with the “default experience”), and let the user change it if she wants to. Note that I put as much emphasis here on configurability as on picking a sensible default. In parallel, fine-grained options should be hidden away from the main configuration panel to keep it usable — a standard configuration pane similar to Mozilla’s about:config can do the trick. Will it require me to reach for the mouse? I believe that a complete GUI player should be usable either exclusively with the mouse, exclusively with the keyboard, or with a combination of both. The keyboard access is often assimilated to keyboard shortcuts, and indeed advanced users often rely on shortcuts to work quickly with an interface. They should even be able to define their own shortcuts bound to arbitrary actions (jump to the playing song, enqueue the album for the track I’m viewing, etc). However, another underused keyboard-based interface has been making a comeback into GUIs lately. You might have heard of it, it’s called the command-line. Apart from the venerable emacs and vim, command-lines have been creeping more or less discretely into various Mozilla projects. Bespin, the web-based text editor has attempted at allowing users to run smart commands directly in the editor. And of course, the Firefox 3 Awesome Bar is just a step away from a command-line; a step taken by the TaskFox (see demo), which brings Ubiquity into the browser address bar. I had experimented with the idea of a CLI-based GUI (sounds strange doesn’t it?) with my unfinished lindalë prototype, and I think it could bring a lot of interesting power to our new graphical player. More on this idea in a future post. Scriptable features As usual, the level of scriptability is a trade-off decision, somewhere between the horror of Excel inline formulas (a sad ad-hoc hack most of the time) and the universal meta-ness of emacs (which allows the editor to rewrite itself when you’re not looking). The latter is naturally attractive to us geeks, but it’s probably excessive in terms of work required. On the other hand, if we pursue our idea of using a high-level language for the GUI (possibly QtScript, which is being worked on), it should be relatively easier to import self-contained extensions into the player. In terms of design, it would be preferable to think of such “extensions” as features of the player, rather than external add-ons bolted onto it. The player itself would therefore be nothing more than a platform hosting extensions/features, and even the default interface would be implemented as extensions, indistinguishable from third-party ones. This would for instance allow anyone to tweak the widget that displays search results, or replace it with something completely different. Even better, entirely new features could be imported, e.g. a rich interface exposing a bookmarking system (managing a generic bookmarking service client under the scene), or new widgets to explore one’s music library. Possibilities are endless, and our time to work on them isn’t. I have been discussing some of those ideas with greafine, our student working on this project for this year’s Summer of Code, and we’ll work together to determine what is feasible technically and temporally. In any case, I hope this post hints at various ways we shall explore to achieve high extensibility! starwars_rock, by Clint M Chilcott [Less]
Posted about 16 years ago by [email protected] (Tilman Sauerbeck)
So here’s an XMMS2-Scrobbler release that will work with the recently released DrMattDestruction. This new version is witten in C instead of Ruby (so it’s much less memory hungry) and includes support for last.fm’s now-playing notifications.
Posted about 16 years ago by [email protected] (theefer)
Flowers blossom, birds sing and the sun is starting to shine higher and brighter and later every day. You know what it means: time to go out and find a nice spot in the shade, unfold your laptop and start hacking for it's summer — Summer of Code!This ... [More] year again, we were lucky to be accepted as an organization for the Google Summer of Code. Due to some logistic and organizational hazards, we're only running 3 slots this year, but it's more like a concentrate of amazing projects!See for yourself:cippo will tackle the almost mythical New Medialib Backend (AKA S4) project (GSoC entry), which aims at replacing our SQLite backend with a more suitable solution adapted to what we use it for, namely a key-value store for media (see the wikipage). Our very own and very bearded anders will be his mentor to make sure it all turns out even smarter than we expected.Although the latest iteration of collections has seen a lot of performance optimizations, we still hope that this could bring even better performance. However, we're also interested in improving the memory footprint (incl. reducing duplicate data), alleviate locking problems (BUSY EVENT!), allow smart/dynamic hierarchy of metadata (e.g. attach a cover image to the album entity rather than each individual media) and wrap it all together using collections as a query mechanism. It's all very new and experimental, and that's why it's so cool!Our second student, CaffineeHacker, will work on Cross Fade (GSoC entry), by making the xform chain persistent. A refactoring of the xform infrastructure is indeed needed to carry effects across song changes; optionally, the rework might allow "xforms to transmit data in the frequency domain instead of having each xform that uses frequency domain do an FFT". The project has been around for a while and we're happy to run it this year, mentored by rafl!Finally, we're happy to get greafine back for another round of GSoC this year. He'd done a great job on nycli last year (freshly released in DrMattDestruction!), and his application left no doubt that he was The Man to work on a very exciting, long-awaited project: a grand new GUI client for XMMS2 (GSoC entry)!The basic idea is, quite simply, to build the most awesome music player known to mankind, and while it might not be suitable for everyone, we're committed to make it follow a strong and original vision aligned with that of XMMS2. You can read more about that on the Planet, and more specifically on tru's and theefer's blogs. Incidentally, theefer will be mentoring this project.We look forward to working with the students on all those great projects!And meanwhile, works continue to merge nesciens' Collections 2.0 for the next release, and get GenIPC and Service Clients in as well! [Less]
Posted about 16 years ago by [email protected] (Florian Ragwitz)
I've been doing some contracting work for 10gen recently. They have that rather cool open source document database called MongoDB and they wanted me to write a module to use that from Perl. I did that and the code is now available on CPAN and ... [More] github. Writing that was fun, and I'm already looking forward to be able to use MongoDB as a backend for KiokuDB. I started writing code for that and put it on github, but isn't passing all the tests just yet. In related news, after finishing the MongoDB module, I'm available for other things again. So if you're looking for a Perl telecommuter, let me know. [Less]
Posted about 16 years ago by [email protected] (Tobias Rundström)
Apple is a very secrative organization, they value their secrecy because it builds up a hype around the products. I love Apple products, I am what most people call a Apple fan-boy. But I think recent events regarding the App Store aproval process ... [More] must be addressed in a negative fashion.I love the fact that Apple have created great development tools for the iPhone and they have done so for free. This have given the iPhone eco-system a great boost and in less than a year they have succeeded in creating a development community that it’s competitors haven’t succeeded with yet.I really believe that the App Store is a big reason for the success, all applications gathered and easy to browse / search. But the App Store is also the big sign of weakness in the iPhone eco-system. As you might already know, Apple is the gatekeeper for everything going into the App Store to make sure that “malicious” and “offensive” applications stay far away from the iPhone. While this makes sense (you don’t want viruses spreading via the App Store) in some ways the big problem is actually that Apple have so far refused to share any details on the approval process.This creates big problems, not only because it’s hard for developers to know if their application will ultimately be accepted or not, but also because currently it seems like the process is very random, some of them have gotten a lot of attention. The latest application that have gotten the metaphorical cold hand was Nine Inch Nail own application. The application was actually first accepted (and put on the “featured” page in App Store), when NIN then submitted a minor update it was rejected because of “objectionable content”.Probably this occurred because different people reviewed the first submission and the update. This really makes the flaw in the process really apparent, the developer can never trust the Apple approval process. If this continues I wouldn’t be surprised if small indie developers think twice before they start develop iPhone applications and that would really be a shame, because it will in the long run kill the community.I think that Apple have to be more transparent, really post the guidelines that are used for the approval process or even better, small developers should be able to “test drive” their idea and get a pre-aproval. That would make it easier for the small developer to justify the investment they need to do to create a iPhone application.Maybe another solution would be to “do a Maemo”. Maemo have a staging area called the “garage” where third party developers can upload basically anything they want, users needs to manually install them. This would allow Apple to review applications for the App Store, but applications that are deemed “offensive” can still be installed on willing users iPhones.Please Apple, don’t destroy a good thing you have going on here, a free SDK was a great idea, the App Store was a super idea as well but your approval process can throw it all overboard. Be transparent, let the developers in on the secrets in this case. [Less]
Posted about 16 years ago by [email protected] (Florian Ragwitz)
Lots of CPAN distributions require some kind of graphical environment. Some of them even pop up windows, which not only very annoying, but also sometimes fails if you're using a tiled window manager. To test such distributions on a machine where no ... [More] graphical environment is available or on your desktop while you're working and don't want to get annoyed to death you can use a fake X server, like Xvfb. The easiest way to do that is to run $ xvfb-run -a make test instead of a plain make test. That'll automatically create a fake xserver, set up DISPLAY and run make test in that environment. That works well for manually installing modules. When installing using CPAN.pm you can make things easier by writing a distropref. First, tell cpan where your distroprefs are. I use ~/.cpan/prefs: $ cpan cpan[1]> o conf init prefs_dir [...] <prefs_dir> Directory where to store default options/environment/dialogs for building modules that need some customization? [] /home/rafl/.cpan/prefs cpan[3]> o conf commit commit: wrote '/home/rafl/.cpan/CPAN/MyConfig.pm' Now write a distropref for the modules that need an X server and put it into your prefs dir as X11.yml --- match: distribution: | /(?x:Wx |Gtk2 |Gnome2 |... other modules requiring an X server )-\d| test: commandline: "xvfb-run -a make test" Now the tests for Wx, Gtk2, Gnome2 and all other distributions you list in that regex will be executed with a fake X server. I have yet to figure out how to write a distropref that just prepends to the test commandline instead of replacing it so I won't need to have another pref for all modules using Module::Build. [Less]