Free Software
Hello Hackfest!
Hi there!
If you're reading this, I'll have the pleasure of helping you contribute to KDE at Hackfest in January 2013. Or you've stumbled upon my blog, in which case you may read this as KStars Development 101.
Although most of things I will discuss at Hackfest will be independent of which project you eventually aim to contribute, I'll use KStars for context. i.e. You'll be hacking on KStars.
PrerequisitesThe only true prerequisite is that you should have a working KDE environment. If you aren't already using KDE, it is good idea to start now.
In case you're starting from a fresh install, you could start with Kubuntu. An alternate is to set up your own Virtual Machine if your host machine can perform well. A Virtual Machine is specially advantageous if you wish to play around with the distros first. Add and remove packages. Break stuff. Have fun!
Everything after this point everything is optional. The more you learn about, the better. If you have any questions, leave a comment or email me.
Things to doHere's a bunch of things you can learn about while you wait for Hackfest. These are not prerequisites but it will help if you are familiar with at least these.
- Search. Use Google, Bing, or the Large Hadron Collider. 90% of your issues have already been faced and solved by someone on the Internet.
- Learn about IRC. This will help you get support if you ever get stuck. But only if you use it right. Join us at the channels I mention at the end.
- Learn about Git. I personally feel setting up a Github account and practicing on a repository works best. You can start here https://help.github.com/articles/set-up-git
- Read some stuff about Qt. Maybe start with: http://doc.qt.digia.com/qt/gettingstartedqt.html
- Once you are ready, you may set up an environment to start hacking on KStars.
Follow the instructions at: http://techbase.kde.org/Projects/Edu/KStars/Building_KStars
Please note that an additional package: zlib (found as zlib1g-dev) will be needed to build KStars.
So for debian based systems:
sudo apt-get install build-essential cmake kdelibs5-dev libeigen2-dev libcfitsio3-dev zlib1g-devshould get the prerequisites set up.
Virtual MachineTo experiment, you can use this Virtual Machine that I've made. It has all the prerequisites installed and KStars repository cloned. For Hackfest, you will be setting up everything from scratch, but you can keep the VM for experiments.
Kubuntu 12.04 LTS (32 bit) on Virtual Box
username: hackfest
password: hackfest
Let me know if you encounter issues with the VM.
Click here to download the VM (I'm uploading the VM using very slow DSL connection so it should be up by 31st Dec 10 PM.)
Questions?Leave a comment, or email me at ra.rishab {at} gmail {dot} com
Ping me on IRC. I'm 'spacetime' and I idle at a lot of channels including #kde-in and #kde-kstars
To talk to the KDE India community, please join the KDE India Mailing List. Find us at #kde-in on freenode (IRC).
To get in touch with other KStars developers, join the KStars Developers Mailing List or, say hello at #kde-kstars on freenode (IRC)
PublicTransport 0.11 alpha 2
There is another alpha version for PublicTransport (0.11 alpha 2). It includes many build, crash and other fixes, some small new features (eg. snap scrolling at the top of departure items in the applet), a polished TimetableMate UI and one bigger change: Provider plugins are now hosted on openDesktop.org, you can watch them on kde-files.org or using the download dialog in the applet configuration.
This is great for a number of reasons: Provider plugins can be updated independently of the data engine (ie. users can get fixes on the plugins very quickly), better performance because the data engine does not need to track all available plugins (only downloaded ones), users can add new plugins very easily (TimetableMate can do it), use of social features like comments, ratings for provider plugins, etc.
This fixes the long broken GHNS feature of the applet (libpublictransporthelper). I moved from newstuff.kde.org to an easy to create Synchrotron repository first (just add publictransport to synchrotron.git and add provider files to synchrotron-sources.git). This was a quick way to test it and it worked. But it misses most GHNS features like upload, ratings or descriptions. Therefore I moved to openDesktop.org.
All provider plugins are now available to download, also for some new GTFS providers. No provider plugins will be installed by default. Unused plugins from previous versions should be removed (eg. "make uninstall" or manually from /usr/share/kde4/apps/plasma_engine_publictransport/serviceProviders/ or a similiar path).
The engine was updated to never delete connected data sources, eg. a "ServiceProvider <id>" source was deleted when the provider was uninstalled. Instead now the sources get updated accordingly. This makes it possible to install a new provider plugin and directly use it. The cache is now also properly cleaned up from data for no longer installed providers.
All build problems (missing protobuf or pthread, not found "javascriptcompletiongeneric.h", etc.) should be fixed now. There were also some fixes for crashes that happened randomly in the data engine (bad synchronization when a job was aborted). In the runner these crashes happened much more often because of the many job aborts while typing. Getting route data for HAFAS plugins now works more reliably. The GTFS service/importer also saw some improvements and is now able to import more GTFS feeds.
Thanks for testing and a happy new year! :)
4 years in 6 minutes
Another post about looking back and what has happened. This time i can probably show you something nice.
Userbase is in its fourth year, and maybe you want to see what has droven it in the past, how did it grow and who has influenced it most.
So here is a codeswarm video about userbase contributions from the last 4 years, in about 6 minutes. You might want to watch it, it is more surprising than you might think now.
(Direct link: http://vimeo.com/56486573)
For those regular contributors to userbase, can you spot your name? Or can you spot a certain event that has influenced your amount of edits?
I can at least give a hint. The explosion in around mid 2010 happened when we introduced the awesome translate extension for mediawiki. Which also gave me a hard time rendering this video, considering the amount of translations coming in…
But enough about this, have fun finding your name. And more importantly, wishing you a happy new year and a lot of nice things to happen.
CLS Bank v. Alice - Some Amicus Briefs ~pj
Back in July, the Federal Circuit issued a decision in CLS Bank v. Alice Corporation, overturning the district court, which had ruled that the asserted claims were not patent-eligible because they recited "the abstract idea of transformation or manipulation of legal obligations or business risks" and could be done without a computer, inside your head, making "on a computer" not limiting the idea. A divided Federal Circuit panel, however, reversed, and said that if "it is not manifestly evident that a claim is directed to a patent ineligible abstract idea, that claim must not be deemed for that reason to be inadequate under § 101", ignoring the US Supreme Court's direction in In Re Bilski and Mayo v. Prometheus, once again promoted its own, contradictory view that pretty much anything is patentable. In September, CLS Bank asked for an en banc review. That request was granted [PDF] in October and now amicus briefs are being filed.
There is quite a variety, with more expected. There are briefs by Google, IBM, Twitter, EFF, as you would expect. But what is surprising are the briefs urging the court to do something about software patents gone wild from entities like bar associations and internet retailers. When the Federal Circuit and the US Supreme Court do not agree, chaos is the result. And, as at least one brief points out, the results of earlier patents issuing under a looser standard of usefulness has brought on a nightmare of litigation over patents that should never have issued in the first place. And something needs to be done.
There has been a noticeable shift since the amicus briefs filed in In Re Bilski, in other words, I'd say, with brief after brief in CLS Bank asking to court to align with the US Supreme Court and put an end to the contradictory rulings, which is resulting in guesswork and unnecessary litigation.
Just one more gift
You’ve watched A Christmas Story and Christmas Vacation on loop. Your doctor has declared your system to finally be EggNogg-free. And no one ever found that you slept in a nest of wrapping paper after your present opening frenzy. So time to start thinking about New Year’s? Not quite yet. As posted two weeks ago on the Dot, don’t forget KDE’s Season of Giving. This year, just like every year, contributors and volunteers churned out software with the timeliness of a watch maker. And you wonder why the logo has a gear behind the K? And even though KDE values corporate sponsorship and collaboration, we maintain independence and operate with autonomy thanks in no small part to donations. Return that blinking sweater you got from your well-meaning aunt, or let someone else buy that round of shots at the bar on New Year’s. It’s the time of year to say Thank You to KDE and to Join the Game!
Recap 2012
For last year‘s words belong to last year‘s language and next year’s words await another voice.
T.S. Eliot
That time of the year again. A time for a recap, to look back and also to look forward.
Let’s start with looking back for a while. What has happened in the last year in the landscape of KDE’s web. Some might remember my post about the Top Ten of KDE’s most viewed websites. Has it changed? What numbers can be shown? Here it is.
(Note: This list includes the domains that are under sysadmins control and have the webstats enabled.)
Rank Domain Unique visitors/month Total 2012 Bandwidth Last year’s rank #1 http://www.kde.org 269650 3.235.809 2832.46 GB #1 () #2 http://forum.kde.org 147341 1.768.088 432.79 GB #2 () #3 http://docs.kde.org 113985 1.367.814 811.44 GB #6 (+3 ) #4 http://userbase.kde.org 105088 1.261.058 541.58 GB #3 (-1 ) #5 http://techbase.kde.org 57060 684.717 206.03 GB #5 () #6 http://dot.kde.org 48577 582.929 178.70 GB #4 (-2 ) #7 http://edu.kde.org 29529 354.350 490.34 GB #9 (+2 ) #8 http://blogs.kde.org 28607 343.288 50.31 GB #8 () #9 http://community.kde.org 27619 331.425 64.13 GB #10 (+1 ) #10 http://planetkde.org 27528 330.337 887.33 GB #6 (-3 )The list is sorted by the total unique visits. But some interesting remarks:
- This year we introduced acceleration through Incapsula (many many thanks to them) for our high traffic sites. That includes the wikis, the forum, the dot. So the real numbers for them might be higher than shown here. Tom Albers will provide numbers for this as well.
- Even though this is the top ten, i’d like to mention some other domains as well.
- This year Calligra was also moved under sysadmin’s control. And they already show up at #11, even as they show up in our stats since April.
- The next 2 domains following very close are: windows.kde.org and konqueror.kde.org. This shows the high interest in windows builds. But also, the only domain for a single app so close to the top ten, our very own webbrowser. Very impressive.
Overall, a nice year with nice numbers. Some of our websites have been revamped, moved and improved.
But that doesn’t stop us from taking it even further. The new year will introduce some interesting new changes as well, the list of things we want to do is not finished yet.
Following will a post with a video that shows how contribution to a wiki might look. Stay tuned!
photo by: PilottageA few words about 2012
Sunset in Montevideo, Uruguay. May 2012
2012 is almost over, but there is time for one more post, just the third this year.
After the Qt Contributors Summit 2012, our team at INdT received a new task: continue the development of 'The Incredible Circus'. I had worked a little on Circus before, members of the current team worked on the level editor, so maintaining and creating new features for the Qt (Symbian, N9) version was fine.
Then we also received a more challenging task: extend and maintain the WP7 version, only after making this version behavior like the Qt version - and the level editor, as a consequence. A bunch of new stuff to learn and, in some cases, get along: C#, XNA, WP7 and Windows itself :-P
Part of the result of this work was released in version 1.2, an update for the game already published on Nokia Store and WP Marketplace. This version added a new set of levels and some bugfixes; there are more things to come, we are looking forward the new releases.
In parallel, we also worked in a consultancy about a project using Qt, at a client's office in São Paulo. It was interesting to have contact with other developers working in a different way and inside a different organization.
Then the end of the year was time to study HTML5, Javascript. I must admit I underestimated HTML5 too much, but I still not sharing the faith about HTML5 solving all the the things, however for some use cases it's becoming a good alternative.
And a remarkable event in the end 2012 was the release of Qt 5.0! Congratulations to all who contributed with code and also those who helped in many other ways!
Let's see what 2013 brings. Happy new year =)
rekonq 2.0 first stable
It’s that time again, the time for a stable release! And I’m really excited this time as this 2.0 marks the beginning of a real new era for my pet project… But let’s try do things slowly and in the right order!
First, in case you don’t know about (there are some yet?), rekonq is small project about realizing a light browser for KDE based on webkit.
The 2.0 release happening today brings some new features you’ll notice at first shot and some changes under the hood you’ll be going to appreciate (or at least, I hope so).
The main idea behind is to realize a “central component” able to browser the web and to be used in all our use cases. This is called “WebTab” in rekonq code and it is now responsible for filling each tab in rekonq main UI as well as implementing the so called “webapp” mode.
Mandatory screenshots:
rekonq 2.0 with tabs up
rekonq 2.0 in “webapp” mode
oops… you may have noticed the new UI with tabs up. This is another change I would really implement because I think this is the right UI (at least now) to browse the web. I have some ideas about the possibilities this change gives us and I’ll be going explore them with the next releases. Love it or hate it, rekonq will be tabs up since now. I’m aware this is a big change, compared with other KDE apps UI. We’ll see if people like it or not.
Other new features for the 2.X series are (in sparse order):
- inline spellcheck (when used against QtWebkit 2.3)
- new incognito mode (similar to the chrome one)
- new startup option: rekonq –incognito URL
- new startup option: rekonq –webapp URL
- pinning tabs
- improved error page
- simplified rekonq pages
I just talked about these ones here and prepared also a video, testing my kdenlive (awful) skills.
That’s it! Enjoy rekonq
Filed under: international, rekonq, webkit
digiKam Software Collection 3.0.0-RC is out..
Dear all digiKam fans and users!
After one summer of active development with Google Summer of Code 2012 students, and one 3 beta releases, digiKam team is proud to announce the release candidate of digiKam Software Collection 3.0.0. This version is currently under development, following GoSC 2012 projects listed here.
QClipboard wrapper for QML
Hi,
It’s not the first Qt class that i’m making usable in QML and will certainly not be the last one. Even better would be singleton components because you really don’t want two of these components in one application, something that is possible in Qt5 if i’m correct.
Note: It has been suggested that i make this as a plasma service. I do wonder, what’s the benefit over a component? And how to even make a service? Making this wrapper class is really easy, is it even easier with services? Making this wrapper was really easy and only took a few hours.
Without further delay, here is the “Clipboard” QML component free for you to use however you like.
clipboard.h
And the clipboard.cpp file:
#include "clipboard.h" #include <QApplication> #include <QMimeData> #include <QDebug> #include <KUrl> #include <kio/copyjob.h> #include <kio/fileundomanager.h> Clipboard::Clipboard(QObject *parent) : QObject(parent) , m_clipboard(QApplication::clipboard()) , m_urlList() { connect(m_clipboard, SIGNAL(dataChanged()), this, SLOT(dataChanged())); } void Clipboard::paste(QString url) { KUrl destUrl(url); if(!m_clipboard->mimeData()->hasUrls()) { return; } KUrl::List urlsSource(m_clipboard->mimeData()->urls()); //Whatever m_cut was set to, we want the real new value from the mimedata object. if(m_clipboard->mimeData()->hasFormat("application/x-kde-cutselection")) { m_cut = true; } else { m_cut = false; } KIO::CopyJob* job; if (m_cut) { job = KIO::move(urlsSource, destUrl); } else { job = KIO::copy(urlsSource, destUrl); } KIO::FileUndoManager::self()->recordCopyJob(job); } QString Clipboard::text() { return m_clipboard->text(); } void Clipboard::cut() { if(m_urlList.count() > 0) { // Fill a mimeData object QMimeData* mimeData = new QMimeData(); KUrl::List urls(m_urlList); mimeData->setData("application/x-kde-cutselection", QByteArray("1")); mimeData->setUrls(urls); // Let the clipboard know of our mimeData object m_clipboard->setMimeData(mimeData); // At this point the clipboard stuff is over. Clear the urllist. m_urlList.clear(); } } void Clipboard::copy() { if(m_urlList.count() > 0) { // Fill a mimeData object QMimeData* mimeData = new QMimeData(); KUrl::List urls(m_urlList); mimeData->setUrls(urls); // Let the clipboard know of our mimeData object m_clipboard->setMimeData(mimeData); // At this point the clipboard stuff is over. Clear the urllist. m_urlList.clear(); } } void Clipboard::copy(QString text) { // Fill a mimeData object QMimeData* mimeData = new QMimeData(); mimeData->setText(text); // Let the clipboard know of our mimeData object m_clipboard->setMimeData(mimeData); } void Clipboard::dataChanged() { bool oldCutState = m_cut; if(m_clipboard->mimeData()->hasFormat("application/x-kde-cutselection")) { m_cut = true; } else { m_cut = false; } if(oldCutState != m_cut) { emit cutChanged(); } }
You obviously have to register the class in QML as well. Look in my other posts if you don’t know how to do that.
Now using this class needs a bit of documentation. First, you have to add it to QML which is as simple as adding:
Clipboard { id: clip }
Lets say you want to paste the content of the clipboard. For that i take my Shortcut element as example, look at the following code:
Shortcut { key: "Ctrl+V" onActivated: { clip.paste("file:///url/where/you/want/to/have/your/files") } }
This happens to be an example for CTRL+V (pasting). clip.paste is where the magic happens. All you have to do is provide a location (with the protocol in front of it like “file://”). Then the files that are on the clipboard will be put on that location.
If you want to copy/cut files you have to go through some more trouble. This “trouble” is there because QML doesn’t properly allow arrays to be filled after they have been defined in “property variant someArray”. This has been resolved in Qt 5 where “property var someArray” works just as you would expect from a javascript array.
So, in the above Clipboard QML component you have one function to fill the url: clip.addUrl(file:///your/url/to/anything/). If you have multiple urls you have to add them all – one by one.
clip.addUrl(file:///your/url/to/anything/one)
clip.addUrl(file:///your/url/to/anything/two)
clip.addUrl(file:///your/url/to/anything/three)
Another function you have is clip.urlList() which just spits out your url list. There is no remove/clear/anything else for the url container.
Once you’re done adding url entries you call clip.cut() or clip.copy(), depending on what you want to do. After that point the files (urls actually) will have been placed on the clipboard and the url list will be cleared ready for the next job.
That’s about all there is to know for this wrapper.
Cooking in the Marble Kitchen
A lot of activities in the Marble community over the last weeks are shaping up now to become part of the Marble library and applications. Much is related to the ongoing Google Code-in and this blog post introduces some of the new features that were realized by GCI students.
Popular star constellations — patterns in prominent stars within apparent proximity on Earth’s night sky — are now rendered by the extended stars plugin. Realized with much love for detail, Marble’s view of Earth from outer space is now more stunning than ever. See for yourself (yellow bubbles are manual annotations):
The screenshot also shows the new Earth at Night map theme which will replace the existing one. It features updated images with higher resolution. Further map themes have been completed or are in the works, among them Jupiter moons and historic map themes. To help you give proper attribution for derivative works, a new info box in the bottom right corner shows license information for the current map theme. Like all info boxes it can be disabled if needed.
Another main working area is KML support. While the most important KML elements are long supported, we are aiming for full KML 2.2 compliance in a future version. Towards this goal support for reading, writing and using more KML elements has been implemented. Among the new features is support for random color mode, reading and rendering screen overlays, reading balloon and list styles, rendering of remote images and writing of polygons, photo overlays, ground overlays and time spans. While preparing support for balloon style in placemark rendering the new webpopup plugin (annotated as map info dialog with webkit support in the screenshot below) was born. Given its nice look and generic applicability we’re currently replacing many QDialog based dialogs with it.
Much more has been realized in the last weeks and the above is just an incomplete high-level overview. Most of the features mentioned above are already merged into the master branch (to be part of Marble 1.6 / KDE 4.11). Some map themes will be deployed via GHNS and therefore be available in all KDE versions of Marble soon (File => Download Maps).
Google Code-in is still running for some weeks and we have a set of open tasks for volunteers to take. Check out Melange and search for Marble tasks (with KDE as organization) to see them. The marble.kde.org website has a lot of information to get started as well.
Introducing: Stitchy
To cross stitch hobbyists: Is there any cross stitch pattern design software which supports every major operating systems (Windows, Mac OS X and of course Linux) and even is open source? Well, apparently not. I've searched for it but unfortunately there is none. So I decided - Make it by myself!
...and after a few weeks I hereby introduce a new kid - Stitchy. It features nifty UI (yeah I think so) and basic functions such as drawing, erasing, undo/redoing and cut-copy-pasting.
The whole development was rushed. Basic functions are okay. But it could be crash-prone and the code is silly (I admit it) and even there are still a bunch of things out there to be done. But hey, this is just the beginning. We can improve this further by the power of open source!
Have a look if you are interested. The project is hosted at Github (https://github.com/segfault87/stitchy). At this point I don't have any releases so you must build and run it by yourself. Any helps/feedback/contributions are greatly appreciated. :)
KDE 4.10 available in January 2013 – run your Test Drive now
Christmas time is always busy – this time another topic kept me even more busy. And that was the release of KDE 4.10 RC1. If you have some spare time you are invited to run a test drive. KDE is running an extra detailed beta-testing program throughout the 4.10 beta and RC releases. For many distributions, updating is quite simple.
Participate in the KDE 4.10 Test DriveIf you do, I am happy to read your comments. While you test, I am doing media player compatibility tests, this time with Tomahawk.
Have a nice test drive,
Christian
[Help KWin] Save the Explosion Effect
One of our KWin Effects hasn’t seen much love over the last years and is in fact more broken than working. It’s a pure eye-candy effect which means that it is not at all in the development focus of the KWin team. The truth is, that we are tempted to just delete the effect because we won’t fix it. But of course there are users who like it and would be sad if it gets deleted.
Here you can help: if the issues gets fixed and the effect becomes maintained there is no need to remove it. So if you want to get your hands dirty with a small OpenGL based effect have a look at the Explosion effect and improve it. Have a look at Bug 312176 and all the linked reports to find the issues.
Tweet BufferSearch your playlist – Plasma-Mediacenter
Till last week or 2 I was surfing through calligra code base. Shantanu asked me share my love for Plasma-mediacenter and hence it bubbled up with this post. I wanted this post as a Christmas gift to PMC(Plasma-mediacenter) users. But then due to my laziness and some foo factors it delayed.
PMC has support for playlist. Lets see how I added the search option for playlist. I wrote a model to filter the search in the playlist, named FilterPlaylistModel. FilterPlaylistModel inherits the QSortFilterProxyModel. And the key method of FilterPlaylistModel is filterAcceptRow. filterAcceptRow method will help us to filter out the rows which didn’t matched with string in the search box. Playlist.qml uses playlistModel which is already in use. I wanted to add my FilterPlaylistModel to Playlist.qml. This was accomplished by adding a Q_PROPERTY in FilterPlaylistModel. Created a sourcePlaylistModel of type QObject. Added the read, write and notify options. I registered the FilterPlaylistModel in mainwindow.cpp. Now here is the tricky part, which took me some time to understand. Updated the model of Playlist.qml to:
model: MediaCenterComponents.FilterPlaylistModel {
sourcePlaylistModel : playlistModel
filterString: filterText.text
}
This will allow ListView to use model playlistModel and for playlist filtering FilterPlaylistModel. And then set the text. Thanks, to shantanu for clearing my queries on time So PMC users have their cake ready. Test it and shoot bugs. We are here to fix it. Below is the screenshot.
Plasma Active for Nexus 7: Running the touch-optimized Plasma Active Linux Distribution on Nexus 7
We are very happy to announce the first testing release of Plasma Active for Nexus 7. Plasma Active, in a nutshell, is a Linux distribution (based on Mer as a core) that is specifically optimized for tablet computers.
Tuomas Kulve and me had been working on the Mer “hardware-adaptation” for Nexus 7 that enables to run Mer-based distributions like Plasma Active on the Nexus 7.
A must read for nexus 7 owners who want to get plasma active on their deviceImpressed by Calligra compatibility with Microsoft Office
Blog Tags:
I'm using Microsoft Office quite a lot at work, and I must confess it is a very efficient. Not only because I'm used to it, but also because it allows creating nice looking content extremely fast, and is feature wise more complete than its competitors. That being said, Office remains a closed product, without proper support for Open Document Formats.
As soon as I'm leaving the office I switch to Archlinux, and use LibreOffice or Calligra : even if less complete or efficient than Office, they are Open Source and support Open Document Formats. They are totally suitable for my personal usage, where I do not need to create striking Presentations or complex Pivot Tables and graphics.
Being a bit bored between the Christmas and New Year's Eve frenzies, I loaded a (not too) complex presentation I made in Powerpoint into LibreOffice Impress and Calligra Stage, and I was quite surprised finding out that Calligra at least as good as LibreOffice in rendering the document.
Original Powerpoint DocumentIf you click to enlarge images, you will notice the subtle shadows and gradients that Office allows you to add very easily.
LibreOfficeLibreOffice does a very decent job, rendering the doc essentials, but missing a few subtlties. Again, click on the image to get the full view.
CalligraCalligra, is also very close.
The shadows are slightly better than LibreOffice, while the "bullets" on the third slide have a border where they should not.
Impressed, Keep it up !All in all, I am extremely impressed by the progresses made by Calligra on the compatibility front. It really has the potential to compete, and possibly to overcome, Office. The Plasma desktop is (at least in my opinion) way better than Windows, both visually and in productivity, I'm sure Calligra can follow the same path. One killer feature in Office that maybe could be implemented (or even enhanced) in Calligra is the "Fast Style" selector, that applies a combination of gradient, embossing, shadows on shapes, with preview when hovering the menu items :
Again, kudos to the Calligra team for the terrific work !
A New Krita Feature: Flipbooks
I'm on vacation, but I cannot stop hacking... But instead of soul-destroying Windows build work, detective work implementing PSD export support or some hair-pulling bug-fixing, I wanted to have some clean, innocent fun...
Create a nice new feature. So over the past couple of days, I've implemented a flipbook.
It's quite full-featured already, with flipbooks being available in the recent files list in Krita's startup screen, a page for creating new flipbooks and finally a docker that shows the images and allows the user to flip between images in the flipbook, or save the current set of images as a flipbook.
There are bound to be some rough edges, and I'm wondering what kind of feature requests our users will think up to make the flipbook even more useful, but really, it's already quite usable.
My personal KDEPIM upgrade (again): laptop
One year after my last blog post on this topic I encountered some minor difficulties with combining KDEPIM-4.4 (i.e. kmail1) and the KDE 4.10 betas. These difficulties are fixed now, and the combination seems to work fine again. Anyway, I became curious about the level of stability of Akonadi-based kmail2 once more. After all, I've been running it continuously over the year on my office desktop with a constant-on fast internet connection, and that works quite well. So, I gave it a fresh try on my laptop too. I deleted my Akonadi configuration and cache, switched to Akonadi mysql backend, updated kmail and the rest of KDEPIM without migrating to 4.9.4, and re-added my IMAP account from scratch (with "Enable offline mode"). The overall use case description is "laptop with large amount of cached files from IMAP account, fluctuating internet connectivity". Now, here are my impressions...
- Reaction time is occasionally sluggish, but overall OK.
- The progress indicator behaves a bit odd, it checks the mail folders in seemingly random order and only knows 0% and 100% completion.
- Random warning messages. It seems that kmail2 uses some features that "my" IMAP server does not understand. So, I'm getting frequent warning notifications that don't tell me anything and that I cannot do anything about. SET ANNOTATION, UID, ... Please either handle the errors, inform the user what exactly goes wrong, or ignore them in case they are irrelevant. Filed as a wish, bug 311265.
- Network activity stops working sometime. This sounds worse than it actually is, since in 99% of all cases Akonadi now detects fine that the connection to the server is broken (e.g., after suspend/resume, after switching to a different WLAN, or after enabling a VPN tunnel) and reconnects immediately. In the few remaining cases, re-starting the Akonadi server does the trick. You just have to know what to kick.
- More problematic is, while you're in online mode, any problems with connectivity will make kmail "hang". Clicking on a message leads to an attempt to retrieve it, which requires some response from the network. As it seems to me, all such requests are queued up for Akonadi to handle, and if that does not get a reply, pending requests are stuck in the queue... OK, you might say that this is a typical use case for offline mode, but then I would have to be able to predict when exactly my train enters the tunnel... Compare this to kmail1 disconnected IMAP accounts, where regular syncing would be delayed, but local work remained unaffected.
- Offline mode is a nice concept, and half a solution for the last problem, but unfortunately it does not work as expected. For mysterious reasons, a considerable part of the messages is not cached locally. I switch my account to offline mode, click on a message, and obtain an error message "Cannot fetch this in offline mode". Well, bummer. Bug 285935.
- This may just be my personal taste, but once something goes wrong (e.g., non-kde related crash, battery empty, ...) and the cache becomes corrupted somehow, I'd like to be able to do something from kmail2 without having to fiddle with akonadiconsole. A nice addition would be "Invalidate cache" in the context menu of a mail folder, or some sort of maintenance menu with semi-safe options.
- Finally... something is definitely going wrong with PGP signatures; the signatures do not always verify on other mail clients. Tracking this down, it seems that CRLF is not preserved in messages, see bug 306005.
Apple v. Samsung Trial Transcript - Day 7, Aug. 13, 2012: Prior Art Day ~pj
Next, Samsung began putting on its case, calling as witnesses Benjamin Bederson and Adam Bogue, both to demonsrate prior art. And so I think we could call this Samsung prior art day.
It's also the day where Apple's Terry Musika, an economist, speaks to damages, and he seems not to have calculated product by product. He arrived at a total damages figure based on his assertion that all of Apple's claims of infringement were established as true, utility patents, design patents, and trade dress infringement. But there's no specific breakdown offered to help the jury figure out what to allot if they didn't agree that every single Apple claim was so. If only the utility patents were found to be infringed by the jury, or only one, or only the design patents, there was no easy breakdown of the figures provided to the jury to be able to calculate what the right damages figure should be.



Recent comments