![]() |
| Home RSS Directory F.A.Q Suggest A Feed Try Custom Feed Sonneries Portable |
Latest Flows from this sub-category: random selection from this sub-category: |
Planet KDE - http://planetKDE.org/ Sat, 26 Jul 2008 01:58:07 +0200
The Maemo platform is growing up day by day and its good software and hardware attract every day new people. The Project:
Sat, 26 Jul 2008 00:26:28 +0200 Do you know about DBpedia? It's a project that lets you perform complex queries on the content of wikipedia. I've been playing with it a bit and want to share some examples. Try to come up with cool queries! To query DBpedia, there is convenient form. Queries are performed in SPARQL. SPARQL is a query language that takes some getting used to. So I'll start with a few simple examples. A query for all articles with an image: SELECT ?a, ?b WHERE {A list of all drugs: SELECT ?a WHERE {Everything with an LGPL license: SELECT ?a WHERE {SELECT ?a WHERE {All carnivors that had their name stolen: SELECT ?a, ?b WHERE {SELECT ?a, ?b WHERE {All pages that redirect to a plant: SELECT ?a, ?b WHERE {A query for all green plants: SELECT ?a WHERE { Fri, 25 Jul 2008 23:04:47 +0200 Since I got postitive feedbacks about Darkroom, and my interest for RAW images has pick-up while playing with my camera. My interest for developing further Darkroom has considerabely increase. And I guess it's an other example of how much good technologies like Qt and kdelibs allow to easily build up new GUI applications, in a very limited time. For instance, in this new release, everything is multithreaded, using the threadweaver library, which manages queues and threads for me (the only thing it could do better might be status reporting, or I need to figure out how we can get usefull status information). Now Darkroom also comes with a file view, instead of just allowing to go from one image to the next one in a directory, and you can apply the current settings to a bunch of images and then go take a cup of coffee (or two if you have a lot of images to process). And last but not least, you can adjust exposure, and it get some basic color management facilities.
![]() You can get it from my website. Fri, 25 Jul 2008 21:18:18 +0200 As I already wrote in the last post the linuxwacom driver now works with Touch devices as used in the Lenovo ThinkPad X61t. Today I tried to use the touch device, but unfortunately it's not full working with default settings as the other wacom input devices on TabletPCs. By default you can only use a part of the screen, the cursor never reaches the last 2-3 cm to the border of the screen. I tried to calibrate the device with wacomcpl but I got alway an error. The reason was that wacomcpl wrongly detected all wacom input devices as core devices. I had to fix wacomcpl first, you can find the patch here. Sadly also the fixed version of wacomcpl wasn't able to calibrate the touch device correctly. The touch device get active as soon as you hit the display with you finger or a non-EMR pen. This get interpreted by wacomcpl as click, you don't have a chance to put the cursor on the cross to get a value for calibration. Because of this I played around with xsetwacom and the ButtomX/Y and TopX/Y options on the X61t. Here the values I added to my SaX2 version to get the device usable: Option "BottomX" "915"I hope this make the X61t now usable. You can get updated SaX2 and x11-input-wacom packages here. But it would be nice if the autocalibration in the driver could get fixed including wacomcpl. Fri, 25 Jul 2008 19:54:59 +0200 Work continues on the Dot update. We're in the middle boring stages now, plenty going on, but there isn't really anything interesting to talk about on that front. There will be soon, and I appreciate everyone's patience. But I wanted to take some time to talk about something relatively important. Why did I choose Drupal for the Dot? Fri, 25 Jul 2008 20:21:18 +0200 It started when I tried an update of Kubuntu. Using the gui, Adept I think. It borked, and crashed with some error or other. I really, really want to forget the syntax of dpkg, but this gui that Doesn't Quite Work forces me to go to the command line to first diagnose and then fix it. Then, having the desire to set up Asterisk, I purchased a SPA3102 phone adapter, which works fine. I installed AsteriskNow in a virtual machine, VirtualBox doesn't like AsteriskNow, or visa-versa. VMWare doesn't like the updated libraries on my distro. So back to what works, QEmu. Set up bridging, and attempted to set up Asterisk to talk to the SPA3102 through the web based interface. Quickly ran into limits, forcing me into a hackery of configuration file editor. Ssh'd into the vm, fired up vim, and edited the files as required. Got it working, but the nice web based interface Doesn't Quite Work.
Must be a bad week. A couple of months ago lightning smoked my trusty WRT54G router. Replaced it with a cheap Belkin, Linux based. Works ok for wireless and the like. Asterisk and sip want multiple ports accessible to the wide world, and the router has an option to enable upnp. Everything worked fine, asterisk talked to the provider as expected. For a few hours, then registration errors would occur. I thought maybe the bridge setup, the vm, rebooted, etc. Nope. Reset the router, and everything works. For a few hours, then the same problem. Is it the router? Next is to set up IAX incoming with the provider, which seems to bypass NAT and firewall issues. Doesn't Quite Work. And finally, since it's friday, and we got caught up on most of the emergencies, I took advantage of my neighbor who builds canoes and rents kayaks. I took a kayak out on the lake, attempting to have my dog sitting on my lap. Doesn't Quite Work. Next time, I'll use a canoe. Fri, 25 Jul 2008 18:35:28 +0200 This is a sort of “Dear LazyWeb” post. As I’m moving to a new place on sunday, I’m going to have some restrictions on when I can use loudspeakers (so as to not disturb other people), but at the moment, I’ve got a few places where I’m using different audio sources, for example, when I’m using my PC, I might be either playing music through my PC, listening to the DAB Radio I have in the background, watching TV at the same time, etc etc. What I need (want) is a solution so that I can have a box on my desk which allows me to select from a range of inputs, and flick between outputting to the speakers, or to headphones. While at the moment, every item I have seperate speakers. My Surround has 4 inputs (1 aux, 3 for surround - all 3.5mm Jacks) and my headphones have a single 3.5 mm jack. What I’d like to do is be able to wire the following into a box, and then have a button to switch between using the speakers on the surround, and the headphones.
I’d like it if I could listen to multiple resources at the same time. However, at the moment, I think that the main issue is going to be converting the Surround into stereo for the headphones… The single 3.5 Jacks can be output to the “Aux” channel… I don’t know if anyone knows of any solutions for this, or wants to help me build one (anyone good with creating circuit diagrams) - and I’m sure there’ll be issues with different sources. I mean, I could probably just pipe all but the surround through the mixer… and then use the headphone override on the speakers, but I don’t really want to have the issue of plugging and unplugging the headphone jack all the time. I’d rather just hit a button. Any thoughts? Fri, 25 Jul 2008 17:30:22 +0200 We had a nasty little electrical storm in our neck of the woods (literally) a couple of nights ago. Power went off for a few hours and all that normal-type nuisance stuff. However, what I did not expect was the damage that happened as a result of a monstrous power surge that ripped through our home. I’m still shelling out $MONEY to try to get back to normal. I believe what happened was that a surge came through either our phone line or our cable line. And no, I didn’t have any kind of surge protection on the phone or cable lines. Never thought you’d need it, honestly. I do have these lines protected now, though, which is small comfort being that I’ve managed to make it this far in life without said protection unscathed, which means the money I’ve shelled out for the protection likely won’t be needed for another XXX years. But anyway, however the surge managed to get into my house, it fried my Vonage phone adapter, my cable modem, my Linksys WRT54GS wireless router, my main network switch for the house, all wired ethernet adapters in my computers, all of the phones in our house, and my laptop power adapter (which wasn’t even connected to my laptop, thankfully). Nice, eh? Cost analysis of recovering from this little electrical hissy fit:
All told: $500 or so. Not too bad, I suppose. I’ve certainly heard worse. What’s more frustrating than anything is not having any phone or internet service for a day and therefore knocked out of being able to work. Thankfully, my awesome Cambridge VMware brethren had a replacement power adapter for my work laptop, so that only cost me $40 in gas/parking to drive the 3 hours back/forth to pick it up. And because I know that you’re all thinking “well yeah, but if you hadn’t been too cheap to buy the $90 surge protector a couple of years ago, none of this would have happened”, I’ll freely admit that you’re absolutely right. =:( Sometimes my cheap nature ends up costing more than it saves. Case in point. Fri, 25 Jul 2008 02:18:00 +0200 ![]() Caption: 2 MTP devices connected, and songs playing from iPod This is a bit overdue, but initial support for MTP devices has arrived. To use it, you require limbtp >= 0.3.0 installed on the system, and a device supported by libmtp of course. Part of the reason this took so long is that I'm starting to notice a lot of potentially reusable code, and will probably soon refactor to reflect this. MTP devices are strange beasts, because their filesystem can't be directly accessed. As a result, Amarok 1 and Windows Media Player et al can only do file management of tracks on these devices, not actually play directly off of them. I'm going to be working on an idea that allows playing off of them to be possible, because let's face it, A2 is an audio player, not just a file manager. Thanks again to everyone who donated MTP devices to the Amarok group. You're the ones who make this possible. Support is still pretty basic, so please don't file bugs on this yet, but be ready to at some point in the semi-near future. Edit: Snapshot of 3 Mentioned Devices Fri, 25 Jul 2008 02:02:11 +0200 Vision is a proof of concept application (thanks aseigo for the initial suggestion), showing what can be easily obtained by using the service-oriented paradigm together with rich client applications.
What is Vision? But, more importantly: what's a distributed presentation? Imagine that you are showing a presentation, and that someone wants to see what you're presenting... in his computer! To do so, he should connect in some way to your presentation. Whenever you change page (or make another relevant action, like changing document), the client should be notified and synchronized automagically. That is exactly what Vision does. It forms a network between the presenter and the clients, keeping the clients synchronized with the presentation. A screencast is better than a thousand words: an example usage of vision with the previewer plasmoid and kpdf. As you can see in the screencast, Vision already supports more than one viewer (there are shown kpdf and the previewer plasmoid, but we also already support okular). Another nice feature of Vision is that it forms a P2P network. A client acts also as a presentation server. Say that A is watching B's presentation. Now another client (C) can connect to A. Whenever A receives an event from B, it will now also send it to C. This can be exploited, for example, in order to perform bandwidth load balancing. Note also that Vision makes use of SODEP, a binary protocol especially designed for service communications (it can, nevertheless, use all of the other JOLIE supported protocols, such as SOAP, HTTP, GWT-RPC...). Thus, the needed bandwidth is very small and the application can handle a lot of clients at the same time. Exposing Vision to other platforms A great feature of JOLIE is that it separates the logical interfaces of a service from their deployment. Suppose that we want to extend Vision to support Bluetooth clients. The ideal solution would be to expose the same interface that we expose on the network via sockets to bluetooth. Luckily, doing that in JOLIE is very easy: What do these lines mean? Well, they're telling JOLIE to expose the PresenterInputPort interface (which is the Vision presenter interface) on the pointed bluetooth Location using the SODEP protocol to encode and decode data. You can see the whole presenter service code in the JOLIE SVN repository (/trunk/playground/vision).Guess what? It just works! (video) And what's better than a mobile phone to test it? By the way: ![]() just in case you want to see more service-oriented goodness in KDE. =) Fri, 25 Jul 2008 01:16:56 +0200 Hello, readers.
So here I am, another piece in the blogosphere. This blog will be about the development of JOLIE, a language for service-oriented programming, and all of its related works. As of this first post, this blog is on Planet KDE; the following says why. If you read the planet, you should have seen JOLIE cited here and there already. Basically I'm on Planet KDE because we, the JOLIE and KDE (Plasma especially) projects, are cooperating in order to bring the power of service-oriented computing (see also: service-oriented architecture, service-oriented programming, etc.) to the desktop. This blog of mine is here also to explain what this means and will mean for the KDE desktop, and to show the practical results of this effort. Stay tuned with my blog if you want to know more! Fri, 25 Jul 2008 00:06:39 +0200 If, like me, you run KMail trunk (what will be 4.2), sign your emails and don’t use gpg-agent, you may have found that signing emails suddenly stopped working a while back. I finally traced the problem: a change in the way signing is done with the gpgme backend means that kleo, the magic behind all things cryptographic in kdepim, no longer provides a password entry dialog. The reason is that the signing is done in a side thread, and GUI stuff can only be done in the main thread. The solution? Use gpg-agent, of course. You need to install gpg-agent and the pinentry package, and then put a script (call it gpg-agent.sh - the .sh is important) in $KDEHOME/env that starts gpg-agent. The contents of my ~/.kde/env/gpg-agent.sh file are simply:
You should also stop it again at logout. To do this put the following script in the $KDEHOME/shutdown folder and make it executable:
All this stolen from a Gentoo HOWTO. ![]() Thu, 24 Jul 2008 23:40:05 +0200 Since a while some newer TabletPCs uses Wacom Tablets with Multitouch support which allows to use the Tablet with the pen but also with your fingers as a Touchscreen. One example is the Lenovo ThinkPad X61t. The linuxwacom X11 driver now also provides touch support. It's realised as a new input device with option "Type" "touch". These devices work only on TabletPCs and with the option "ForceDevice" "ISDV4". Since SaX2 currently only supports the configuration of the Stylus (Pen) and the Eraser devices I had to extend Sax2 to allow also the configuration of Touch devices. You can find my patch here and an updated SaX2 package (for openSUSE >= 10.2) in my openSUSE Build Service home repo (you need also the latest x11-input-wacom packages from there to get the full support). Here a screenshot of the new 'Electronic Pens' tab of SaX2 from a Lenovo X61t: Thu, 24 Jul 2008 21:47:55 +0200 Around a month ago there was a post at Trolltech Labs Blogs about embedding widgets in QGLWidget. I had been wanting to do something like that for KGLLib, so I downloaded the demo and took a look. It worked fine, but the code didn't exactly fit my purposes.The demo did all the OpenGL rendering in the QGraphicsScene subclass. Usually it is done in QGLWidget subclass and I wanted a solution which would be as transparent as possible. Thus the rendering had to stay in GLWidget. The second problem was the events. The event handling could have been done in QGraphicsView or QGraphicsScene subclass. But if I already have a GLWidget using event handlers, I'd prefer them to continue working as before. So some kind of smart event forwarding was needed to send the events either to the gl widget or to the graphicsview, depending on whether any of the QGV widgets had focus. I have now solved both problems and the result is a class called WidgetProxy. It takes a GLWidget as an argument and creates a QGraphicsView object, using the GL widget as viewport. The OpenGL rendering is done in your GLWidget as usual and QWidgets can be drawn onto the OpenGL scene. It also tries to do the right thing concerning events: mouse events are sent to whatever is behind the cursor (QGV widget if there is one behind the cursor, otherwise to the GL widget). Keyboard events are sent to whatever has the focus. It's really easy to use: if you have a toplevel QGLWidget and want to add widgets into it, all you have to do is first create the WidgetProxy object: WidgetProxy* proxy = new WidgetProxy(myGLWidget);and then add some widgets: QWidget* embeddedWindow = proxy->createWindow("Window title"); embeddedWindow->layout()->addWidget(new QLabel("This is an embedded widget!", embeddedWindow));If the GLWidget is not toplevel but in a layout then the only difference is that you have to add the proxy, not the GLWidget, into the layout. You can even show() or hide() the GLWidget and it works as before since the WidgetProxy intercepts those events, showing or hiding the QGraphicsView instead.The aim is to make it possible to have widgets in OpenGL with pretty much a single line of code - often the user of the GL widget doesn't even need to know about it. The code is now part of my KGLLib, along with an example ("widgets"). KGLLib's code can be found in KDE's SVN, in trunk/playground/libs/kgllib/. Thu, 24 Jul 2008 21:13:16 +0200 It's holliday time for me currently. Since two week, i still in south of France near Mediterranean sea. Summer is nice to play on the beach with my familly. But for my hot brain, it's difficult to still without a little programming task to do for open-source world... Here i don't have a speed internet connection. My laptop (a Toshiba Satellite) has a winmodem which run only under Windows Vista. It's not easy to sync my local copy of current subversion implementation of digiKam and co. So i need to work on other important stuff where source code no need to be synchronized every day to play with it: Exiv2 Thu, 24 Jul 2008 19:16:58 +0200 I would like to explain some of the work I’ve done some more, so I can address some questions people have asked, and hopefully give people a better idea what this is all about. First to make clear: the kuiserver itself is just a visualization of kjobs. A kjob can be anything that takes some time: file transfers, checking of email, rendering of fractals, stuff like that. Most applications currently use a simple progressbar or a dialog as visualization of kjobs. With kuiserver, they can also register a kjob with the kuiserver so it can display the job. Yesterday I’ve actually made the pause/cancel/resume work, (in the screenshot in my previous blogentries the buttons are there but didn’t actually do anything) so the kuiserver is now already pretty much good enough for my daily needs. What it could still use is letting old, not detached entries, expire after some time (the list could grow quite large otherwise). Also it could be a bit more pretty and polished, and maybe display some more information (speed, amount transfered etc.), but that isn’t my main priority now. But the kuiserver dataengine I’ve made makes all that information available and adding it is mainly figuring out a way to display this information without resorting to make it an ugly load of text. But I’m sure the great oxygen people can figure out a nice final design before 4.2. Ooh, little screen of the kuiserver with actual working pause/resume/cancel buttons (and a little bit of other polish): The reason why the middle finished transfer still shows a stop button is because that’s the way to remove the item from the kuiserver. But once I’ve changed kuiserver to let finished jobs ‘expire’, that won’t be needed anymore. The middle transfer is also ‘collapsed’ so it takes up less space. By clicking the icon, you can expand/collapse items. Now I’m going to focus on reviewing the extender api. I’m looking for feedback on the api as it exists currently, so it can be improved. If you’re interested, the current api is on the plasma-devel mailing list (subject: Extender api review). After this review I will merge the extender branch into svn so it will become easy for anybody running trunk/ to test the extender api and kuiserver applet. ![]() Thu, 24 Jul 2008 18:22:39 +0200 Two weeks have passed since the last update mostly because I haven’t anything exciting to tell you. Last week I did start implementing a new toolbox for the context view but many things got in the middle so I decided to dedicate time to fix pending issues. Some small issues, others not so small and in the end everything gets very complicated and I find myself dedicating a lot more time than I expected. Everything might look somehow the same but it’s in the little differences that you can perceive some improvements. One thing you may notice now is that the context view status is saved on exit and restored back on start up with all the applets you had added. Also now the applets try to resize occupying all the available space in the context view area. We also have now the current track applet added on top of the first containment. It’s a little bit late but I have finally everything set up so I can finally say: ![]() Thu, 24 Jul 2008 14:16:18 +0200 After some hacking I have got a nice requested feature for the folder view containment. Mime type filter support. I took some screenshots so you can have a look yourself. The filter is set to “show all file type folder that starts with kde”. This time the pattern filter is null, so the folder view shows all folders on my home directory. I set a “hide all folders on my home directory”.
You will see this very soon on trunk, 4.2.
Thu, 24 Jul 2008 14:01:35 +0200 Continuing my efforts to get a decent KDE based system on a maemo based device, this week I've worked on getting sound to work. As maemo uses gstreamer for its media, my first attempt was to use the phonon-gstreamer backend. To get the phonon kcm to build without having xine installed (as I couldn't find any xine packages for maemo) I had to hack around a bit in some cmake files (why are the only options "no multimedia at all" and "multimedia with xine", and is there no "multimedia, but with a different phonon backend" option?), but I got it to compile. However when I tried to play sound I didn't got any errors, but I didn't hear any sound either (when playing music with amarok tracks finished as soon as I started them). My second attempt was to compile libxine, and use the xine backend after all. Compiling xine and its phonon backend didn't bring any new problems, and after installing it on the n810, I finally got sound out of amarok: Actually, before I got amarok to start at all, I had some other problems to debug; the first time I tried to start amarok, it did nothing at all, using 100% cpu while making no progress at all. When I started amarok from gdb it turned out that some code in a libkjs global constructor was the culprit, somehow one of the assembly instructions in the initialization code for NaN/NaN_Bytes (not sure which of the two) would never finish. I guess I found the first problem caused by "There could be alignment issues with this, since arrays of characters don't necessarily need the same alignment doubles do, but for now it seems to work." in kjs/fpconst.cpp, although I'm not quite sure yet what the problem is. Fortunately after defining AVOID_STATIC_CONSTRUCTORS=0 to make it compile a different version of the code my problem went away, and I was able to start amarok. Thu, 24 Jul 2008 09:49:10 +0200 Sebastian is apologizing to me for writing code. This is a bit strange and I need to reply to his post. The discussion below is really more suited for a mailing list, but since I did not start it I have no choice in the matter. First of all, why do you apologize for writing code? That is no reason for apology. But let's talk content and not form. What are these Problems that deserve a capital P? The first two problems you observe are untrue. You say that strigidaemon has no method to suspend and resume indexing. However, it does. The DBus API of strigidaemon allows you to start and stop indexing. Second, you say that strigidaemon does not report what it is doing. This is also not true; it does report this. In fact, this is even part of the Xesam interface. The reporting is not very elaborate. It says 'Idle' or 'Indexing', but this can be extended. Not such a good start for a blog in which you are announcing a fork of a desktop search daemon. The list continues with things you have done to integrate indexing more tightly with the desktop. This is a good and noble cause. But the way you approach it is wrong. You mention that you use KDirWatch, Solid, KFreeDiskSpace, KPassivePopup to blend into the KDE user experience. That's very nice but no reason to fork a perfectly fine program. There is an elegant solution which I mention below. The most serious problem you observe is watching files for changes. This is a major problem for all desktop search programs, but KDirWatch is not the solution. KDirWatch is not suited for watching large amounts of files. It is a wrapper around inotify (default), FAM and QFileSystemWatcher (used on Windows. QFileSystemWatches is a small version of KDirWatch written by Trolltech. It only emits two signals: What we need is a small crossplatform library for monitoring files. A dedicated library that wraps the native implementations for each of these functions in a clean API. A library that would work on any operating system and that would not link to anything that is not strictly necessary. A library that falls back cleanly to configurable polling when the native implementations are not suitable and that is modest in its use of memory and CPU. It is unfortunate that you use classes that are part of the desktop environment for such low level functionality. This functionality should be in POSIX. Since it is not, it should be in a small helper library. In conclusion, I like that you are putting effort in improving the desktop search experience. You're beying paid for it after all, Mr Professional. But forking a perfectly fine daemon because you want some improvements is not the way to go. I am happy that you managed to build something so quickly: it proves that libstreamanalyzer is awesome. Now this is the right solution: write a KDE service that uses Solid, KFreeDiskSpace and KPassivePopup to control strigidaemon over DBus. In that way, you do not need to fork it. I am happy to add the required DBus calls to strigidaemon. In this way we can keep strigidaemon desktop independent, small and fast and we avoid a fork and months of flames. And as an added bonus, you should end up with a nice API for Xesam. Thu, 24 Jul 2008 02:48:18 +0200 Wed, 23 Jul 2008 23:05:23 +0200 I'll believe it when I'm not in the commit digest. ---Luboš Luňák
We haven't done that bad. If you look at the aggregate of the last 60 days, Seli is at #8. For the last 30 days, #11. He took a vacation last week, so that can't really count. I think the aggregate stats are a little off, though, because he did one or two binges. Usually he seems to be around #10.5. So how do you exactly count? We talked about it, and decided that if he makes the commit digest (which counts the top ten) anytime from now till aKademy, then I lose. So 3 weeks. Then I'll have to start figuring how to pull off not losing Ossi's bet, which would actually give *me* blue hair... P. S. He was a tease, and wouldn't tell me if he would actively thwart me, so this should be interesting. Can I get the BugSquaders who are doing SoC to come back if we need you? Wed, 23 Jul 2008 21:01:21 +0200 The sun has come out again in the Netherlands, which means I'm off to do some sailing and rest my tired mouse hand (by holding a tiller instead).
The past few days have been hectic in a way: we held our n-th annual "toetjesmaal" or "dessert dinner" where 10 or 12 people gang together and make nothing but desserts and call it a well-balanced meal (oddly enough, this works fairly well). Usually we hold it in the winter when the high-calorie approach makes sense; now in midsummer we had more fresh fruit at our disposal but didn't really use it. The line-up: lemon rice with custard; double-chocolate brownie cake; steamed golden syrup pudding; strawberry-pear crumble; dulche da leche; fruit pavlova; rhubarb crumble; chocolate fountain fondue; mango trifle; rose pudding. The "dulche da leche" (spelling, whatever) thing is what you get when you bake a tin of sweetened condensed milk. The result is brown and rubbery and sweet. One of the participants has a chocolate fountain thingy which uses an Archimedes screw to move the chocolate up to the top of the fountain; looks nifty, not very practical. The rose pudding was definitely the best-looking hot-pink dessert for the evening, but the last slot is always a tough one: everyone is kind of full already. On the KDE front I added three more KDE SVN modules to the Solaris lineup - admin, accessibility and artwork - bringing our total to 16 plus KOffice (which doesn't compile today anymore in trunk). I'm going to try to push webdev through tonight as well. It's a testimony to the strength of the KDE libs and the generally high quality of the code that porting these modules is relatively little work. A few gcc-isms (kxsldebug seems to be in love with qDebug + PRETTY_FUNCTION instead of using kDebug) and some math ambiguities, mostly. Only occasionally a file that doesn't end with a newline (I had to double check that the standard does require that, thanks Paul F.). Wed, 23 Jul 2008 19:08:37 +0200 For those of you who don’t know me, I’m the SoK student working on implementing mass tagging in Amarok 2. So what’s new since my last post? This is a recent screenshot: The string processing features now all work. These allow the user to easily clean up unwanted stuff from the tags, like trailing spaces and underscores. Title case mode capitalizes the first letter of every word except short words. The words that are already capitalized in some way (proper nouns, roman numerals) are left untouched. Double-clicking on the token pool now adds the selected token at the end of the layout bar. Work on the advanced mode is underway for those who still prefer writing text rather than drag&dropping. Wed, 23 Jul 2008 18:17:00 +0200 Very hard work has been done in these days to improve more and more the Previewer. The first thing i focused on was making a good DBus interface. Helped by Fabrizio Montesi (fmontesi on irc) i made some methods to allow a good integration with JOLIE. So these methods came out: void openFile(QString filename) void goToPage(uint page) QString currentFile() uint currentPage() Actually goToPage and currentPage only work when an Okular part is loaded. They allow the client/server communication provided by JOLIE. You can have a look at this screencast made by Fabrizio to show JOLIE+Previewer working together =). http://jolie.sf.net/videos/vision-previewer.ogv This works for most of you (Thank you Fabrizio): http://jolie.sf.net/videos/vision-previewer.avi
Btw there are also some graphical improvements to talk about =). First of all Nuno Pinheiro made a really nice icon for the Previewer. Currently it looks this way, enjoy: Now let’s have a look to multiple previews handling. Previewer stores recently opened files in the context menu. Now we have a nicer and faster way to retrieve recently previewed files just by clicking on the left side of the dialog, where a list of recent files is shown. Pictures will talk in place of me =) I made the list as “Plasmy” (awful term) as possible so that it looks not so alien as other widgets do. It reacts well to theme changing: Nice huh? =) Now, as you (ok, some of you =) ) noticed, there are two more icons near the close button. We got a trash: As suggested by friedrich| on irc, some of you would need to delete some recently opened files from the history. So here comes that trash: click on it to remove the currently opened file both from the Previewer and from its history. Simple! =) The second added icon is the resize one =). Since scrolling the wheel to resize the previewer was getting hateful for me i decided to make something different (more like is done for your applets on the desktop). So, as the tooltip suggests, just drag that icon to resize your dialog. =) Oh! Forgetting.. Some of you asked for an integration with Dolphin/Konqueror. Currently Previewer provides a service menu: “Preview this file” sends the file to Previewer and shows it.. This isn’t a real Dolphin integration. Btw I’m keeping in touch with Peter Penz to integrate this behavior in Dolphin natively. It doesn’t seem so easy to implement but i’m sure that Peter will do a great job for this!! =) That’s it guys. Of course comments are always welcome! Cheers Alessandro.
Wed, 23 Jul 2008 17:41:00 +0200 Ever since I first played with FractInt, it must have been at least 15 years ago, I've been intrigued by fractals. At first, they seemed like magic to me, but as I learned more maths, I can understand the why, but not always the how.
![]() A couple of years ago I set out to write a fractal exploration application called Frakter. To be honest, it sucked pretty much, but it was an attempt. The nice things about it where:
![]() Now and then I visit Paul Bourke's great collection of fractals (and loads of other stuff too). Each time, I feel an urge to write something that can handle everything that he shows. ![]() I want to be able to fit all different types of fractals into a class tree that I can write a GUI around. The data carried from the fractals to the UI would be enough to do basic 2D rendering, 3D rendering, psychedelic colouring, and so on. ![]() I've had a couple of half hearted attempts this far, but now I started from the other direction, i.e. starting with the fractal types I never get to otherwise. ![]() Right now I've implemented IFS and L-systems. The implementation is not even an attempt at being efficient and uses loads and loads and loads of memory, but it works. The next step is to create a colouring class that one can inherit to do the funky stuff. Last value, current value and current iteration, fractal specific category are the "input values" I plan to use. Right now, fractal specific category, is "last used transformation set" when dealing with IFS, for L-systems, it is zero. Wed, 23 Jul 2008 12:40:16 +0200 It took me one and a half day and Jos will not be happy about it. That is because I have to start this blog entry with apologizing to him: "Jos, I am sorry, you will probably not like what I am about to present here. But this makes it so much easier for me and all the KDE people. And strigidaemon simply does not provide the needed features, which I can understand since you are doing this in your spare time. But I cannot wait any longer and in the end really want to reuse all the nice KDE features instead of reimplementing it all just to keep away from QT/KDE dependencies. I hope you understand." Now that the tension is built up. What did this guy do? Well, essentially I reimplemented strigidaemon as a KDE Nepomuk service. Why would I do that? Why would I reimplement an existing working application? Simple. For the following reasons:
For me these are more than enough reasons to commit the new service in the next days. It will solve the Strigi situation for many of our users that always disable/kill strigi because they don't get any information about it from KDE. As I said above I wanted your input for the GUI. The idea was to make it non-intrusive but have it staying in a corner of the desktop until indexing is done or the user closes it. Here it is in all its uglyness: Please help me to make this widget useful. Jos, I hope you can understand why I did it. It was rather simple and gives us all the features we need. Without reimplementing all the nice things KDE has to offer. Wed, 23 Jul 2008 06:19:40 +0200 On Monday, I drove to Guelph to hang out with some friends and then take the VIA Train to Ottawa. We arrived around 5pm today. About the only thing done that was productive today was order a Pizza and sync rawhide and pray wireless will work tomorrow morning. I wish Other KDE people where here [ Insert I'm Going to OLS! banner here ] Pictures to come ... Wed, 23 Jul 2008 01:56:22 +0200 So, this weekend just gone was the weekend of LugRadio Live. Here’s how it went for me. Friday morning, I got up, finished packing my stuff into my suitcase and headed off to the airport to go and pick up Myrtti. After missing a couple of buses, eventually got there, just in time to meet her as she was coming out of Arrivals. We then headed off to Wolverhampton, with Myrtti being amazed by English houses (don’t ask me - I don’t know either) arriving in Wolverhampton 20 minutes before we could check into the hotel. So we went for food. Well, actually, I went for food, and Myrtti came with me. Moon Under Water has nice food, as do most Wetherspoons. Anyway, from there on, Myrtti and I went and checked into the hotel, and then had a bit of a chat (and checked on the CaveyCam) while waiting for the evening events to kick off. The evening events… god. well… I don’t remember a lot of it. I remember coming in, sitting down, and sitting down with Daviey, ompaul, and a couple of other people (I can’t remember who!) and well - the night went on from there. Left the Evening Events @ around midnight, and walked back with ompaul and Myrtti to the hotel. Couldn’t sleep, as there was a dry-riser next to my room, so at 4am, I gave up, and registered on flickr, uploading the photos from the night that I’d taken. Then, at 6am, I went hunting for breakfast, had a little walk round Wolverhampton, and found that Spar had food, so bought a couple of sausage sandwiches from there (and a couple of cans of Relentless). Went back to the hotel room, answered the wake up call, and headed to the venue just before 7. I was the second person there after Chris (Proctor) - am proud of that, and spent the morning setting up all those lovely banners that you people saw (and chasing after some that had gone missing). Did anyone notice that the can of relentless I’d thrown in the bin had been used to help stick up the Main Stage schedule poster? No? Good… twas amusing though. Thanks to Mrs Ron for providing the Bacon Sarnies though Anyways, sat down and started to film the intro, then moved onto the first talk in the Atrium (I signed up for the morning sessions on crew - why oh why?). I had to try and keep myself from falling asleep due to no sleep in the first one, but towards the end, the caffeine kicked in, and I started to wake up. Next up was Bruuuuunnoooooo’s talk… it was “tres amusant” … I enjoyed watching it, and am glad that the audio isn’t coming from the camera, or all you’d have heard was my laughing. After that, It was lunch. Woo. Headed off to the Moon Under Water for what was meant to be an SBLUG gathering, but, couldn’t find them in the packed pub, so ended up sitting with Barbie and JJ and chatting to them while we had food. Came back and scoped out the Exhibitors for a bit (and yes, played some TF2) before going to watch the gong-a-thong… mrben… raccoon pants… I won’t say anymore, or my mind will explode. Though I must say, I did love Matthew Garrett’s talk on how he hates the community. After that, I went back and gamed for a bit, before heading to the Live and Unleashed recording. Found Myrtti again there, and gave her a bit of a shoulder rub while watching it (and laughing my ass off too!) So. There brought an end to Day 1… except, it wasn’t over. By this time, I was feeling pretty crap… no sleep. So went and packed up, then headed back to the hotel, slept for a bit, then headed to Karaoke. I didn’t stay long, and was on the soft drinks all night, but managed to fit in a rendition of “Summer Nights” - I do a mean Olivia Newton John. I’m kind of dissapointed that the guy I was singing it with (my Ex Boss) didn’t know the words, but I’ve had a promise from froodie that next year she’ll do the John Travolta, and I can do the Olivia Newton John. Speaking of froodie - great rendition of “Sweet Child O’ Mine” - I was singing along in the back of the venue (and drawing funny looks by air-drumming/air-guitaring) Sunday morning. I was still tired, but due to exhaustion - I’d actually managed to sleep. Though - I think the fact that the following comment was made in IRC means that I didn’t look as fresh-faced as I’d have like to believe I was.
So yeah. Once again, set up at a ridiculously early time (this time 8am though) - I managed to be one of the people on the Coffee Run to Starbucks, so that worked well for me. I didn’t have to do much. Started off the morning upstairs in the Lightning talk room, watching Barbies talk (and getting told off for raising my hand to answer his questions). Was still a good talk the second time round. And some of the stuff I forgot the first time, I’ve now seen again. I must apologise to Barbie for laughing to myself towards the end of the talk though. When you have a crew radio on, and you can hear Jono telling everyone he’s in the toilet with a speaker, you can’t help but laugh (I so wish that the LCD display in the atrium was something we could send messages to - I would have sent “FlashHug Jono now - he’s in the loo!”) Next was Agostino Russo’s talk about Wubi - which was quite interesting. I’ve not actually used wubi myself, but to see it working in situ, and to hear about the geekyness behind it was actually quite cool. Lunchtime again, where I spent outside eating sandwhiches and munch provided by MrsRon again, before I came back in, scoped the exhibitors again, and generally mingled talking with people until it was time for Chris Jones’ (Ng) talk about terminator. Next was the goodbyes… Sad to see them go - but - they WILL be back next year! (YAY!). Sad to see the podcast end, but it was a good ending to a good weekend. Then we packed up, and found out that the bar we’d arranged to goto afterwards… was closed…. FAIL. Got it sorted out in the end, and after food, ended up at the Novotel bar, where there were quite a few people. Twas good talking to people there, a nice friendly relaxed atmosphere, and a nicely stocked bar. I must say though - I don’t think I’ve laughed so much in a long time than I did with standing outside smoking with Xalior, Daviey and a few others (failhat!). Xalior is an extremely funny guy. Anyways, from there, it was time to head home, after another night in the hotel, and taking Myrtti on a whirlwind tour of Birmingham’s Music Stores To me, it’ll be a weekend to remember. There were a lot of firsts for me, and a lot of fun. I must say though, thumbs up to Tony Whitmore and Ron Wellsted for doing an amazing job at organising everything this year. And to all the rest of the crew who made everything run so smoothly (and Tig for the trousers! and barely leaving the sound desk!) Wed, 23 Jul 2008 02:54:41 +0200 |
|
contact |