Tag Archives: README

Joel Leclerc: extract-xxx – An easy way of extracting XXX/TODO/FIXME’s

First: The “Why”. Well, it’s because when I write code, I usually don’t have the time (or the patience) to write everything perfectly, so I usually just write in a small TODO or FIXME for later. The issue is, when I do want to fix them (e.g. in the final polishing stage of development), it’s hard to find them (especially if you have many source files, and it takes some time to open any of them). Also, it’s because I wanted to learn perl, and I wanted to take a small break from my other project (which is taking up most of my free time).

The repository is here: https://github.com/MiJyn/extract-xxx. Download it however you want, then run extract-xxx.pl.

What it basically does is that it searches through a file for the “comment types” (which is just a name I assigned for things like “XXX” or “TODO”, since I don’t know that they’re really called), and then prints them with (by default), 2 lines of context, both before and after. It’s kind of like grep, but it’s a bit more specialized towards this task (though you could theoretically do everything this does by fancy utilization of grep, find, and nl).

Example usage:

$ ./extract-xxx.pl
./README.md

 48  | An incomplete list of limitations would be:
 49  | 
>50>>|  * It doesn't do any lexical parsing, so if you wrote `XXX:` in a string or something else (not a comment), it would still report it. Though it's also somewhat of a feature, as then it supports any language
>51>>|  * It requires a colon (`:`) after a comment type (i.e. you have to write `XXX:` instead of `XXX`)
 52  |  * The `-x` option just places whatever you put in a `m/.../` without any kind of processing. Therefore, don't expect things to go too well if you added some kind of weird scripting stuff (or a `/`).
 53  |

When run with no arguments, it will recursively go through the current directory (including sub-directories, and sub-sub-directories, etc…), and will then go through each file, as mentioned previously. As you can notice, lines 50 and 51 are highlighted (by >50>>), as they contain a “comment type” (in both cases, XXX), proceeded by a colon.

Instead of rewriting everything here, check out the repository, as the README explains pretty much everything you need to know about it.

Anyways, let me know what you think, any constructive criticism is appreciated

Source: FULL ARTICLE at Planet Ubuntu

yaWP (Yet Another Weather Plasmoid) 0.4.4 (Plasmoid Binary)

Thumbnail

yaWP (Yet Another Weather Plasmoid) 0.4.4
(Plasmoid Binary)
Yet Another Weather Plasmoid.
There is nothing wrong with the ones that exist, I just wanted something more colorful.

This plasmoid belongs to other people, it would not be where it is without their help. See the README.

Please help with additional themes and translations, thanks.

For the latest unstable version:
svn co https://yawp.svn.sourceforge.net/svnroot/yawp/trunk yawp

INSTALL NOTES
tar -jxf yawp*
cd yawp*
./install.sh

changelog:
0.4.4 (17 Mar 2012)
* New desktop painter has been added. Yawp can be configured to use the traditional or the new one for desktop and/or for popup window.
* Panel painter has been rewritten
* Initialization stuff of yawp has been moved to init method, because yawp crashes on KDE 4.8 due to the usage of not initialized components.
* Usage of KMessageBox has been replaced within DlgAddCity, otherwise yawp crashes on KDE 4.8.5 (some earlier versions might be included as well).
Using KMessageBoxes within KConfigDialog (yawp settings dialog) still works as expected.
* Google ION has been removed, because Google does not support this service any longer.
* Updating and fixing translations
* Bugfix: yaWP did not update weatherdata periodically after hibernation – it is working now

0.4.3 (17 Apr 2012)
* Show current RealFeel temperature under current temperature (thanks to Alain Soucy)
* Non-modale city search dialog
* Implementing public slot configChanged() to behave like a standard plasmoid – yaWP can be configured from external programs (e.g.: javascript)
* changing internal handling of extender (KDE 4.8 only) – when plasmoid will be used in desktop mode extender is not used and will be destroyed, when plasmoid is moved to panel a new extender will be created
* little tweaks to horizontal panel layout, adding more spaces between icons
* Ukrainian translation updated (Thanks to Yuri Chornoivan)

0.4.2 (04 Jan 2012)
* Adapting yaWP to KDE 4.8
* ION AccuWeather is showing closer maps for cities of the United States.
* Workaround crashes in city search dialog in KDE >= 4.7.4
* Frech and Slovak trasnlation updated
* Fixes in Wunderground ION
* Fix double translation for Short day names

0.4.1 (03 Dec 2011)
* Add ability to open forecast in browser (if URL is provided by ION)
* ION wunderground is returning a sorted list of cities (airport stations are listed on top of list,
because in general terms this station type contains more weather information than the personal weather station type).
* ION Wunderground is supporting satellite maps as well
* ION accuweather is not using a config-file for satellite image mapping any longer (feature has been added in version 0.4.0
…read more
Source: FULL ARTICLE at KDE Apps

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

    KRunner Translator 0.3 (KDE Improvement)

    Thumbnail

    KRunner Translator 0.3
    (KDE Improvement)
    This runner translates any text using google translate. You can specify a source and a target language or just specigy the target language and use autodetect. For more information read the help dialog, README or have a look at the provided screenshots.

    A list of all supported languages you can find here:
    https://developers.google.com/translate/v2/using_rest?hl=de#language-params

    Example: de house

    this will translate “house” into german (de)

    Example: fr-en maison

    this will translate the french word “maison” into english

    Simple, isn’t it? 🙂

    changelog:
    0.3
    ——————–
    • additional syntax: source language can be specified if autodetect fails
    • rank results by relevance
    • add part of speech to subtext
    • now supports all languages supported by Google Translate
    • ported from QHttp (deprecated) to QNetworkAccessManager

    0.2.2
    ——————–
    • fixed bug that prevents some languages (like arabic) from working

    0.2.1
    ——————–
    • correct some copyright notices
    • update help and about dialog
    • speed improvements

    0.2
    ——————–
    • runner now uses autodetect
    • simplified syntax

    0.1
    ——————–
    • Forked googletranslaterunner 0.0.1 by Javier Goday
    • Fixed json parsing.
    • Fixed language detection, so it will not query when term is not complete.
    • Results now splitted to krunner rows.

    [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

    qt-signal-tools – Pre-packaged slot calls and connecting signals to arbitrary functions in Qt 4

    A useful new feature in Qt 5 is the ability to connect signals to arbitrary functions instead of just Qt signals/slots/properties, including C++11 lambdas. As this page on the Qt Project wiki explains, this is especially useful when writing code to perform async operations where you often want to pass additional context to the slot.

    I’ve written a small library for Qt 4 which provides similar functionality. The library includes:

    • QtCallback – A pre-canned QObject method call. QtCallback stores an object, a slot to call and optionally a list of pre-bound arguments to pass to the slot. This is useful if you need to pass additional context to the slot, other than the values provided by the signal.
    • QtSignalForwarder::connect() – Connects signals from QObjects to arbitrary functions or methods or QtCallbacks. You can use this together with bind() and function to pass additional arguments to the method other than those provided by the signal or re-arrange arguments. You can think of this as a more flexible alternative to the QSignalMapper class that Qt 4 provides. There are also a couple of utility features:
      • QtSignalForwarder::delayedCall() – A more flexible alternative to QTimer::singleShot() which can be used to invoke an arbitrary function after a set delay.
      • Event connections – Invoke an arbitrary function or QtCallback when an object receives a particular type of event. This is useful when the object does not have a built-in signal that is emitted in response to that event and requires less boilerplate than using QObject::installEventFilter()
    • safe_bind() – A downside of connecting a signal to a function object is that the signal does not automatically disconnect if the receiver is destroyed. safe_bind() creates a wrapper around a (QObject*, function) pair which when called, invokes the function if the object still exists or does nothing and returns a default value if the object has been destroyed. You can use this together with QtSignalForwarder to connect a signal to an arbitrary method on a QObject which effectively ‘disconnects’ when the receiver is destroyed.

    For example usage, please see the README, the examples and the tests. The code is available from github.com/robertknight/qt-signal-tools. The requirements are:

    • Qt 4.8
    • A compiler with the TR1 standard library extensions (most C++ compilers from the past few years – including MSVC >= 2008 and GCC 4.x. I have tested with MSVC 2010 and recent GCC/Clang versions) or one which supports equivalent features from the C++11 standard library.

    Compared to the implementation in Qt 5, there are a few disadvantages:

    • Argument type checking happens at runtime when QtSignalForwarder::connect() is called, similar to standard QObject signal-slot connections. QObject::connect() in Qt 5 can do type checking at compile time.
    • In order to do the runtime type checking, the types of arguments passed from the signal to the function or method must be registered using Q_DECLARE_METATYPE() or qRegisterMetaType()
    • Using QtSignalForwarder does have additional overhead since a hidden proxy object is created to route the …read more
      Source: FULL ARTICLE at Planet KDE

    Error after systeme restoration

    By andersonedouard


    Rebooting with command: boot
    Boot device: /pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/disk@0,0:a File and args:
    SunOS Release 5.10 Version Generic_147440-01 64-bit
    Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
    WARNING: system call missing from bind file
    WARNING: Cannot mount /etc/dfs/sharetab

    Hardware watchdog enabled
    libscf.c:3249: scf_handle_bind() failed with unexpected error 1017. Aborting.
    Feb 9 05:38:45 svc.startd[12]: restarting after interruption
    libscf.c:3249: scf_handle_bind() failed with unexpected error 1017. Aborting.
    Feb 9 05:38:45 svc.startd[15]: restarting after interruption
    libscf.c:3249: scf_handle_bind() failed with unexpected error 1017. Aborting.
    Requesting maintenance mode
    (See /lib/svc/share/README for additional information.)


    Can someone please help on how i can fix this? Good day and thank your for your help.

    …read more
    Source: FULL ARTICLE at The UNIX and Linux Forums

    README: Factorial quick chart with sed & bc:

    By rveri

    Hi all,
    While doing some checks I found a kind of interesting arithmetic factorial chart with sed, sharing this may be simple but thought to share,

    Code:

    # n=20;for i in `seq $n`;do printf "`seq $i|xargs|sed 's/ /*/g'`= ";echo "`seq $i|xargs|sed 's/ /*/g'`"| bc;done
    1= 1
    1*2= 2
    1*2*3= 6
    1*2*3*4= 24
    1*2*3*4*5= 120
    1*2*3*4*5*6= 720
    1*2*3*4*5*6*7= 5040
    1*2*3*4*5*6*7*8= 40320
    1*2*3*4*5*6*7*8*9= 362880
    1*2*3*4*5*6*7*8*9*10= 3628800
    1*2*3*4*5*6*7*8*9*10*11= 39916800
    1*2*3*4*5*6*7*8*9*10*11*12= 479001600
    1*2*3*4*5*6*7*8*9*10*11*12*13= 6227020800
    1*2*3*4*5*6*7*8*9*10*11*12*13*14= 87178291200
    1*2*3*4*5*6*7*8*9*10*11*12*13*14*15= 1307674368000
    1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16= 20922789888000
    1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17= 355687428096000
    1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18= 6402373705728000
    1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19= 121645100408832000
    1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20= 2432902008176640000
    # n=20;for i in `seq $n -1 1`;do printf "`seq $i|xargs|sed 's/ /*/g'`= ";echo "`seq $i|xargs|sed 's/ /*/g'`"| bc;done
    1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20= 2432902008176640000
    1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19= 121645100408832000
    1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18= 6402373705728000
    1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17= 355687428096000
    1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16= 20922789888000
    1*2*3*4*5*6*7*8*9*10*11*12*13*14*15= 1307674368000
    1*2*3*4*5*6*7*8*9*10*11*12*13*14= 87178291200
    1*2*3*4*5*6*7*8*9*10*11*12*13= 6227020800
    1*2*3*4*5*6*7*8*9*10*11*12= 479001600
    1*2*3*4*5*6*7*8*9*10*11= 39916800
    1*2*3*4*5*6*7*8*9*10= 3628800
    1*2*3*4*5*6*7*8*9= 362880
    1*2*3*4*5*6*7*8= 40320
    1*2*3*4*5*6*7= 5040
    1*2*3*4*5*6= 720
    1*2*3*4*5= 120
    1*2*3*4= 24
    1*2*3= 6
    1*2= 2
    1= 1
    #


    Just replace the value of n , to the desired factorial and it ll construct the chart. Below is a example of factorial 20 ‘s chart:

    Code:

    n=20;for i in `seq $n`;do printf "`seq $i|xargs|sed 's/ /*/g'`= ";echo "`seq $i|xargs|sed 's/ /*/g'`"| bc;done


    Enjoy!. Have fun!.

    Source: FULL ARTICLE at The UNIX and Linux Forums

    ksuperkey 0.3 (KDE Improvement)

    Thumbnailksuperkey 0.3
    (KDE Improvement)
    ksuperkey allows you to open the application launcher in KDE Plasma Desktop using the Super key (also known as the ‘Windows key’). Unlike other solutions, it will not affect your current keyboard shortcuts, as the Super key will still act as a modifier when held down.

    ksuperkey is a fork of xcape (https://github.com/alols/xcape), most of the work was done by the original author Albin Olsson.

    Installation

    Packages for distributions are provided by third party, I take no responsibility for their contents.

    1. Install dependencies. On Ubuntu:

    sudo apt-get install gcc make libx11-dev libxtst-dev pkg-config

    2. Download Source and extract the tar.gz file (using e.g. Ark).

    3. Go to the newly extracted directory called ksuperkey, open a terminal (press F4 in Dolphin), and run:

    make

    3. Launch ksuperkey:

    ./ksuperkey

    or by clicking on its icon. ksuperkey will run in the background.

    4. Try to press the left Super key. If the application launcher does not show up, make sure that its shortcut is set to Alt+F1:
    right click on the application launcher icon -> Application Launcher Settings -> Keyboard Shortcut.

    5. (optionally) Make ksuperkey autostart in System Settings -> Startup and Shutdown -> Autostart -> Add Program… -> Browse button -> select the ksuperkey application.

    Change mapping

    If you do not like the default mapping (Super_L to Alt+F1), you can tell ksuperkey to use another mapping. The syntax is as follows:

    ksuperkey -e ‘ModKey=Key[|OtherKey][;NextExpression]’

    Looks complicated? Do not worry, it really is not. Let us look at some examples:

    Make Super key open KRunner (Alt+F2)

    ksuperkey -e ‘Super_L=Alt_L|F2’

    We have more modifier keys on our keyboard, why not use them?

    ksuperkey -e ‘Control_L=Alt_L|F1;Super_L=Alt_L|F2;Shift_L=Control_L|S’

    This makes the left Ctrl key generate Alt+F1 (application launcher), left Super generate Alt+F2 (KRunner), and left Shift generate Ctrl+S (save the current document) when pressed and released on their own.

    Autostart

    If you want to add your custom mapping to Autostart:

    1. Follow the instructions in 4. under Installation.
    2. When you see the dialog with the tabs (General, Permissions, Application, etc.), click on the Application tab.
    3. Add the -e option to the Command field. It could look something like this:

    /home/myname/ksuperkey/ksuperkey -e ‘Super_L=Alt_L|F2’

    Troubleshooting

    1. ksuperkey does not work.

    Make sure that ksuperkey is running (use e.g. the system monitor, Ctrl+Escape) and that it is running only once.

    Also check that the keyboard shortcut for the application launcher is set to Alt+F1, see 4. under Installation.

    2. When I try to change the mapping, I get ‘command not found: ksuperkey’

    When following the installation instructions above, kusperkey will not be installed to $PATH. This means that your shell does not know where to find ksuperkey. Therefore you have to specify the full path to the executable, e.g.

    ~/ksuperkey/ksuperkey -e ‘Super_L=Alt_L|F2’

    3. I remap my keys (e.g. using xmodmap) and ksuperkey does not behave as I want it to.

    Try to restart ksuperkey every time after doing the remapping. Also make sure that the key you send has a defined keycode.

    Tips

    You no longer have to bind Alt+F1 to the thing you want ksuperkey to trigger, since you can easily change the mapping! (See “Change mapping” section above.)

    For more options, see included README.md or the Github page: https://github.com/hanschen/ksuperkey

    Contact

    Please post issues to Github:
    https://github.com/hanschen/ksuperkey/issues

    I will try to answer questions here.

    changelog:
    0.3
    – XKeycodeToKeysym has been deprecated, use XkbKeycodeToKeysym instead. [upstream]

    0.2
    – It is now possible to define your own mappings (e.g. Super_L to Alt+F2) without editing the source code. [upstream]

    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]

    Source: FULL ARTICLE at KDE Apps

    Knights 2.5.0 (KDE Board Game)

    ThumbnailKnights 2.5.0
    (KDE Board Game)
    Knights is a simple chess board for KDE 4. It is a rewrite of the KDE3 Knights.

    Its home page with regular updates is at http://noughmad.com/knights.

    You can play againts computer engines that support the XBoard protocol (like GnuChess), against anouther player at the same computer, or on the Free Internet Chess Server. It has automatic rule checking and some nice animations.

    For compiling, you need KDE as well as libkdegames headers, which are usually found in libkdegames-dev or libkdegames-devel packages.

    Packages can be downloaded form build.opensuse.com, however try to use your distribution’s version when possible. In any case, please report any problems, bugs, and wishes to bugs.kde.org (product knights).

    The source archive includes a README.themes file with info for creating and sharing new themes for Knights. They can be uploaded to kde-look.org, and downloaded directly from Knights.

    Due to a recent break of compatibility in KDEGames, versions from 2.5 onward require KDE 4.9 or newer. User of older KDE version should use the 2.4 branch.

    changelog:
    Version 2.5.0: Port to new KDEGames library, compatible with KDE 4.9

    Version 2.4.2: A handful of usability fixes

    Version 2.4.1 introduces support for the UCI protocol, setting the difficulty level of chess engines, game history display, and loading and saving PGN files.

    Version 2.4.0 brings voice support, possibility of external control by dbus, and a couple of bug fixes.

    Version 2.3.2 is a bugfix release with several fixes, mostly by Dave Kaye. It fixes drag-coused freezes, dropping pieces outside of the board, and a theme appearing twice in the selection dialog.

    Version 2.3.1 fixed exactly one bug; the peace captured by en-passant is now properly removed.

    The changelog since the last stable release (2.2.0) includes:

    – Watching two engines play
    – Improved time control support for chess engines
    – Better support for the XBoard protocol means Knights can play with more engines, including Crafty, Sloppy, Sjeng and Phalanx.
    – Players can now make and receive offer for draw, pause, undo, adjourn and abort. All except Draw are only used when playing on the chess server.
    – Players can now undo their moves.
    Improved game dialog, with more game options.
    – Improved server dialog, with a seek graph.
    – Ability to interact with a chess server or a computer engine via a text console.
    – Simple chat widget for talking to your remote opponent.
    – Selecting and moving pieces by clicking, without dragging.

    [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

    Software Suite Structure

    By kristinu



    fast-zb/fast
    ├── BUILD_DIR
    │** ├── bin
    │** ├── Makefile
    │** └── obj
    ├── documents
    │** ├── fast_doc.ps
    │** ├── fast_doc.txt
    │** └── fdtc.doc
    ├── examples
    │** ├── 2d_example
    │** ├── 2d_example_linux
    │** └── 3d_example
    ├── fdtc.mk
    ├── include
    │** ├── fdtc
    │** ├── raypk
    │** └── zslice
    ├── nraypk.mk
    ├── README
    ├── source
    │** ├── library
    │** └── programs
    ├── xraypk.mk
    └── xzslice.mk

    └── tomso-12.04
    ├── BUILD_DIR
    │ ├── BUILD_DIR
    ├── documents
    ├── include
    └── source├── fast

    │** ├── BUILD_DIR
    │** ├── documents
    │** ├── examples
    │** ├── fdtc.mk
    │** ├── include
    │** ├── nraypk.mk
    │** ├── README
    │** ├── source
    │** ├── xraypk.mk
    │** └── xzslice.mk


    Source: FULL ARTICLE at The UNIX and Linux Forums

    soundKonverter 1.6.4 + 2.0.0 beta1 (KDE Sound Application)

    ThumbnailsoundKonverter 1.6.4 & 2.0.0 beta1
    (KDE Sound Application)

    About
    soundKonverter is a frontend to various audio converters.

    The key features are:
    – Audio conversion
    Replay Gain calculation
    – CD ripping

    Reading and writing tags and covers is supported for many formats, so they are preserved when converting files.

    The following backends and formats are supported:

  • Audio file conversion
    Backends: faac, faad, ffmpeg, flac, lame, mplayer, neroaac, timidity, fluidsynth, vorbistools, twolame, flake, mac, shorten, wavpack and speex
    Formats: ogg vorbis, mp3, flac, wma, aac, ac3, alac, mp2, als, amr nb, amr wb, ape, speex, m4a, mp1, musepack shorten, tta, wavpack, ra, midi, mod, 3gp,
    rm, avi, mkv, ogv, mpeg, mov, mp4, flv, wmv and rv
  • Replay Gain calculation
    Backends: aacgain, metaflac, mp3gain, vorbisgain, wvgain, mpcgain
    Formats: aac, mp3, flac, ogg vorbis, wavpack, musepack
  • CD ripping
    Backends: cdparanoia
  • If you try to convert a file that is not supported, soundKonverter will tell you which backend you need to install.

    Installation
    mkdir build
    cd build
    cmake -DCMAKE_INSTALL_PREFIX=`kde4-config –prefix` ..
    make
    sudo make install

    For installing soundKonverter to your home directory see Building Amarok Locally at: http://amarok.kde.org/wiki/2.0_Development_HowTo

    Git repository
    For everybody who is interested, there is a git repository at https://github.com/HessiJames/soundkonverter
    In order to obtain the source code from the git repository you need to install ‘git’ and execute the following commands:
    initialize local git repository
    git clone git://github.com/HessiJames/soundkonverter.git
    update repository
    git pull

    Precompiled packages
    You can find soundKonverter packages for various distributions with a nice download interface and some instructions at:
    http://software.opensuse.org/download.html?project=home:HessiJames&package=soundkonverter
    More detailed information for openSUSE and Debian/Ubuntu can be found in the README file (linked below).

    Translations
    If you would like to translate soundKonverter to your native language, you can do this at https://www.transifex.net/projects/p/soundkonverter. You just have to create an account and request a new translation. Please keep an eye on the ‘Announcements’ in order to see when soundKonverter is in string-freeze.
    If you want to have a look at the .pot file first, you can get it here: https://github.com/HessiJames/soundkonverter/raw/fixes-1.6/src/po/soundkonverter.pot
    And if you have a question, just write me a mail.

    Reporting bugs
    You can either leave a comment here or write me a mail.
    But the best way might be to create a bug report/ask a question at https://bugs.launchpad.net/soundkonverter

    More
    For more information please read the README file at https://github.com/HessiJames/soundkonverter/blob/fixes-1.6/src/README

    changelog:

    new in 1.9.80 (2.0.0 beta1):
    -Add: Parallel Replay Gain calculation in the Replay Gain tool
    -Add: Move tracks to new Album via context menu in the Replay Gain tool
    -Add: sox plugin with support for some new file formats (8svx, aiff, amr wb)
    -Add: Convert sample rate and sample size, downmix and apply effects (normalize, bass and treble) using sox
    -Add: Copy embedded covers for ogg files using METADATA_BLOCK_PICTURE
    -Add: Option to switch between COMMENT and DESCRIPTION as preferred comment field for ogg vorbis and flac files
    -Add: Option to select preferred total tracks/discs number fields for ogg vorbis and flac files
    -Add: Copy the tags total tracks/discs number, MusicBrainz Track Id and MusicBrainz Release Id
    -Add: Compression level option for the lame plugin
    -Add: Opus support (via opus-tools)
    -Change: Remember dimensions of the sub-windows and dialogs
    -Change: Sampling rate and number of channels can as of now only be changed through a filter plugin (currently only sox)
    -Change: Immediately start converting a file after adding it to the file list if the conversion is running in queue mode
    -Change: Quit soundKonverter when canceling the CD ripper dialog if soundKonverter was started with the –rip option
    -Change: Quit the Replay Gain tool when it gets closed
    -Change: Rename the m4a format to m4a/aac and alac to m4a/alac
    -Fix: Handle internal Replay Gain calculation properly
    -Fix: Don’t accept dropping tracks onto albums with different codec or sampling rate in the Replay Gain tool
    -Fix: Better file type recognition
    -Fix: Output options control via command line parameters when ripping audio cds
    -Fix: User defined parameters for mpcenc when using a preset

    new in 1.6.4:
    -Fix: Stall when Replay Gain plugin returns error code (e.g. when trying to remove musepack gain)
    -Fix: Some memory leaks
    -Fix: Performance improvements when adding large directories
    -Fix: Recognize file type correctly if extension is upper case
    -Fix: Dropping directories on the Replay Gain tool wouldn’t work

    new in 1.6.3:
    -Add: Brazilian Portuguese translation (by André Marcelo Alvarenga)
    -Fix: Make sure the file chooser dialog won’t get overlayed by the options dialog in non-KDE environments

    new in 1.6.2:
    -Fix: Skip files that ought to be skipped instead of generating a new file name
    -Fix: Make saving custom profiles work again
    -Fix: Don’t mix up the output directory history for metadata and normal mode
    -Fix: Show proper progress when applying album gain

    new in 1.6.1:
    -Fix: Don’t try to restore the file list when calling soundKonverter while it is running

    new in 1.6.0:
    -Add: Update translations
    -Fix: When loading file lists some options were ignored

    new in 1.5.90 (1.6.0 rc1):
    -Add: Make the ‘Failed’ status click-able and open the log if clicked
    -Add: Make the file name of covers written to the output directory configurable
    -Change: Remove the info tab from the options editor
    -Change: Discard changes in the options editor when selecting a different file in file list
    -Fix: Problem dialog wasn’t shown when dropping unsupported files on the soundKonverter or ReplayGain tool window
    -Fix: Show progress when decoding properly
    -Fix: Crash when in options editor opened items finished
    -Fix: Crash with ogg files containing covers but no mime type or description

    Full changelog: https://github.com/HessiJames/soundkonverter/blob/fixes-1.6/src/CHANGELOG

    [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

    Packaging changes in KDE Telepathy

    We have done some changes to our KDE Telepathy repositories recently, that might be interesting for packagers.

    We have consolidated all Plasma applets into a single repository called ktp-desktop-applets (originally ktp-contact-applet). The ktp-presence-applet repository is now empty, the master branch contains just a README, the stable branch kde-telepathy-0.5 is preserved.

    We have also normalized names of the applets, so they are now called org.kde.ktp-presence, org.kde.ktp-chat, org.kde.ktp-contactlist and org.kde.ktp-contact. The ktp-desktop-applets installs an update script for Plasma Desktop that will automatically update user configuration on next login.

    All declarative plugins are now located in ktp-common-internals, so that all our QML models and utils are available for developers.

    These changes will be first available in 0.6 release.

    Source: FULL ARTICLE at Planet KDE

    Jamie Strandboge: Application isolation with AppArmor – part I

    A lot of exciting work has been going on with AppArmor and this multipart series will discuss where AppArmor is now, how it is currently used in Ubuntu and how it fits into the larger application isolation story moving forward.

    Brief History and Background

    AppArmor is a Mandatory Access Control (MAC) system which is a Linux Security Module (LSM) to confine programs to a limited set of resources. AppArmor’s security model is to bind access control attributes to programs rather than to users. AppArmor confinement is provided via profiles loaded into the kernel. AppArmor profiles can be in one of two modes: enforcement and complain. Profiles loaded in enforcement mode will result in enforcement of the policy defined in the profile as well as reporting policy violation attempts (either via syslog or auditd) such that what is not allowed in policy is denied. Profiles in complain mode will not enforce policy but instead report policy violation attempts. AppArmor is typically deployed on systems as a targeted policy where only some (eg high risk) applications have an AppArmor profile defined, but it also supports system wide policy.

    Some defining characteristics of AppArmor are that it:

    • is root strong
    • is path-based
    • allows for mixing of enforcement and complain mode profiles
    • uses include files to ease development
    • is very lightweight in terms of resources
    • is easy to learn
    • is relatively easy to audit

    AppArmor is an established technology first seen in Immunix, and later integrated into Ubuntu, Novell/SUSE, Mandriva, Debian, their derivatives and others. Core AppArmor functionality is in the mainline Linux kernel starting with 2.6.36. AppArmor maintenance and development is ongoing.

    An example AppArmor profile

    Probably the easiest way to describe what AppArmor does and how it works is to look at an example, in this case the profile for tcpdump on Ubuntu 12.04 LTS:

    #include <tunables/global>
    /usr/sbin/tcpdump {
      #include <abstractions/base>
      #include <abstractions/nameservice>
      #include <abstractions/user-tmp>
      capability net_raw,
      capability setuid,
      capability setgid,
      capability dac_override,
    
      network raw,
      network packet,
    
      # for -D
      capability sys_module,
      @{PROC}/bus/usb/ r,
      @{PROC}/bus/usb/** r,
    
      # for finding an interface
      @{PROC}/[0-9]*/net/dev r,
      /sys/bus/usb/devices/ r,
      /sys/class/net/ r,
      /sys/devices/**/net/* r,
    
      # for tracing USB bus, which libpcap supports
      /dev/usbmon* r,
      /dev/bus/usb/ r,
      /dev/bus/usb/** r,
    
      # for init_etherarray(), with -e
      /etc/ethers r,
    
      # for USB probing (see libpcap-1.1.x/
      # pcap-usb-linux.c:probe_devices())
      /dev/bus/usb/**/[0-9]* w,
    
      # for -z
      /bin/gzip ixr,
      /bin/bzip2 ixr,
    
      # for -F and -w
      audit deny @{HOME}/.* mrwkl,
      audit deny @{HOME}/.*/ rw,
      audit deny @{HOME}/.*/** mrwkl,
      audit deny @{HOME}/bin/ rw,
      audit deny @{HOME}/bin/** mrwkl,
      owner @{HOME}/ r,
      owner @{HOME}/** rw,
    
      # for -r, -F and -w
      /**.[pP][cC][aA][pP] rw,
    
      # for convenience with -r (ie, read 
      # pcap files from other sources)
      /var/log/snort/*log* r,
    
      /usr/sbin/tcpdump r,
    
      # Site-specific additions and overrides. See 
      # local/README for details.
      #include <local/usr.sbin.tcpdump>
    }

    This profile is representative of traditional AppArmor profiling for a program that processes untrusted input over the network. As can be seen:

    • profiles are simple text files
    • comments are supported in the profile
    • absolute paths as well as file globbing can be used when specifying file access
    • various access controls for files are present. From the profile we see ‘r’ (read), ‘w’ (write), ‘m’ (memory map as executable), ‘k’ (file locking), ‘l’ (creation hard links), and ‘ix’ to execute another program with the new program inheriting policy. Other access rules also exists such as ‘Px’ (execute under another profile, after cleaning the environment), ‘Cx’ (execute under a child profile, after cleaning the environment), and ‘Ux’ (execute unconfined, after cleaning the environment)
    • access controls for capabilities are present
    • access controls for networking are present
    • explicit deny rules are supported, to override other allow rules (eg access to @{HOME}/bin/bad.sh is denied with auditing due to ‘audit deny @{HOME}/bin/** mrwkl,’ even though general access to @{HOME} is permitted with ‘@{HOME}/** rw,’)
    • include files are supported to ease development and simplify profiles (ie #include , #include , #include , #include )
    • variables can be defined and manipulated outside the profile (#include for @{PROC} and @{HOME})
    • AppArmor profiles are fairly easy to read and audit

    Complete information on the profile language can be found in ‘man 5 apparmor.d’ as well as the AppArmor wiki.

    Updating and creating profiles

    AppArmor uses the directory heirarchy as described in policy layout, but most of the time, you are either updating an existing profile or creating a new one and so the files you most care about are in /etc/apparmor.d.

    The AppArmor wiki has a lot of information on debugging and updating existing profiles. AppArmor denials are logged to /var/log/kern.log (or /var/log/audit/audit.log if auditd is installed). If an application is misbehaving and you think it is because of AppArmor, check the logs first. If there is an AppArmor denial, adjust the policy in /etc/apparmor.d, then reload the policy and restart the program like so:

    $ sudo apparmor_parser -R /etc/apparmor.d/usr.bin.foo
    $ sudo apparmor_parser -a /etc/apparmor.d/usr.bin.foo
    $ <restart application>

    Oftentimes it is enough to just reload the policy without unloading/loading the profile or restarting the application:

    $ sudo apparmor_parser -r /etc/apparmor.d/usr.bin.foo

    Creating a profile can be done either with tools or by hand. Due to the current pace and focus of development, the tools are somewhat behind and lack some features. It is generally recommended that you profile by hand instead.

    When profiling, keep in mind that:

    • AppArmor provides an additional permission check to DAC. DAC is always checked in addition to the AppArmor permission checks. As such, AppArmor cannot override DAC to provide more access than what would be normally allowed.
    • AppArmor normalizes path names. It resolves symlinks and considers each hard link as a different access path.
    • AppArmor evaluates file access by pathname rather than using on disk labeling. This eases profiling since AppArmor handles all the labelling behind the scenes.
    • Deny rules are evaluated after allow rules and cannot be overridden by an allow rule.
    • Creation of files requires the create permission (implied by w) on the path to be created. Separate rules for writing to the directory of where the file resides are not required. Deletion works like creation but requires the delete permission (implied by w). Copy requires ‘r’ of the source with create and write at the destination (implied by w). Move is like copy, but also requires delete at source.
    • The profile must be loaded before an application starts for the confinement to take effect. You will want to make sure that you load policy during boot before any confined daemons or applications.
    • The kernel will rate limit AppArmor denials which can cause problems while profiling. You can avoid this be installing auditd or by adjusting rate limiting in the kernel:
      $ sudo sysctl -w kernel.printk_ratelimit=0

    Resources

    There is a lot of documentation on AppArmor (though some is still in progress):

    Next time I’ll discuss the specifics of how Ubuntu uses AppArmor in the distribution.

    Thanks to Seth Arnold and John Johansen for their review.

    Filed under: canonical, security, ubuntu
    Source: FULL ARTICLE at Planet Ubuntu

    Redshift Plasmoid 0.5.2 (Plasmoid Binary)

    ThumbnailRedshift Plasmoid 0.5.2
    (Plasmoid Binary)
    Redshift plasmoid provides a configuration interface and allows to start/stop Redshift daemon either manually or automatically based on the current activity.

    Important note
    After install, reboot or run redshiftautostart manually to start using the plasmoid.

    Issue & Feature Request
    Any issue or feature request can be posted to this github page:
    https://github.com/simgunz/redshift-plasmoid/issues

    More Info
    – Redshift: http://jonls.dk/redshift/

    changelog:
    0.5.2
    Add missing icons

    0.5.1
    Add french translation (thanks to Pierre Buard)

    0.5
    Add Italian translation
    Add translation support
    Fix tooltips
    Add manual mode, to let change the color temperature manually

    0.4.4
    Add brightness adjustment (thanks to Patryk Stępień)

    0.4.3
    Remove legacy python plasmoid (moved to another repo in github)
    Fix tooltips
    Add TODO, Fix license
    Add *buntu dependencies in README

    0.4.2
    Add option to choose color adjustment method
    Fix spinboxes padding

    0.4.1
    Partially solved autostart issue
    Add reboot action on applet contextual menu to let manually resolve autostart problem

    0.4
    Completely rewritten in C++
    Activities support added
    Many bug fixes

    0.3.2
    Improve tooltip
    Fix bug: Screen reset to default color when the plasmoid is destroyed

    0.3.1
    Fix bug: Configuration file is now ignored

    0.3
    Add tooltip
    Add notification in case of multiple instance of Redshift running
    Change process management
    Drop support for xflux
    Change icon
    Port config dialog to KConfigXT
    Simplify config dialog
    Change config dialog to match KDE Human Interface Guideline

    [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

    Boinc Monitor 2.0 (Plasmoid Script)

    ThumbnailBoinc Monitor 2.0
    (Plasmoid Script)
    Boinc Monitor is a plasmoid written in python that allows you to monitor the activities of BOINC directly on your desktop. It shows the progress work by each individual core of your PC with reference to the ram used by the process, the percentage of the work done and the time elapsed. Also shows the numbers of workunits in pending, cached and finished, and the last few lines of the BOINC log.

    OPTIONS:
    BOINC folder path – The path of BOINC working folder. Default: /var/lib/boinc-client/
    BOINC user name – The name of your BOINC user. Default: boinc
    Preferred project – Your favorite project to display (name, credits, team). Default: None.
    Update interval – The refresh interval of the plasmoid. Default: 1 minute.
    Log line numbers – The number of log line to show. Default: 5 lines.
    Cut Log line after – The number of characters after which the line of the log is cut. Default: 95 chars.
    Cpu load limit – The minimum rate of the CPU workload to show the workunit. Default: 20%.
    [S/R] wait timeout – The waiting time after a suspend/resume call. Default: 5 seconds.

    IMPORTANT:
    For a perfect view of the plasmoid the system must have the “Verdana” font installed.

    INSTRUCTIONS:
    To get plasmoid that works well is necessary to copy the file boinc-monitor from the docs folder to the folder /etc/sudoers.d/ (need root privileges).

    If your BOINC user is not “boinc”, please edit the file and replace it with your BOINC username.

    Remember that the boinc-monitor file must be in mode 0440 (sudo chmod 0440 boinc-monitor).

    Pay attention if in your /etc/sudoers there is the line – #includedir /etc/sudoers.d – otherwise the file boinc-monitor cannot be parsed. Thanks to Thomas Gorzka for his time!

    AVAILABLE LANGUAGES:
    English
    Italian
    German (thanks to Thomas Gorzka)

    Who wants adding a translation, in the docs folder there is the file boinc-monitor.pot. Complete the translation (msgstr “translation goes here”) and send the file to m4x1m@inwind.it

    That’s all!

    If you like this plasmoid please leave a comment!

    changelog:
    v2.0:
    – Auto Expand “Elapsed” field to print a result that show more than 24 hours.

    v1.9:
    – Added option to set timeout wait after a suspend/resume call (a too low value might not give time to PC to remove/create the process ids).
    – Show more informations when resuming a workunit.
    – Fixed minor bugs.

    v1.8:
    – Added the ability to suspend/resume process.
    – Fixed an issue at the initialization of the script.
    – Fixed minor bugs.

    v1.7:
    – Added multilanguage locale.
    – Added an extra check to the file boinc-monitor in /etc/sudoers.d/

    v1.6:
    – Added a second command to check if BOINC is running (this is a workaround for systemd, thanks to Thomas Gorzka).
    – Fixed minor bugs.

    v1.5:
    – No more write the options in a an external file, but use the internal system of plasma for read/write the configuration.

    v1.4:
    – Perfected the method of recognition of the BOINC user.
    – Fixed minor bugs.
    – Fixed minor graphics bugs.

    v1.3:
    – Fixed issue related at initialize of plasmoid for not packaging version of BOINC.
    – Fixed issue related the choose of preferred project.
    – Fixed minor bugs introduced with the previously version.

    v1.2:
    – Fixed bug related the preferred project chosen that no longer exists.
    – Fixed little bug if the user choose a project that is not in any team.
    – Added more controls to prevent errors.

    v1.1:
    – Changed the way to get the slot used by process (see README.txt in docs folder).
    – Added PID column to the working list.
    – Fixed minor graphics bugs.

    v1.0:
    – First script release.

    [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

    Jorge Castro: Apache support in WordPress charm now available

    The way to run WordPress in the cloud got better last week as Marco Ceppi continues to add improvements to the WordPress Juju Charm.

    First off is the new WordPress 3.5, which has been available to Juju users since it was released with a simple juju upgrade-charm wordpress. Nice.

    For this week Marco’s added some options for the kind of webserver used in the charm. Out of the box we’ve been using nginx, which is great, but some organizations prefer using things that are more known to them, and since Apache is available in Ubuntu’s main repository and supported for 5 years, why not have the option? So now you can switch the webserver with the following command:

    juju set wordpress engine=apache2

    And your deployment will reconfigure itself to server with Apache instad of nginx. You still get the nice auto load balancing (without the need for a proxy instance), but you lose some memcached integration (see the README for more). Ready to switch back?

    juju set wordpress engine=nginx

    You can just switch back and forth if you’d like, it’s kind of cool to run the command, wait a few minutes, and hit F5 in your browser to see it switch back and forth. For those of you watching/hoping for nginx to be included in Ubuntu’s main repository, you can follow this blueprint. Enjoy!

    Source: Planet Ubuntu