January 28, 2012

694 insertions, 1201 deletions, 0 visible changes
[ianweller@hovercraft fedora-business-cards]$ git diff --stat 0afed4e HEAD
 INSTALL                                      |    4 +-
 MANIFEST.in                                  |    2 +-
 README                                       |   15 +-
 config.ini                                   |    4 -
 fedora-business-cards.spec                   |   28 +--
 fedora_business_cards/__init__.py            |   13 +-
 fedora_business_cards/common.py              |  104 ++++++++++
 fedora_business_cards/config.py              |   66 ------
 fedora_business_cards/exceptions.py          |   37 ----
 fedora_business_cards/export.py              |  144 ++++++++-----
 fedora_business_cards/frontend/__init__.py   |   26 +++
 fedora_business_cards/frontend/cmdline.py    |  236 +++++++++++------------
 fedora_business_cards/generate.py            |   60 ------
 fedora_business_cards/generators/__init__.py |   61 ++++++
 fedora_business_cards/generators/fedora.py   |  278 ++++++++++++++++++++++++++
 fedora_business_cards/information.py         |   64 ------
 pavement.py                                  |   45 +----
 templates/back-europe.svg                    |   76 -------
 templates/back-northamerica.svg              |   75 -------
 templates/back-overnightprints.svg           |   76 -------
 templates/front-europe.svg                   |  160 ---------------
 templates/front-northamerica.svg             |  152 --------------
 templates/front-overnightprints.svg          |  152 --------------
 templates/templates.ini                      |   17 --
 24 files changed, 694 insertions(+), 1201 deletions(-)

What changed?

  • Removed the Fedora Talk number (long overdue).
  • Removed fill-in-the-blank templates and added code to generate the SVG dynamically in Python. (This now lets us support any given business card size, with any given margin for professional printing.)
  • Changed the fonts to Cantarell and Comfortaa.
  • Made the business card generation modular so that you can create a non-Fedora business card with the same code that makes dynamic sizes and conversion to CMYK and PDF somewhat easier than doing it from scratch. (Feature request by Mel Chua, who told me she will write a Beefy Miracle module to test the new modularization support.)
  • Made palette-based RGB to CMYK conversion actually sane.
  • Various fixes.

Okay, so 1 visible change. I lied :)

What’s next?

  • Potentially moving things around on the Fedora card layout
  • Possibly renaming fedora-business-cards to something more generic due to its modularization
  • Actually making a new release so that people stop accidentally printing Fedora Talk information on their cards
Difficulties of elisp

The thesis that underlies my project to translate the Emacs C code to Common Lisp is that Emacs Lisp is close enough to Common Lisp that the parts of the Emacs C code that implement Lisp can be dropped in favor of the generally superior CL implementation.  This is generally true, but there are a few difficult bits.

Symbols

The primary problem is the translation of symbols when used as variable references.  Consider this code:

(defvar global 73)
(defun function (argument)
  (let ((local (something-else))
    (+ local argument global)))

More is going on here than meets the eye.

First, Emacs Lisp uses dynamic binding by default (optional lexical binding is a new feature in Emacs 24).  This applies to function arguments as well as other bindings.  So, you might think you could translate this straightforwardly to:

(defvar global 73)
(declare (special global))
(defun function (argument)
  (declare (special argument))
  (let ((local (something-else))
    (declare (special local))
    (+ local argument global)))

This was the approach taken by elisp.lisp; it defined macros for let and let* (but forgot defun) to do the dirty work:

(defmacro el::let* ((&rest vars) &rest forms)
  "Emacs-Lisp version of `let*' (everything special)."
  `(let* ,vars (declare (special ,@(mapcar #'from-list vars))) ,@forms))

But not so fast!  Emacs also has buffer-local variables.  These are variables where the value is associated with the current buffer; switching buffers makes a different binding visible to Lisp.  These require no special syntax, and a variable can be made buffer-local at any time.  So, we can break the above translation simply by evaluating:

(make-local-variable 'global)
(setq global 0)

Whoops!  Now the function will return the wrong result — the translation will have no way to know that is should refer to the buffer-local value.  (Well, ok, pretend that the setq magically worked somehow…)

My idea for implementing this is pretty convoluted.  Actually I have two ideas, one “user” and one “kernel”:

User

I think it is possible to use define-symbol-macro on all symbols that come from Elisp, so that we can tell the CL compiler about the real implementation.  However, a symbol can either be treated as a variable, or it can be treated as a symbol-macro — not both at the same time.  So, we will need a second location of some kind to store the real value.  Right now I’m thinking a symbol in another package, but maybe a cons or some other object would work better. In either case, we’d need a macro, a setf method for its expansion, and some extra-tricky redefinitions of let and defun to account for this change.

This would look something like:

(define-symbol-macro global (elisp:get-elisp-value 'global))
(defsetf elisp:get-elisp-value elisp:set-elisp-value))
;; Details left as an exercise for the reader.

This solution then has to be applied to buffer-, keyboard-, and frame-local variables.

Kernel

The kernel method is a lot simpler to explain: hack a Common Lisp implementation to directly know about buffer-locals.  SMOP!  But on the whole I think this approach is to be less preferred.

Other Problems

Emacs Lisp also freely extends other typical data types with custom attributes.  I consider this part of the genius of Emacs; a more ordinary program would work within the strictures of some defined, external language, but Emacs is not so cautious or constrained.  (Emacs is sort of a case study in breaking generally accepted rules of programming; which makes one wonder whether those rules are any good at all.)

So, for example, strings in Emacs have properties as a built-in component.  The solution here is simple — we will just translate the Emacs string data type as a whole, something we probably have to do anyway, because Emacs also has its own idiosyncratic approach to different encodings.

In elisp, aref can be used to access elements of other vector-like objects, not just arrays; there are some other odd little cases like this.  This is also easily handled; but it left me wondering why things like aref aren’t generic methods in CL. It often seems to me that a simpler, more orthogonal language lies inside of CL, struggling to get free. I try not to think these thoughts, though, as that way lies Scheme and the ridiculous fragmentation that has left Lisp unpopular.

kernel weekly news – 28.01.12

Howdy there! Let’s see what’s the news this week!

-Nicolas Ferre has at91 updates for -rc2, Rafael
J. Wysocki has PM fixes for 3.3, Taakshi Iwai has
sound fixes, Arnaldo Carvalho de Melo has perf/core
improvements and fixes and David Miller has a networking
pull request:

1) Fix JIT code generation on x86-64 for divide by zero, from Eric Dumazet.

2) tg3 header length computation correction from Eric Dumazet.

3) More build and reference counting fixes for socket memory cgroup
code from Glauber Costa.

4) module.h snuck back into a core header after all the hard work we
did to remove that, from Paul Gortmaker and Jesper Dangaard Brouer.

5) Fix PHY naming regression and add some new PCI IDs in stmmac, from
Alessandro Rubini.

6) Netlink message generation fix in new team driver, should only advertise
the entries that changed during events, from Jiri Pirko.

7) SRIOV VF registration and unregistration fixes, and also add a
missing PCI ID, from Roopa Prabhu.

8) Fix infinite loop in tx queue flush code of brcmsmac, from Stanislaw Gruszka.

9) ftgmac100/ftmac100 build fix, missing interrupt.h include.

10) Memory leak fix in net/hyperv do_set_mutlicast() handling, from Wei Yongjun.

11) Off by one fix in netem packet scheduler, from Vijay Subramanian.

12) TCP loss detection fix from Yuchung Cheng.

13) TCP reset packet MD5 calculation uses wrong address, fix from Shawn Lu.

14) skge carrier assertion and DMA mapping fixes from Stephen Hemminger.

15) Congestion recovery undo performed at the wrong spot in BIC and CUBIC
congestion control modules, fix from Neal Cardwell.

16) Ethtool ETHTOOL_GSSET_INFO is unnecessarily restrictive, from Michał Mirosław.

17) Fix triggerable race in ipv6 sysctl handling, from Francesco Ruggeri.

18) Statistics bug fixes in mlx4 from Eugenia Emantayev.

19) rds locking bug fix during info dumps, from your’s truly.

Please pull, thanks a lot.

-Benjamin Herrenschmidt has some powerpc fixes, Keith Packard has
fixes for drm-intel (“A bunch of patches which fix IVB-specific troubles:

* A selection of code which was labeled for SNB, but needs to be run on
IVB as well.

* A replacement for the quick-hack IVB lost-IRQ issue. This appears to
help on SNB as well, but for now it’s only enabled on IVB in case we
discover problems with it.

* Fix some 3-pipe issues

And, a couple of minor mode setting fixes.”) and Tyler Hicks has some ecryptfs
fixes for -rc2 :

Tim’s logging message update will be really helpful to users when
they’re trying to locate a problematic file in the lower filesystem with
filename encryption enabled.

You’ll recognize the fix from Li, as you commented on that.

You should also be familiar with my setattr/truncate improvements, since
you were the one that pointed them out to us (thanks again!). Andrew
noted the /dev/ecryptfs write count sanitization needed to be improved,
so I’ve got a fix in there for that along with some other less important
cleanups of the /dev/ecryptfs read/write code.

They’ve all sat in -next for at least a day, while some have been there
around a week, I believe.

I’ll get signed tags going for the next pull request I send. That was my
intention this time, but it just hit me that I forgot to do it.

-Greg KH announces the release of 2.6.32.55, 3.2.2 and 3.0.18, Dave Airlie
has some drm fixes, mostly radeon-related, Geert Uytterhoeven has m68k updates
for 3.3 and Ingo Molnar has core, perf and x86 fixes.

-Olof Johansson has arm-soc fixes for -rc, and this concludes this week’s news.


January 27, 2012

Fedora 16 Verne Revisor Kurulumu


Merhabalar ; 
Bügün Revisor adında kullanışlı bir programdan bahsedicem. Revisor amaca uygun şekilde kendi fedora kalıbımızı yaratmakda kullanılan bir araçtır.Bunun ile istediğimiz paketi,program, özel syslinux gibi bir çok kişisel özelliklere izin veren bu programla bir nevi hayalimizin fedora'sını yapabiliriz. .Fedora 7 ile gelen bu özellik Fedora 6'da gelmesi planlanırken pungi, pykickstart, system-config-kickstart, anaconda, anaconda-runtime  ve diğer gereksinimler Fedora 6 Core için geri dönüyük uyumluluktan ve yapılan major değişimlerle gelen bu paketlerde bunu imkansız kıldığı için Fedora 7 üzerinden devam edilmiştir.

Kurulum Gereksinimleri  ; 
  • anaconda-runtime
  • pungi,
  • pykickstart,
  • system-config-kickstart
  • anaconda
$ su -c 'yum -y install pungi anaconda-runtime pykickstart system-config-kickstart anaconda'

Programı çalıştırmak için gerekenler ise ; 
  • pygtk2 >= 2.9.2
  • pygtk2-libglade
  • yum >= 3
  • comps-extras
  • system-config-kickstart
  • gnome-python2-gconf
  • notify-python
  • pungi
  • livecd-tools
  • usermode
  • pam
  • db4


Bunların eğerki hiç biri mevcut değilse kurmak için ;

$ su -c 'yum -y install pygtk2 pygtk2-libglade yum comps-extras system-config-kickstart gnome-python2-gconf notify-python pungi livecd-tools usermode pam db4'

Revisor Modüller için Gereksinimler


Eğerki revisor modullerini çalıştırmak istiyorsak şu paketleri kurmamız gerekli olucaktır.

$ su -c 'yum -y install cobbler koan deltarpm python-virtinst jigdo'

Birde sistemimiz 64 bit işletim sistemi olan bir Fedora ise ;  (anaconda-runtime kurulu olmalıdır)

$ su -c 'ln -s /usr/lib64/anaconda/ /usr/lib/anaconda-runtime'

Bu anaconda ile düzeltmemiş bir problem olduğu için buglar listesinde şimdilik bu şekilde kolayca aşıyoruz.Daha sonrasında  ise ;

$ su -c 'yum -y install revisor revisor-gui'

Eğer ki modül,script ve diğer tüm özelliklere hakim olmak istersek

$ su -c 'yum -y install revisor revisor-gui revisor-unity revisor-scripts revisor-cli revisor-isolinux revisor-mock revisor-reuseinstaller revisor-cobbler

Kurulum tamamladıktan sonra revisor sihirbazı bizi karşılayacaktır.



Kaynak : http://revisor.fedoraunity.org/
Resimler : http://revisor.fedoraunity.org/screenshots


Teşekkür Ederim
Onuralp SEZER
Fedora Ambassadors Turkey







Mina Fedora's NIGHTWATCH Music Video review

Mina Fedora's NIGHTWATCH Music Video review.

This item belongs to: audio/opensource_audio.

This item has files of the following types: Metadata, Ogg Vorbis, VBR MP3

Interessante analisi dei visitatori siti web

Spulciando le analisi dei siti web che ospito sul mio server condiviso, mi sono accorto di una cosa interessante.
Se il sito web parla di informatica o tecnologia (come il mio blog) i visitatori usano per lo più browser come Firefox, Chrome, Safari; se invece é un sito che tratta argomenti diversi il browser che vince in assoluto é internet explorer (esempio www.labusciona.com).

Schermata 01-2455954 alle 21.22.38 Schermata 01-2455954 alle 21.24.21

Fortunatamente sono pochissimi quelli che usano ancora Internet Explorer 6, ma ce ne sono ancora!!

Recuperar GRUB 1.99 en Fedora 16 después de instalar Windows

Es cierto que ya casi para todo, existe un equivalente de programa windows en Linux/GNU. Sin embargo, muchas veces nos hemos visto en la necesidad de tener una partición de la famosa ventana en nuestro ordenador, ya sea por x motivo.

Pues, muchos de los problemas que surgen cuando uno empieza en Linux/GNU es la manipulación de conceptos informáticos, especialmente cuando uno no es precisamente un técnico. En muchos casos, con un poco de conocimiento se puede tener un sistema operativo Linux/GNU y Windows en el mismo disco duro, pero para lograrlo es necesario tomar en cuenta algunos consejos: por ejemplo, instalar Windows y luego la distribución de Linux/GNU que más se adapte a tus necesidades, esto es para que el GRUB (Grand Unified Bootloader) de Fedora nos permita elegir   cuál sistema operativo arrancar una vez iniciado el encendido de la máquina.

Platforms as a side effect

What I want to talk about here is a simple statement that I believe to be true:

The best platforms are written by the people who are forced to invent them as they make a product.

Years ago I learned a bit about J2EE; never actually wrote an app using it, but enough to get a sense. I came away with the very strong impression that the people working on it were driven by committee, with managers in their respective contributing corporations telling them what to do. They weren’t the same people out in the field writing apps using it, day in and day out, under time pressure to produce as much as possible. On the other hand, from Ruby On Rails Wikipedia:

David Heinemeier Hansson extracted Ruby on Rails from his work on Basecamp, a project management tool by 37signals (now a web application company).[10]

Now, I’ve never written a Rails app either, but it’s pretty clear from the Internet which one of these wins. Another excellent example is the Amazon Web Services. Amazon had a lot of this internally because they were forced to in order to make a web shopping site before CEO Jeff Bezos made the key decision to spin it off as a platform.

And the most topical example here – GTK+ was originally spun out of the GIMP project because Motif sucked. Anyways, some food for thought. Basically if you’re one of those people in the trenches writing a platform – you should consider asking your manager to switch to writing apps for a bit. At least hopefully this blog post reminds me later that I have a few GTK+ apps that I really should get back to hacking on…


setting up vncserver on Fedora 16

Updated to reflect /etc/systemd, thanks for all the helpful comments.


The change to systemd from SysVinit caused a bit of an issue for vncserver configuration. In the past I would edit

/etc/sysconfig/vncservers

, with systemd the process is quite different.

For our example I will setup vncserver to have display :3 running at a resolution of 1600×900. If you want a different number simply replace it with the number of choice.

sudo yum install tigervnc-server
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:3.service

Next you will need to edit the service file with the username you want vncserver to run under and any vnc options you want.

sudo vi /etc/systemd/system/vncserver@:3.service

The file will look something like this when you open it:

# comment redacted
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/sbin/runuser -l  -c "/usr/bin/vncserver %i"
ExecStop=/sbin/runuser -l  -c "/usr/bin/vncserver -kill %i"

[Install]
WantedBy=multi-user.target

Change <USER> with the username you want to run vncserver under. For our case let’s use kdr.

Next add the vnc options you want after the %i. Since we want it to run at a resolution of 1600×900 we will add -geometry 1600x900.

ExecStart=/sbin/runuser -l kdr -c "/usr/bin/vncserver %i -geometry 1600x900"
ExecStop=/sbin/runuser -l kdr -c "/usr/bin/vncserver -kill %i"

Save the file and enable the service:

sudo systemctl enable vncserver@:3.service

Now configure the password you want to use to connect to vnc. Run this
as the user you setup in the *.service file above i.e. kdr.

vncpasswd
Password:
Verify:

We now have vncserver setup with a username and a password, and enabled in the system. Two more things to check. First thing is verify you have the port open. The vnc display number will map to 5900 series of ports. Since we chose 3 vncserver will listen on port 5903. If you choose 1, it’ll be 5901, etc.

Let’s see if iptables is configured to listen to this port:

sudo iptables --list | grep 5903

Nope, let’s update iptables:

sudo vi /etc/sysconfig/iptables

Add this to the file:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 5903 -j ACCEPT

Save the file, then restart iptables and verify that the port is active.

sudo systemctl restart iptables.service

sudo iptables --list | grep 5903
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:5903

Ok FINALLY we can start up vncserver.

sudo systemctl start vncserver@:3.service

Test it out by connecting with vncviewer host.example.com:3.
Enter the password you used for vncpasswd.

ENJOY!


Build your own Social Community Platform with Enterprise Open Source Softwares – Brussels, Belgium


Dear *,

We plan to organize an small event this year – 2012 – in Belgium on how to build your own social community Platform with Enterprise Open Source Softwares inside your company.

This event should cover the user experiences services like :

  • Enterprise Social
  • Communication
  • Collaboration
  • Content Management
  • Custom Application Development
  • Mobile Applications

So, If you or your company are based in BeNeLux and are interested by this subject, then just let me know and I will arrange a Meeting for you.

BR

Frederic


fedora@clt

As Jörg mentioned in his blogpost, fedora will have again an booth at Chemnitzer Linux-Tage. And there will be a lot of talks from Fedora people also this year. Thorsten Lemhuis will have 3 talks “Neueste Entwicklungen im Linux-Kernel” and how you can help the development of the kernel through testing new versions and also the “Kernel Kwestioning“. Christoph Wickert will speak about Methods fighting Spam. Robert Scheck will have a talk in the Newbie-Section and will explain how easy it is to build RPM packages. Jörg Simon will speak about “Fedora Security Lab and the OSSTMM” and myself will give a session about how easy it is to do with SVG and a few lines JavaScript presentations. But I also will have an part of the workshop program, doing some popsicle with Inkscape. Jörg think its the largest number of talks Fedora people there ever had, and I know that it is the biggest ;) So maybe you can join us at this event, there are still some open places for the booth personal.

Wacom tablets in GNOME 3.4
Working from designs.


The cool stuff first

<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/607uIdBmozU/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/607uIdBmozU?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata"/><param name="bgcolor" value="#FFFFFF"/><embed height="266" src="http://www.youtube.com/v/607uIdBmozU?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" width="320"></embed></object>
Cosimo Cecchi presents the updated Wacom settings

Go to YouTube directly if you can't see the video here.

A new arrival

As mentioned by Cosimo, we have a new library to help us implement the settings you saw: libwacom.

libwacom is there to give us metadata about tablets, whether or not they are connected to your system, the list of styli it supports, as well as information about the styli themselves. As you can see from the UI, it's pretty important that we know:

  • whether the tablet is builtin (so we know whether you can calibrate it)
  • which form factor it has
  • the list of styli it supports
  • for each stylus, its full name, the number of buttons, what it looks like
In the past, all this information was only available within the drivers (as comments), exported in different ways (sysfs attributes), non-machine readable in public documentation, or, worst of all, hidden in Wacom's internal drivers for OS X or Windows.

So if you have a Wacom tablet, send us a definition file for your tablet, so you can configure it with the impression that the software actually knows about your device.

Where's that configuration again

After knowing what each tablet had to offer, we had to have a way to match the definitions to XInput devices, assign settings per-tablet, and importantly, switch stylus configuration when the user switches stylus. This is done using the new GsdWacomDevice and GsdWacomStylus objects, shared between gnome-settings-daemon (which will apply the configuration) and gnome-control-center (which will set the configuration).

This also means we have a few debugging applications, such as list-wacom in gnome-settings-daemon, to show you the attached GsdWacomDevices, or test-wacom in gnome-control-center, to test display of particular tablets if you don't own them (this is the place where I spend a lot of time).

What's next

Peter Hutterer, my input buddy at Red Hat, who made the original Wacom panel for GNOME 3.2, and the first version of libwacom, is currently spending a lot of time on Multi-Touch, and fixing bugs I report in the Wacom driver.

Jason Gerecke, from Wacom, who did most of the initial work on calibration support, is working on the related display-mapping. This will allow choosing whether a tablet's working area is the whole desktop, or a single monitor when in multiple monitors are used.

For my part, after fixing the layout bugs that so annoy me in the settings panel, I'll be starting work on tablet button mapping. I look forward to making the LEDs on the tablet match up with the selected keyboard shortcut!

Many thanks to Cosimo and Monty for helping out with presenting the work, and doing the video.
Fedora / Netatalk / OS X Lion / TimeMachine
Being the cheapskate that I am, I'm not buying a shiny apple-branded time-capsule for backups when I have a perfectly stylish NAS (since the pic was taken I'm using the via-eden board there's a 1.5TB HDD in the box)

I'd previously used netatalk with leopard under mythbuntu, but following a clean-up and migration to Fedora 16 (Verne) it needed reinstalling (esp as we upgraded to Lion on some of the macs)

So, a HOWTO if anyone is hunting for this and some notes

  • You don't need avahi separately anymore - new netatalk includes it
  • You need to allow tcp/548 in your iptables rules (I added to /etc/sysconfig/iptables)
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 548 -j ACCEPT
  • SELinux. Yeah. probably needs fixing but 'setenforce permissive' worked :-/
  • I'm not convinced you need the 'defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1' anymore. 
Here's what I did

1) Create a separate disk partition for time machine and mount it (I'm using LVM and XFS)

$> grep time /etc/fstab
/dev/mapper/linuxvg-timemachinelv /export/timemachine xfs defaults 1 2
$> df -h /export/timemachine
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/linuxvg-timemachinelv  200G  6.0G  194G   3% /export/timemachine
2) create a separate user for the backups (not strictly needed but I chowned /export/rimemachine to that user to sort out permissions
#> useradd timelord
#> passwd timelord
#> chown timelord: /export/timemachine
3) Install and configure netatalk (although 2.2.0 is in Fedora 16, I decided to use the rawhide version of 2.2.2)
#> yum --enablerepo rawhide install netatalk
The config files are in /etc/netatalk and (see the gude at An Esurient Trollop ) you'll need to edit afpd.conf
(I added -mimicmodel Macmini and uams_guest.so to -uamlist: I have a ro media share)

- -tcp -noddp -mimicmodel Macmini -uamlist uams_guest.so,uams_dhx.so,uams_dhx2.so -nosavepassword
and AppleVolumes.default
# Share out the Videos
/export/media/Video Videos options:ro,noadouble
#Time Machine
/export/timemachine TimeMachine options:tm
Startup netatalk
#> systemctl start netatalk.service
#> systemctl enable netatalk.service
 So far so good -- assuming no failures you should see something like this in your logs
afpd[28742]: AFP/TCP started, advertising 192.168.1.251:548 (2.2.2)
Now, onto the mac -- I wasn't seeing the host automatically appear in the finder, but a simple command-k (connect to server) and typing the hostname worked (it expands to afp://hostname automatically), and was prompted for my (normal) username and password to connect to $HOME on the netatalk server.

In the time machine preferences I could then select the remote TimeMachine volume on the NAS, enter my 'timelord' username/password combo and it started to so a backup.

More news (and a rest restore) to follow...
Packaging Java JARs as RPM packages

At JUDCon 2012, I had a discussion and argument with Jaikiran Pai and Ravi Maurya on “Packaging Java JARs as RPM packages”.

Well it is not just RPM, it could be any package management system ( eg. dpkg, protage etc. ), doesn’t matter as long as it serves the purpose of:

  • automatic dependency resolution
  • installation of dependencies
  • rollback an install step
  • install multiple versions of a (JAR) package
  • ensure the packages are authentic ( for security )

How is all this achieved in Java world? Simple. Just package all the required JARs in a single JAR or WAR or an EAR for that matter. And trust the packager for its security. But:

  • Is this a good practice?
  • What happens when you want to install the same package on multiple systems?
  • Can you roll back changes easily on multiple installations?
  • How are JARs shared across different kind of projects, some which use the same version of the same JAR package?

Consider the case of Maven, with which you can easily specify the dependencies and Maven does all the work of dependency resolution.
However, it solves the problem only at the developer’s level. JARs are still bundled inside the output application package (JAR / WAR / EAR). And everytime this application is distributed, it will contain “ALL” the dependencies. That is clearly an overhead.

That makes me think, why JARs don’t work like Shared Libraries, which can be shared across applications. Every classloader / JVM instance has its own version of the same JAR file on-disk! Can’t they be shared? That too is clearly an overhead. I am not aware of the reasons why it is so, which I would definitely like to know.

The point is, since a package manager has all the functionality, why not just leverage it? Java community is either unaware of it, or doesn’t care.

No problem. There are efforts already in place.

Anyway, of other things Jaikiran told me that, JBoss AS7 has how better and modular class loading which is based on JBoss Modules. This appears to me similar to how Maven structures it JAR repositories.

Here are some resources:

Thats it folks!


¿#censura en twitter?

No realmente, estas restricciones ya existen en estos países, lo que se esta haciendo es implementar un mecanismo en el que sea transparente para el usuario.

Muchos saltaron en protesta por que ‘Twitter esta censurando la Internet‘, artículos con títulos sensacionalistas inundaron la web solo para repetir fuera de contexto segmentos de entrevistas y comunicados de prensa de esta red social.

Averigua como saltar las restricciones impuestas por tu país en esta popular red social

 
Lo que muchos no saben es que estas restricciones ya existen y no son impuestas por esta red social sino por el país del twiternauta (¿o es twiteador?). Recuerden que cuando una empresa abre oficinas en estos países, tiene que adaptarse a las leyes locales y Twitter Inc no es la excepción. Hay que respetar las leyes de países democráticos.

Twitter simplemente ha estructurado un juego de reglas que permite brindar transparencia en el proceso, explicando detalladamente la razón por la cual el twit ha sido restringido para el país donde estas.

 

Tu país no me puede censurar a mi, ni te va a silenciar.

Entre las reglas que twitter ha implantado es que la publicación que infringía la ley local no sera eliminado. Les explico, si en Venezuela esta prohibido decir el precio del dolar paralelo, o en Alemania y Francia prefieren que no se hable de Neo-Nazis estas leyes no aplican para mi que estoy en otro país. Mientras que los residentes de estos países no podrán ver estos twits, el resto del mundo si podrá verlos.

Jillian York, la directora de Libertad de expresión internacional para la Electronic Frontier Fundation (EFF) comento sobre el asunto:

“Desde mi punto de vista, esto no es distinto a lo que Twitter ha venido haciendo para manejar ordenes de la corte. Lo único distinto es que no afectara usuarios fuera de un país determinado. Teniendo en cuenta que están abriendo una oficina en El Reino Unido, con sus alocadas leyes anti-difamatorias, puedo entender el porque tomaron esta ruta.
Es desafortunado que se vean obligados a censurar cualquier contenido pero los aplaudo por haberlo hecho lo mas transparente posible.”

 

¿Como hacerle un bypass a estas restricciones?

Lo primero es identificar que lo que has publicado fue bloqueado en tu país. No necesitas monitorear Chilling Effects como muchos sugieren. Twitter mismo te mostrara un anuncio avisándote. Saltarse estas restricciones es fácil, simplemente cambia el país de tu conflagración, en mi caso uso ‘Globales’. Twitter intentara asignarte tu país basado en tu información de red, pero también es posible decirle a twitter que se han equivocado de país.

Inicia sesión en tu cuenta de Twitter. Visita la Configuración de tu Cuenta. Selecciona el país correcto del menú desplegable. Si tu país no se encuentra en la lista, selecciona Globales

Inicia sesión en tu cuenta de Twitter.
Visita la Configuración de tu Cuenta.
Selecciona el país correcto del menú desplegable.
Si tu país no se encuentra en la lista, selecciona Globales.


Twitter no va a estar verificando si estas o no en el país que dices de verdad. Hay gente que dice que esto no funciona, que Twitter vuelve a asignarte tu ubicación geográfica dependiendo de tu IP, lo cierto es que a mi si me funciona y a un par de personas mas a las que les pedí que hiciera pruebas si les ha funcionado.

 

Hace unas horas me comentarion vía twitter que la configuración de país no es permanente sino por secion de browser, aquí hay un poco mas del tema Cómo cambiar la configuración de País en el que te encuentras

¿#censura en twitter? es un articulo de: orvtech.com

JUDCon 2012 – an experience!

My first Java exclusive conference!

I arrived at the venue right on time. Surprize, there were a lot of people already holding their welcome kits. Conference was already running quite smoothly. Wifi worked most of the time. The sessions, lunch, tea were always on time. Actually, there were people assigned to ring bells, just like in schools, to notify timeout during lunch and tea breaks :)

The whole confenence was revolving around four major topics: JBoss AS7, Infinispan, Drools and OpenShift.

Opening talk was given by Harish Pillay, Red Hat Global Community Architecture Team.

The Keynote of the day was by Bruno Georges. He mentioned some interesting trends of which are:

  • There are about 4 times the processors compared to the number or people in United States alone and growing. Meaning that the processing power is available in abundance.
  • There is a significant growth in Ad-Hoc Social Networks for businesses

Now where is the industry heading? In perspective of Java, Java ME/EC is going to be merged with Java SE/EE. SQL based data is moving towards NoSQL which is now leading us to NewSQL. The software stacks are moving towards ubiquitous computing i.e. even smaller handheld devices, are capable of running these software stacks. To sum it up, it was a very factual and a visionary talk by Bruno.

I will defer the other topics till later. Let me talk about the topics I liked the most:

JPA – Painless Persistence

Painless Persistence by Greg Kable was a very engaging talk. It was kind of an OOPS/ORM primer. The concepts were explained in a very general terms like “why/when to use ORM and when not to”, Skinny Objects and their pitfalls. Why to avoid optimization? Such concepts could be applied to any kind of ORM in practice. Even if you didn’t know anything about JPA or Hibernate, you could understand the point Greg was trying to make. And by the way, there are 3 rules of optimization: don’t do it, don’t do it, don’t do it. Before deciding on optimizing part(s) of your application always think of these 3 rules. It is just as a reminder that it might not make sense to put efforts on optimizing your applications first of all.

Future of Seam Framework

Seam 3 is final release of Seam project. That’s it. All future efforts are directed towards Apache DeltaSpike from now on. So, do think twice before using Seam for your new projects. However, Seam being a widely used framework, the bugfixes and mainitainence will still be available. And contributes, checkout the DeltaSpike project now!

Polyglot Revolution

This was an intersting topic. What it means is that many JVM based languages (ceylon, scala, clojure, ruby, python) and their frameworks ( like Ruby On Rails ) will be available integrated with JBoss AS. TorqueBox is a unique example of this. With this effort, you can use all the power and features of Java EE stack right into your other language frameworks. Same argument applies for Immutant.

JBoss Application Server

In the recent years, JBoss has seen a lot of increase in the number of hits on its project sites from the Indian region. Most of these hits are by the users who use JBoss. But what about the size of contributers? What is the plan ahead for community engagement? Well that is the question I asked the panel. JBoss Heroes is project that is supposed to address this issue. Lets see when it is going to actually materialize. JBoss AS7, the latest release, is fully EE6 compliant, is very lightweight and is blazing fast with a boot time less that 3 seconds!

Infinispan

I don’t know why but there were just too many talks on Infinispan alone ( over 6 talks ! ). Inifinispan is a data grid platform based on the design of Amazon Dynamo ( has many implementation including Apache Cassandra ). Infinispan spans a very broad set of usecases. It can act as an in memory cache, persistent cache, distributed cache, replicated cache for high availablity. Also it provides plugins for different backends like Arjuna TM, BDB, JDB, JDBC etc.

Essentially it acts a key/value store. Its real power comes from its flexibility, which allows it to be adapted for many many use cases.

Becoming an Open Source developer

“When in fight, I start to fear that if I get hit by my oppnent, worse is going to happen, and I will lose.” Well, dont! Believe in how good things are going to be if you succeed. Always think that you are going to bring the opponent down no matter what. Never fear of failure. Fear the fear itself, and put your best. That is the mantra of successful Open Source developers, quite well explained by Dmitris in his talk Becoming an Open Source developer. Fight the problem until you solve it. Isn’t that straight forward ;-)

Drools – Rules Engine and Complex Event Processing

In the talk “Declarative Rules” by Mark Proctor ( co-creator and founder of Drools ), he explained that Drools is Declarative Rules based engine. He demonstrated a simple game Wumpus World, that can be completely created using only rules. No other code required, which simplifies the whole process. Of the other things in his talk, there qere queries regarding Fuzzy logic support in Drools. Rules reduction or compaction process in Drools. Also rules processing on distributed and unstructured data, which is an inherently hard nut to crack.

In a subsequent talk “Demystifying Complex Event Processing” by Mark Proctor again, he explained how CEP works. How Complex Event Processing (CEP), Event Stream Processing (ESP) and Event Drive Architecture (EDA) are closely related. Drools Fusion is the CEP tool by JBoss. To learn more about Drools / CEP there are many books available: The Power of Events, Event Drive Architecture, Drools JBoss Rules 6.0 Developer’s Guide, JBoss Drools Business Rules

I am happy to have met a lot of people Jaikiran Pai, Sachin Patil, Ray Ploski, Radoslav Husar, Ales Justin, Dmitris Andreadis, and many other whom I only listened to ;-)

However, I also missed a few things that would have made this conference even better in my opinion. There could have been an inclusion of activities like Hackathon, Bug Squadding or Workshop ( hands-on sessions ).

It has been a great learning experience. Keep them coming – the events – JUDCon 2012, you rock!

PS: I don’t see any slides nor the videos from JUDCon 2012 on their website yet. When are they coming?


Blink, el Hola mundo en Arduino

Arduino es una plataforma de hardware libre que consiste es una placa que posee un microcontrolador. Esta placa contiene un conjunto de dispositivos tales como: puertos de entrada y salida, powerjack, switch, microcontrolador, entre otros.

En este artículo quisiera compartir con ustedes, cómo lograr el típico "Hola mundo" en arduino, en este caso no es literalmente una impresión de "Hola mundo", sino más bien el encendido-apagado de un led. 

Linux GMA500 (Poulsbo) driver moved out of staging

Good news for people with an Intel GMA500 (Poulsbo) graphics card, support is now in the mainline Linux kernel.

In the Linux 3.3-rc1 (mainline) kernel the driver has moved out of staging and re-named.

It is now located under

Device Drivers ->
Graphics support ->
DRM (Direct Rendering Manager) ->
Intel GMA5/600 KMS Framebuffer

and is now called “gma500_gfx”.

Once the kernel team with your distribution of choice makes the adjustment, the GMA500 should work “out of the box” on any Linux Distribution using kernel 3.3 or higher.

love

You know what I love?

When reboots don’t go horribly wrong.


FUDCon Blacksburg 2012 – Behind the Scenes

Those things that made FUDcon Blacksburg unique – Fun? Come and join us at http://fedoraproject.org :)

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/7bOsE5TGeU0" width="420"></iframe>

Link http://www.youtube.com/watch?v=7bOsE5TGeU0

Hacking on an IR Remote

This post, rather long and geeky, is more of an attempt to record a little project for myself, but I am copying it to the Planet, even though it has little Fedora content, because my fellow Fedorans deserve an occasional peek at just how weird I am!

For Christmas, Santa brought me a PIC24FJ256DA210 Development Board.  This is quite a cool board, with an especially cool PIC.  The board includes the obligatory buttons and LEDs, along with a PICtail socket, Host, Device and OTG USB ports, a serial port, parallel and SPI Flash, SRAM, mTouch pads, and a display connector.  Plugged into the display connector is a 3.2" TFT display with a resistive touch panel.

The PIC24FJ256DA210 itself is quite interesting, including not only USB and PMP, and gobs and gobs of Flash and RAM (by PIC standards), but also a graphics controller.  I had done some graphics a while back on a 24F on the Explorer 16 Development Board.  I was interested in seeing how things changed with the controller on the PIC.

The demo app was pretty neat, one of the (many) things it did was to read JPGs off a thumb drive and display them.  On a PIC this is kind of a big deal since few PICs even have a USB stack, let alone the capability to interpret the FAT filesystem and decode JPGs in finite time.

In looking for a project to get my head around this thing, it turned out that a friend (N8ERO) was working on decoding the output from a TV remote. He was trying to draw the output graphically on a little black and white LCD.  It occurred to me that this was a sort of interesting project and would exercise the PIC.

I began by coming up with a scrolling graph on the Explorer 16 since I was already familiar with the older version of the Microchip Graphics Library, and I thought a speed comparison would be interesting.  Since I didn't need the touch screen for this application, but did need speed, I stuck to the graphics primitives portion of the library and avoided the Graphics Object Layer (GOL).  Although the scrolling wasn't terribly fast, handled by redrawing rather than memory copying, it was still pretty tolerable on the PIC24FJ128GA010, so now off to the the PIC24FJ256DA210 to see what the graphics controller could do with a pretty simple case.

(For the pathologically curious, the code for all these little exercises is on gitorious at https://gitorious.org/pic16/graphtest/trees - there's actually nothing in the master branch; each of these experiments is in its own branch.  The GA010 display is in graphAD branch.)

Microchip has some pretty slick hardware, but their software has never been anything to write home about.  The older Graphics Library had a mess of directories and files that made little sense.  I was hopeful that the new library would be an improvement.

Well, it was worse.  "Back in the day", you could download the Graphics Library.  Now, you need to download the "Microchip Application Library", which includes not just the Graphics Library, but all sorts of other things.  It isn't that the download is so burdensome, or the disk space is unmanageable, but the addition of all the other features, even if they are pretty neat, gives Microchip the opportunity to make it even more of a mess than it was before.

And it gets worse.  over the past few years Microchip has added a number of experimenter boards to their stable, including quite a collection of displays and a few graphics controllers.  When you dig down into the source, every line of code is preceded by about a half page of #ifdefs to select the appropriate PIC, board, controller, display panel and touch controller combination.  In some cases there are choices between serial and USB interfaces and SPI or parallel external flash. It is totally unreadable.

There are no actual "libraries" in the Graphics Library, something I thought a little odd.  Their sample projects include lots of source files into the project.  Well, of course, you need to set all those various #defines before compiling the code.  In many cases it isn't at all clear how you get some symbol or another defined without editing the Microchip code, but with a lot of digging you can get around it with our old friend -D.  (Would have been nice if the documentation provided a clue, tho.)

Speaking of documentation, there is quite a bit.  Most of it .chm files.  Now, .chm files in general tend to be trash.  The templates that Visual Studio provides lead the developer down the path of useless help files.  But to Microchip's credit, the MPLAB help files are among the best I've seen.

Unfortunately, the files provided with the application library are a newer version than can be handled by anything I could find in Fedora, newer even than could be read on the XP image I have on a VM.  Fortunately, the critical (to me) stuff was also available as .pdf.  There's a lot of stuff there I would like to explore that is only in .chm files, tho.

Sadly, the documentation is mostly disjointed.  They do have a pretty nice function reference for the Graphics Library, but it doesn't give you any help as to what the dependencies are, what symbols need to be defined for what purposes, etc.  There are other documents that help you figure out how to set the two dozen jumpers on the board, but those documents are scattered.  The best bet seems to be reading the schematics.  Those are annoying because they are spread out over umpteen pages.  I would rather deal with a humongous fold-out like Icom does.  A bit unweildy but at least you can trace lines with some degree of confidence.

After a bit of a struggle I managed to get my GA010 code working on the DA210, and the speed improvement was startling.  Even without using features of the controller the display was almost 20 times faster, although it felt faster than that. (graphAD-DA branch).

Earl provided me with an IR sensor he had ripped out of an old VCR or something.  I tacked it onto a PICtail prototyping board I had been using for various experiments, and when supplied with 5 volts, it seemed to be able to see my remote.  Unfortunately, it was totally blind when powered with 3.3 volts.  This is a problem.  The PIC24's are 3.3 volt parts.  Although the DA210 isn't a horribly expensive part, it is a TQFP100.  I've been able to deal with parts like that before, and although possible, it isn't any fun at all.  I really wanted to avoid damaging the PIC. But I'm also a big fan of simple, so rather than some elaborate voltage conversion scheme, I simply put a 10K between the sensor and the PIC on the theory that the sensor wouldn't be able to drive damaging current into the PIC through the 10K.

So, now we have the IR sensor connected to the PIC, but the PIC didn't seem to be able to detct anything.  Most of the PIC lines are used for the graphics controller.  Even tho the DA210 has 100 pins, the board has enough different functions that every pin has multiple uses.  The pins connected to the buttons, which are shared by mTouch pads and LEDs, seemed to be the best bet, and I could convince myself that I had the right pin by putting my meter on the PICtail and pushing the button, but still the PIC couldn't see anything.

After spending way too much time, I realized that the pull ups for the pushbuttons couldn't be overpowered through the 10K by the sensor.  But another blatantly obvious thing I should have seen; the pushbutton was enabled by a jumper!  Simply removing the jumper allowed the PIC to see the sensor.

Up to this point the slugging had been pretty slow.  Every step became a battle.  But from here on, once I had my head around the graphics so-called library and the board, things went surprisingly well.  From here on the vast majority of time was spent, well, tinkering.  I can really get wrapped up in making this or that look just right.  Foolish, really, since I have absolutely no eye for making things look right!

As I looked at the data from the sensor it became obvious that a scrolling display wasn't going to be much help.  Ultimately, the point is to be able to decode the pulses from the remote.  There were a LOT of pulses going by very fast.  If the data were scrolling by there would be no opportunity to examine it to look for patterns.

So, the scrolling display went out the window, in preference to a static graph. (readIR).  The approach I used, since I didn't know the speed, was to sample the data and put it in an array, then plot the data after the fact.  The PIC24FJ256DA210 has a lot of RAM, so a fairly large array wasn't out of the question.  I could then adjust the sampling time without messing with the graphing code until I could see the relative length of the pulses.

But, it turns out there are a LOT of pulses.  Given the 320x240 resolution of the little display I couldn't display even a significant fraction on them, and even if I could, the display wouldn't make much sense.

So, the next optimization was to make the array very large, and display the data a page at a time.  This was effective, and made for a nice display, but still it was difficult to make sense out of what I was seeing.

At this point I started digging around on the web to see if I could come up with the codes for my remote.  Unfortunately, not only did I not find my particular remote, but different sites seemed to have entirely different opinions of how to interpret the data stream.

It seemed to me that a less pretty approach might be more enlightening.  So the next approach was to display a string of characters, green for a low and white for high.  This evolved to displaying underbars for low and a digit, increasing as the pulse persisted, for high.  This made it quickly obvious that, other than the start pulse, there were only two pulse lengths.  Short pulses were either 1 or 2 samples, long 7 or 8 (after adjusting the sampling time to optimize the display).  (listIR commit 58bfdd2)

Once it became evident I only had two states, it seemed obvious to convert the pulse train into a number, using 0 for a short pulse and 1 for a long pulse.  Now I could easily see whether I had the timing right and understood the signal; if the same button resulted in the same number, and a different button gave a different number, I was close to having it decoded.

So initially I was pretty timid; get the number, look for one of a few hits in a case statement.  Of course, the case statement became immediately annoying as I added codes, so it went out the window in favor of a table lookup, which was not only shorter, but much easier for adding codes. I also quickly dispensed with the string display, and pretty soon my fancy graphics display was pretty boring.  All I really needed was the hex code (for adding new buttons) and the result.

So at this point, I'm kind of at the end of this experiment. I did notice that, although there are all sorts of claims of standards, the pulse lengths vary widely between different remotes.  But honestly, I don't have a burning application for this capability anyway, so I doubt I'll be motivated to expand to other remotes.


January 26, 2012

Understanding PaaS (and cloud computing)
If you can stomach a little shameless self-promotion I'm happy to announce my book "Understanding PaaS" has been published:

http://www.amazon.com/Understanding-PaaS-Michael-P-McGrath/dp/1449323421

If you're not quite sure how cloud computing can change how you work or if you're not sure about the difference between software, platform, and infrastructure as a service then this book is for you.

It give a quick overview of different cloud offerings and explains how Platform as a Service (PaaS) is different. It's not heavy on technical content, but it's more targeted for those in a technology industry and is a quick read. I'll be releasing a second edition by the end of the year so comments / questions welcome.

If you want to try out Red Hat's free PaaS, do it! http://openshift.redhat.com/
The Case for the /usr Merge

One of the features of Fedora 17 is the /usr merge, put forward by Harald Hoyer and Kay Sievers[1]. In the time since this feature has been proposed repetitive discussions took place all over the various Free Software communities, and usually the same questions were asked: what the reasons behind this feature were, and whether it makes sense to adopt the same scheme for distribution XYZ, too.

Especially in the Non-Fedora world it appears to be socially unacceptable to actually have a look at the Fedora feature page (where many of the questions are already brought up and answered) which is very unfortunate. To improve the situation I spent some time today to summarize the reasons for the /usr merge independently. I'd hence like to direct you to this new page I put up which tries to summarize the reasons for this, with an emphasis on the compatibility point of view:

The Case for the /usr Merge

Note that even though this page is in the systemd wiki, what it covers is mostly orthogonal to systemd. systemd supports both systems with a merged /usr and with a split /usr, and the /usr merge should be interesting for non-systemd distributions as well.

Primarily I put this together to have a nice place to point all those folks who continue to write me annoyed emails, even though I am actually not even working on all of this...

Enjoy the read!

Footnotes:

[1] And not actually by me, I am just a supportive spectator and am not doing any work on it. Unfortunately some tech press folks created the false impression I was behind this. But credit where credit is due, this is all Harald's and Kay's work.

On the must read list.
One of my friends David Narvaez, a founder member of floss-pa.org,  has wrote an article about SOPA, PIPA, ACTA and all other legislation around and to come, to deal with piracy, or at least try.

On his article title  Electrocuting Modern Elephants he take Tomas Alba Edison, and his battle versus AC, back when electricity was the new technology, as sample of what old traditional business model  are trying to do, to keep a live promoting this laws.

Definitive an article on the must read list.



Sigue los twits favoritos de tus followers.

El dia de hoy ley la conversación entre un par de conocidos en twitter, planteaban que seria genial poder ver los twits favoritos de un Cheff como para hacerse una lista gourmet.

Sigue los twits favoritos de quien quieras

La logica me decía que esto ya debía de existir aunque no pude encontrar como hacerlo directo desde la pagina web, logre conseguir como obtener un feed de estos:

la URL tiene el siguiente formato https://twitter.com/favorites/<usuario>.rss que en mi caso quedaria asi:
https://twitter.com/favorites/orvtech.rss

La salida de esto será un XML que puedes leerlo fácilmente con cualquier navegador web moderno o cualquier lector de RSS feeds. Aquí les dejo como se inicio la conversación..

<script charset="utf-8" src="http://platform.twitter.com/widgets.js"></script>

 

Sigue los twits favoritos de tus followers. es un articulo de: orvtech.com

[RHEV 3.0] Presentation @ Altimate in February 2012 – Brussels, Belgium

Dear all,

I am going to do a presentation about “Red Hat Enterprise Virtualization 3.0” @ Altimate in Brussels in February 2012.
If your company or you are based in BeNeLux and are interested by this presentation, just let me know and I will try to arrange a Meeting for you.

Ref :  http://www.redhat.com/promo/rhev3

Ref : http://www.altimate.be/brand/17694b441900027b/Red-Hat-JBoss.html

Ref : http://www.altimate.be/local/17694b44190000f9/1e1537a81840686a/Red-Hat-RHEV-3-0-Launch-party-on-the-2nd-of-February-.html

Best Regards

Frederic


Announcing Pacemaker Cloud 0.6.0 release

I am super pleased to announce the release of Pacemaker Cloud 0.6.0.

Pádraig Brady will be providing a live demonstration of Pacemaker Cloud integrated with OpenStack at FOSDEM.

 

What is pacemaker cloud?

Pacemaker Cloud is a high scale high availability system for virtual machine and cloud environments.  Pacemaker Cloud uses the techniques of fault detection, fault isolation, recovery and notification to provide a full high availability solution tailored to cloud environments.

Pacemaker Cloud combines multiple virtual machines (called assemblies) into one application group (called a deployable).  The deployable is then managed to maintain an active and running state in in the face of failures.  Recovery escalation is used to recover from repetitive failures and drive the deployable to a known good working state.

New in this release:

  • OpenStack integration
  • Division of supported infrastructures into separate packaging
  • Ubuntu assembly support
  • WordPress vm + MySql deployable demonstration
  • Significantly more readable event notification output
  • Add ssh keys to generated assemblies
  • Recovery escalation
  • Bug fixes
  • Performance enhancements

Where to get the software:

The software is available for download on the project’s website.


Panama 2012 activities
2011 was a great year, full with floss activities, this year, floss-pa community and Fedora community, is planning to participate on all mayor Panamanian floss activities and FudCon Margarita.

This is the schedule for mayor floss activities on Panama this year.

Document Freedom Day Mach 28 2012

Azuero Campus Party 30 & 31 de March 2012
http://congreso.ls.utp.ac.pa/csp2012/

FLISOL   21 de April 2012

Fedora 17 Release Party  May 26 2012

Linux Day August 27 2012

Software Freedom Day September 14  2012




Drupal Camp Centro America October 11-13 2012

Fedora 18 Release Party November 24 2012

We are planning to have other additional activities, plus talks and Fedora boots to any activity we are invited.

Will keep you posted as we reach each one of those dates.


Auto-tag Fedora package git repo from koji builds
I often browse through various Fedora packages and miss having gittags in package repositories corresponding with builds done in koji.Therefore I created following simple bash script that will create gittags in current git repo (if it's a Fedora package).

#!/bin/bash

giturl=`fedpkg giturl`
if [ $? -ne 0 ];then
echo "This doesn't look like fedora package directory"
exit 1
fi

pkgname=`echo "${giturl}" |\
sed -e 's|git://pkgs.fedoraproject.org/\(.*\)?.*|\1|'`
# make sure we are up-to-date
git fetch

# go through last 3 releases (incl. rawhide)
for dist in f15 f16 f17;do
builds=`koji list-tagged "${dist}" "${pkgname}" | \
grep "${pkgname}" | awk '{print $1}'`
for build in $builds;do
# task urls sometimes have ".git" suffix
git_sha=`koji buildinfo "${build}" | grep '^Task:' | \
sed -e "s|.*${pkgname}\(\.git\)*:\(.*\))|\2|"`
version=`echo $build | sed -e "s:${pkgname}-::"`
echo BUILD: $pkgname\($version\) = $git_sha
git tag "${version}" "${git_sha}"
done
done
Enjoy!
JBoss, Fedora and more from Red Hat at FOSDEM 2012
A lot of folks from Red Hat are visiting FOSDEM 2012 this year.


I've listed the speakers here - I will myself talk on Saturday on RHQ.

In addition to the talks there are also stands:


You will be able to get a printed version of this list at the Fedora stand.

Saturday

WHEN

EVENT

TRACK & ROOM

SPEAKER

11:00-11:10

Welcome to the CrossDesktop Devroom

CrossDesktop  (H.1308)

Christophe Fergeau

11:00-11:05

Welcome to the Legal Issues DevRoom

Legal Issues  (AW1.125)

Richard Fontana

11:00-11:55

BoxGrinder : Grind your appliances easily

JBoss.org  (K.3.201)

Marek Goldmann

11:00-11:05

Welcome to the Free Java DevRoom

Free Java  (K.4.401)

Mark Wielaard, Andrew Haley, Andrew Hughes

12:00-12:55

Drools Planner: Planning optimization by example

JBoss.org  (K.3.201)

Geoffrey De Smet

12:30-12:55

libguestfs - tools for modifying virtual machine
disk images

Virtualization & Cloud  (Chavanne)

Richard Jones

13:00-13:25

Cloud high availability with pacemaker-cloud

Virtualization & Cloud  (Chavanne)

Pádraig Brady

13:00-13:55

Openshift

JBoss.org  (K.3.201)

Grant Shipley

14:00-14:25

The Aeolus Project

Virtualization & Cloud  (Chavanne)

Francesco Vollero

14:00-14:55

JBoss AS7 : Building JBoss AS 7 for Fedora

JBoss.org  (K.3.201)

Carlo De Wolf

15:00-15:50

Virtualization with KVM: bottom to top, past to future

Hypervisors  (Janson)

Paolo Bonzini

15:00-15:55

JBoss Forge / Arquillian: Two Missing Links in
Enterprise Java Development

JBoss.org  (K.3.201)

Koen Aers

15:00-15:25

Open Clouds with Deltacloud API

Virtualization & Cloud  (Chavanne)

Michal Fojtik

15:30-15:55

DMTF CIMI and Apache Deltacloud

Virtualization & Cloud  (Chavanne)

Marios Andreou

16:00-16:55

Infinispan: where open source, Java and in-memory
data grids converge

JBoss.org  (K.3.201)

Manik Surtani

16:15-17:00

Crossdesktop group picture

CrossDesktop  (H.1308)

Christophe Fergeau

16:30-17:00

The (possible) decline of the GPL, and what to do
about it

Legal Issues  (AW1.125)

Richard Fontana

17:00-17:55

RHQ: Recent and future developments in the RHQ
systems monitoring and management framework

JBoss.org  (K.3.201)

Heiko Rupp

17:30-18:00

Panel on Application Stores

Legal Issues  (AW1.125)

Richard Fontana

18:00-18:55

Guvernor/JBPM : Managing workflows and business
rules with Guvnor and the jBPM designer

JBoss.org  (K.3.201)

Geoffrey De Smet, Marco Rietveld

18:00-18:30

Thermostat: Taking over the Java tooling world with
Open Source Software

Free Java  (K.4.401)

Jon VanAlten, Omair Majid

18:20-18:35

PMD5: What can it do for you?

Lightning Talks (Ferrer)

Romain PELISSE

18:30-19:00

Tracing, Debugging and Testing With Byteman

Free Java  (K.4.401)

Andrew Dinn

Sunday

WHEN

EVENT

TRACK & ROOM

SPEAKER

09:00-09:25

Spice "Open remote computing" introduction

Virtualization & Cloud  (Chavanne)

Hans de Goede

09:30-09:55

USB redirection over the network

Virtualization & Cloud  (Chavanne)

Hans de Goede

10:00-10:45

Systems Management with Matahari

Configuration & Systems Management  (K.3.601)

Zane Bitter

10:45-11:15

Boxes, use other systems with ease

CrossDesktop  (H.1308)

Zeeshan Ali (Khattak), Marc-André Lureau

11:00-11:15

Powerful tools for Linux C/C++ developers based on
Eclipse

Lightning Talks (Ferrer)

Andrew Overholt

11:00-11:25

Virtualization Management the oVirt way

Virtualization & Cloud  (Chavanne)

Itamar Heim

11:30-11:55

oVirt Engine Core: Internals and Infrastructure

Virtualization & Cloud  (Chavanne)

Omer Frenkel

11:30-12:00

Can I legally do that?

Free Java  (K.4.401)

Mark Wielaard

12:00-12:25

VDSM - The oVirt Node Management Agent

Virtualization & Cloud  (Chavanne)

Federico Simoncelli

12:30-13:30

OpenJDK on ARM: Quo vadis?

Free Java  (K.4.401)

Andrew Haley

15:00-15:55

Building app sandboxes on top of LXC and KVM with
libvirt

Virtualization & Cloud  (Chavanne)

Daniel Berrange

15:30-16:00

IcedTea and IcedTea-Web

Free Java  (K.4.401)

Deepak Bhole

16:30-17:00

Discussion on the Future of Free Java

Free Java  (K.4.401)

Andrew Haley

Beiträge Chemnitzer Linux-Tage

Das Programm der Chemnitzer Linux-Tage ist ja nun seit 2 Tagen bereits veröffentlicht. Zeit um auch mal auf meine Beiträge hinzuweisen. Ich werde mit zwei Beiträgen auf den CLT vertreten sein und zwar rund um SVG und Inkscape. Am Samstag Nachmittag können Interessierte wieder gemeinsam mit mir Inkscape einige seiner Geheimnisse der Benutzung entlocken. Da ich ja immer bei diesen Workshops ein Zielbild vorgebe, es gibt auch dieses Mal lecker Eiskrem. Auf Grund der Zeit die mir zur Verfügung steht und auch weil hier die Teilnehmerzahl begrenzt ist, plane ich nicht nur Orangeneis sondern auch die Schoko-Nuß-Variante zu zeichnen.

Am Sonntag habe ich dann noch einen Vortrag “Free Your Slides“, den dürften wohl so einige bereits kennen. Inkscape und SVG können eben nicht nur für schicke Grafiken eingesetzt werden. SVG, one of the most underused technologies in website development today, wie Smashingmagazin vor einigen Tagen geschrieben hat. Das man Präsentation in Handumdrehen und ganz einfach und mit schicken Effekten erzeugen kann zeigt dieser Vortrag. Na dann man sieht sich.

P.S. Mein Inkscape – Praxisbuch, sollte bis dahin erschienen sein, eine gute Gelegenheit sich das Autogramm des Autors zu holen. Ich arbeite jedenfalls mit Hochdruck an der Fertigstellung.

GStreamer 0.11 Application Porting Hackfest

I’m in the quiet town of Malaga these three days to attend the GStreamer hackfest. The goal is to port applications over to the 0.11 API which will eventually be 1.0 There’s about 18 people here, which is a good number for a hackfest.

The goal for me is to figure out everything that needs to be done to have Flumotion working with GStreamer 0.11. It looks like there is more work than expected, since some of the things we rely on haven’t been ported successfully.

Luckily back in the day we spent quite a bit of time to layer parts as best as possible so they don’t depend too much on each other. Essentially, Flumotion adds a layer on top of GStreamer where GStreamer pipelines can be run in different processes and on different machines, and be connected to each other over the network. To that end, the essential communication between elements is abstracted and wrapped inside a data protocol, so that raw bytes can be transferred from one process to another, and the other end ends up receiving those same GStreamer buffers and events.

First up, there is the GStreamer Data protocol. Its job is to serialize buffers and events into a byte stream.

Second, there is the concept of streamheaders (which is related to the DELTA_UNIT flag in GStreamer). These are buffers that always need to be send at the beginning of a new stream to be able to interpret the buffers coming after it. In 0.10, that meant that at least a GDP version of the caps needed to be in the streamheader (because the other side cannot interpret a running stream without its caps), and in more recent versions a new-segment event. These streamheaders are analogous to the new sticky event concept in 0.11 – some events, like CAPS and TAG and SEGMENT are now sticky to the pad, which means that a new element connected to that pad will always see those events to make sense of the new data it’s getting.

Third, the actual network communication is done using the multifdsink element (and an fdsrc element on the other side). This element just receives incoming buffers, keeps them on a global buffer list, and sends all of them to the various clients added to it by file descriptor. It understands about streamheaders, and makes sure clients get the right ones for wherever they end up in the buffer list. It manages the buffers, the speed of clients, the bursting behaviour, … It doesn’t require GDP at all to work – Flumotion uses this element to stream Ogg, mp3, asf, flv, webm, … to the outside world. But to send GStreamer buffers, it’s as simple as adding a gdppay before multifdsink, and a gdpdepay after fdsrc. Also, at the same level, there are tcpserversink/tcpclientsrc and tcpclientsink/tcpserversrc elements that do the same thing over a simple TCP connection.

Fourth, there is an interface between multifdsink/fdsrc and Python. We let Twisted set up the connections, and then steal the file descriptor and hand those off to multifdsink and fdsrc. This makes it very easy to set up all sorts of connections (like, say, in SSL, or just pipes) and do things to them before streaming (like, for example, authentication). But by passing the actual file descriptor, we don’t lose any performance – the low-level streaming is still done completely in C. This is a general design principle of Flumotion: use Python and Twisted for setup, teardown, and changes to the system, and where we need a lot of functionality and can sacrifice performance; but use C and GStreamer for the lower-level processor-intensive stuff, the things that happen in steady state, processing the signal.

So, there is work to do in GStreamer 0.11:

  • The GStreamer data protocol has not really been ported. gdppay/depay are still there, but don’t entirely work.
  • streamheaders in those elements will need adapting to handle sticky events.
  • multifdsink was moved to -bad and left with broken unit tests. There is now multisocketsink. But sadly it looks like GSocket isn’t meant to handle pure file descriptors (which we use in our component that records streams to disk for example)
  • 0.11 doesn’t have the traditional Python bindings. It uses gobject-introspection instead. That will need a lot of work on the Flumotion side, and ideally we would want to keep the codebase working against both 0.10 and 0.11 as we did for the 0.8->0.10 move. Apparently these days you cannot mix gi-style binding with old-style binding anymore, because they create separate class trees. I assume this also means we need to port the glib2/gtk2 reactors in Twisted to using gobject-introspection.

So, there is a lot of work to be done it looks like. Luckily Andoni arrived today too, so we can share some work.

After discussing with Wim, Tim, and Sebastien, my plan is:

  1. create a common base class for multihandlesink, and refactor multisocketsink and multifdsink as subclasses of it
  2. create g_value_transform functions to bytestreams for basic objects like Buffers and Events
  3. use these transform functions as the basis for a new version of GDP, which we’ll make typefindable this time around
  4. support sticky events
  5. ignore metadata for now, as it is not mandatory; although in the future we could let gdppay decide which metadata it wants to serialize, so the application can request to do so
  6. try multisocketsink as a transport for inside Flumotion and/or for the streaming components.
  7. In the latter case, do some stress testing – on our platform, we have pipelines with multifdsink running for months on end without crashing or leaking, sometimes going up to 10000 connections open.
  8. Make twisted reactors
  9. prototype flumotion-launch with 0.11 code by using gir

That’s probably not going to be finished over this week, but it’s a good start. Last night I started by fixing the unit tests for multifdsink, and now I started refactoring multisocketsink and multifdsink with that. I’ll first try and make unit tests for multisocketsink though, to verify that I’m refactoring properly.

Red Hat speakers at FOSDEM 2012

In just over 1 week, FOSDEM 2012 is being held in Brussels. This flyer (PDF) is a handy guide to the Red Hat folk who will be giving talks there. (Thanks Máirín Duffy).


Getting started with SELinux

I used to be one of those folks who would install Fedora, CentOS, Scientific Linux, or Red Hat and disable SELinux during the installation. It always seemed like SELinux would get in my way and keep me from getting work done.

Later on, I found that one of my servers (which I'd previously secured quite thoroughly) had some rogue processes running that were spawned through httpd. Had I actually been using SELinux in enforcing mode, those processes would have probably never even started.

If you're trying to get started with SELinux but you're not sure how to do it without completely disrupting your server's workflow, these tips should help:

Get some good reporting and monitoring
Two of the most handy SELinux tools are setroubleshoot and setroubleshoot-server. If you're running a server without X, you can use my guide for configuring setroubleshoot-server. You will receive email alerts within seconds of an AVC denial and the emails should contain tips on how to resolve the denial if the original action should be allowed. If the AVC denial caught something you didn't expect, you'll know about the potential security breach almost immediately.

Start out with SELinux in permissive mode
If you're overly concerned about SELinux getting in your way, or if you're enabling SELinux on a server that has been running without SELinux since it was installed, start out with SELinux in permissive mode. To make the change effective immediately, just run:

# setenforce 0
# getenforce
Permissive

Edit /etc/sysconfig/selinux to make it persistent across reboots:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive

Adjust booleans before adding your own custom modules
There are a lot of booleans you can toggle to get the functionality you need without adding your own custom SELinux modules with audit2allow. If you wanted to see all of the applicable booleans for httpd, just use getsebool:

# getsebool -a | grep httpd
httpd_builtin_scripting --> on
httpd_can_check_spam --> off
httpd_can_network_connect --> on
httpd_can_network_connect_cobbler --> off
httpd_can_network_connect_db --> off
httpd_can_network_memcache --> off
httpd_can_network_relay --> on
httpd_can_sendmail --> on
... and so on ...

Toggling booleans is easy with togglesebool:

# togglesebool httpd_can_network_memcache
httpd_can_network_memcache: active

Now httpd can talk to memcache. You can also use setsebool if you want to be specific about your setting (this is good for scripts):

# setsebool httpd_can_network_memcache on

Tracking your history of AVC denials
All of your AVC denals are logged by auditd in /var/log/audit/audit.log but it's not the easiest file to read and parse. That's where aureport comes in:

# aureport --avc | tail -n 5
45. 01/24/2012 04:23:29 postdrop unconfined_u:system_r:httpd_t:s0 4 fifo_file getattr system_u:object_r:postfix_public_t:s0 denied 1061
46. 01/24/2012 04:23:29 postdrop unconfined_u:system_r:httpd_t:s0 2 fifo_file write system_u:object_r:postfix_public_t:s0 denied 1062
47. 01/24/2012 04:23:29 postdrop unconfined_u:system_r:httpd_t:s0 2 fifo_file open system_u:object_r:postfix_public_t:s0 denied 1062
48. 01/24/2012 14:01:58 sendmail unconfined_u:system_r:httpd_t:s0 160 process setrlimit unconfined_u:system_r:httpd_t:s0 denied 1123
49. 01/24/2012 14:01:58 postdrop unconfined_u:system_r:httpd_t:s0 4 dir search system_u:object_r:postfix_public_t:s0 denied 1124

Summary
There's no need to be scared of or be annoyed by SELinux in your server environment. While it takes some getting used to (and what new software doesn't?), you'll have an extra layer of security and access restrictions which should let you sleep a little better at night.

Getting started with SELinux is a post from: Major Hayden's Racker Hacker blog.

Thanks for following the blog via the RSS feed. Please don't copy my posts or quote portions of them without attribution.

Electricidad Auto-generada - El tranque en las grandes ciudades podrá ahora generar electricidad

La electricidad hoy en día es un componente vital para la sociedad, y los medios de producción de electricidad cada vez son más innovadores. Un nuevo método de generación de electricidad llega asombrando a todos y demostrando que con casi cualquier cosa podemos producir electricidad.

La empresa Israelí Innowattech desarrolló un revolucionario método de generación de electricidad, que utiliza la energía mecánica producida por automóviles, trenes y peatones y la convierte en electricidad. Esta tecnología utiliza unos nuevos tipos de generadores piezoeléctricos, que se instalan debajo de las calles y aceras a través de los cuales se puede generar electricidad sin ninguna alteración notoria del ambiente.

January 25, 2012

Vienna Calling

Im April und Mai ist es wieder soweit, Linux und Open Source tourt durch Österreich. Den Anfang machen die LinuxTage in Graz, welche bereits auf der Suche nach interessanten Beiträgen sind und am 28. April statt finden. Die Einreichungsfrist für Beiträge endet Mitte März. Am 3. Mai geht es dann weiter in Wien und zwar bis zum 5. Mai. Auch hier sind die Macher bereits auf der Suche nach Austellern und Beiträgen.

Die LinuxWochen in Wien haben für dieses Jahr folgende Schwerpunkte im Programm: Audio, Multimedia & Arts (Sound Design, Videoschnitt,…), Content Management, Webanwendungen, Webprogrammierung , Datenschutz, Verschlüsselung, Free Software (Gnu, GPG, Tor, …), Robotik und Steuerung (Arduino, Lego Mindstorm, …), GIS, GeoDaten, OpenData (Grass, OpenStreetMap, QGis, …) , IT Security, Programme für Home und Office PCs (Office, Browser, Email, …), Smartphones Hardware und Software (z.B. Android), Software Entwicklung von Anwendungen bis Embedded Devices, Grafik, Visualisierung, 3D (Gimp, Blender, Inkscape, …), Spieleentwicklung & Game Design & Level Editing, Systemadministration, Cloud & Cluster, Virtualisierung. Bis zum 1. April kann man hier Beiträge einreichen.
Besonders unter dem Punkt Grafik und 3D wird man wohl sehr viel in diesem Jahr finden, da das LibreGraphicsMeeting ebenfalls zu diesem Zeitraum unter dem Dach der LinuxWochen stattfinden wird. Hier treffen sich die Entwickler, wohl nahezu aller bekannten Open Source Programme aus dem Bereich Grafik, um sich auszutauschen. Wer selbst all die schönen Programm wie GIMP, Inkscape, Scribus, Blender, DigiKam, Hugin, Krita, MyPaint, Pitivi und viele andere benutzt und ein kleines Dankeschön dafür geben will, hat hier die Chance. Das LibreGraphicsMeeting hat wie im vergangenen Jahr wieder ein Pledgie, mit dem man das LGM unterstützen kann, das Geld dient zur Unterstützung der anreisenden Entwickler bei den Reisekosten. Leider ist im vergangenem Jahr nicht genügend zusammengekommen, also unterstützt die Entwickler der Programme ;)

Es wird sich also lohnen, an den LinuxWochen in Wien teilzunehmen. Ich selbst werde wohl ganz sicher, wie alle Jahre, wieder vor Ort sein und sicher auch mit Workshops zu Inkscape & Co. und Vorträgen vertreten sein.

FUDCon Margarita 2012: -22 weeks

If you are Spanish-speaking, click on this link to read the Spanish version

I will try to make a weekly post about how is FUDcon planning going on. This will be the first time I organize an event where people from different countries and that’s pretty cool.

For those of you who don’t know what is FUDcon, is the Fedora Users and Developers Conference, a major free software event held in various regions around the world, usually annually per region. FUDCon is a combination of sessions, talks, workshops, and hackfests in which contributors work on specific initiatives. Topics include infrastructure, feature development, community building, general management and governance, marketing, testing and QA, packaging, etc.. FUDCon is always free to attend for anyone in the world so if you’re near, come by :)

I can say that the first -real- planning week for me started right after I arrive to Venezuela from FUDCon Blacksburg. I had an amazing oportunity to watch closely to everything that needs to be done at FUDcons. Even if people sometimes didn’t saw me, I was usually taking notes and making weird plans at sessions, halls and even at the fireplace. Be able to see some FUDcons, and be close to the organizers gave me a different perspective, I’m really grateful for that.

Artwork, yes…

First thing I came up with was design (dohh…) since I know we need a logo that represent us as country. Our logo was created with the base FUDcon logo + 2 cliparts from openclipart.org (which I made some modifications to fit our needs). A Four Puerto Rican (modify) and some Maracas, both from from Jeffryroldan. We are a tropical country and a very colorful one, so that’s why this is our logo :) – High-resolution PNG can be found here and SVG sources here.

Letters and more papers

One of the things that Organize events like FLISoL and others taught me was that, everyone needs a paper to sign or see. First, we need to have something to present the event to potential sponsors, because… things cost money. I used as base part of the letters from FLISoL and adapt them, so I don’t need to work too much on things I already have done. Is not ready, but feel free to take a look (might be in spanish right now, but I ask help to translate.team, so we can re-use it everytime we need to), is not complete since we still doesn’t know exactly what we need, and there are some items to check first, however, I’m sure is a good start.

http://fedoraproject.org/wiki/FUDCon:Margarita2012/Organization/Sponsorship

Since I’m a designer, our brochure (or letters) will need covers and letterheads, so if you want to take a look click here and check them out: https://fedoraproject.org/wiki/FUDCon:Margarita2012/Organization#Artwork

Bills, payments and headaches

I think the chaos starts when you need to pay, or at that moment when you realize that you cannot buy the world. In order to know how much do we need, we must make a list to identify those items that need to be paid. In our case, the list is just starting. If you see that we are missing something, or you have an amazing idea, or just know a sponsor that can take care of this.. PLEASE let me know ASAP.

https://fedoraproject.org/wiki/FUDCon:Margarita2012/Organization#Sponsorship_requests

First week, hotel, college and some potential sponsors are beign contact… work continues to bring you an amazing FUDcon full with knowledge, hard work and friends to spend an awesome weekend in Venezuela.

Note: Now you might be asking yourself: Why is she posting this in english and not spanish? Because i need -some- of our sponsors to know what are we doing in their native language :) If you want to read this in spanish, please link here

prlimit(1)
prlimit(1) is a new util that will be available in util-linux-2.21 (now -rc1). This new util is very nice and flexible command line interface to prlimit(2) Linux syscall (supported since Linux 2.6.36).

prlimit(1) allows to get or set one or more process resource limits for given PID. When a command is given instead of PID, prlimit(1) will run this command with the given resources.

The output is flexible like output from lsblk(8) or findmnt(8). You can define the output columns, use parsable output etc.

See the default output:
  $ prlimit --pid $$
RESOURCE DESCRIPTION SOFT HARD UNITS
AS address space limit unlimited unlimited bytes
CORE max core file size 0 unlimited blocks
CPU CPU time unlimited unlimited seconds
DATA max data size unlimited unlimited bytes
FSIZE max file size unlimited unlimited blocks
LOCKS max number of file locks held unlimited unlimited
MEMLOCK max locked-in-memory address space 65536 65536 bytes
MSGQUEUE max bytes in POSIX mqueues 819200 819200 bytes
NICE max nice prio allowed to raise 0 0
NOFILE max number of open files 1024 4096
NPROC max number of processes 1024 62809
RSS max resident set size unlimited unlimited pages
RTPRIO max real-time priority 0 0
RTTIME timeout for real-time tasks unlimited unlimited microsecs
SIGPENDING max number of pending signals 62809 62809
STACK max stack size 8388608 unlimited bytes
or redefine the output and ask for max number of open files only:
  $ prlimit  --nofile --output RESOURCE,SOFT,HARD --pid $$
RESOURCE SOFT HARD
NOFILE 1024 4096
and now let's modify the soft limit of maximal core file size and maximal number of open files:
  $ prlimit --core=1000000: --nofile=100: --pid $$
the notation used for the limits is:
  soft:hard    specify both limits
soft: specify only the soft limit
:hard specify only the hard limit
value specify both soft and hard limits to the same value
and check the result:
  $ prlimit  --nofile --core --pid $$
RESOURCE DESCRIPTION SOFT HARD UNITS
NOFILE max number of open files 100 1024
CORE max core file size 1000000 unlimited blocks
and revert the core file soft limit:
  $ prlimit --core=unlimited: --pid $$

$ prlimit --core --pid $$
RESOURCE DESCRIPTION SOFT HARD UNITS
CORE max core file size unlimited unlimited blocks
Do you want to restrict CPU time for given command (sort(1) in this example):
   $ prlimit --cpu=10 sort -u hugefile
I think prlimit(1) is much better than the shell built-in command ulimit.

Thanks to Davidlohr Bueso who found time to implement prlimit(1) for util-linux 2.21.
-- In memory of Dennis M. Ritchie
Cerrar sesion Gnome desde consola / terminal

Cuando no tenemos acceso a una sesion grafica de Gnome (2.x), pero tenemos acceso desde una consola y queremos cerrar la sesion, aqui tenemos un resumen de comandos para manipularla o cerrarla:

Guardar y restaurar sesiones:

$ gnome-session-save --logout

Si hay cambios pendientes de guardar en algun documento, seguramente nos pedira confirmacion. Para forzar el cierre de sesion:

$ gnome-session-save --force-logout

Para forzar al dialogo de cierre de sesion:

$ gnome-session-save --logout-dialog

Para forzar al dialogo del apagado del equipo:

$ gnome-session-save --shutdown-dialog

Para obtener un detalle de los programas que se ejecutaran al cargar la sesion:

$ gnome-session-properties

Esto ultimo esta definido en un archivo .desktop que define cada aplicacion a iniciar con sus respectivos parametros.

Estos archivos estan definidos en /usr/share/gnome/autostart y para cada usuario en particular en ~/.config/autostart.

Si alguien tiene probado esto con gnome 3, avisenme si funciona tambien.

 

 

 

 

Identi.ca<iframe class="addtoany_special_service twitter_tweet" scrolling="no" src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fhvivani.com.ar%2F2012%2F01%2F25%2Fcerrar-sesion-gnome-desde-consola-terminal%2F&amp;counturl=http%3A%2F%2Fhvivani.com.ar%2F2012%2F01%2F25%2Fcerrar-sesion-gnome-desde-consola-terminal%2F&amp;count=horizontal&amp;text=Cerrar%20sesion%20Gnome%20desde%20consola%20%2F%20terminal" style="border:none;overflow:hidden;width:130px;height:20px"></iframe><iframe class="addtoany_special_service google_plusone" scrolling="no" src="https://plusone.google.com/u/0/_/%2B1/fastbutton?url=http%3A%2F%2Fhvivani.com.ar%2F2012%2F01%2F25%2Fcerrar-sesion-gnome-desde-consola-terminal%2F&amp;size=medium&amp;count=true" style="border:none;overflow:hidden;width:90px;height:20px"></iframe><iframe class="addtoany_special_service facebook_like" scrolling="no" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fhvivani.com.ar%2F2012%2F01%2F25%2Fcerrar-sesion-gnome-desde-consola-terminal%2F&amp;layout=button_count&amp;show_faces=false&amp;width=75&amp;action=like&amp;colorscheme=light&amp;height=20&amp;ref=addtoany" style="border:none;overflow:hidden;width:90px;height:21px"></iframe>Share

Sharing Fedora values and governance with other great communities

I’m pretty sure that by now, most folks are aware (I haz a big drum that I like to bang)  that one of the areas in Fedora where I focus effort is the Cloud SIG.  Getting involved here has been a pleasure simply from the vast amount of work that we (and by we, I mean, mostly the other people in the Cloud SIG) have gotten done in the past year or two, from getting us out of just having Fedora 8 in AWS, to getting momentum around packaging various cloud-related projects in Fedora. Additionally, in the course of my cloud-related travels and harassments, it’s been my absolute pleasure to be able to get to know a number of Really Smart People in several cloudy communities.

One of the projects that we had focused on getting into Fedora in F16 was HekaFS, or what I always like to refer to as “the filesystem formerly known as CloudFS” (I was really hoping that they’d name it PrinceFS, like the musician, but alas, they did not.) HekaFS is, in short, a set of extensions to GlusterFS that enable it to be more of a cloud-ready filesystem, with security, encryption, multi-tenancy, all that kind of jazz.  And in the end, Red Hat wound up buying Gluster, and we’re all one big happy family now, but it’s been great to see that the Fedora ties we had are continuing to flourish as Red Hat integrates Gluster. John Mark Walker, the “Community Guy” (his words, not mine!) is a good friend of mine that I met in the course of my Cloudy interactions, and it’s been super cool to have him go from being “dude I know in the cloud-i-verse” to a full-fledged co-worker.

The GlusterFS project today announced that they were forming an advisory board, and I’m delighted to see a number of Fedora folks being part of that board.  Jeff Darcy, who worked with the Cloud SIG for months on end in an effort to get HekaFS into Fedora, is on the board, and I’m sure that his vast technical knowledge will be a great asset to them.  Additionally, David Nalley and Greg DeKoenigsberg, both of whom I originally know from Fedora-land, happen to be friends of mine, and have coincidentally moved on to jobs as community leaders/managers/VPs/guys at Cloudstack and Eucalyptus, respectively, have also been named as founding members of the GlusterFS Board.

Without being preachy or *aaS-kissy (ha ha ha! I made a pun!) — I’d just like to say that I think it’s just fabulous to see that Fedora leadership has been tapped to provide guidance and assistance as the GlusterFS project works to define its governance model.  I know that Greg served for some time as a member of the Fedora board, and David is currently in his second stint as a board member. That they have been asked to participate certainly indicates that we’re blessed to have folks in Fedora who are Wise in the Ways of Governance, and I expect that the lessons they have learned from their participation in Fedora will be carried over to Gluster.  And kudos to John Mark for picking great choices, I think you’ve done a great job of picking an excellent spread of folks from a variety of communities who will do a great job as Gluster moves forward.


Tagged: funnyhowthathappened, governance, tehclouuuuuuud!
need some money…

No not for me, for someone else ;) I made a little pledgie for it, for what the money is you can read there or maybe the graphic speaks for it.

libguestfs RHEL 6.3 new preview packages available

Here:

http://people.redhat.com/~rjones/libguestfs-RHEL-6.3-preview/

These are based on libguestfs 1.16.1.


Descomprimir ficheros .rar
Logo no oficial de RARLAB, diseñado
por Fabio Alves.
Para empezar, el formato .rar, pertenece a una empresa llamada RARLAB, donde, como muchos conocen, liberan el tan famoso y usado por muchos en el sistema operativo Windows, el programa WinRAR. El formato no es libre, y por tanto deberemos hacer uso de los repositorios non-free de RPM Fusion... si no lo tienes, quizás debas echarle un vistazo a este post.

Es una lástima que no se fomenten otros tipos de formato como .xz que resultan bastante efectivos y bastante ligeros y, se pueden descomprimir también en Windows mediante el uso de xz desde cmd.exe, pero este post no trata de eso.

Para comenzar, solo debemos instalar este paquete "unrar", y listo. Tengo que recordaros, que solo descomprime y no comprime, dado que rar, es un programa también desarrollado por RARLAB y, tanto WinRAR como rar son shareware, es decir, 40 días de prueba y luego tendrás que hacer un pago, aparte de no estar incluido en los repositorios de RPM Fusion, tendrás que compilarlo e instalarlo bajo tu responsabilidad.

Una vez instalado unrar, podremos descomprimir ficheros unrar, bien con un GUI que descomprime o comprime archivos como Ark en KDE, o File Roller en GNOME o el viejo XArchiver, pero sin olvidarnos del comando original para extraer mediante terminal, unrar.

Aquí os añadimos las opciones más usadas y que se encuentran al comienzo del man de unrar.
  • Extraer archivos en el directorio actual o determinado sin contar con las subcarpetas que se encuentren el archivo comprimido
$ unrar e <archivo.rar> 
$ unrar e <archivo.rar> ~/Descargas
  • Lista o muestra el contenido de un archivo
$ unrar l <archivo.rar>
  • Muestra el fichero en la terminal (no es recomendable si son binarios o ficheros que no sean texto), es como hacer un cat a un binario.
$ unrar p <archivo.rar>
  • Comprueba la integridad de los ficheros
$ unrar t <archivo.rar>
  • Muestra el contenido de los ficheros que hay comprimidos en la consola
$ unrar t <archivo.rar>
  • Extrae ficheros en un directorio determinado contando con las subcarpetas que tenga. (lo contrario a la opción e)
$ unrar x <archivo.rar>
Fuente para los comandos de unrar:  $ man unrar 
FLISoL 2012 up!

The Latin American Festival of Installation of Free Software (FLISoL) event is the dissemination of Free Software in Latin America's largest. Is performed since 2005. Its main objective is to promote the use of free software, making known to the general public philosophy, scope, progress and development.

A tal fin, various open source communities (in each country / city / town), simultaneously organized events where is installed, free of charge and completely legal, free software in computers that carry the audience. Also, in parallel, lectures offered, presentations and workshops, on local issues, about national and Latin American Free Software, the full range of expressions: artistic, academic, empresarial y social.

In Venezuela, FLISoL will be celebrating the day Saturday 28 April as in the rest of Latin America. If you want to be part of FLISoL either as employee or as an organizer, do not forget to look at the official wiki:

http://flisol.info/FLISOL2012/Venezuela

Remember also that in Venezuela, recent 4 years we have made a huge effort to gain exposure to the event, Broadcast flag becoming across the continent. Check also eventually put all the resources at your disposal, and remember that this servant; who is not responsible for Caracas this year, always there to lend a hand :)

This year I will focus on an international level to help both design tasks, Advertising, international marketing and sponsorship; using that experience that was to carry the baton of the past in Venezuela FLISoL 4 years. Again, I thank all the support they have given me always :)

Date: 28 April
Website: http://flisol.org.ve
twitter: @flisolve
Identi.ca: @flisolve
Flickr 2011: Flisol 2011

Emacs and Common Lisp, Part 2

This is a followup to my earlier post on converting the Emacs C code into Common Lisp.  This one is a bit more technical, diving into some specifics of the conversion process.

Basics

One important fact is that we do not need to convert an arbitrary C program to Common Lisp.  This might or might not be efficiently possible — but we do not care.  We only need to convert Emacs.  This is simpler for two reasons.  First, we can just ignore any C construct that Emacs does not use.  If the translator barfs after some new update, we can fix it then.  Second, Emacs itself is already written in a relatively Lispy style, being a Lisp implementation itself.  We further exploit this by allowing the translator to know some details about Emacs.  As a trivial example, all the Smumble globals created by the DEFUN marco need not be translated into Common Lisp as structure constants — they are an artifact of the implementation, and will show up directly in the generated defuns instead.

What to ignore

A good portion of Emacs is simply redundant in the CL world.  There are a few types (cons, vector, integers, functions) that are shareable — in fact, sharing these is part of the goal of this effort.  There are also a number of functions which are effectively identical.  There are also entire redundant modules, like the garbage collector, or the bytecode interpreter.

The question is how to have the translator differentiate between what is useful and what is not, without breaking builds of future versions of Emacs.

I don’t currently think there is a high road to solving this problem.  For modules like the GC, I plan to have ad hoc translator rules for the particular source files.  For functions and data types, I’m adding new GCC attributes that I can use to mark the ignorable definitions.

Types

There are two type-related issues that arise when translating the source.

First, how should Emacs-specific types be represented?  Primarily these types are structures, like struct buffer or struct string (we cannot use the CL string type, because Emacs adds properties directly to the string, and Emacs has its own idiosyncratic character handling).  My answer here is to just straightforwardly translate them to defstruct.

The other question is when translating a C function, what do we do with the types of local variables?  For the most part I am pretending that they don’t exist.  This works fine except for local arrays and structures, but these are easily handled by initializing variables properly. My rationale is that while this is slower, it lets me get something working more quickly, and we can always update the translator to emit CL type declarations later on.

This simple approach doesn’t actually cover all the needed cases.  For example, there is code in Emacs that takes the address of a local variable and passes it somewhere.  This is easy to deal with; much of the remaining work is just digging through the code looking for special cases to clean up.

I’m similarly omitting type declarations from the generated structures.  One possible nice side effect of this approach is that it will make it easier to lift Emacs’ file-size restrictions, because there will no longer be any code assuming that the size is a fixnum.

Macros

Many low-level details of the Emacs implementation are hidden in macros.  For example, Emacs stuffs some type information into the low-order bits of pointers.  It uses macros to add or remove this information.  For this build, I redefine these macros to do nothing.  This makes the GCC Gimple representation much closer to the abstract meaning of the program, and thus simpler to translate.

There are also some macros that are useful to redefine so that we can more easily hook into them from the translator.  For example, Emacs has a C macro INTEGERP that is used to check whether its argument is an integer.  Normally this macro uses bit twiddling to get its answer, but I redefine it like so:

#undef INTEGERP
extern Lisp_Object *INTEGERP (Lisp_Object)
    __attribute__((lisp_form("integerp")));

Example

The translator is not nearly complete, but it can already do a fair job at translating simple functions.  For example, here is “forward-point” from the Emacs C code:

DEFUN ("forward-point", Fforward_point, Sforward_point, 1, 1, 0,
       doc: /* Return buffer position N characters after (before if N negative) point.  */)
  (Lisp_Object n)
{
  CHECK_NUMBER (n);

  return make_number (PT + XINT (n));
}

Here is what the translator comes up with:

(defun Fforward_point (n)
  (let (
    temp-var-0
    Qintegerp.316
    temp-var-1
    current_buffer.317
    temp-var-2
    )
    (block nil (tagbody
      bb-0
        ; no gimple here
      bb-1
        ; no gimple here
      bb-2
        (setf temp-var-0 (integerp n))
        (if (== temp-var-0 nil)
          (go bb-3)
          (go bb-4))
      bb-3
        (setf Qintegerp.316 Qintegerp)
        (wrong_type_argument Qintegerp.316 n)
      bb-4
        (setf current_buffer.317 current_buffer)
        (setf temp-var-2 (buffer-pt current_buffer.317))
        (setf temp-var-1 (+ temp-var-2 n))
        (return temp-var-1)
  ))))

(defun elisp:forward-point (arg0)
  (Fforward_point arg0))

The output looks pretty weird, because the translator works after GCC’s CFG is built, and so the most straightforward translation is to use this mess with tagbody.  I doubt this matters much, but in any case the translator is readily hackable — it is still less than 400 lines of Python, including comments.

One thing to note is the translation of “PT“.  This is actually a macro that refers to the current buffer:

#define PT (current_buffer->pt + 0)

The translator properly turns this into a reference to “buffer-pt“.

Another detail is the handling of packages.  My plan is to put the Emacs implementation into one package, and then any elisp into a second package called “elisp“.  A DEFUN in the C code will actually generate two functions: the internal one, and the elisp-visible one; hence the “elisp:” in the translation.

Next Steps

There’s still a good amount of work to be done.  The converter punts on various constructs; type translation is implemented but not actually wired up to anything; the translator should emit definitions for alien functions; and plenty more.

Fedora 16 Verne Caffeine Kurulumu




Merhabalar ;
Dün gece uyku tutmadı bende Caffeine kurmaya karar verdim. Yanlız GNOME3'e kurmak KDE'e kurmaktan daha uzunmuş onu öğrendim.Herneyse Caffeine programı ekran koruyucu ve güç yönetimi üzerinde durdurma ve başlatma yetkisine sahip bir program tek tıklama ile açık/kapalı konuma geçebilir flash video izlerken veya Film izlerken ekran koruyucusunun devreye girmesini engellemek mümkün.Sadece bununlada sınırlı değil. İstediğimiz programlar açıkkende devereye girmesini önlemek mümkün.Örnek vermek istersem Mozilla veya başka bir uygulama açıkken ekran koruyucu devreye girmesini istemiyorsak listeye eklemek yeterli olucaktır.

KDE ve Gnome3 ile arasındaki farklı duruma gelince KDE'in sabit bir paneli olduğundan Caffeine bunu tanımakta zorluk çekmiyor.Ancak Gnome3'deki AppIncadator 3 adında bir panel kontrolü var.Bunu caffeine tanımayamıyor ve bu yüzden GTK arayüzü yani sağ tıklama yapınca açamıyoruz.Uygulama geliştirenlerde bununla ilgili bir patch yapmamış ama OpenSUSE 12.x depolarında SRC RPM (Kaynak RPM) alırsak patch'in mevcut olduğunu görücez. Şimdi kuruluma geçelim.

ftp://ftp.icm.edu.pl/vol/rzm2/linux-opensuse/source/factory/repo/oss/suse/src/caffeine-2.4.1+419-1.1.src.rpm

Burdan Caffeine SRC rpm indirdik. Terminal açtık ve root olduk. SRC rpm benim şartlarımda "Downloads" dizininde

Kod:

cd Downloads/
su
password: 
#rpm -ivh caffeine-2.4.1+419-1.1.src.rpm

ROOT Olduğumuzdan /root/ dizininde "rpmbuild" adında bir dizin meydana gelicektir.
Bu kısımdan devam ediyorum ve root olarak devam ediyorum.

Kod:


tar -zxvf /root/rpmbuild/SOURCES/caffeine_2.4.1+419~oneiric1.tar.gz
cd /root/rpmbuild/SOURCES/recipe-2.4.1+419/
chmod +x setup.py
./setup.py build
./setup.py install



Bu kısımda KDE ile kurulumu tamamlıyoruz.Ancak GNOME sistem varsa burda PATCH yapmamız gerekiyor bunun içinde ; ROOT olarak tabiki ;

patch /usr/lib/python2.7/site-packages/caffeine/main.py /root/rpmbuild/SOURCES/caffeine-add-indicator-menu.patch

Kurulum ve Patch tamamlandı. Tabiki KDE sistem varsa bu şekilde "PATCH" ( Yama ) yapmamız gerekmiyor. Ancak GNOME sistemdeki ufak bug bizi böyle bir patch yapmamızı gerektiriyor.Evet artık Caffeine programını çalıştırabilir ve kullanabiliriz.

Açlışa eklemek için ;

Terminal üzerinden normal kullanıcı olarak ;

gnome-session-properties

Yazıyoruz ve  caffeine programı konumu ;

/usr/bin/caffeine

Bunu komut kısmına ekleriz ve isim kısmınada "Caffeine" yazabiliriz. Artık açılışda açılcaktır.

2.Yol ;

terminal üzerinden caffeine yazarak programı açarak , ayarları kısmına gelinir ve ;

"Start Caffeine on login"

Seçeneğini işaretleyerekde açılaşa ekleyebiliriz.


Teşekkür Ederim
Onuralp SEZER
Fedora Ambassador Turkey

Hanthana Linux Download stats from the Sourforge.net

Here is the download statistics from the SourceFourge for the period of 1st  of  January 2012 to 25th of January 2012. The total downloads for the period was 263 while Philippines listed as the leading country with 20% of downloads.

List of Top downloading countries for the last 25 days
Country Downloads
1. Philippines 48
2. Sri Lanka 41
3. Israel 27
4. Canada 26
5. Germany 23
6. United States 23
7. United Kingdom 10
8. Italy 8
9. Czech Republic 4
10. Portugal 3


Full List of countries from the download stats for the period of 1st Jan 2012 to 25th Jan 2012.

Please note that Hanthana Linux is hosted at two servers within the Sri Lanka. So, we could not calculate the exact download statistics from the Sri Lanka and also the ibiblio also providing hosting service for the Hanthana Linux over their servers around the world.

Here is the overall download statistics from the Sourceforge since the very first release.

Total Downloads: 3650


Top 10 countries who dowloaded Hanthana Linux from the Sourceforge.

Country Downloads
1. Sri Lanka 1,448
2. United States 420
3. Germany 113
4. United Kingdom 100
5. Canada 97
6. France 63
7. Brazil 56
8. Philippines 53
9. Italy 52
10. Russia 49

Visit following URL to check the full list of countries and feel free to change the date range to get information for a  selected period.

http://sourceforge.net/projects/hanthana/files/stats/map?dates=2009-11-20+to+2012-01-25




Calling libguestfs from Javascript

In libguestfs 1.16 we added experimental GObject bindings and support for GObject Introspection. These are experimental because we may change them a little in future. They do allow you to access libguestfs from Javascript, specifically from gjs.

Here is an example program (fixed and updated):

const Guestfs = imports.gi.Guestfs;

function inspect (filename)
{
    var g = new Guestfs.Session ();

    //g.set_trace (true);

    var optargs = new Guestfs.AddDriveOpts ({readonly: true});
    g.add_drive_opts (filename, optargs);

    g.launch ();

    var roots = g.inspect_os ()
    if (roots.length == 0)
        printerr ("inspection: no operating systems found in", filename);
    else {
        for (var i = 0; i < roots.length; ++i) {
            inspect_root (g, roots[i]);
        }
    }
}

function inspect_root (g, root)
{
    print ("inspecting operating system root", root);

    print ("  product name:", g.inspect_get_product_name (root));
    print ("  version:",
           g.inspect_get_major_version (root),
           g.inspect_get_minor_version (root));
    //print ("  type:", g.inspect_get_type (root));
    print ("  distro:", g.inspect_get_distro (root));

    // Mount up the disks like guestfish -i
    var mps = g.inspect_get_mountpoints (root);
    var keys = [];
    for (var key in mps) { keys.push (key); }
    function compare (a, b) {
        if (a.length > b.length) return 1;
        else if (a.length == b.length) return 0;
        else return -1;
    }
    keys.sort (compare);

    for (var i = 0; i < keys.length; ++i) {
        g.mount_ro (mps[keys[i]], keys[i]);
    }

    // Get the list of applications.
    print ("  applications:");
    apps = g.inspect_list_applications (root);
    for (var i = 0; i < apps.length; ++i) {
        print ("    ", apps[i].app_name,
               apps[i].app_version, apps[i].app_release);
    }

    g.umount_all ();
}

if (ARGV.length != 1) {
    printerr ("Usage: gjs test.js disk.img");
} else {
    inspect (ARGV[0]);
}

HOGGburger
HOGGburger by Ankur Sinha: FranciscoD
HOGGburger, a photo by Ankur Sinha: FranciscoD on Flickr.

HOGGburger!


Welcome to the new blog
Welcome to Fedora Rules, a blog about Fedora, then coolest Linux Distribution out there.

I have moved my blog from http://fedora.rasmil.dk a self maintained wordpress instance to Blogger, because I will spend my time creating content and not on site management. :)