Posts for Saturday, April 2, 2011

Paludis 0.60.3 Released

Paludis 0.60.3 has been released:

  • Second attempt at getting ‘–enable-prebuilt-documentation’ to work reliably.

Filed under: paludis releases Tagged: paludis

Paludis 0.60.2 Released

Paludis 0.60.2 has been released:

  • A new configure option, ‘–enable-prebuilt-documentation’, can be used to avoid requiring Asciidoc, since on Gentoo Asciidoc has several bogus dependencies that pull in a lot of unwanted packages on X-less systems.

Filed under: paludis releases Tagged: paludis

Posts for Friday, April 1, 2011

avatar

The kde-www war: part 3

Just a quick history lesson. In the introductory post we highlighted several tell-tale symptoms that KDE.org had a very big usability and design problem. In part 1 of the war, we discussed a back-to-basics question what are we trying to communicate, what are we trying to achieve, and outlined goals for our various target audiences. In part 2 of the war, we started to achieve the goals outlined in part 1 via restructuring the pages and site map in order to distinctly separate between the KDE: The Community and KDE: Software. In this part, we’re going to focus on the home page – the central entrance hub for new members, and how we can use design elements to achieve part 1′s goals, and still cover all of the masses of content that KDE has to showcase in a streamlined manner as in part 2, and even reenforce KDE’s identity in the process.

Now that we know what we want to achieve and the structure of KDE.org, we can start thinking about the layout of the home page. The home page is – obviously – the most important page of the website. It acts as a central hub to link together everything that KDE has to showcase, it acts as the first stop for information for KDE newcomers, it acts as a publicity and news broadcast, it is the link between the various KDE sub-communities and communication channels, and most importantly, in today’s web-centric world, it defines KDE’s visual identity. After much debate, it had to satisfy the following criteria:

  • Embodies KDE’s visual style and branding – ie, the Oxygen, Air, Breathe, and Be Free. It should be a design that when you see it, you say “that looks like KDE”
  • It had to make people get KDE. To understand KDE not as a product and a software suite, but as a community. We want them to share with KDE’s passion. KDE has grown further than just a collection of apps and a desktop interface, and thus we can no longer be so shallow as to market it as such. We must follow our rebranding efforts to separate people from product, and emphasize open-source’s greatest strength – the community. We are a community, not a company. We create passion, not products.
  • It had to showcase our latest and greatest event/release/activities. However we need to showcase it in a way that people understand. Saying “Akademy 2011 is here!” alone doesn’t mean anything. Nor does “KDE 4.6 released – experience freedom”. Let’s change that to have meaning.
  • Clear segmentation between Software, Community and Development sections – to succeed where the current design fails. Let’s not make it a maze.
  • Absolute directions towards the goals we outlined – Goal 1: to become a user of KDE. Goal 2: Say hi and tell us what’s up. Goal 3: would you like to scratch your own itch?
  • Allow the user to understand how the site is structured and what exists without overwhelming them.

For this part of the war, I’m not going to write a wall of text. I’m just going to throw out the design right now, and let it speak for itself.


More to come. Let’s make a change.

Related posts:

  1. The kde-www war: part 2
  2. The kde-www war: part 1
  3. Help KDE.org defeat the wall of text.

Posts for Wednesday, March 30, 2011

KDE Alive with KWin Menu Excitement

Update: Comments are now working again, so sorry if your previous comment went blank. Debate away!

Martin’s post set off an eruption of ideas and debates over integrating dbusmenu and kwin and proposals for a new tabbed API. To quote José Pedro‘s comment:

The most important things I see lacking in Kwin from KDE 4.5 are an API to allow windows to open in a specific existing group (make a new tab in the decoration), and that the windows from a specific group are not grouped in the taskbar. I also think that if these 2 problems are fixed, most apps in KDE could use the decoration tabs instead of relying on the currently used tabs, inside the application itself. The important thing to notice here is the natural mix between the application tabs and the menu button. These complete each other, and all apps in KDE which rely on tabs to show documents would ideally use this system (dolphin, rekonq, kate, kword… just to name a few).

Here are some screen shots proposed in the comment thread:



Having an easy API to enable this would be very welcome.
setMainMenu(menu);
setWindowTabs(tabWidget);

Elsewhere in KWin settings:

[ X ] Place tabs in window border when supported.
[   ] Place main menu in window border when supported.

<iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zx2c4.com%2F548&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande" style="border:none; overflow:hidden; width:450px; height:65px"></iframe>

Posts for Monday, March 28, 2011

Free Software & law related links 21. III. 2011 - 28. III. 2011

Free Software Business

A short recap from Nokia's e-mail answer to what the future holds for Symbian and Qt.

Software Patents

Again we come to a week full of mobile phone related patent wars. Pretty much everyone is suing everyone and getting sued at the same time. The word on the street also is that the recent Nokia-Microsoft bond is there mainly for both to be more powerful with their joint patent portfolio and thus get to them more favorable settlements easier.

After last week's questions whether Google violated the GPL by copying header files from the Linux kernel to its Android, this week we see patent infringement claims from Microsoft against some companies making Android devices.

PaidContent: Microsoft Opponent Gets U.S. Government Support In Patent Showdown

TechCrunch: Robocast Sues Apple for Infringing its "Automated Browsing" Patent

Reuters: Kodak wins skirmish against RIM and Apple

the Inquirer: Apple and others sued for patent infringement

the Inquirer: Nokia loses a patent infringement claim against Apple's Iphone

Ars Technica: Apple's mobile products do not violate Nokia patents, says ITC

Copyright and Other Legal Act Reforms

Michael Geist: Another Copyright Bill Hits the Scrap Heap: Taking Stock of Canadian Digital Law and Policy Reform

Government and Free Software Policies

FSFE: Mapping the changing landscape of Free Software in the British Public Sector

OSOR: AU: Government moves to encourage use of Open Source Software

OSOR: PL: School curriculum to be modernised with courses on free software

OSOR: NL: Court of Audit 'failed' in its independent review of open source

Other interesting links

CIO: Yahoo Plans to Open Source Code for Non-Core Technologies

the Inquirer: ICANN wants to break free from the US government

Hugo Roy: English: IPRED: challenge EU policy in copyright and patents on the Internet

EU commissioner has started to work on a European Cloud Computing Strategy.

Neelie Kroes: The clear role of public authorities in cloud computing

Ars Technica: Trademarked keyword sales may soon be restricted in Europe

ConsortiumInfo: Open Network Foundation to Promote New Network Architecture

the H Online: The Pragmatism of Free Software Idealism and the Idealism of Open Source Pragmatism

hook out → hooo, busy week; sorry for being late…

The DOs and DON’Ts of Google Summer of Code: Student Edition

I’d like to point any potential Google Summer of Code applicants to a post on DOs and DON’Ts for students over on the Google Open Source blog that I wrote with Lydia Pintscher and Kevin Smith. They’re fellow admins from two other long-time GSoC participants, KDE and the XMPP Standards Foundation. Here’s a quick summary of the points; you’ll have to read the original post for details:

DO DON’T
Be on your best behavior. Make a bad first impression: SMS speech, extremely poor English, rudeness/hostility, etc.
Read all the documentation, so you submit a useful application. Submit a useless application.
Be transparent about other commitments. Disappear.
Make Google Summer of Code your top priority. Hold another major commitment.
Be realistic about your skills. Over- or under-rate your abilities.
Commit and publicize your code frequently. Make last-minute (or later) code drops.
Submit code that’s ready to integrate. Finish the summer with code that’s “almost ready” but will take forever to ship.
Complete your project design before writing a line of code. Start coding before finalizing design.
Use your resources wisely. Refuse to ask for help.
Remember that you’re part of a community. Consider it a solo project, like it often is in college.

Tagged: communication, community, gentoo, gsoc

Posts for Sunday, March 27, 2011

Updated Audiofire12 + Gentoo

So, I wrote a few days ago how I was able to get my new echo audiofire12 working under gentoo Linux with the old firewire stack.  Well, I couldn't leave well-enough alone, so I tried my hand at updating my kernel and using the new stack.  Turned out there were a few caveats that, without some external help from a great person in the ffado IRC channel, I probably would have already reverted back to using the old stack.

First off, I'm now using the 2.6.38 kernel, even though as of now, it's still in the unstable tree.

It's imparative that you use the latest version of libraw1394, or you'll end up tearing all your hair out due to weird error messages, which google knows nothing about.  Here are the error messages I was getting when I was using the 2.0.4 version of libraw1394.  I'm now using 2.0.7, and all is well.

Error message received under 2.0.4 when starting jackd with the new stack:



jason@JMUSIC ~ $ jackd -R -d firewire -v4

jackdmp 1.9.6

Copyright 2001-2005 Paul Davis and others.

Copyright 2004-2010 Grame.

jackdmp comes with ABSOLUTELY NO WARRANTY

This is free software, and you are welcome to redistribute it

under certain conditions; see the file COPYING for details

no message buffer overruns

no message buffer overruns

JACK server starting in realtime mode with priority 10

libffado 2.0.1 built Mar 27 2011 00:39:48

00079012960: Warning (fireworks_device.cpp)[ 134] discover: Using generic ECHO Audio FireWorks support for unsupported device 'Echo Digital Audio AudioFire12'

libiec61883 warning: Established connection on channel 0.

You may need to manually set the channel on the receiving node.

libiec61883 warning: Established connection on channel 1.

You may need to manually set the channel on the transmitting node.

00086110714: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream

00086110734: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0

00086110737: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state

00086110743: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream

00086110746: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0

00086110750: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state

00086110753: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream

00086110757: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0

00086110760: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state

00086110765: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream

00086110768: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0

00086110772: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state

00086110775: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream

00086110781: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0

00086110784: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state

00086110791: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream

00086110793: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0

00086110799: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state

00086110802: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream

00086110809: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0

00086110811: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state

00086110818: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream

00086110820: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0

00086110827: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state

00086110829: Error (IsoHandler.cpp)[ 702] requestEnable: Enable requested on enabled stream

00086110836: Error (StreamProcessor.cpp)[1175] scheduleStartDryRunning: Could not start handler for SP 0xf327f0

00086110839: Error (StreamProcessorManager.cpp)[ 408] startDryRunning: Could not put SP 0xf327f0 into the dry-running state

00086110845: Fatal (StreamProcessorManager.cpp)[ 901] start: Could not syncStartAll...

00086110848: Warning (devicemanager.cpp)[ 912] startStreaming: Failed to start SPM!

00086111737: Warning (ieee1394service.cpp)[1284] freeIsoChannel: Could not do CMP disconnect for channel 0!

00086112174: Warning (ieee1394service.cpp)[1284] freeIsoChannel: Could not do CMP disconnect for channel 1!

firewire ERR: Could not start streaming threads

00086112185: Fatal (ffado.cpp)[ 211] ffado_streaming_start: Could not start the streaming system

Cannot start driver

JackServer::Start() failed with -1

00086112293: Error (IsoHandler.cpp)[ 162] ~IsoHandler: BUG: Handler still running!

00086138062: Error (IsoHandler.cpp)[ 162] ~IsoHandler: BUG: Handler still running!

no message buffer overruns

Failed to start server

...and that's that.  Now, with the new (and only) firewire stack enabled as modules in the 2.6.38 kernel, and the 2.0.7 version of libraw1394 installed, my Echo Audiofire12 works like a charm.

...still working on MIDI...

Classifying Repository Masks

In the olden days, when carpaskis roamed the earth and people still used CVS, Gentoo’s package.mask looked like this:

=some-cat/some-pkg-1.23

Then people started putting in comments:

# S. Lacker <slacker@gentoo.org> (1 Apr 2001)
# Randomly makes giant space monkeys attack you with
# pointy sticks on startup.
=some-cat/some-pkg-1.23
=some-cat/some-pkg-data-1.23

Since the comments were in a standard format, Portage then started parsing the comments to be able to show the text to users. Paludis also supports this, and Exherbo originally copied Gentoo’s convention.

This is of course disgusting. Recently Exherbo has switched to a new mask format:

(
    some-cat/some-pkg[=2.34]
    some-cat/some-pkg-data[=2.34]
) [[
    *author = [ S. Lacker <ingmar@exherbo.org> ]
    *date = [ 29 Feb 2011 ]
    *token = [ testing ]
    *description = [ Seems to be a bit iffy. Needs more testing. ]
]]

Which is consistent with how annotations are used in exheres-0. Of particular note is the token field.

When unmasking a package, it’s very easy to accidentally unmask more than what you were after. For example, you might be wanting to unmask testing releases for something, but not also unmask scm or insecure versions. Since masks on Gentoo aren’t classified, there’s no way of doing that. But on Exherbo it’s now possible — masks are now marked with a token (such as scm, testing, broken or insecure), and in package_unmask.conf users can do this:

# Unmask only testing versions (and not scm)
x11-drivers/xf86-video-nouveau testing
x11-dri/libdrm testing

# Ignore security masks for PHP, since otherwise we'd never be
# able to use it at all. But don't unmask scm or broken versions.
dev-lang/php security

If we can encourage users to make use of this, it should lead to a large reduction in people breaking their systems or getting horrible resolutions by overly broad unmasking.


Filed under: exherbo Tagged: exherbo, exheres-0, paludis

Posts for Saturday, March 26, 2011

avatar

Dvcs-autosync: An open source dropbox clone... well.. almost

<html>I found the Dvcs-autosync project on the vcs-home mailing list, which btw is a great list for folks who are doing stuff like maintaining their home directory in a vcs.
In short: Use cases:

::Read more

Echo Audiofire12 + Gentoo Linux

**UPDATED ARTICLE HERE** (for using the new firewire stack)

Okay.  I got my new Echo Audiofire12 3 days ago, and I now have it fully functioning on all 12 ports.  I don't have MIDI working yet, but I haven't really tried on that one.

Here's what I did to get it working.

First, I'm using the 2.6.33-rt kernel. I enabled the OLD FIREWIRE STACK.  THE NEW ONE DIDN'T WORK FOR ME. Legend has it that from 2.6.37 on, the old firewire stack is no longer available.  No idea if this is true.

Then I emerged the libffado package from the pro-audio overlay. (you do NOT need Freebob)

If you already had jack-audio-connection-kit emerged before you installed ffado, you'll have to re-emerge it, so it recognizes and builds the ffado support.

Make sure you modprobe the raw1394 module. (#modprobe raw1394)

Udev loads the firewire devices as accessible only by root.  Read this page, and insert the new udev command, so you can use firewire devices as a normal user.  The relevant line is this one:

echo 'KERNEL=="raw1394", GROUP="video"' > /etc/udev/rules.d/raw1394.rules

I changed the "video" group to "audio", since I already had a working udev ruleset which allows the audio group to have access to all the RT kernel goodness.  (If you haven't done that already, look here for help)  You will really want to read that whole thing.  It's a great article.

An important part of that article is to add the following 3 lines to your /etc/security/limits.conf file.

@audio - rtprio 90

@audio - nice -5

@audio - memlock unlimited

I think after that, you should be ready to go.  If you can get jack started (qjackctl is advised - choose the "firewire" driver), then you're golden.  I've got my latency down to 5.3ms with no hiccups at all (recorded my drums using 9 tracks @ 44.1KHZ  and it worked beautifully - I haven't tried anything higher yet).
 
*note* - In order to access the ffado-mixer application (which controls the audiofire's internal mixer), you need to emerge libffado with qt4 support.
 
Hope this has been helpful!

Posts for Friday, March 25, 2011

nametrans: renaming with search/replace

Keeping filenames properly organized is a pain when all you have available for the job is renaming files one by one. It’s most disheartening when there is something you have to do to all the files in the current directory. This is where a method of renaming by search and replace, just as in a text document, would help immensely. Something like this perhaps:

nametrans_ss

Simple substitutions

The simplest use is just a straight search and replace. All the files in the current directory will be tried to see if they match the search string.

$ nametrans.py "apple" "orange"
 * I like apple.jpg    -> I like orange.jpg
 * pineapple.jpg       -> pineorange.jpg
 * The best apples.jpg -> The best oranges.jpg

Download this code: nametrans_applelist

There are also a number of options that simply common tasks. Options can be combined and the order in which they are set does not matter.

Ignore case

Matching against strings with different case is easy.

$ nametrans.py -i "pine" "wood"
 * pineapple.jpg -> woodapple.jpg
 * Pinetree.jpg  -> woodtree.jpg

Download this code: nametrans_ignorecase

Literal

The search string is actually a regular expression. If you use characters that have a special meaning in regular expressions then set the literal option and it will do a standard search and replace. (If you don’t know what regular expressions are, just use this option always and you’ll be fine.)

$ nametrans.py --lit "(1)" "1"
 * funny picture (1).jpg -> funny picture 1.jpg

Download this code: nametrans_literal

Root

If you prefer the spelling “oranje” instead of “orange” you can replace the G with a J. This will also match the extension “.jpg”, however. So in a case like this set the root option to consider only the root of the filename for matching.

$ nametrans.py --root "g" "j"
 * I like orange.jpg    -> I like oranje.jpg
 * pineorange.jpg       -> pineoranje.jpg
 * The best oranges.jpg -> The best oranjes.jpg

Download this code: nametrans_root

Hygienic uses

Short of specific cases of transforms, there are some general options that have to do with maintaining consistency in filenames that can apply to many scenarios.

Neat

The neat option tries to make filenames neater by capitalizing words and removing characters that are typically junk. It also does some simple sanity checks like removing spaces or underscores at the ends of the name.

$ nametrans.py --neat
 * _funny___picture_(1).jpg -> Funny - Picture (1).jpg
 * i like apple.jpg         -> I Like Apple.jpg
 * i like peach.jpg         -> I Like Peach.jpg
 * pineapple.jpg            -> Pineapple.jpg
 * the best apples.jpg      -> The Best Apples.jpg

Download this code: nametrans_neat

Lower

If you prefer lowercase, here is the option for you.

$ nametrans.py --lower
 * Funny - Picture (1).jpg -> funny - picture (1).jpg
 * I Like Apple.jpg        -> i like apple.jpg
 * I Like Peach.JPG        -> i like peach.jpg
 * Pineapple.jpg           -> pineapple.jpg
 * The Best Apples.jpg     -> the best apples.jpg

Download this code: nametrans_lower

If you want the result of neat and then lowercase, just set them both. (If you like underscores instead of spaces, also set --under.)

Non-flat uses

Presuming the files are named consistently you can throw them into separate directories by changing some character into the path separator.

Note: On Windows, the path separator is \ and you may have to write it as “\\\\”.

$ nametrans.py " - " "/"
 * france - nice - seaside.jpg -> france/nice/seaside.jpg
 * italy - rome.jpg            -> italy/rome.jpg

Download this code: nametrans_prefixasdir

The inverse operation is to flatten the entire directory tree so that all the files are put in the current directory. The empty directories are removed.

$ nametrans.py --flatten
 * france/nice/seaside.jpg -> france - nice - seaside.jpg
 * italy/rome.jpg          -> italy - rome.jpg

Download this code: nametrans_flatten

In general, the recursive option will take all files found recursively and make them available for substitutions. It can be combined with other options to do the same thing recursively as would otherwise happen in a single directory.

$ nametrans.py -r --neat
 * france/nice/seaside.jpg -> France/Nice/Seaside.jpg
 * italy/rome.jpg          -> Italy/Rome.jpg

Download this code: nametrans_recursive

In recursive mode the whole path will be matched against. You can make sure the matching only happens against the file part of the path with --files or only the directory part with --dirs.

Special uses

Directory name

Sometimes filenames carry no useful information and serve only to maintain them in a specific order. The typical case is pictures from your camera that have meaningless sequential names, often with gaps in the sequence where you have deleted some pictures that didn’t turn out well. In this case you might want to just use the name of the directory to rename all the files sequentially.

$ nametrans.py -r --dirname
 * rome/DSC00001.jpg -> rome/rome 1.jpg
 * rome/DSC00007.jpg -> rome/rome 2.jpg
 * rome/DSC00037.jpg -> rome/rome 3.jpg
 * rome/DSC00039.jpg -> rome/rome 4.jpg

Download this code: nametrans_dirname

Rename sequentially

Still in the area of sequential names, at times the numbers have either too few leading zeros to be sorted correctly or too many unnecessary zeros. With this option you can specify how many leading zeros you want (and if you don’t say how many, it will find out on its own). Based on an old piece of code that has been integrated.

$ nametrans.py -r --renseq 1:3
 * rome/1.jpg   -> rome/001.jpg
 * rome/7.jpg   -> rome/007.jpg
 * rome/14.jpg  -> rome/014.jpg
 * rome/18.jpg  -> rome/018.jpg
 * rome/123.jpg -> rome/123.jpg

Download this code: nametrans_renseq

The argument required here means field:width, so in a name like:

series14_angle3_shot045.jpg

the number 045 can be shortened to 45 with “3:2″ (third field from the beginning) or “-1:2″ (first field from the end).

Get it from github:

Posts for Thursday, March 24, 2011

Fiddler Web Debugging Proxy

I just want to share this useful tool for debugging web apps specifically running in IE versions 8 and below. This is not just limited to applications running on the browser though, it can listen to any application utilizing HTTP / HTTPS. You do not need to configure your proxy settings to redirect traffic, it just works on the fly.

IE 9 has Developer Tools in it, more info [here] just like FireBug for Firefox and Chrome Developer Tools.

It does not mean that we can not use it though. I would still recommend it for debugging HTTP / HTTPS communication to avoid looking at 3 different tools.

Posts for Wednesday, March 23, 2011

avatar

If only all EULAs were this good!

I installed some MS fonts in Ubuntu recently, and this is the EULA I was presented with:


If only all EULAs were this good!

Posts for Tuesday, March 22, 2011

Gentoo & X.Org in the Google Summer of Code!

Google Summer of Code (GSoC) is an amazing program for college students that enables them to spend their summers working with open-source projects. Google chips in the money, and FOSS projects provide the mentorship and expertise. In the end, we benefit by gaining both new code and (more importantly) new developers.

I’m very excited this year because both Gentoo and X.Org were accepted for their 6th years in GSoC! Last year, Gentoo had 19 students working on diverse projects including webapps, package management, NetworkManager, the Dracut initrd framework, and more. X.Org, a more specialized project, had 5 students working on various aspects of open-source graphics.

If you’re a college student, I’d like to encourage you to apply for GSoC, whether it’s to Gentoo, X.Org, or another project altogether. It’s great real-world experience where you can prove your expertise to future employers (since the code is freely available), and you can become the world’s expert in your topic. The money doesn’t hurt, either.

To get more info, go to the Gentoo or X.Org GSoC homepages and check out the project ideas. If none of them strike your fancy, propose your own! We love original ideas, but please discuss them with us first to ensure they’ll be realistic and high-priority.


Tagged: communication, gentoo, gsoc, x.org

Linux: Extracting audio from video

So, I used to use the -dumpaudio switch in mplayer to get audio extracted from random videos, but now that seems to do not much of anything.  I found this site which had a great explanation of how to get it done a different way, but was a bit out of date.  The newer version is found below:

mplayer -vo null -ao pcm:file=audio_file_name.wav video_file_name.avi

Hope that helps you as much as it did me.

Posts for Sunday, March 20, 2011

Repair Windows 7 System Files

8 out of 10 average PC users have their box’s system files altered by malwares, viruses, etc. We usually reinstall the OS if the antivirus and anti malware software did not perform their job well. Here’s one way to fix the corrupted system files without the need of restarting your Windows 7 box.

1. Run the Command Prompt as Administrator
2. Type the following command

C:\Windows\system32\> sfc /scannow

repairsystemfiles

3. After the verification phase, you will receive a message about your system files’ integrity

Windows Resource Protection did not find any integrity violations.

Paludis 0.60.1 Released

Paludis 0.60.1 has been released:

  • ‘cave resolve –reinstall-dependents-of’ now does what the documentation says it does.
  • ‘cave help’ no longer explodes if script commands are present.
  • We now work with Jansson 2.0 too.

Filed under: paludis releases Tagged: paludis

Posts for Saturday, March 19, 2011

Free Software & law related links 14. III. 2011 - 20. III. 2011

Free Software Licensing

Presses are full of yet another alleged copyright infringement in Android — this time it’s the Bionic C library and yet again about headers that are claimed to have been copied from Linux. From what I can see it’s just another FUD attempt (intended or spun out). If nothing else it might just be that the headers in question are just standard POSIX headers.

Free Software Business

A recent Gartner study shows that not only more and more businesses are using Free Software, but increasingly so for the right reasons too!

Read Write Web: Peter Biddle of Intel On the Benefits of MeeGo and a Compelling Eco-System for Developers

the Inquirer: Nokia admits Microsoft Windows Phone is 'risky' and 'unproven'

Andy Updegrove writes how it seems the car industry may finally get a consortium-led standard called Terminal Mode to connect smart phones, netbooks etc. to the dumb terminal that is the car’s computer. Andy Updegrove predicts much of this may be Free Software. So far on board are: LG Electronics, Nokia, Samsung, Daimler, General Motors, Honda, Hyundai Motor Company, Toyota, Volkswagen, Alpine and Panasonic. That’s a great step forward. I’d still very much like to see Free Software actually running my car and not just the gadgets. Maybe this is the field where Nokia still sees a market for Qt…

Software Patents

Simon Phipps explains what’s wrong about ”parallel filling” and calls for the big players in Free Software to step up and share the burden of protection from patents with the communities in which they participate. As he writes, the issue is not solved by just promising not to sue for a few certain patents and that a realistic threat arises when a company with such patents is bought or its patent portfolio is otherwise acquired (sc. Novell).

Free Software OpenGL drivers are shipped without S3TC support to avoid patent infringement. A debate arose online about how this should be solved. I didn‘t check whether these patents are valid only in the US as some comments suggest.

the Inquirer: Patent firm sues Asus, Dell, Intel, RIM and others over WiFi

Copyright and Other Legal Act Reforms

Francis Gurry (Director General, WIPO) recently held a talk at the Blue Sky conference in Sydney, on the subject of “Future Directions in Copyright Law”. His talk was centred around how the internet and other digital technologies have massively changed our lives and the access to culture. He pointed out that the law can’t play catch-up and even hinted that maybe other tools would be better suited to give people the best access to culture and at the same time make sure its creators are getting a fair share. He also highlighted three main principles to guide policymakers going forward: technology neutrality, comprehensiveness and coherence, and simplicity. When the head of the WIPO already acknowledges this, we can be sure it’s high time copyright (and other so called “IPRs”) change substantially along with many other things around it.

Freedom to Tinker: A Legacy at Risk: How the new Ministry of Culture in Brazil reversed its digital agenda

Government and Free Software Policies

It is reported that the UK government could save millions on if it only took its own Free Software promises serious and fixed its procurement rules. These are also blamed to discriminate SME. The CTPR analyses the latest policy pronouncement rules and their history.

OSOR: DE: Company network to be funded to develop open source business software

OSOR: FR: April publishes new argumentation tools on public procurement contracts

OSOR: CH: Open source portal goes live

OSOR: ES: Galician Government releases comparative study on open software-based eCommerce platform

Open Standards

Google decides to stop support for its Free Software Gears and concentrate on HTML5 instead.

Other interesting links

the Linux Foundation: Panasonic Joins Linux Foundation

the Linux Foundation: PingWin Software Joins Linux Foundation

Michael Geist: EU Report Says CETA IP Provisions Would Increase Consumer Prices, Royalty Deficit

hook out → sleepy sleepy … should be preparing my lecture for Saturday and the (postponed) Fellowship meeting, oh and study

Paludis 0.60.0 Released

Paludis 0.60.0 has been released:

  • ‘cave resolve’ can now ‘–reinstall-dependents-of’
  • HTML versions of man pages are now created from the generated Asciidoc files rather than directly.

You should also see the notes for 0.60.0_pre1.


Filed under: paludis internals Tagged: paludis
avatar

Restoring configuration files on Gentoo

If you work with Gentoo, you’re probably aware of tools like etc-update and dispatch-conf. If you use dispatch-conf, you might know that it supports rcs for version control of the changes it makes. But if you have enabled it, you might be wondering how to actually restore configuration files with it.

Well, dispatch-conf stores its version control information in /etc/config-archive. To restore a configuration file to a previous version, first find out what versions there are in the version control system:

~$ rlog -zLT /etc/config-archive/etc/protocols,v
...

The output of the rlog command should allow you to find the revision you are interested in. The -zLT option displays date/time in the current timezone (instead of UTC). Once you have found the revision you are looking for, restore the file by redirecting the output of the co command:

~$ co -p -r1.1.1 /etc/config-archive/etc/protocols,v > /etc/protocols
avatar

Twitter account removed

My twitter account is removed! Whoohoo! Now I’m only using my own status.net instance for microblogging! It feels good to be a little bit more free :)

Posts for Thursday, March 17, 2011

avatar

kfacebook: Messages & Polishing

So I wrote last week about kfacebook. And well since last week some things have happened:

Messages

I started working on support for the facebook message system. Which turned out to be easy enough to do. And the messages branch in git should just give you a nice list of messages to read! There is a lot of room for improvement with respect to syncing the messages or maybe even replying to the messages. One of the awesome things that is in there right now is the automatic threading by kmail, which is just a simple matter of setting a the right reference and all is done automagically.

Right now there we first want to get out a 0.1 release before we will merge the message branch. So a little patience (or checkout the message branch).

Polishing

Since Thomas and I decided we would like to release a 0.1 version as quickly as possible we started to work on getting the code in decent shape. Which basically means documenting, code refactoring etc. Not always the most exciting work but the code today is already is much better shape (and much easier to understand/extend) than it was last weekend. Which should make fixing bugs and adding/extending features a lot easier!

As a result of this we now also have our own api reference. Now the refactoring process is not yet finished but already we can see nice graphs there. Also the awesome KDE look really motivated me to document more since it will look so cool afterwards!

What is next?

So hopefully we will finish with the polishing and the remaining 0.1 items on the TODO soon so we can make a release. And after that we will continue to try to add more cool features of course!

avatar

A Call Centre for Security Software, Condoms, V, and a Melbourne Pharmacy!

Wait... what?

I received a phone call today that went something like this.  I've had these before, but this time I had some spare time to play.  This is the best I can remember, the real phone call went on for nearly 15 minutes, and there was a lot more going around in circles!

Me: Hello?
(Indian) Voice: Good afternoon sir, may I speak with Mr Bootchernaan? [those who know me will recognise my name in there somewhere!]
Me: What about?
Voice: I am calling from Microsoft, and we have detected that your computer is infected with viruses from the information it is sending to us
Me: really?
Voice: yes sir, you computer is infected with viruses and trojans and ...
Me: how do you know this?
Voice: your computer sends us information...
Me: How?

Voice: From the applications installed on Microsoft Windows
Me: Windows?  Are you sure?
Voice: Yes sir, your computer sends us logs and it is infected with viruses and trojans and you need to...
Me: Hang on, I'm not running Windows
Voice: What are you running?
Me: You tell me, my computer contacted you.
Voice: [pause] I know that you have a Mac.
Me: Do you?
Voice: Yes sir, you have a Mac.
Me: Are you sure?
Voice: Yes sir, I am sure.
Me: Are you 100% sure?
Voice: What are you running?
Me: You tell me, my computer is contacting you so you should know what I am running
Voice: Your computer is infected.
Me: How do you know?

Voice: [notice the change of tack here] Because I installed viruses on it.
Me: How?
Voice: I hacked into it.
Me: You hacked in? [never heard that one before!]
Voice: Yes sir, I hacked into your system.
Me: oRly? [one eyebrow up] How did you get passed my firewall?
Voice: [pause] Hackers can get passed any firewall and into any system.
Me: You hacked into my system?
Voice: yes.
Me: How?  What did you install?
Voice: I installed a virus.
Me: On windows?
Voice: Yes.
Me: I'm not running windows, or Mac
Voice: You said you were running Mac.
Me: No you said I was running Mac.
Voice: No, I said I know you have a Mac, not that you are running Mac.
Me: Right. [struggling to contain the laughter].  What country are you calling from?
Voice: Melbourne.
Me: No you're not, what country are you calling from?
Voice: Victoria [pause] Australia.
Me: No seriously, where are you calling from?  I know you're not in Australia.
Voice: I have an Indian accent, but I am working in Melbourne.
Me: Who for?
Voice: Pharmacy.
Me: What Pharmacy.

Voice: [change of tack #2] Do you want to buy some [mumbled]
Me: I beg your pardon?
Voice: Do you want to buy some condoms?
Me: [can't contain the laughter anymore] no thanks, I'm right [damn why couldn't I think of something funnier!]
Voice: Would you like to buy some [the little blue pill, to keep away the searches I'll refer to it as V.]?
Me: No thanks!  I don't need it.
Voice: It will help you be more satisfied.
Me: I hope I don't need to use it for at least 30 years
Voice: [pause] 30 years?  Did you know men as young as 18 use V?
Me: No, I find that hard to believe.
Voice: [pause - I think he's running out of things to say]
Me: What's a computer company doing selling condoms and V?
Voice: Forget about the computer, I'm not talking about the computer anymore.
Me: But you were talking about computers.  If I believed you, how you change the topic to a Pharmacy?
Voice: I said I am not talking about the computer anymore.
Me: Yes, but you were 5 minutes ago.  What if I believed you, how would you sell me something? [I assume by directing me to a website that installs nastyware!]
Voice: We just do that to get your attention, we say anything that might get your attention.
Me: Right, so tell me really, where are you calling from?
Voice: I am calling from Melbourne
Me: No you're not.  I know you're not in Australia.
Voice: Yes, we use skype [probably referring to the "overseas" message on Caller ID]
Me: So what company in Melbourne?
Voice: Pharmacy. 
Me: [what, there's only one?] What's the name?
Voice: [mumble]
Me: I beg your pardon?  Could you spell that?
Voice: A-P-O-L-L-O
Me: Oh, Apollo.  So if you're really from a company in Melbourne, you would have a registered business number.  What's your ABN?
Voice: [pause] 03 [pause] 9018 2436 [sounds like a phone number!  I put it into the ABN search but of course it's a fake]

[ok that's as much lies as I want to hear, time to ask some better questions]

Me: So why do you do this?  Do you get paid well or just a little bit?
Voice: The pay is good.
Me: Are you paid per hour, or on commission?
Voice: On commission.
Me: Then why haven't you hung up on me?  Are you not allowed to hang up?
Voice: You can hang up.
Me: I know I can hang up, why don't you hang up?
Voice: [something about buying condoms again]
Me: seriously, why don't you get a job in a Dell call centre or for some company that does some real technical support?
Voice: We just make the calls we are told to make by our boss.
Me: Don't you think it's bad karma?
Voice: No, we're not doing anything illegal.  The company is based in the US, and the call centre is here in... [I swear I could hear him think "India"] Australia.  We just do the job we're told to.
Me: Why?  Why don't you work somewhere else?
Voice: They pay is very good, it helps support my family [who knows how true that is!]

[this was reaching the 15 minute mark, and I had kids to attend to so I had to go]
Me: Well, I'm sorry but I have to go.
Voice: OK sir.
Me: I hope you'll think about where you're working.
Voice: I will, sir. [yeah right]
Me: Bye. 
Voice: Bye.

And that was it.  I would have gone longer but I had to watch the kids.  I don't really care if he thinks about it or not, but it was a bit of fun.  Especially to hear him struggle when I pushed for details about my computer.

The sad thing is, so many people would be taken in by those first few lines...

Facebook readers, if you want to comment, please comment here.  Thanks!

Posts for Monday, March 14, 2011

In response to "the libappindicator story"

I generally never weigh in on these things, but I think in this case I understand what some may be missing here.

This is in reference to the following blog post: the libappindicator story

Each side refers to process and how the other side failed to follow it. My question is "can anyone point me to the relevant documentation which shows the process being referred to" and "can both parties review this process to see where they fell down" and "can the process be reviewed to ensure that it is clear and works so as to prevent similar future issues".

I suspect that there is no documented process, nor is it generally understood as to how all this was supposed to work by both parties. It's easy to reject an idea citing some failure to comply with a non-documented process. I'd like to be proven wrong and see that a process actually exists and work from there, but I suspect it's currently vapourware.

It's fine for you to state Canonical did not follow the process, but to not link to a doc or provide a post showing the process as approved by either GNOME or the team within GNOME responsible for this particular area, it's quite frankly irresponsible.

In order to make any such claim, you need tangible documentation. GNOME is big enough and the teams are diverse enough, that you need to document process. How else do you get efficient and allow new development to occur? You cannot exist forever in a vacuum.

So, if there is indeed a well documented process, show us the link. Show Mark that his team failed to follow the documented process. Then, once that's done we can move on. Mark will admit defeat and apologize and we can call it a day.

However, if this is not well documented nor consistent across GNOME projects, then GNOME needs to recognize that the lack of a documented process may have contributed here and let's correct that and move on.

PS: I work in a very process driven area (customer service and delivery) and it requires well documented processes to function. I understand all to well when some process exists virtually and is not well documented what can happen. Orders get missed, revenue drops, productivity suffers. As well, people point fingers. The only way to rectify is document the process and get everyone to acknowledge it. The process doesn't have to be perfect, it just has to be documented so you can at least have a reference point to move forward from.

Peace.

Posts for Sunday, March 13, 2011

Paludis 0.60.0_pre1 Released

Paludis 0.60.0_pre1 has been released (although it’s package.masked for the time being until we’re reasonably sure the upgrade path is clean):

  • The deprecated ‘adjutrix’, ‘inquisitio’, ‘importare’, ‘paludis’ and ‘reconcilio’ clients have been removed.
  • ‘build_options: split strip’ are removed in favour of ‘build_options: symbols=preserve|split|strip|compress’.
  • We now generate man pages via ‘asciidoc’.
  • The ‘cave resolve -D’ short option is now ‘-B’ instead.
  • A new special ‘nothing’ set has been added.

Filed under: paludis releases Tagged: paludis

Planet Larry is not officially affiliated with Gentoo Linux. Original artwork and logos copyright Gentoo Foundation. Yadda, yadda, yadda.