Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

New KDE Live-CD Release Brings Back Desktop Functionality

KDE Project:

There have been endless complaints about the KDE4 desktop shell missing certain functionalities like being able to have different wallpapers on each virtual desktop. The openSUSE KDE team has now listened and worked hard to bring back all desktop functionality as you know it from KDE2. A technical preview in form of a Live-CD (for i686 only) is now available. As additional bonus, Time Machine functionality was included too.

a silhouette of a person's head and shoulders, used as a default avatar

Type checking macros

#define to_cpumask(bitmap)                                              \
((struct cpumask *)(1 ? (bitmap) \
: (void *)sizeof(__check_is_bitmap(bitmap))))
static inline int __check_is_bitmap(const unsigned long *bitmap)
{
return 1;
}


The above macro is nothing but just
#define to_cpumask(bitmap) (struct cpumask *)(bitmap)

But it also does a compile-time checking that the parameter passed is of type
(const unsigned long *). If it is defined as an function all these ugly magic is not
needed. But a function cannot be used as a static initializer. Try declaring a variable,
static int a = printf("ok");
and one would get an error, "Initializer element is not constant".

I really wonder whether gcc might one day optimize out your type-checking call to the unused
function in tha above macro?! A solution could be providing an official gcc extension to assert types?!
Also the above code compiles fine without sizeof constification as well i.e., just return a void * from the
__check_is_bitmap() and remove the sizeof and casting.

I found the above code in the linux kernel. See http://lkml.org/lkml/2009/3/25/22
for the discussion. Even the ubiquitous printf, printk or any vararg code does not check for types. So
I wonder whether kernel developers need such tricky^Wugly code just for type checking, given that
the callers would likely read the definition of the macro as well. It is not a closed api.

Any other project uses such type-checking macros?

a silhouette of a person's head and shoulders, used as a default avatar

The *real* antidote to Conficker…

I’m almost as sick of this Conficker stuff as I am going to be sick of April Fools Day stuff when I wake up tomorrow (not to mention I think this is a big promotional stunt for a movie called ‘Conficker’ coming out soon. You watch!), but I have to laugh when I see all these mainstream news organizations falling all over themselves to tell people how to get rid of this malware. In reality, all you have to tell your friends and family is to use one product that will protect them from Conficker and future viruses:

openSUSE 11.1

No joke. Happy April Fools Day, I guess.

a silhouette of a person's head and shoulders, used as a default avatar

YaST and Compiz during Installation

We (Thomas Göttlicher, J. Daniel Schmidt and Arvin Schnell) have use all our
remaining ITO for this really cool feature.

Normally compiz (more precisely the cube module) shows each desktop on the
surface of a cuboid. Since we don’t have several desktops during installation
we decided to show the “wizard” steps on the cuboid. Pressing “Next” or “Back”
rotates the cuboid around the y-axis:

screenshot1

Entering a “subwizard” rotates the cuboid around the x-axis:

screenshot2

Fortunately most computers are fast enough to render the 3D-scene even without
special hardware support that we lack during installation.

Will be available in Factory within the next weeks. Comments are welcome.

the avatar of Andrés G. Aragoneses

I14Y happens

Some years ago, I started to get familiarized with abbreviations like 'l10n', 'i18n' when I started contributing to the translation efforts of Mozilla & Firefox under the NAVE Project.

Some months later I came to know the new term 'a11y', and I started to see it in a lot of places. By that time, I only associated it with the web development world. Terms like "Unobstrusive JavaScript" were very related to it (and I even created an "AJAXy" library called AMUSE for this purpose).

Now let's talk about the next one: I14Y. This concept is present when things like this happen: "I can open an (Microsoft's)OpenXML file with some (Novell's) edition of (Sun's)OpenOffice". Or even more weird things: "I can manage my (Apple's)IPod thanks to a (Microsoft's).NET-powered application called (Novell's)Banshee". Or even more awesome ones: "I can use (Sun?'s)Orca screen reader to control my (Microsoft's)Windows.Forms-powered applications in my (Novell's)SUSE Linux Box!".

So, yeah, we made it! Along with the awesome releases of Mono 2.4 and MonoDevelop 2.0.

Now, guess what's the word?
a silhouette of a person's head and shoulders, used as a default avatar

tiny.url Breaks My Security Model

Since using twitter, I've noticed a lot of people use services such as tiny.url or tr.im in order to shorten URLs. There's a problem with this though: I now have no idea what website I'm about to visit. If someone I trust has posted the link I'm reasonably likely to click on it, but for other people I tend to avoid these shortened links because I have no idea in advance what they are.

What is really needed is for the shortener service to show you what site you're about to visit first, so you can make a more informed decision about whether to visit the site or not. Hmm, maybe I should be sending this as a feature request to those sites instead of randomly blogging about it...

a silhouette of a person's head and shoulders, used as a default avatar

Encrypting External HDD with LUKS

I am using OpenSUSE on my main computers, so LUKS is a good option to encrypt my external hdd. I can use Truecrypt if I want to use the hdd with mac or windows, but here is not the case. You can also use LUKS under windows with FreeOTFE.

Here are the steps to encrypt the hdd:

1. be sure that the device is not part of filesystem

umount /dev/sdd1

2. Option 1: write some random data on hdd if you had critical files before

#slow method to fill hdd with semi-random data
dd if=/dev/urandom of=/dev/sdd1

3. Option 2:

#use next two commands to fill the hdd with "zero" data, much faster
dd if=/dev/urandom of=/dev/sdd1 count=2 bs=1M
dd if=/dev/zero of=/dev/sdd1

3. start the encryption setup

cryptsetup -v --key-size 256 luksFormat /dev/sdd1
cryptsetup luksDump /dev/sdd1  #details for encrypted partition
cryptsetup luksOpen /dev/sdd1 buffalo

4. format hdd as ext3

/sbin/mkfs.ext3 /dev/mapper/buffalo

5. mount the encrypted hdd

mount /dev/mapper/buffalo /mnt/buffalo

6. add the entry in /etc/fstab

/dev/mapper/buffalo     /mnt/buffalo      ext3    acl,user_xattr        1 2

7. Optional step: try tune2fs -L MYLABEL /dev/mapper/buffalo if you want a nice label for your hdd.

Enjoy!

a silhouette of a person's head and shoulders, used as a default avatar

dd command "progress bar"

I am using sometimes

$ sudo dd if=/dev/urandom of=/dev/sdd1
$ sudo dd if=/dev/zero of=/dev/sdd1

and I would like to see the progress of dd command. So, do the following:

1. open a new terminal/console and type:

$ sudo killall -USR1

2. open the terminal/console where your dd is running and you will see something like this:

2242867712 bytes (2.2 GB) copied, 396.007 s, 5.7 MB/s
5625297+0 records in
5625297+0 records out

Anyway, your dd command will continue without any problem.
That's all!

a silhouette of a person's head and shoulders, used as a default avatar

Installing Intel Compiler Suite on OpenSUSE 11.1

Here are the basic steps to install Intel C/C++ and Fortran Compilers on OpenSUSE 11.1:

1. download Intel C/C++ and Fortran Compilers from their website. They are free for non-commercial use
2. unpack and start the installer
3. at some point I received:

Step no: 4 of 7 | Installation configuration - Missing Critical Pre-requisite
--------------------------------------------------------------------------------
The following required for installation commands are missing:
libstdc++.so.5 (library)
--------------------------------------------------------------------------------
1. Finish with prerequisites and back to Critical Pre-requisites dialog
[default]
2. Back to Pre-requisite summary dialog

h. Help
b. Back to the previous menu
q. Quit
--------------------------------------------------------------------------------
Please type a selection or press "Enter" to accept default choice [1]:

4. let's stop the installer and install the necessary packages

vaio:/home/ionut # zypper install libstdc++33

vaio:/home/ionut # whereis libstdc++.so.5
libstdc++.so: /usr/lib/libstdc++.so.6 /usr/lib64/libstdc++.so.5 /usr/lib64/libstdc++.so.6

vaio:/home/ionut # zypper install libstdc++33-32bit

vaio:/home/ionut # zypper install binutils-32bit binutils-devel

5. let's run again the installer, now we have all packages installed

[...skip...]
Step no: 4 of 7 | Installation configuration - Missing Optional Pre-requisite
--------------------------------------------------------------------------------
There is one or more optional unresolved issues. It is highly recommended to fix
it all before you continue the installation. You can fix it without exiting from
the installation and re-check. Or you can quit from the installation, fix it and
run the installation again.
--------------------------------------------------------------------------------
Missing optional pre-requisite
-- cannot determine operating system type
-- system glibc or kernel version not supported or not detectable
-- binutils version not supported or not detectable
------------------------------------------------------------
1. Skip missing optional pre-requisites [default]
2. Show the detailed info about issue(s)
3. Re-check the pre-requisites

h. Help
b. Back to the previous menu
q. Quit
--------------------------------------------------------------------------------
Please type a selection or press "Enter" to accept default choice [1]:

5. accept default choice and press Enter
6. Intel compiler is installed, do the same for the other compiler
7. enjoy :)

a silhouette of a person's head and shoulders, used as a default avatar

My USB Memory Stick Companion

I have a Kingston Data Traveler 4 GB USB Drive, and a few days ago I decided to use it also as a rescue boot device (to be bootable in order to recover data when needed), as storage device (to move around some files, used on windows, mac, linux, freebsd), to have on it some personal files which I would like to be encrypted (for example: my ssh private keys, my bookmarks, my passwords, ...), but also to have with me some applications which I use day by day (firefox, thunderbird, keypass, ...).

So here is what I did:

As filesystem I used Fat32. I installed System RescueCD so I have a bootable linux distro with a lot of useful utilities like Partimage, GNU Parted, TestDisk, kernel for i386 and also for x86-64, ... The instructions to install it on fat32 filesystem are here: Installation On USB Memory Stick, I used "Instalation from Windows" part.

Next step was to install Truecrypt for windows in portable mode, a step by step guide how to do it, is available here, to be able to open my encrypted volume.

Now I can create an encrypted volume, using truecrypt, where we store all my personal files, let's say 2 giga.

In that encrypted volume I also installed PortableApps Suite and beeing a LaTeX user I also included USBTeX.

Ok, now I still have space to store some useful small iso images, like Clonezilla, Hiren Boot CD, Acronis True Image BootCD.

That's my setup for USB Memory Stick, I have it with me all the time, I can use it on any system, mac, windows, linux, I have a bootable linux disto on it, and also my personal files encrypted with some useful software. Maybe I should mention that Portable Apps Suite works well also with wine on linux.

I did a dd copy of my complete usb stick configuration/setup, immediately after I finished to install everything I needed, because if I will lose it, then to be able to recover everything quickly.