Tag Archives: KIO

Quo vadis, Dolphin? Results from the developers study.

We report the results of our Dolphin developer study and outline the follow-up study with users. Next to feedback we are looking for translation support.

Results of the developers study

Recently, we conducted a small study how developers want to improve Dolphin. First we asked about usability criteria. When forced to prioritize the developers’ goal is to provide functionality in favor of simplicity, individualization, and learnability. This does not mean to produce a Swiss army knife but the opposite “as simple as possible” is clearly refused. Regarding these goals the current state is estimated as rather good by the developers; only one response was given with a negative tendency. Beside bug fixing the next planned tasks are enhancement of the information panel (including UI usage) and better system integration (seamless handling of KIO slaves and removable devices, activity awareness, better Nepomuk queries).

Rationale for Usability

Starting point of the investigation was the finding that “Recents” is barely useful at the moment because of the few and fixed periods (today, yesterday, this week, last week) that are offered. To broaden the original question how to improve Recents: We need a concept for Dolphin’s sidebars. Currently we have Places in terms of special folders that can be extended by Favorites or bookmarks, and Devices for access to all external interfaces. Users can show a tree structure for the file system (Folders), a Terminal for command line in- and output, and context sensitive Information of selected file(s) or folder. Additionally, Recents can be used to show files not according to folder structure but based on other criteria, like time of last access so far.

Options

According to Dolphin’s philosophy the primary usability goal is to provide features that are easy to discover and efficient to use. Since Dolphin was introduced as a simple alternative to Konqueror it’s focus could hence be defined as providing a maximum of simplicity (notice the contrast to what developers actually state in the survey).

Alternatively, if users really demand more features, simple solutions that focus on a particular problem make sense. For the actual question of Recents it might be a vertical dual slider (aka range slider) for instance, placed contiguous to Recents’ data.The control has a lower anchor (the oldest known entry) and an upper anchor (the most recent file), and thumbs to adjust the upper and lower bounds to define shown range.

On the other hand, users might want to have a more sophisticated interface with full control for different purposes and perhaps with fancy visualization. In terms of Recents users might not only want to browse files by time of last access but as well by file size, file type, or given tags, for example. Such a solution could be similar to a graphical presentation of folder content with some kind of drill-down navigation like offered by Filelight.

Objectives of further research

All three options make sense: purification (keep it simple and don’t

From: http://user-prompt.com/quo-vadis-dolphin-results-from-the-developers-study/

komparator4 0.9 (KDE Archiving/Backup)

Thumbnail

komparator4 0.9
(KDE Archiving/Backup)
Komparator4 is a KDE4 port of Komparator.

It is still experimental, don’t expect it to work perfectly!
You will need >= KDE 4.3.

Komparator is an application that searches and synchronizes two directories. It discovers duplicate, newer or missing files and empty folders.
It works on local and network / kioslave protocol folders (like smb:/, ftp://, media:/)

changelog:
0.9
===
* Fixed copy to clipboard
* Newest kdatecombo.[h][cpp]
* Potential bugs leading to random crashes fixed

0.8
===
* Spanish translation (thanks to Lucio Martínez)
* Updated to newest kfind
* Bug excluding randomly large files from lists fixed

0.7
===
* Czech translation (thanks to Pavel Fric)
* small updates of the search engine to more recent KDE version
* bug (deleting custom preset sometimes impossible) fixed

0.6
===
* run KIO commands from GUI thread as KIO is not thread-save (fix random crashes)
* workaround for random crashes when deleting files

0.5
===
* preserve modification time stamp on get/put kioslave protocols

0.4
===
* files aren’t executed on selection (single click setting)
* “–minimized” command line option
* KDE 4.5 compatibility

0.3
===
* resize columns in list view enabled
* updated documentation screenshots
* fixed sorting by size and time stamp
* accelerated empty directory search

0.2
===
* fixed performance issue for large number of files

0.1b
====
* fixed window close problem
* new error list dialog (only open one error dialog at a time)
* fixed md5 checksum problem

0.1
===
* initial release

[read more]

job recommendations:

Sales Engineer full time employee
ownCloud Inc. United States of America, Boston more about this offer

[more jobs]
…read more
Source: FULL ARTICLE at KDE Apps

KDE PIM, Google Integration & more

Akregator 2 Search Window

I haven’t blogged about my involvement in KDE PIM in a while, so let’s see what’s new there, especially in the Google integration part….

Reborn Google Resources

Just before the KDE PIM sprint in Berlin this month, I’ve sat down and written completely new API for LibKGAPI (the library that implements Google API and is used by the Akonadi resources for Google services). The new API is job-based, and therefore much more awesome than the old one (which is known to suck). Anyway – what does this mean? It means that the new resources are awesome as well!

Google Contacts resource now has a full support for contacts groups. All contacts are stored in the top-level collection and are linked to the respective groups, so it does not matter where you edit the contact, you are still modifying the same instance. Like in the web interface.

Google Calendar now supports limited sync, so you can choose to only sync events from last year, or last two years (the default is last 3 years) instead of the full history.

Both resources have improved status reporting, error handling, are more stable (no more mystery crashes due to unhandled exceptions thrown from LibKGAPI) and subjectively synchronization is faster too.

Murdered Google Resources

As most of you probably noticed by now, Google is planning to shut down Google Reader by July 1. It’s pitty, because I already had a fully working Akonadi resource for Google Reader ready in the akregator_port branch. Cost me lot of time and nerves. Well, the resource is not there anymore and the only memory of it is greader branch with API implementation in LibKGAPI (which will die as well sooner or later). The good news however is that I can now help Alessandro and Frank with ownCloud News and the ownCloud Akonadi resource, so that we rock when Akregator2 is out I can’t wait to see what has changed in ownCloud since I installed 3.0.0 some time ago…

Upcoming Google Resources

I have two feature requests in bugzilla: one is to support Google Bookmarks, which is fairly complicated because of missing official API and absolutely no write API. So this is not going to happen soon. The second feature request is for Google Drive KIO slave. This is much more interesting task. I already tried writing Google Docs KIO slave about three years ago and I failed epically. Retribution! There’s almost complete API implementation by Andrius in LibKGAPI git, so I plan to port it to LibkGAPI2 and see whether we can together fight the Dark side and create a nice and shiny KIO slave.

Finally, deep in the dark corners of my mind, my so far the most evil plan is slowly shaping. The plan includes modifying the current IMAP resource, reusing most of it’s code and subclassing some specific parts to build a native GMail Akonadi resource that would support some GMail-specific IMAP extensions. …read more
Source: FULL ARTICLE at Planet KDE

KDEPIM sprint – KDirModel + friends and QML Calendar

qml_calendar_popup

Hi,

Last week we had one hell of a wonderful KDEPIM spring with about 30 people attending. It was my second sprint, and it’s certainly something i will keep attending.

So, what did i do during the sprint? The first day was spend entirely on my pet project of improving the entire file browsing stack in kdelibs. That means:

  • KFileItem
  • KDirModel
  • KDirLister

I’m doing this because the current stack doesn’t scale very well. It works fine for the every day usage, but begins to show it’s limitations when you use massive folders (100.000 till 1 million entries). I know that optimizing for this is “crazy”, but it’s also fun and seems to work really well thus far. The intention here is to have a rewritten stack that is as good as the current stack, but does scale well. Even with millions of files in one folder. However stupid that might be. I’ve rewritten all of the above classes since i wasn’t about to keep backwards compatibility. And rewriting them has the benefit that i can change the structure however i want to do that. The new names are:

  • KDirectoryEntry
  • KDirectory (contains a list of KDirectoryEntry objects for each entry)
  • DirModel (is going to be KDirModelV2)
  • KDirListerV2

KDirectory and KDirectoryEntry vs KFileItem. In terms of memory usage KFileItem was horrible. It was having one full UDSEntry and at least one KUrl. All sucking up memory that really could be used more effectively. I’ve taken a different approach here. KDirectoryEntry (the KFileItem replacement) is not storing a UDSEntry or a KUrl/QUrl anymore. It’s only storing:
QString with only the file name (not the full url)
mode_t with the details that tell what kind of entry this is (file, folder, symlink…)
bool that tells me if i have more information available like file size, permissions and a bunch of other details
FullStatData* pointer that contains the actual detailed data.

The “FullStatData*” pointer is filled based on lazy loading. It’s only filled when the data is actually needed. So that means the KDirectoryEntry object is very small compared to KFileItem and only loads additional data when it’s actually required to see that data. Even when that data is loaded, the memory footprint is massively lower then what you would see if you where using KFileItem. Some numbers will follow later in this post.

KDirectory is a glorified container class. It contains a list of KDirectoryEntry objects and is being spammed by KDirListerV2 with new entries.

KDirListerV2 is the real big dragon in this picture. What KDirListerV2 is basically doing is create a new KDirectory object for every new directory it wants to index. Then it attaches some signals from KIO::listDir and KDirWatch. Besides that it also contains logic to get a KDirectory object based on an “int index” and some logic to get that index. It’s based on int indexes because that makes it very easy to use it in a QAbstractItemModel. Besides KDirWatch (it seems to mark everything as dirty -_-) it works fairly well. No issues thus far anyway.

KDirModelV2 (DirModel) is the real head breaking part …read more
Source: FULL ARTICLE at Planet KDE

Kup Backup System 0.3 (KDE Archiving/Backup)

Thumbnail

Kup Backup System 0.3
(KDE Archiving/Backup)
Kup gives you fast incremental backups and makes it very easy to take them. If too long time has passed since the last backup Kup will remind you to take a new one, but in general Kup tries to not disturb you needlessly.

Only the small parts of your files that has actually changed since last backup will be saved and therefore incremental backups are very cheap. This is especially useful if you are working on big files.
At the same time it’s as easy to access your files as if a complete backup was taken every time. Every backup contains a complete version of your directories, behind the scenes all the content that is actually the same is only stored once. To make this happen Kup runs the backup program “bup” in the background, look at https://github.com/bup/bup for details.

What the Kup backup system consists of

  • Configuration module, available in your system settings. Here you can configure backup plans, what to include, where to backup to and how often. You can also see the status for these backup plans to monitor if you’re running low on disk space, etc.
  • A small program running in the background. It will monitor to see when your backup destination is available, schedule and run your backup plans. It has a system tray icon that shows up when a backup destination is available.
  • Current features

  • backup destinations:
    – local filesystem, monitored for availability. That means you can set a destination folder which only exist when perhaps a network shared drive is mounted and Kup will detect when it becomes available.
    – external storage, like usb hard drives. Also monitored for availability.
  • schedules:
    – manual only (triggered from tray icon popup menu)
    – interval (suggests new backup after some time has passed since last backup)
    – usage based (suggests new backup after you have been active on your computer for some hours since last backup).
  • helping you mount and unmount the backup archive so you can easily access archived files.
  • Installation
    Requires bup to be installed, also install python-fuse to be able to easily see and restore files from your
    backups. Follow instructions in README file for compiling Kup.
    Note that kup installs a policykit file that by default will let any user run the bup commands as root.

    Source code:
    Development happens at:
    https://github.com/spersson/Kup

    TODO:
    SSH as backup destination. Would be easy to add but I have not been motivated yet.
    KIO slave to see a bup archive in a file manager, could be based on libgit2 instead of fuse-mount.
    Also could be nice to have a view here where each file is represented as a directory and under
    that is the different timestamps of that file, would make …read more
    Source: FULL ARTICLE at KDE Apps

    Audex 0.76b1 (KDE CD/DVD Software)

    ThumbnailAudex 0.76b1
    (KDE CD/DVD Software)
    Audex is an audio grabber tool for CD-ROM drives based on KDE 4.

    Audex creates profiles for LAME, OGG Vorbis (oggenc), FLAC, MP4/M4A/AAC (faac) and RIFF WAVE. Please install your favorite encoder.
    Of course for WAVE no external encoder is needed!
    Beyond you can define custom profile, which means, that audex works together with commmand line encoders in general.

    You can define extensive filename schemes. Please take a look at the documentation on the Audex webpage to see what’s possible.

    Some features are:
    * Extracting with CDDA Paranoia. So you have quite perfect audio quality.
    * Extracting and encoding run parallel.
    * Extensive filename schemes.
    * Filename editing with local and remote CDDB/FreeDB database.
    * Metadata correction tools like capitalize etc.
    * Multi-profile ripping (with one commandline-encoder per profile).
    * Fetch covers from the internet and store them in the database.
    * Create playlists, cover and template-based-info files in target directory.
    * Creates ripping and encoding protocols.
    * Transfer files with KDE KIO-Slaves.

    **IMPORTANT NOTE: As LAME still can’t handle unicode characters correct, Audex uses since version 0.73 eyeD3 for tagging mp3 files, if available. It is highly recommended to install eye3D on your system if you create mp3 files with Audex! **

    changelog:
    Changelog 0.76 beta 1 (uddebo release)
    * Fix google cover fetcher
    * Fix compile issues with GCC 4.7
    * Small bugfixes…

    Changelog 0.75 beta 1 (kray release)
    * New variable: Total number of audio tracks
    * New variable: Audex name and version
    * New variable: Encoder name and version
    * Extended eyeD3 command line (total number of tracks, Audex name and version, Encoder name and version)
    * New feature: Use Unity DBus API to show overall progress, and current track number.

    Changelog 0.74 beta 1 (daktari release)
    * New feature: Simple cue sheet support (but does not detect pregaps yet)
    * New feature: Single file rip
    * New feature: Adds MD5 to hashlist options
    * Fixes some issues with cover browser
    * Uses external image viewer to show cover
    * Bugfix in Ogg Vorbis settings widget
    * Ogg Vorbis setting widget now allows to set fractional quality values
    * Bugfix in commandline for FAAC
    * 2 digits track number option for filenames
    * New parameters for file name scheme variables: left (see kde.maniatek.com/audex for full documentation)
    * New helptext for scheme wizard dialogs
    * Pattern of playlists, hashlists and cover files now need a $suffix variable
    * Some more small bugfixes…

    Changelog 0.73 beta 1 (alive release)
    * New feature: Use eyeD3 for MP3 tagging if available
    * Bugfix: Crash on cancel
    * Fixes some compile issues with GCC 4.5
    * Some cosmetic fixes
    * English language fix: Uses the word “folder” instead of “directory”
    * Uses KDiskFreeSpaceInfo for calculating free space on a device
    * New feature: Uses mimetype icons for profiles and allows user to change these
    * Settings in profile editing dialog now grouped with tabs
    * Fixes a crash when adding a new profile via the UI
    * New feature: New simple view of the ripping progress dialog
    * Adds more detail to CDDB errors
    * Some small bugfixes… (thx to all reporters!)

    Changelog 0.72 beta 1 (last-for-long-time release)
    * Some bugfixes…

    Changelog 0.71 beta 5 (hot summer release)
    * Slightly improved czech translation (Pavel Fric)
    * Slightly improved german translation (this is already not perfect!)
    * Minor bugfix.

    Changelog 0.71 beta 4 (justice release)
    * Updated header information (all GPLv3+ now)

    Changelog 0.71 beta 3 (urban release)
    * Dutch translation (Kenny Verstraete)
    * Portuguese (Márcio Moraes)
    * Bugfix: Slider update
    * Bugfix: Update profiles after loaded from external file

    Changelog 0.71 beta 2 (anticipation release)
    * Some minor bugfixes…

    Changelog 0.71 (beautiful spring release)
    * Czech translation (Pavel Fric)
    * German translation (Thomas Kamps)
    * New feature: Replace spaces with underscores in path- und filenames
    * New feature: Context menu for track listview
    * Bugfix: “Copy profile” function does not update listview
    * Bugfix: Corrected FLAC command line preset
    * Bugfix: Taking over changes in CD data for tags
    * Changed FAAC filename suffix from AAC to M4A
    * Optimized FAAC command line preset
    * Does not overwrite discid file on multi cd any more
    * Many small bugfixes… (thx to all reporters!)

    Changelog 0.70 (patchwork easter release):
    * Many GUI changes/fixes
    * More user-friendly common encoder quality selection (ogg vorbis,mp3,flac,faac,wav,custom)
    * KIO slave transfer
    * ListView -> TreeView and checkboxes to select which tracks to rip
    * Squash “/”-or-“””-in-filename-bug
    * Merge playlist, checksum file on multi-cd
    * Recognizes “(disc 1)” “(disc 2)” in cd title
    * Many, many small bugfixes… (thx to all reporters!)

    Changelog 0.62 (cold winter release):
    * Removed leaning effect of cover reflection and added a slight blur effect to the reflection
    * Profile combobox now works as expected (I hope… 🙂 )
    * Perform auto cddb/cover lookup
    * Resized coverfetch dialog (640×480 minimum size)
    * New variable $cover for sending a temporary cover file to a command line endcoder
    * Small bugfixes… (thx to all reporters!)

    Changelog 0.61 (xmas release):
    * Many bugfixes
    * Beyond the “confusing” xml naming scheme, you can use “normal” variables instead

    Changelog 0.6 (free weekend release):
    * New XML-based scheme definitions.
    * Assistant will help you creating profiles.
    * Cover fetching from amazon works again (rewritten).
    * Store SFV files for the music files.
    * Store text files with predefined information.
    * A lot of Bugfixes…

    [read more]

    job recommendations:

    Sales Engineer full time employee
    ownCloud Inc. United States of America, Boston more about this offer

    [more jobs]

    Source: FULL ARTICLE at KDE Apps