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!
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 :)
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.
Parallel Programming with MPI in Bristol
I spent the last 4 days in Bristol to attend to "Parallel Programming with MPI" course, provided by HECToR which is the UK's high-end computing resource, funded by the Research Councils and available for researchers at UK universities, and by NAG - The Numerical Algorithms Group specialized in the provision of software for the solution of mathematical, statistical and data mining problems.
The course covered the Introduction to MPI and Advanced MPI. MPI (Message Passing Interface) is the de facto standard for parallel programming. I have also some experience with PVM (Parallel Virtual Machine) my Master Thesis was based on that, and I learnt a lot about OpenMP, so I wanted to extend my knowledge for Parallel Programming with MPI.
The course introduced the concepts and terminology of High Performance Computing (HPC). After an detailed look at point-to-point and collective communication, we learnt some more advanced topics: Cartesian topologies, MPI derived data types, user-defined binary operators, groups and communicators. We also had a lot of practical exercises to solve. It was a great course.
NASA TV and openSUSE
NASA is streaming most of the time live from the station / outside / shuttle via its webcast
engine on www.nasa.gov.
So, how to watch with openSUSE 11.0?
- Realplayer plugin - does not work on x86_64
- no windows media player
- no quicktime player
After several more tries to get Opera, Konqueror or Firefox to work and display video, I found the best solution.
as root (if wine is not yet installed):
zypper in wine
as user:
winetricks firefox3
... follow the dialogs for installation
winetricks quicktime72
... follow the dialogs for installation
there will be a now be new Firefox icon on the desktop and in the Programs menu, start it.
open http://www.nasa.gov/multimedia/nasatv/index.html?param=public.
=> Voila, instant space goodness.
(and yes, it is very sad that while it offers _3_ ways of video, _none_ work by default.)
Evolution MAPI update release. (0.26.0.1)
Hello, I just released a update to evolution-mapi. 0.26.0.1 has fix for Bug 574784 without which the package is totally unusable.
Thanks !
A cool Changelog
2009-03-14 Luis Medinas <lmedinas@gnome.org>
* NEWS:
* configure.in:
Update NEWS file and bump to 2.26.0.
This marks the first Brasero stable release into
the official GNOME Desktop platform.
Thanks to everyone who belived and contributed.
OOP YaST GUI: event handling
------------------------------
Hello, here I am again ...
I played with idea of event handling, but if possible better way than we do in ycp now.
Also using inheritance: when you define some behavior, you can inherit class and override handling method or just use objects and handling will be done automatically (using composition).
So the basic idea is that event loop is done automatically and it executes handle function of object that is responsible for such event or which is listening.
Event loop is implemented in parent object (root object in hierarchy - CDialog). Because of this, all inherited objects (MainDialog, PopupDialog) will have this functionality automatically.
class CDialog:
def __init__(self):
self.factory = yui.YUI.widgetFactory()
def listen(self, newList):
self.listeners = newList
etype=-1
while etype!=5:
event = self.dialog.waitForEvent()
etype = event.eventType()
for item in self.listeners:
if (item.getInstance()==event.widget()): item.handle(event)
class CButton:
def __init__(self, factory, parent, label):
self.button = factory.createPushButton( parent, label )
def getInstance(self):
return self.button
...
self.pbAdd = CButton(self.f, hbox2, "&Add")
self.pbEdit = CButton(self.f, hbox2, "&Edit")
self.pbDel = CButton(self.f, hbox2, "&Delete")
...
d.listen([self.pbAdd, self.pbEdit, self.pbDel])
...
When you want to handle something (button click for example), you need to:
- define function that will executed
- connect function to the object
- start event loop with list of "listeners" (objects with connected functions)
There are 3 kinds of functons:
1 - function without any connection to object
self.pbAdd.handle = self.handleAdd
2 - function with connection just to object
self.pbAdd.handle = new.instancemethod(mujhandler, self.pbAdd, self.pbAdd.__class__)
3 - function with visibility outside of the object (example: function can see whole dialog)
self.pbAdd.handle = new.instancemethod(self.handleAdd.im_func, self.pbAdd, self.pbAdd.__class__)
Code is submitted into subversion
How to test this code:
- svn checkout http://svn.opensuse.org/svn/yast/branches/tmp/mzugec/python-yui/
- make sure you have installed packages: python-yui, yast2-libyui, yast2-qt, yast2-ncurses
- run "./main.py" to see Qt version, "unset DISPLAY;./main.py" for ncurses version (unfortunately,in ncurses only way how to terminate application is to kill it, TODO)
Quantum of debugging
Alors, this time, I'm not going to write about some exciting new stuff I'm hacking in YaST (well, of course I'm currently working on something, but I'm going to make it public when the time comes - in the moment I'll be quite certain that it is not absolute fiasco :)). The final phase of product release is an ideal time for sharing quantum theory of bugs. Take this post as an example of junk literature ;-)
I'm sure every sw engineer knows the situation. A bug 100% reproducible at customer's site, with sufficiently high priority and bunch of important managers in Cc: that mysteriously disappears as soon as you try to reproduce it. It smells the debugger from afar and flees quickly enough ;-) That is so-called Heisenbug. Quoting Wikipedia:
A heisenbug (named after the Heisenberg Uncertainty Principle is a computer bug that disappears or alters its characteristics when an attempt is made to study it. The name heisenbug is a pun on the Heisenberg uncertainty principle quantum physics concept which is commonly (yet inaccurately) used to refer to the fact that in the Copenhagen Interpretation model of quantum mechanical behavior, observers affect what they are observing, by the mere act of observing it alone"
Or look at Schroedingbug - another one of those mysteries. Let's see what Wikipedia says again:
A schroedinbug is a bug that manifests only after someone reading source code or using the program in an unusual way notices that it never should have worked in the first place, at which point the program promptly stops working for everybody until fixed.
SLE11 debugging phase was sufficiently long to come across one of those, too. I was reading the source code (of YaST ncurses packager this time), cursing myself how could I possibly overlook such an obvious usage of NULL pointers, wondering how comes it has never crashed for anybody and suddenly bang! There is was - a critical bug from our Three-Letter-Customer, complaining that "yast -i crashes" . Guess where :-)
If you love quantum physic humour or if you just need some entertainment in the quantum of bugs you're dealing with, point your browsers here and read about bohrbugs, mandelbugs, phase of the moon bugs and other nightmares.
And while the customers are testing bugfixes and another set of packages is being built, I can moan and groan on IRC query with Uwe. It was actually him, who pointed me non-quantum layer 8 bug notion (if you don't get it, review your OSI layer knowledge first ;-)). He told me: "Go ahead and tell these Three-Letter-Customer guys that what they are experiencing is a layer 8 bug. It will make them feel special." So I did. They didn't seem to share the same sense of humour :-) :-D Anyway, we agreed that quantum debugging should be discovered ASAP.
Nothing really special here…
Dear Ladies and Gents,
version “3.0.6” of openSUSE-Enlightenment (SOAD project) is out:
GWDG mirror will be updated to the version “3.0.6” on Monday (next week).
Changelog from 3.0.5 to 3.0.6 version
* new updated kernel (version 2.6.27.19_3.2)
* updated EFL/E to svn_r39423 (2009-03-09)
* updated OOo (version 3.0.1.3)
* fixed “Del” key operation in “xterm”
* fixed the segfault during the first login to Enlightenment-DR17
* improved “Wicd” init script
* added GTK+ “Unity” theme
* removed “atl1e” driver for “Attansic” LAN cards (found on the eeepc1000* mostly)
* following drivers are added: “rtl8187”, “rt73”, “rt61”, “r8101”, “r8168”
* improved list of a default installed repositories
* overall code/software/packages update to the current openSUSE-11.1 state
* some useful Wi-Fi utilities added along with the advanced documentation (Tutorials…) 
* other misc. enhancements
In general – this version just works. The only disadvantage is that “LiveCD” version require 800M media (or a blank DVD-R/RW disk) and cannot be recorded to the standard 700M CD-R/RW. The absence of a “delta” images are due to the huge update of a packages – “delta” has no sense this time.
We’re also recommend you to visit our two new modest wiki pages and read a bit about:
Ecomorph
Wicd
Btw, it looks like “Wicd” have a chance to be a default network configuration tool for KDE-4.3 (Dev. Team are constantly improving the package, that’s great!).
LiveCD: list of installed packages
USB-stick: list of installed packages
Huge thanks to Mikhail Kazakov for a help in preparation of this release version!
Enjoy!
Regards,
sda
P.S. The curious persons are welcome to glimpse at the small “Detailed uncompressed LiveCD packages size” pdf file.