Archive for the 'Linux' Category

LGM Madrid

Monday, April 15th, 2013

The Past

My first ever libre software gettogether was GIMPCon in 2000. The location at the CCC gave it the proper underground vibe. That gathering later became what is now Libre Graphics Meeting when the GIMP and Scribus folks thought there’s some possible synergy to benefit from.

The future

It may sound like a little blasphemy for a GNOME person to say LGM is my favorite conference. I dig GUADEC for its mix of developer and user oriented talks and workshops, but at LGM this synergy seems to be working even better. There’s probably a trend towards attracting more designers than engineers, and I don’t know of a tech conference where there’s pretty much 50:50 gender mix (perhaps in Madrid there were more women than men even).

I want more conferences or gettogethers like this. Feedback from an animator struggling to finish a task is million times more valuable than online polls asking for a feature that exists in other tools. Small community projects struggle greatly with focus and motivation. These user<>developer sessions should not mean folding every single suggestion into Inkscape feature and SVG spec, but seeing tools used is the best we have for user testing.

There were some humorous mailing list like moments too (I hope video archives will be posted, the sessions were recorded). We had a nice example of miscommunication between Boudewijn and Mitch during the GIMP Q&A, but there is room to turn that “but printing spot colors is way more expensive than CMYK, stop ignoring your users” to “it’s the actual workflow, retaining control over individual channels during the process, that makes CMYK a subset of stop color process, the output/print process remains the same.” when talking off a mailing list. People sometimes need to talk face to face to turn those faster horses into cars. I have lost all faith in non-technical or controversial topics ever resolved on a mailing list.

Workshops

I also really enjoyed the “get your hands dirty” sessions such as David Revoy‘s Krita speedpaint workshop that are the carrot-at-the-end-of-the-stick for potential new designers giving libre graphic toolchain a go. Seeing amazing art created with our tools is an amazing motivator that allows to overcome some bumps on the way and actually find strength to find unfamiliar solutions or actually bite the lip and start the dialog with the developers (it’s harder than you think). I don’t think my painting skills will improve any time soon, but the workshop did expose a significant omission from the Wacom settings for non-screen tablet users. It felt the Krita developers are on a good course working closely with David to shape the tool and getting amazing promotion and an actual product in return, in a similar way the open movie projects dramatically improved the quality of Blender.

Type

A significant number of talks related to type. Ben Martin and Dave Crossland presented the collaboration features of the new Font Forge. This sounded really intriguing for me, because a lot of the design process is tedious and horrible and things like metrics are a torture that I found much more bearable when we did it with Patrys the other day.

Ana and Ricardo made me feel guilty about never finishing or publishing some of my fonts, because I felt they are too raw but then never gotten to finish them. They mentioned their new foundry and some utilities like the autospacer, giving you a template workflow rather than starting from the dangerous and feared blank slate.

If you ever needed some hand holding for designing your own type, Dave pointed out an extremely nice guide to me.

Getting Started

I gave a short talk on the work we did on Getting Started, but in an expected way was dragged away before I could show some guts of the project. As there’s been interest to see behind the scenes more, I’ll try to blow the dust off the design team youtube channel and do a screencast.

LGM Rocks

I really had a blast seeing everyone again, and came back with a list of things to do and also the energy to do so. Big thanks to the organizers and in particular the GIMP folks for their continuous support of the event.

Wacom Tablets on Dualhead

Monday, May 9th, 2011

wacom dualhead

In the past, defining the screen area you want to map to the tablet was a matter of defining the active rectangle with bottomx, bottomy, topx and topy per device using xsetwacom.

In Fedora 15 you only need to set the target screen ID with MapToOutput. You can learn the display ID by running xrandr. The tablet devices you get by running xsetwacom list devices. For my setup I use:

xsetwacom set "Wacom Cintiq 21UX2 stylus" MapToOutput DVI-I-2
xsetwacom set "Wacom Cintiq 21UX2 eraser" MapToOutput DVI-I-2

Hope this helps anyone struggling. This was the TL;DR version, Wacom project documentation is pretty useful.

openSUSE 11.3

Friday, May 14th, 2010

Hackweek Fail

Friday, July 24th, 2009

Failure IS an option for hackweek ;) . While things looked fairly optimistic on the icon theme/font front, the actual results don’t look so good.

While the chopping script is working fairly well, it’s hardly elegant and really suffers from insanely slow startup time of Inkscape. The “crop” is done thanks to Inkscape’s verbs and requires Inkscape to be called once per icon. Even worse, to clean it up and remove some cruft for the Fontforge import, it needs to be called once again.

Ted mentioned a GSoC project to provide a better interface for external scripting (using dbus), but I haven’t had time to look into it yet. By the time I’ll look at this again, it’s going to be merged in, surely :) .

Fontforge’ interface couldn’t be in a bigger contrast in terms of speed. Importing SVGs as glyphs and generating a truetype font out of the template is faster than you can release the return key. Sadly FontForge doesn’t expect the font height to be 24pt and all the circles don’t end up as such after the import. I haven’t been able to figure out how to either scale the SVGs up to 1000px in Inkscape or transform after the import in FontForge.

So this has been a rather kind failure. One that doesn’t leave me feeling like I wasted my time.

CSS theme engine

I had an old mockup for a CSS theme that now felt too bubble gummy. After dealing with the hyper-realistic renderings of gnome-icon-theme high res, I enjoy the minimalism of Moblin.

Sadly time has run out as I’ve had some outstanding tasks I needed to handle. Hopefully I can get back to this. The engine just manages to avoid me.

Cognitive Dissonance – Synology Cubestation CS407e

Tuesday, January 6th, 2009

I had a series of hard drive failures in a rather short time frame last year. My backup strategy sucks as much as the next guy’s. I figured the drives are cheap enough to finally buy/build a disk array.

I have a very noisy and probably very power hungry dual pIII/700MHz box that I use as a file server since 1999. It holds my git repositories, my music, my photo library, videos. It has a bunch of internal drives and two firewire and one usb external drive. A mess. It also acts as a print server and DHCP/DNS Cache/PXE server. I use the awesome dnsmasq for this as my router’s DHCP server configuration involves an on/off switch.

Rrrrraid!

I looked around for cheap NAS boxes. There’s quite a few of them, but I’ve ended up fancying Synology Cubestation. Looking at the feature list, I was a bit worried if those aren’t just bullet points. I expected this coming from the marketing department making sure to have more features than the competition, while the actual features wouldn’t really deliver. That fear was luckily unsubstantiated. Everything I tried worked marvelously as expected from an appliance, despite including features like torrent download and your own personal Flickr-like web service.

Reorganization

I’ve done the initial setup from a Mac, using the included client software. The client finds the CubeStation on the LAN and sets up a small ~2GB partition where it puts the kernel and the system software. There’s a Linux client for this included in the upcoming firmware package, which I was quickly pointed to on the company forum, a valuable resource. Once the root partition with the system is up, you can use the web frontend to manage your Cubestation. The UI is decent, I was highly suspicious when I read “AJAX frontend” on the box. It lacks the elegance of a WordPress dashboard, but gets the job done (crystal icons, yuck).

CS407e

The initial creation of the RAID-5 Volume took longer than I expected. Somewhere around 10-12 hours. Then I was able to set up my samba sharing, ssh terminal access, iTunes (DAAP), printer and UPS (so it can shut down cleanly on power failure). That’s what the appliance provides out of the box. I had to upgrade the firmware (through the web-ui) to be able to serve media to my PS3 through UPNP (It presents the media in a much more sane way than mediatomb I was using).

This piece of hardware got me really excited because it’s what an appliance should be. It’s designed to solve a specific set of problems. But unlike something that would come from Apple, it allows customizations for those special cases you may need. Usually you don’t get both of these at the same time. Setting up all this on a stock Linux distro would take quite a lot of effort and I doubt I’d be able to pull it off. Having a solid foundation which you can extend is heaven. And extending I needed. Apart from the DNS/PXE/caching server I wanted to have a git server for my local repos I used to have on my Linux server. I was expecting to fight with building all these manually, but luckily things were a lot easier.

CS407e

There’s tons of apps already compiled and packaged for the box. You need to download a script that installs a package management system, ipkg on your main Volume (so it’s unaffected when you update firmware) and sets up an /opt mount point. Then you can simply ipkg install package. Apart from dnsmasq and git, I also installed iptraf to monitor bandwith usage (And some other handy utils like screen).

I found the performance good, but if you fear the 64MB 266MHz PPC being too shabby for things like a rails server, they make an 500MHz/128MB variant as well, the CS407 and an 800MHz DS407. But for what it’s been designed for, the hardware is perfectly adequate.

Update: Not everything is pink. I’ve had some serious issues with the Seagate ST31000333AS drives and RAID5. Synology seems to be blaming the Seagate firmware issues, but Seagate seems to suggest I shouldn’t upgrade the firmware from CC1F. I’ve downgraded to RAID1, and things seem to be working fine for a week. Kick me next time I’m enthusiastic about something I have for 2 days :)

DropBox

Friday, October 24th, 2008

There’s been a few posts about Dropbox on Planet GNOME before. I have to join in on the praise. This is all I have hoped iFolder would become. A well designed file synchronization service that really hides the complexity and feels very easy to use. There’s clients for Windows, Mac and Linux. You can obviously share a folder with friends and they will get notified of file changes, so it’s extremely nice for icon design collaboration.

Apart from just doing synchronization, it does basic version tracking. Thanks to this I was able to “record” an icon drawing session by simply combining all the versions Dropbox created every time I saved a file.

*

What you see above has been created in two sessions of about 5 and 3 hours, sadly dropbox can’t make me faster.

*

Some will not be willing to run a binary daemon syncing files, but for me it has been a great time saver for cooperation with my icon buddies.

Linux Rant

Sunday, August 31st, 2008

Last night I got really frustrated getting some basic functionality out of a new notebook for my friend. I am sitting here, configuring and working around stuff, while a beautiful Sunday is outside the windows.

Apart from the typical ‘won’t suspend’, ‘oh that’s a wonky pulse audio daemon’, ‘oh you need to install these fishy codecs’, ‘oh CUPS hates people’, ‘yea gstreamer doesn’t do DVD menus’ I had two extra ones that brought me to my knees.

For some reason Brasero, now the default audio CD burner used by Banshee insists on using the reverse order of the tracks to burn them and gives no obvious way to change this. This is a stupid trivial issue, hardly something a maintainer would mark as a showstopper in bugzilla, yet makes the whole toolchain useless for my friend.

The other grief was her generic mp3 player. We don’t really have the infrastructure to allow huge amounts of people to contribute information about their devices to have other people have theirs work out of the box or have data to make a good buy decision.

HAL and the FDI description files is a great technology. But I have been very frustrated last night to see my friend’s generic el cheapo mp3 player not supported only because a description file was missing. A generic usb storage device and I coudln’t see it in Banshee, nor could I just drag and drop files onto a Nautilus window (since when did Banshee lose this capability?). Sadly not even getting the FDI clobbed up didn’t end my horror.

I would so love to see a social site around this, similar to Ohloh. Earning kudos for providing FDI files for all the devices I have. Creating a timeline of what devices I have owned over the years. Seeing what devices my friends use and their Linux support status. Submitting custom icons for specific devices (seeing all the great icons in gnome-icon-theme-extras rot without being used makes me sad).

Networked openSUSE Install Success Story

Monday, June 9th, 2008

I have been struggling on how to install the latest and greatest openSUSE on my x61 thinkpad. The liveCD installation is probably the best way to get a system up an running for a desktop user. With a system that lacks an optical drive, things need a little bit of tinkering. It ended up being a whole lot of tinkering for me as I have tried and failed installing 11.0 using the USB stick method that worked for me with 10.3. Essentially it boiled down to problems with BIOS drive mappings confusing grub and kiwi nuking my root partition with a swap during first boot.

But I did succesfully install openSUSE 11 Factory using just a network drive and an extra machine serving the linux kernel using TFTP. The added benefit is that you don’t need to download any isos and you only get what you really need.

While this sort of howto might be useful to have on the wiki, keep in mind that this is a graphics designer giving you advice on how to do a rather specialty installation that only network administrators usually do. I encourage people who actually understand these issues to rephrase it and post it.

So let’s get started.

PXE Boot

PXE Boot is a system to serve an operating system to clients that are able to boot from a network card. It is generally considered a system suitable for large desktop deployments within larger companies and there is no configuration necessary on the clients. Everything is set up on the server by qualified administrators. Which became quite an issue for a mere mortal like me. All the documentation available, filled with adjectives like trivial, simple, self-explanatory has had me fail badly. The typical scenario involves setting up a DHPC server (dhcpd) that will serve IP addresses to clients and point them to the server that will send a system image (kernel+initrd). The server is usually TFTPd. Most of the howtos also tell you how to set up an NFS server as large deployments would want you to pull installation data off a local network rather than grabbing them off the internet. Even if there are yast modules to set up a DHCP server and TFTP server on SUSE, you still need to know what you’re doing to start serving system images over the network.

Luckily there is another way. First, on your 10.3 box (server) you will need to install some packages — syslinux, pxe and dnsmasq (`zypper in syslinux pxe dnsmasq`).

To keep things clean, I have created /tftpboot directory to host my PXE configuration and Linux images. We need to copy a basic template from PXE and syslinux first:

sudo cp -Rpv /var/lib/tftpboot/X86PC/linux/* /tftpboot/
sudo cp -v /usr/share/syslinux/pxelinux.0 /tftpboot/

The awesome DNSMasq

Luckily there is a more human-approachable server that does everything and has a nicely documented configuration file that is readable by us mortals. I have been using it to assign specific IPs to specific hosts using DHCP and act as a DNS cache. The good news is that it can also do PXE boot and even has a TFTP server built in.

The PXE-specific configuration is as follows:

dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/tftpboot

Piece of cake (luckily).

Serving Linux

All we need to send to the clients is the linux kernel image and initrd. We do that through the TFTP server and tell Yast to pull all its data directly from the opensuse http server (not a very nice thing to do if you have more deployments, this is where you may want to mirror stuff locally).

So first off you want to download the linux and initrd images and put them to /tftpboot/factory/ (I use the factory subdir as I want to serve many installers, but you can put it in /tftpboot directly). The PXE config file /tftpboot/pxelinux.cfg/default has almost the same syntax as grub’s menu.lst, but there are a few parameters that differ. You need to edit it to point to where kernel, initrd images are and where the installer data lives:

PROMPT 1
DEFAULT local
DISPLAY messages
TIMEOUT 50
F1 help.txt

label factory
  kernel factory/linux
  append initrd=factory/initrd ramdisk_size=512000 ramdisk_blocksize=4096 splash=silent showopts netdevice=eth0 install=http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/

After starting the server with /etc/init.d/dnsmasq start you should now be able to boot your client, which would get an IP, grab the pxeboot menu, where you would choose ‘factory’ at the boot: prompt. From then on, the new amazing yast installer got everything right automagically. Props to the yast team!

openSUSE 11 Installer

Thursday, February 14th, 2008

hackweek

I have spent most of my hackweek mocking up and styling the new Yast installer for openSUSE 11. Coolo’s implementation of the old mockup I made for 10.3 really showed things can be done.

I must say I am very impressed with Qt CSS-like styling (yea, proper documentation ;) . It felt very refreshing compared to the usual minor gtkrc tweakage I need to pull off from time to time. The stylesheet remains very readable to people with web experience. You can do funky things on top of the common CSS attributes – use gradients on fills and borders, RGBA colors (yea, things really composite well), and combination of both. Coolo also added scalable backgrounds hack for the extra abuse we might need.

.
Work in progress – avoid color banding. I know, it’s GREEEEEEN.

The slight limitation is 16bit color, so all the gradients needed to be dithered, but I’m quite fond of the result (still WIP, mind you).

.
Not a mockup, this is an actual rendered YCP template.

You can see some scaling artifacts which should be gone with smooth filtering enabled now. Now on to fix some of the sucky images of the slideshow. openSUSE 11.0 is gonna rock.

Mr. X vs jimmac 1:0

Tuesday, December 25th, 2007

Dear lazyweb,
do you have a working xorg.conf for an imac g4 + external VGA xinerama setup?

Yours desperate