June 19, 2013

Día Mundial del Software Libre Tijuana 2012

El pasado 22 de septiembre celebramos el Día Mundial del Software Libre 2013 en la ciudad de Tijuana, México. Fue organizado por el Grupo de Usuarios GNU/Linux de Tijuana, al cual pertenezco. El evento se llevó acabo en el BitCenter Tijuana, desde las 8:30 am hasta las 4:30 pm, para terminar entre los organizadores y demás gente que quiso ir celebrando en el Le Conteiner.

Las conferencias otorgadas fueron las siguientes:

Hora Conferencia Conferencista
8:30 Inauguración y presentación del GULTIJ Rubén Guerra (biker)
9:00 El futuro del desarrollo móvil: Android Daniel E. Moctezuma (dmoctezuma)
10:00 Hospedaje de proyectos en Google Code Josué Basurto
11:00 IPV6 Octavio Álvarez (alvarezp)
12:00 Comida
13:30 Linux USB Device Drivers Esaias Pech (epech)
14:30 Marshmellow Game Engine: Consola Libre Guillermo Amaral (gamaral)
15:30 El Proyecto Yocto Juan Aranda (jaranda)
14:30 Clausura Rubén Guerra (biker)

El evento salió mejor de lo que esperábamos! Asistieron apróximadamente 150 personas, y hubo muy buena participación de la gente. Aparte de las conferencias, hubo un hackaton en el cual el Google Developers Group de Tijuana otorgó un Google TV al primer lugar, también hubo un booth en donde se presentaron un beaglebone y un microcontrolador Freescale usando Linux, y se mostró la película libre de Sintel corriendo a 1080p en ellos. Además, la comida fue patrocinada para todos los asistentes por Globalísimo y por tudominiohoy.

Entre el swag que regalamos, el Proyecto Fedora nos patrocinó discos y calcamonías para regalar, PC-BSD también nos mandó discos, pulseras, y diademas de diablitos que prenden :P También la fundación del SFD nos mandó una lona, calcamonías y globos para adornar el evento. Todo esto se acabó de volada, fueron un gran hit. El año que viene quiero hacer un evento aún más grande, con más conferencistas y tal vez de dos días, y en dos años si sigo aquí, me gustaría realizar un evento a nivel nacional.

También quiero agradecer a Armando Calderón por transmitir el evento por radio, al BitCenter por prestarnos el lugar, y al Google Developers Group Tijuana por apoyarnos en este evento.

En conclusión, el evento salió al 120 % :D Me encanta convivir con mis amigos geeks y me gusta mucho difundir la filosofía del Software Libre y el Hardware Libre. Todo lo hago con gusto y sin ningún fin de beneficio propio. He conocido mucha gente maravillosa en este mundo, y agradesco a todos por apoyarme y ayudarme en todo lo que he necesitado. Gracias linuxeros y personas libres!

Les dejo unas fotos del evento, pueden ver todas las fotos tomadas en party mode en google plus:

https://plus.google.com/events/clkrl8adlgj5toe87mfbqn59j1c   

y obviamente celebrando :D

Como comentaba arriba, todas las fotos las pueden ver en Google+.

saludos y nos vemos el próximo año! :)

SCALE 11x

El fin de semana pasado, del 22 al 24 de marzo, se realizó la 11va edición del Southern California Linux Expo (Expo de Linux del Sur de California, SCALE para abreviar). Es la primera vez que yo asisto a este evento, y también el evento más grande al que yo he asistido (aprox 2300 personas). El evento es en Los Ángeles, California, y son varias conferencias simultaneas durante todo el día. Las conferencias las hay de diversos temas, desde niveles muy básicos como qué es linux, cómo pedir ayuda en la web, hasta talleres y temas avanzados como secure boot, git, impresoras 3D, y muchas más! Fueron alrededor de 90 conferencias ;) También hubo varios Birds of Feather, que para los que no sepan, un birds of feather son reuniones informales que se hacen para platicar sobre algún tema. Por mencionar algunas, hubo de Raspberry Pi, de Programación Funcional, de Open Cloud, de ideas sobre instalación de paquetes desde la red, entre muchas otras.

Aparte de todo esto, hubo dos grandes auditorios en los que hubo exposición de varias empresas y comunidades, como HP, Mozilla, VideoLAN, System76, Canonical, entre muchas otras. Obviamente también hubo una de Fedora, y es ahí donde estuve yo participando. Fue mi primera experiencia en un evento grande estando yo en el booth de Fedora, y les diré que fue una muy genial experiencia. Conocí otros embajadores, como a douglax, vwbusguy, herlo, suehle, y a nuestra amada líder, rbergeron. Me dió mucho gusto conocer a todos :D En el booth teníamos dos o tres computadoras corriendo Fedora 18, dos Raspberry Pi corriendo Fedora Raspberry Pi Remix, y una XO de la OLPC (One Laptop Per Child). Aparte de swag dimos calcamonías, DVDs, camisetas y gorras.

La participación fue enormemente buena. No hubo un sólo momento en el que no hubiera gente en el booth. En uno de los Raspberry Pi estábamos corriendo un emulador de SNES con el Super Mario Bros. 2. Esto fue un hit para los niños (es correcto, había varios padres geeks que llevaron a sus hijos al evento, bien papás y mamás! you are doing it right!) y también para los no tan niños (como yo :P ). También llegó mucha gente muy emocionada que llegaba y nos decía que ellos llevaban usando Fedora durante bastante tiempo. Algunos cuantos llegaban con sus laptops y nos pedían ayuda de algunos problemas técnicos que tenían, de los cuáles muchos eran problemas de gnome o kde :P pero igual les ayudábamos (: Y como no podía faltar, también llegó mucha gente que se quejaba de algunas funciones o características de Fedora. Creo que lo que más quejas recibió fue el nuevo instalador de Fedora (creo que es una versión nueva de anaconda), que siendo honestos a mi tampoco me gustó mucho =/ Algunas otras quejas fue que algunos no podían instalar Fedora con secure boot activado, que no les funcionaba cierta característica de su compu (en las cuales tratamos de ayudar y logramos arreglar algunas cosas), y algunos detalles menores.

Entre las cosas positivas que nos dijeron es que fuimos de los más amables y platicadores de los booths, que somos una distro muy buena que siempre hay alguien dispuesto a ayudar (no estoy mintiendo), que el swag que dimos era muy bueno, entre muchos otros cumplidos (: Se hace también como un concurso de booths, de cuál es la que da el mejor swag (que ganó HP porque dieron cerveza :P ), los de mejor disfraz, y algunas otras categorías. Fedora ganó mención honorable debido al trato con la gente :) así que bien fedora! Pero lo que a mi más me llamó la atención, fueron dos niñitas que llegaron (una como de 7 años y la otra como de unos 4),., iban cargando sus mochilas de barby, y una de ellas viene y me dice con su linda voz (en inglés): Yo uso fedora todo el tiempo, mi papá nos los instaló, y jugamos y hacemos muchos dibujos". Me sentí tan conmovido por la niña, que fui a buscar a su papá y lo felicité con todas las ganas del mundo, y él me respondió: Yo sólo les enseño lo que pueden hacer, y ellas son las que quieren quedarse con ello". Es un muy buen ejemplo de que Linux no es lo difícil que solía ser antes, y que incluso niños lo usan para diferentes fines. Me sentí muy feliz con esto :D

También hubo un momento en el que llegó un señor con sus dos sobrinos (como de unos 20 años). Iban vestidos muy extravagantes al estilo country boys mezclado con gitanos jaja, una vestimenta muy rara y a la vez genial. Empezaron a tocar justo enfrente de nuestro booth. El señor tocaba el cerrucho (así como lo oyen, el cerrucho), y los sobrinos uno tocaba la mandolina y el otro el teclado. Tocaban música muy alegre. Justo unos instantes después llegó vwbusguy con su mandolina y empezó a acompañarlos, y no mucho después me prestaron el teclado (el del teclado agarró una especie de alcancía y le pegaba con un palito de madera) y empezamos a jamear. Mucha gente se acercó a oir y muchos incluso nos grabaron. Fue algo bien genial!!!!

También me tocó conocer mucha gente de Red Hat, que para mi fue un honor, ya que Red Hat es una de las empresas en las que me gustaría trabajar, por las cosas que hacen y por que son una empresa púramente de Software Libre. En fin, si quieren saber más sobre las conferencias que hubo, ver algunos videos y otras cosas, el link de SCALE11x es: http://www.socallinuxexpo.org . Es un evento que se hace cada año, y lo recomiendo mucho! así que si van,., nos veremos ahí el siguiente año!

Muchas gracias al Proyecto Fedora por patrocinarme el viaje :) espero poder asistir a muchos eventos más! un saludo a todos!

fedora scale11x

En el siguiente video, el booth de Fedora es el que más se ve: el más cercano de la esquina vienod hacia acá.

<iframe allowfullscreen="" frameborder="0" height="480" src="http://www.youtube.com/embed/b4rcpHNOZ_o?rel=0" width="640"></iframe>
Mir, the Canonical CLA and skewing the playing field
Mir is Canonical's equivalent to Wayland - a display server, responsible for getting application pixmaps onto a screen. It's intended to scale from mobile devices to the desktop, and as such is expected to turn up in Ubuntu Phone before too long[1]. There's already plenty of discussion about whether the technical differences between Wayland and Mir are sufficient to justify Canonical going their own way, so I'm not planning on talking about that.

Like many Canonical-led projects, Mir is under GPLv3 - a strong copyleft license. There's a couple of aspects of GPLv3 that are intended to protect users from being unable to make use of the rights that the license grants them. The first is that if GPLv3 code is shipped as part of a user product, it must be possible for the user to replace that GPLv3 code. That's a problem if your device is intended to be locked down enough that it can only run vendor code. The second is that it grants an explicit patent license to downstream recipients, permitting them to make use of those patents in derivative works.

One of the consequences of these obligations is that companies whose business models depend on either selling locked-down devices or licensing patents tend to be fairly reluctant to ship GPLv3 software. In effect, this is GPLv3 acting entirely as intended - unless you're willing to guarantee that a user can exercise the freedoms defined by the free software definition, you don't get to ship GPLv3 material. Some companies have decided that shipping GPLv3 code would be more expensive than either improving existing code under a more liberal license or writing new code from scratch. Android's a pretty great example of this - it contains no GPLv3 code, and even GPLv2 code (outside the kernel) is kept to a minimum.

Which, given Canonical's focus on pushing Ubuntu into GPLv3-hostile markets, makes the choice of GPLv3 an odd one. This isn't a problem as long as they're the sole copyright holder, because the copyright holder is obviously free to ship their code under as many licenses as they want. But Canonical still aim to foster community involvement, and ideally that includes accepting external contributions to their code. If Canonical simply accepted those contributions under GPLv3 then they'd no longer have the right to relicense the entire codebase, so any contributions are only accepted if the contributor has signed a Contributor License Agreement.

Canonical's CLA is pretty simple. In essence, it grants Canonical the right to use, modify and distribute your code, and it grants Canonical a patent license under any patents you own that may cover the code in question. But, most importantly, it grants Canonical the right to relicense your contribution under their choice of license. This means that, despite not being the sole copyright holder, Canonical are free to relicense your code under a proprietary license.

Given Canonical's market goals, this makes sense. They can relicense Mir (and any other GPLv3 projects they own) under licenses that keep their hardware partners happy, and they can ship in the phone market. Everyone's a winner.

Except, if Canonical want to ship proprietary versions, why not just license Mir under a license that permits that in the first place? This is where the asymmetry comes in. The Android userland is released under a permissive license that allows anyone to take Google's code, modify it as they wish and ship it on whatever hardware they want. I could legally start a company that provided customised versions of Android to phone vendors without them having any GPLv3 concerns. I won't be able to do that with Ubuntu Phone.

I'm a fan of GPLv3. I think the provisions it contains to support user freedom are important. I hate the growing trend of using free software to build devices that are, effectively, impossible for the end user to modify. If Canonical were releasing software under GPLv3 because of a commitment to free software then that would be an amazing thing. But it's pretty much impossible to square the CLA's requirement that contributors grant Canonical the right to ship under a proprietary license with a commitment to free software. Instead you end up with a situation that looks awfully like Canonical wanting to squash competition by making it impossible for anyone else to sell modified versions of Canonical's software in the same market.

Canonical aren't doing anything illegal or immoral here. They're free to run their projects in any way they choose. But retaining the right to produce proprietary versions of external contributions without granting equivalent reciprocal rights isn't consistent with caring about free software or contributing to the wider Linux community, especially if it means you get to exclude those external contributors from the market you're selling their code into.

(Edit to add: a friend in the contracting industry points out that it also prevents vendors who won't ship GPLv3 from using external contractors to work on Mir - they have to go to Canonical, because only Canonical can relicense contributions under a proprietary license.)

[1] Right now Ubuntu Phone is using Surfaceflinger, the Android display server, but that's apparently just an interim solution.

comment count unavailable comments
openstack name changes

dear #openstack people.

I just read

http://osdir.com/featured/openstack-cloud-computing

From now on you will stop it with the cutsie naming.

the network bits will be called ‘network’
the compute bits will be called ‘compute’
the block storage will be called ‘blockstore’
the object store will be called ‘objectstore’
the authn/z bits will be called ‘authenticaton’
the image storage will be called ‘imagestore’

If there are other major components you need – they will named precisely based on what they are.
If you rev those pieces in major ways you will just iterate the major version number.

If you cannot cope with these rules someone is going to drop heavy things near your toes.

You have used up all your name change turns. You are done.


Fedora ARM Install & Customization

arm.0

arm.1

arm.2

arm.3

arm.4

arm.5


Escuela Fedora: Diseño / Fedora School: Desing
El día 15 de Junio se realizo la sexta seción de la Escuela Fedora Nicaragua, el tema de esta charla fueron las herramientas de Diseño Libre y brindar una rápida introducción sobre el equipo de diseño de Fedora:

On June 15 was held the sixth secion Nicaragua Fedora School, the subject of this talk were free design tools and provide a rapid introduction to the Fedora design team:

Comparto las diapositivas del evento:

I share the slideshow of the event:

<iframe class="scribd_iframe_embed" data-aspect-ratio="1.33431952662722" data-auto-height="false" frameborder="0" height="600" id="doc_68294" scrolling="no" src="http://www.scribd.com/embeds/147935490/content?start_page=1&amp;view_mode=scroll&amp;access_key=key-29a9azrnpup2ib2pna3d&amp;show_recommendations=false" width="100%"></iframe> <iframe class="scribd_iframe_embed" data-aspect-ratio="1.33431952662722" data-auto-height="false" frameborder="0" height="600" id="doc_17814" scrolling="no" src="http://www.scribd.com/embeds/147935493/content?start_page=1&amp;view_mode=scroll&amp;access_key=key-1qhxs9w2goxa496n2fvp&amp;show_recommendations=false" width="100%"></iframe> <iframe class="scribd_iframe_embed" data-aspect-ratio="1.33431952662722" data-auto-height="false" frameborder="0" height="600" id="doc_71108" scrolling="no" src="http://www.scribd.com/embeds/148784238/content?start_page=1&amp;view_mode=scroll&amp;access_key=key-1ys3bcpk6t5yqanfyfeu&amp;show_recommendations=false" width="100%"></iframe> Y fotos de la actividad

And pictures of the activity




Drawing water drops with Inkscape

I am taking a graphic design course and one of the assignements received was to remake the logo of a well known soft drink (for the purpose of this tutorial I replaced that logo with something else, as this is not the place for unpaid advertising, especially for products I don't use nor endorse). Is a trivial task with Inkscape, so I decided to enrich it with some water drops, as at the final exam I can show my skills and get a higher grade. For the exam I can't provide a SVG, will have to import/convert it in a proprietary format (such is life...), but Inkscape is my tool of choice so I m sharing the process here.

Initially, the lazy me wanted the short way, learn how others are doing it and there is an Inkscape rain drops tutorial already made by heathenx (thanks buddy, you rock!) which I used to a pretty result. Still, I didn't love it, just liked it.

inkscape waterdrops

Then I played with more variations, trying to make it more realistic, but liked the result even less, probably due to the softer edges. I went back to the heathenx way, not perfect, but good enough for a mere exam (without false modesty, for which I am already overqualified).

inkscape waterdrops

It was all well until yesterday evening when waiting for the subway I looked at a soft drinks poster, it had a photo with water drops added on top. Looking close, I saw the drops are clearly vector drawings (put on a photo) so I understood what I have to do: simplify, simplify, simplify. Now my homework looks like this:

inkscape waterdrops

How To

The first step is to draw, using Beziers, a random rounded blob.

inkscape waterdrops

If yor hand is not trained enough for this, draw it with straight lines, we will round it later.

inkscape waterdrops

Select all nodes and make it smooth with the toolbar button, you have a rounded blob now.

inkscape waterdrops

read more

Fedora 19: Änderungen am grub2 Paket
Bitte beachten Sie auch die Anmerkungen zu den HowTos!

Mit dem Update des grub2 Paketes auf die Version 2.00-18.fc19 wurden die bislang im grub2 Paket enthaltenen Themes in das grub2-starfield-theme Paket ausgelagert, um Platz auf den Live-CDs einzusparen.

Wer nach dem Update von grub2 wieder die klassische, schwarz-weiße Optik hat, muss nur die beiden folgenden Schritte ausführen, um grub2 wieder mit dem Fedora-Theme zu nutzen:

su -c'yum install grub2-starfield-theme'
su -c'grub2-mkconfig -o /boot/grub2/grub.cfg'

Nachdem diese Schritte ausgeführt wurden, erstrahlt grub2 beim nächsten (Neu)Start des Systems wieder in der gewohnten Optik.

My interview on the Dave and Gunnar Show

David Egts and Gunnar Hellekson were kind enough to invite me to participate in their Dave and Gunnar Show podcast during the 2013 Red Hat Summit. We talked about Red Hat Enterprise Linux and my takeaways from the Summit.

The podcast episode [32MB] is about 34 minutes long and my interview starts after the 21 minute mark. I’m always nervous when I do these things so you’re certainly not allowed to poke fun at my accent. ;)

David and Gunnar Show - Episode 16

Gunnar Hellekson (left) and David Egts (right)

My interview on the Dave and Gunnar Show is a post from: Major Hayden's blog.

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

CWE Coverage for Red Hat Customer Portal
http://securityblog.redhat.com/2013/06/19/cwe-coverage-for-red-hat-customer-portal/
Australia's war on brains (and immigration)

Some weeks ago, our Prime Minister was slashdotted when she suspended her usual racist attacks on refugees to attack foreign IT workers and the companies that employ them with absurd accusations of "rorts" and "stealing" jobs.

Today, she's introduced new laws in the parliament aiming to further bastardization of intelligent, skilled and educated workers and anybody who associates with them, including Australian employers.

Unwarranted attention on a minority of IT workers

This is not just some random bill before the parliament. There are just two weeks left before the parliament concludes and an election campaign begins. It is clear that what we are seeing now is the Real Julia coming though, choosing to make the small minority of foreign workers in our country at the center of people's thoughts as they go to vote in September.

A debt of gratitude to foreign workers

These verses from our national anthem, Advance Australia Fair say a lot about how Australia became what it is today:

For those who've come across the seas

We've boundless plains to share;

With courage let us all combine

To Advance Australia Fair.

The last 200 years of Australia's history has been a story of immigration. It is not something to be afraid of: our forefathers celebrated it.

Foreign workers: why Australia needs you

Australia has had some appalling flops in IT and engineering:

There is no doubt in my mind that additional foreign workers would have made a positive contribution to all of these problems or can do so in the future.

The sun never sets on IT

Every day, I collaborate with dozens of IT specialists all over the world through the virtual workplace that is the Internet, particularly in the free and open source software community. Many of these people, I've never even met and in most cases I don't even know where they are, where they were born or what is the colour of their skin. Those details wouldn't make any difference to the way that we work in IT today.

How many IT managers have time to waste dealing with more real world bureaucracy when they've experienced online, global productivity? How many IT workers feel demotivated by having to explain trivial details about their personal life to a Government bureaucrat who doesn't understand their skills and just looks at their colour?

If you think about it, any immigration officer who really understands IT wouldn't be an immigration officer. They would be working in IT themselves. Immigration officers, who don't understand IT, are now going to be further empowered to bully companies away from employing some talented workers on the basis of race or nationality. Hiring managers will be intimidated into these prejudiced and biased decisions by delays, processing fees and invasive demands for sensitive documents about business planning and recruitment strategies.

Australia's immigration system already has a horrendous reputation. Any visa application seems to take more than a year: no small company can keep a job position vacant that long. Families can't plan their children's schooling. Other life events come and go. There are exhorbitant fees, 1000% higher than in other western countries. Fewer and fewer self-respecting skilled workers are willing to put their spouses and children through the degrading medical examinations.

Judging the impact of poor immigration policy

While the economic impact of this immigration mess on industry is hard to quantify with an exact figure, we can take some insight from the education system. As the visa system has been hijacked by racists over the last 10 years, there has been a dramatic fall in participation (and revenues) from foreign students. In one year, enrolments (and revenue) fell 30%. This is not just bad for the balance sheets of the universities, it also means that in a future where commerce is global, Australians are more and more isolated and inexperienced culturally.

IT workers and their employers have plenty of choices: Australia's close neighbor, Singapore, is one of them. Visas are granted in 2 weeks, no degrading medical exam required, low taxes and tropical sunshine all year round. Many companies that find it impractical to deal with Australia's bureaucracy end up moving their best Australian workers to places like Singapore to be part of a global team. This can't be good for the workforce that is left behind without jobs.

The training delusion

Government officials continue to rant and rave about companies failing to train Australian workers. The new laws supposedly force companies to "fix" this problem and train Australian workers.

This, too, is a delusion: employers are not to blame. Some of the best Australian workers are already long gone to places like Singapore, London and the US. With talented foreign workers denied the opportunity to come and fill the void, there is less opportunity for skills to be acquired by more junior workers in Australian workplaces.

It is also extremely difficult for more junior workers to get a foot in the door in the international job market and the primary reason for this is the Australian Government's failure to fund university programs beyond a bachelor's degree. Compare this to Europe and the US where all competent graduates are funded through to a Masters or PhD program.

The bottom line is that more junior workers are denied the opportunity to get the best training either at home or abroad and in both cases it's not the foreign workers that can be blamed: it's the Government's own fault.

Why do we need skilled foreign workers when Australians can win Nobel Prizes?

The Australian press recently went into a frenzy when an Australian won the Nobel Prize for physics.

There was a catch though: he's a migrant from the United States (just don't tell the Prime Minister).

Dr. Schmidt migrated to Australia 20 years ago when the immigration system was not the same as today. Today, future Nobel Prize winners are being shown a brick wall - maybe we even have one of them rotting away in our death camps or left in the sea for sharks to eat.

The BBC recently revealed that Britain's successor to Stephen Hawking may be a young girl who migrated from India - it is chilling to imagine where a child like this may be hidden away under Australia's immigration system.

Bureaucracy leads to fraud and exploitation

It's been clearly demonstrated that wherever you have elaborate, artificial systems of bureaucracy it leads to inefficiency, it suppresses innovation and in the worst cases it enables fraud and exploitation.

The typical examples usually involve police in some third-world African nation setting up road blocks and collecting fees from travellers who want to pass the queues. This type of opportunism has also been found in Australia's immigration system, with one Federal politician already directly implicated and jailed for his role in a visa racket.

Gillard's own bullet man

A Queensland pensioner made international headlines recently when he was caught sending bullets in the mail to the Prime Minister. His demands were clear: stop immigration.

While most world leaders refuse to let nutcases like this dictate their actions, Gillard appears to have been transcribing his racist letters directly into these newest immigration laws. It is a sad reality that Australian politics regularly seeks to appeal to the worst instincts in people like bullet man.

The ultimate political failure

When politicians stoop to the level of demonizing immigrants it is usually a clue that the politicians themselves are past their use-by dates and out of fresh policy ideas.

When former French president Sarkozy tried to play the racist card in his campaign for re-election, it bit him in the bum and he was swept from power by the socialists.

As always in politics, there is an element of hypocrisy at work: neither our Head of Government (the Prime Minister) nor our Head of State (the Queen) was born in Australia. Gillard was born in Wales and migrated to Australia as a child. If Australians don't vote for her in September, will she be given 28 days notice to pack her bags and go back `home'?

From the frying pan and into the fire

Tony Abbott, Australia's would-be Prime Minister contemplating his colleague's statements on bestiality

The scariest thing is that if Australians see through this racist charade and refuse to vote for it, we could end up with something equally obnoxious: the other major political party is now gaining worldwide attention for their campaign linking gay marriage and homosexuals to bestiality.

Which prejudice is the lesser evil: racism or homophobia?

Don’t come to World Cup!

Don’t come to Brazil for the World Cup!


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

#changeBrazil

kernel news – 19.06.2013

-Ben Hutchings announces the release of kernel 3.2.47, so if you’re running
a series 3.2 kernel, you best upgrade.

-David Miller has a SPARC-related pull request:

Various sparc bug fixes, in particular:

1) TSB hashes have to be flushed before TLB on sparc64, from
Dave Kleikamp.

2) LEON timer interrupts can get stuck, from Andreas Larsson.

3) Sparc64 needs to handle lack of address-congruence devicetree
property, from Bob Picco.


The boring truth: full virtualization and containerization both have their place

Containers are the future! and lots of misinformed talk.

The truth here is more boring. Both full-fat virtualization (KVM), and containers (LXC) are the future, and which you use will depend on what you want to do. You’ll probably use both. You’re probably using both now, but you don’t know it.

The first thing to say is that full virt and containers are used for different things, although there is a little bit of overlap. Containers are only useful when the kernel of all your VMs is identical. That means you can run 1000 copies of Fedora 18 as containers, probably not something you could do with full virt, but you can’t run Windows or FreeBSD or possibly not even Debian in one of those containers. Nor can your users install their own kernels.

The second important point is that containers in Linux are not secure at all. It’s moderately easy to escape from a container and take control of the host or other containers. I also doubt they’ll ever be secure because any local kernel exploit in the enormous syscall API is a host exploit when you’re using containers. This is in contrast with full virt on Fedora and RHEL where the qemu process is protected by multiple layers: process isolation, Unix permissions, SELinux, seccomp, and, yes, a container.

So containers are useless? Not at all. If you need to run lots and lots of VMs and you don’t care about multiple kernels or security, containers are just about the only game in town (although it turns out that KVM is no slouch these days).

Also containers (or the cgroups technology behind them) are being used in very innovative places. They are used in systemd for resource control, in libvirt to isolate qemu, and for sandboxing.


QElectroTech near to 0.3

RPM of QElectroTech version 0.3b (beta), an application to design electric diagrams, are available in remi-test for Fedora and Enterprise Linux.

While the version 0.3a, available in the official repository, is quite old (more than 1 year), the project is working on a new major version of their electric diagrams editor.

Official web site : http://qelectrotech.org/.

Installation by YUM :
yum --enablerepo=remi install qelectrotech

RPM (version 0.30-0.8.BETA) are available for Fedora ≥ 13 and Enterprise Linux 6 (Red Hat, CentOS, ...) and in official updates for

Follow this entry which will be updated on each new version (beta, RC, ...) until the finale version release.

Daily log June 18th 2013

Lots of hitting already-found bugs today (sync() lockups, btrfs lockdep report, btrfs warnings).
Things are bad enough I’m having to avoid running certain things during testing.
Spent some time looking through various upstream trees to ascertain just how much stuff is fixed, and pending merge. Results inconclusive, but I get the feeling a lot of people are waiting for 3.10 before merging, which is annoying.

Rebuilt some older test machines to get some 32-bit in the mix. Hit a bug straight away. Again, one that has already been reported a month ago. Nngh.

Started paving the way for merging some of my linked-list debugging improvements, starting with some cleanups to get rid of __list_for_each, now that it’s redundant. (It’s identical to the regular list_for_each() now that the prefetching has been removed).

Also started prepping some of the other debug patches I’ve been sitting on for a while.

Daily log June 18th 2013 is a post from: codemonkey.org.uk

Fedora election – voting has begun

Twice an year Fedora hold election cycles to elect members for governing bodies who then guide the project with in for a period of an year. This June, this summer, we are having three elections running for electing members to the following governing bodies.

  1. The Fedora Board
  2. FESCo
  3. FAmSCo

As usual after series of town-hall sessions we are in the phase of voting, However I hope it is not fun as town-halls but you can have a look and vote for the next generation of the governing body members. Please use the following link and cast your vote.

https://admin.fedoraproject.org/voting

The eligibility for voting differ from selection body, you must however has signed CLA to vote all the three governing bodies. Further for the FESCo and FAmSCo you need to be a member of at least a FAS group to vote. So cast your vote and help selecting the next governing body who can shape the project as you envision.

Have Happy Voting !!!

 


June 18, 2013

DIY Bodhi

A little while ago I was asked about how one would go about testing Eclipse Fedora Packager’s Bodhi functionality. Unfortunately it’s not too often that I, or someone else may push an update that coincides with testing.

There’s the Fedora Bodhi Staging instance but even that approach assumes you have an FAS account with the ability to push updates. Also, the person who asked about this didn’t have an account on the staging instance (I guess a combination of having a newer account, and the staging instance database not being updated that often ?)

The last approach I considered, turned out to be the simplest. Create your own Bodhi instance! Instructions are here.

I had some issues compiling on Fedora 18 with fedmsg, so I disabled calls to fedmsg.publish, but for the kind of testing planned that’s not really too important. When determining if a package will be pushed, Bodhi consults the buildsystem to determine whether the action is valid. By default, the buildsystem is a mocked up version of Koji (buildsystem = ‘dev’) that will perform almost any action. You could also set the buildsystem to be Fedora Koji, or maybe even point it to your own Koji instance. This other patch also needed to be applied if you leave your Bodhi instance using the ‘dev’ configuration to properly handle the tags.

From 35874774d8a36bbe11e887968e956721a95c582d Mon Sep 17 00:00:00 2001
From: Roland Grunberg <rgrunber@redhat.com>
Date: Fri, 31 May 2013 18:26:33 -0400
Subject: [PATCH 1/2] Disable fedmsg.publish, and modify to use with Eclipse
 PyDev.

---
 Makefile       |  2 +-
 bodhi/model.py | 52 ++++++++++++++++++++++++++--------------------------
 setup.py       |  2 +-
 start-bodhi    | 13 -------------
 start-bodhi.py | 13 +++++++++++++
 5 files changed, 41 insertions(+), 41 deletions(-)
 delete mode 100755 start-bodhi
 create mode 100755 start-bodhi.py

diff --git a/Makefile b/Makefile
index a8968ec..5d125d1 100644
--- a/Makefile
+++ b/Makefile
@@ -56,7 +56,7 @@ init:
 	rm bodhi-pickledb-*

 run:
-	python start-bodhi
+	python start-bodhi.py

 profile:
 	nosetests --with-profile --profile-stats-file=nose.prof
diff --git a/bodhi/model.py b/bodhi/model.py
index 81e6743..24a5f4d 100644
--- a/bodhi/model.py
+++ b/bodhi/model.py
@@ -43,7 +43,7 @@ try:
 except ImportError:
     from fedora.tg.util import tg_url

-import fedmsg
+#import fedmsg

 from bodhi import buildsys, mail
 from bodhi.util import get_nvr, rpm_fileheader, header, get_age, get_age_in_days
@@ -448,18 +448,18 @@ class PackageUpdate(SQLObject):
             self.unpush()
             self.comment('This update has been unpushed',
                          author=identity.current.user_name)
-            fedmsg.publish(topic=fedmsg_topic, msg=dict(
-                update=self,
-                agent=identity.current.user_name,
-            ))
+            #fedmsg.publish(topic=fedmsg_topic, msg=dict(
+            #    update=self,
+            #    agent=identity.current.user_name,
+            #))
             flash_log("%s has been unpushed" % self.title)
             return
         elif action == 'obsolete':
             self.obsolete()
-            fedmsg.publish(topic=fedmsg_topic, msg=dict(
-                update=self,
-                agent=identity.current.user_name,
-            ))
+            #fedmsg.publish(topic=fedmsg_topic, msg=dict(
+            #    update=self,
+            #    agent=identity.current.user_name,
+            #))
             flash_log("%s has been obsoleted" % self.title)
             return
         #elif self.type == 'security' and not self.approved:
@@ -489,10 +489,10 @@ class PackageUpdate(SQLObject):
                                                           mybuild['nvr']))
         elif action == 'revoke':
             if self.request:
-                fedmsg.publish(topic=fedmsg_topic, msg=dict(
-                    update=self,
-                    agent=identity.current.user_name,
-                ))
+                #fedmsg.publish(topic=fedmsg_topic, msg=dict(
+                #    update=self,
+                #    agent=identity.current.user_name,
+                #))
                 flash_log('%s %s request revoked' % (self.title, self.request))
                 self.request = None
                 self.comment('%s request revoked' % action,
@@ -575,10 +575,10 @@ class PackageUpdate(SQLObject):
             action, notes, flash_notes))
         self.comment('This update has been submitted for %s by %s. %s' % (
             action, identity.current.user_name, notes), author='bodhi')
-        fedmsg.publish(topic='update.request.' + action, msg=dict(
-            update=self,
-            agent=identity.current.user_name,
-        ))
+        #fedmsg.publish(topic='update.request.' + action, msg=dict(
+        #    update=self,
+        #    agent=identity.current.user_name,
+        #))
         mail.send_admin(action, self)

     def request_complete(self):
@@ -900,11 +900,11 @@ class PackageUpdate(SQLObject):
         if email:
             mail.send(self.people_to_notify(), 'comment', self)

-        if author not in ('bodhi', 'autoqa'):
-            fedmsg.publish(topic='update.comment', msg=dict(
-                comment=c,
-                agent=identity.current.user_name
-            ))
+        #if author not in ('bodhi', 'autoqa'):
+        #    fedmsg.publish(topic='update.comment', msg=dict(
+        #        comment=c,
+        #        agent=identity.current.user_name
+        #    ))

         if self.critpath:
             min_karma = config.get('critpath.min_karma')
@@ -1565,10 +1565,10 @@ class BuildRootOverride(SQLObject):
             self.release.override_tag))
         koji.tagBuild(self.release.override_tag, self.build, force=True)
         mail.send_admin('buildroot_override', self)
-        fedmsg.publish(
-            topic='buildroot_override.tag',
-            msg=dict(override=self, agent=identity.current.user_name),
-        )
+        #fedmsg.publish(
+        #    topic='buildroot_override.tag',
+        #    msg=dict(override=self, agent=identity.current.user_name),
+        #)

     def untag(self):
         koji = buildsys.get_session()
diff --git a/setup.py b/setup.py
index 5207f10..afa5acb 100755
--- a/setup.py
+++ b/setup.py
@@ -174,7 +174,7 @@ setup(
         "kitchen",
         "python-fedora",
         #"hashlib",
-        "fedmsg>=0.0.8",
+        #"fedmsg>=0.0.8",
         "decorator",
         "PIL",
         # The following are not available as eggs so we can't uncomment them.
diff --git a/start-bodhi b/start-bodhi
deleted file mode 100755
index 5896d0f..0000000
--- a/start-bodhi
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/python -tt
-""" Start script for bodhi """
-__requires__='bodhi'
-from bodhi.commands import start, ConfigurationError
-
-if __name__ == '__main__':
-    try:
-        start()
-    except ConfigurationError, exc:
-        import sys
-        sys.stderr.write(str(exc))
-        sys.exit(1)
-
diff --git a/start-bodhi.py b/start-bodhi.py
new file mode 100755
index 0000000..5896d0f
--- /dev/null
+++ b/start-bodhi.py
@@ -0,0 +1,13 @@
+#!/usr/bin/python -tt
+""" Start script for bodhi """
+__requires__='bodhi'
+from bodhi.commands import start, ConfigurationError
+
+if __name__ == '__main__':
+    try:
+        start()
+    except ConfigurationError, exc:
+        import sys
+        sys.stderr.write(str(exc))
+        sys.exit(1)
+
--
1.8.1.4

and

From 9ab7e42232343fff065dbabb91b3c4dcc3193a65 Mon Sep 17 00:00:00 2001
From: Roland Grunberg <rgrunber@redhat.com>
Date: Fri, 31 May 2013 19:35:28 -0400
Subject: [PATCH 2/2] Add rule for the usage of the 'dist' prefix.

The dist prefix has not been used since f15.
---
 bodhi/buildsys.py | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/bodhi/buildsys.py b/bodhi/buildsys.py
index bf7128c..c3cf9a0 100644
--- a/bodhi/buildsys.py
+++ b/bodhi/buildsys.py
@@ -184,12 +184,13 @@ class DevBuildsys(Buildsystem):
                      'name': 'dist-5E-epel', 'perm': None, 'perm_id': None}]
         else:
             release = build.split('.')[-1].replace('fc', 'f')
+            distStr = "" if int(release[1:]) > 15 else "dist-"
             return [{'arches': 'i386 x86_64 ppc ppc64', 'id': 10, 'locked': True,
-                     'name': 'dist-%s-updates-candidate' % release, 'perm': None, 'perm_id': None},
+                     'name': distStr + '%s-updates-candidate' % release, 'perm': None, 'perm_id': None},
                     {'arches': 'i386 x86_64 ppc ppc64', 'id': 5, 'locked': True,
-                     'name': 'dist-%s' % release, 'perm': None, 'perm_id': None},
+                     'name': distStr + '%s' % release, 'perm': None, 'perm_id': None},
                     {'arches': 'i386 x86_64 ppc ppc64', 'id': 5, 'locked': True,
-                     'name': 'dist-%s-updates-testing' % release, 'perm': None, 'perm_id': None}]
+                     'name': distStr + '%s-updates-testing' % release, 'perm': None, 'perm_id': None}]

     def listTagged(self, tag, *args, **kw):
         return [self.getBuild(), self.getBuild(other=True)]
--
1.8.1.4

After applying those changes, I pretty much had a working local Bodhi instance that could push updates.

eclipse-bodhi-instance

Just about everything could be done within Fedora Eclipse, using the Eclipse Pydev plugin (yum install eclipse-pydev).


Summit talk posted
My summit talk has been posted for those that are curious. It's a deep dive into how we run OpenShift online (http://www.openshift.com)

http://youtu.be/luCxhWdCQwE
Deploying Big Using BitTorrent [Sharing Files Using BitTorrent]
If you just want to share some files without concern of privacy, please check out this short tutorial on bittorrent.com. This article will talk a bit about BitTorrent's basic internals and it's usage to do large code/application deploys.

Scenario: I have to do deploy some application(s) across many co-located data centers. The collective size of deploy will be of the order of tens of GB.

Conventional methods like scp, rsync and http fails:
  • scp will not resume if it breaks at any point. Every time I will have to start over and over again.
  • rsync works well with text files, not so well with binaries (it works nonetheless). The amount of CPU it  eats is unacceptable though.
  • http can resume most of the times but as more servers try to download the application, the bandwidth limitations slow down the entire process.
Enter BitTorrent! 
  • Resumes the download every time. No problem if the connection breaks.
  • Does not eats my CPU.
  • As more servers download, they can act as seeder and actually increase collective bandwidth.
Now let us start the technical details. For torrent to work, you will need to create a torrent file (also known as a metafile). You'll also need a tracker. Tracker keeps track of what all leechers and seeders (collectively known as peers) are there and help in general coordination by announcing the available peers periodically. Finally you will need a torrent client which can seed the files you are going to share. 
Now the problem is that BitTorrent is no longer open sourced. So either you have to get license from BitTorrent, Inc. which can be very costly (I am not sure) or you can use the older code which was once open source and still works like a charm.

For Centos/Red Hat/Scientific Linux, you should try NauLinux School repo:
# vim /etc/yum.repos.d/naulinux-school.repo:
[naulinux-school]
name=NauLinux School
baseurl=http://downloads.naulinux.ru/pub/NauLinux/6.2/$basearch/sites/School/RPMS/
enabled=0
gpgcheck=1
gpgkey=http://downloads.naulinux.ru/pub/NauLinux/RPM-GPG-KEY-linux-ink

Install bittorrent rpm package:
# yum --enablerepo=naulinux-school install bittorrent

For Fedora, you can try downloading the rpm from their build system koji and manually install it.
# yum localinstall ./bittorrent-4.4.0-16.fc15.noarch.rpm

Also install mktorrent which will be used to create torrent meta files.
# yum install mktorrent

Creating a torrent tracker
As I have mentioned before, tracker is a critical piece of the bittorrent setup. It helps in co-ordinating between the peers and maintains a list of the same. It also keeps a record of all the seeds along with the checksum of the torrent. Needless to say that without a torrent tracker, entire bittorrent setup will fail.
You can setup a tracker for yourself easily. Just run the following command on CentOS:
$ bittorrent-tracker  --port 8080 --dfile dstate --logfile tracker.log

For Fedora, you can use the bttrack command after installing the bittorent package:
$ bttrack --port 8080 --dfile dstate --logfile tracker.log

Alternatively, you can use one of the public tracker like OpenBitTorrent. This may save you sometime.

Creating a torrent metafile
Once we have the tracker up, we need to create the actual torrent file to distribute. A torrent file contains bencoded data about the files and the announce URL of the tracker along with some other information.
Creating torrent using mktorrent easy but if you prefer GUI, you can use transmission or any other bittorrent client.
$ mktorrent -a http://tracker.example.com:8080/announce -l 18 -v /path/to/the/app

Here -a specifies the tracker's announce url which we created before. -l flag specifies the size of each chunk of file which will be transferred at a time and -v flag is for verbosity.

Once the torrent metafile is created, you need to seed the torrent so that other peers can download it. I like to use rtorrent for this:
# yum install rtorrent
$ rtorrent <path to the torrent metafile>


Here is an easy-to-follow tutorial, if you are more interested in rtorrent.

Tips for peaceful life
There are certain parameters that can be tweaked for better performance. While making the torrent try adjusting the -l flag to a higher value if you have really good bandwidth. Since my deployment was for a bunch of data centers which have really good bandwidth, I usually set it up to 20.

If you do the deploys without taking out the machines from production, it is possible to limit the bandwidth usage of torrent client. This comes really handy and helps in avoiding the clogging of network pipes. Check out the tutorials and docs of your torrent client to know about these controls.

Before initiating the transfer, always make sure that you inform the relevant data center technicians and network operations guys. I did not, the first time, and due to huge spike in network, the one of the data center ops thought that we are under some sort of DOS attack and cut off connectivity to all our servers resulting in minor service disruption.

Happy deploying!

Discuss this post on Hacker News.
XChat a ferramenta de comunicação dos projetos open source

Quanto mais colaboramos com um projeto open source mais mudamos nossa rotina e visualizamos novas ferramentas que maximizam nossa interação com a comunidade como um todo. Uma das principais ferramentas é o XChat, pois ela permite que tenhamos acesso a diversos servidores irc e canais dos projetos, este tipo de contato é importantíssimo, pois é nestes canais que ocorrem as principais reuniões e discussões sobre cada projeto, logo não utilizar uma ferramenta como o XChat é como ficar de fora destes debates, sendo assim vou apresentar algumas dicas que podem ser úteis para você que esta iniciando.

 

Servidores IRC:

Existem dezenas de servidores irc espalhados pelo mundo, logo vou citar apenas dois dos que considero os mais relevantes:

   FreeNode

O FreeNode é um dos principais servidores e nele você irá encontrar centenas de canais de inúmeros projetos e comunidades open source, principalmente do Projeto Fedora, onde eu participo diariamente do #fedora-latam,  #fedora-ambassadors, #fedora-devel, entre outros.

Ao contrário do que alguns acreditam o “#” dos canais não copiou o conceito do hastag, utilizado em redes sociais pela internet, mas sim o conceito de hastag venho justamente do irc, pois ao querermos conversar sobre um determinado assunto entramos no canal com o seu respectivo nome, exemplo: #ovirt, neste canal os assuntos relacionados ao projeto open source oVirt são tratados.

Se você já tem o XChat instalado vou passar o procedimento correto de uso e inscrição no FreeNode, caso não tenha o XChat instalado simplesmente instale-o em seu Fedora:

# yum install xchat

Ao abrirmos o XChat vou mostrar como automatizar o seu dia-a-dia, logo vamos começar ignorando a tela inicial de “Network list”:

Marcando a opção “Skip network list on startup”. Após vamos aos comandos para o irc da FreeNode:

/server chat.freenode.net

Todos os comandos em um irc server devem iniciar com o “/”, o comando acima nos permite entrar no irc server da FreeNode.

Agora que entramos precisamos registrar nosso nickname(apelido) para que outros usuários não utilizem nosso nickname, sendo assim vamos ao processo de registro:

/nick meu_apelido

/msg nickserv register minha_senha meu_e_mail

Como podemos ver acima escolhemos um apelido no primeiro comando e no segundo comando enviamos uma mensagem ao nickserv(servidor de irc) solicitando o registro do apelido a pouco escolhido juntamente com nosso e-mail, pois a FreeNode envia um e-mail solicitando a sua confirmação.

/msg nickserv verify register meu_apelido token_recebio_no_e_mail

Ao recebermos o e-mail de verificação de registro ele nos informa exatamente o comando que temos que inserir no XChat, assim ele contém um importante tocken que irá validar meu registro. Lembrando que se escolhermos um nome já registrado as mensagens do nickserv irão nos mostrar que nosso apelido já esta registrado, logo devemos escolher um apelido livre/não utilizado e seguir o processo.

Com o registro realizado devemos nos identificar sempre que entrarmos na FreeNode ou em outro irc server:

/msg nickserv identify minha_senha

Assim completamos o processo de registro na FreeNode.

  OFTC

Outro irc server que costumo utilizar é o OFTC, logo seguimos o mesmo processo, porém o OFTC não envia e-mail de confirmação, ele apenas solicita o registro sem a informação de seu e-mail.

Automatizando o XChat:

Imagine diariamente você ter que entrar no XChat, entrar em dois ou mais servidores irc diferentes, identificar-se em cada um dos servidores e ainda entrar em diversos canais, em cada um dos servidores irc que você costuma entrar, inevitavelmente você poderá esquecer o nome de um canal, ou mesmo desistir de usar essa forma de comunicação, pensando nisso o XChat permite que você crie scripts de automação, sendo assim vamos criar o nosso script, mas não se preocupe, você não precisa saber programar é simplesmente unir os seus comando diários em um único arquivo:

$ vim ~./meu_script_xchat.txt

Dentro deste arquivo vamos inserir o que fariamos manualmente em nosso dia-a-dia, exemplo:

server chat.freenode.net

msg nickserv identify minha_senha

join #fedora-latam

join #fedora-devel

join #fedora-ambassadors

…..

Como podemos ver colocamos TODOS nossos comandos em um único arquivo que ao abrirmos nosso XChat será carregado com um único comando:

/load -e ~/meu_script_xchat.txt

Somente temos que cuidar o local(path) onde guardamos nosso arquivo, pois acredito que ele deve estar em um local de seu fácil acesso para você e também seguro, também devemos observar que no arquivo de automação não precisamos usar a “/” nos comandos e podemos inserir quantos servidores irc, se assim desejarmos, e também quantos canais quisermos.

Bom proveito e seja bem vindo em nossos canais do projeto Fedora.

Des Kaisers neue Kleider – oder: neues Theme für Fedora-Blog.de gesucht

Das Theme von Fedora-Blog.de ist inzwischen ein wenig in die Jahre gekommen und um ehrlich zu sein, mit sehr heißer Nadel gestrickt. Die Hauptprämisse war seinerzeit, das Fedora-Blog.de ein “eigenes” Theme haben sollte und nicht das Standard-Theme von WordPress.

Um eventuellen Problemen bei Updates aus dem Weg zu gehen, wurde seinerzeit der Weg über ein Child-Theme von TwentyTen gewählt, da so nur die gewünschten Änderungen gemacht werden mussten, ohne gleich ein komplettes Theme designen zu müssen.

Nach all den Jahren täte dem Blog aber auch ein frischer Anstrich sicher nicht schaden. Deshalb rufen wir zu einem Fedora-Blog Theme 3.0 Design-Wettbewerb auf. Das aktuelle Theme ist auf GitHub zu finden und kann als Ausgangsbasis verwendet werden.

Folgende Anforderungen sollte das neue Theme erfüllen:

  • Die Änderungen/Erweiterungen in der functions.php und der styles.css müssen übernommen werden.
  • Die fedora-typischen Blautöne sollten Verwendung finden.
  • Es sollten nach Möglichkeit nur Standardfunktionen von WordPress verwendet werden, damit es möglichst keine Probleme mit Plugins oder bei Updates gibt.
  • Das fertige Theme sollte nach Möglichkeit unter einer freien Lizenz (CC oder GPL) lizenziert sein.
  • Nice to have wäre, wenn auf der Startseite nur Auszüge der einzelnen Posts mit einem Weiterlesen-Link angezeigt werden.

Wer an dem Wettbewerb teilnehmen möchte, schicke uns einfach einen Link zu dem Git-Repository mit seinem Theme-Entwurf. Wir werden dann die Screenshots der Entwürfe hier gesammelt veröffentlichen und die Leser abstimmen lassen, welches Theme wir in Zukunft verwenden sollen.

Selbstverständlich darf sich der Schöpfer in der Fußzeile des Themes verewigen.

Pequena alteração no banner
Olá leitor,
Fiz uma pequena alteração no banner do blog. Coloquei uns discos de vinil (!) no lugar da máscara da HQ "V de Vingança", pois percebi que esta máscara está sendo utilizada em protestos no Brasil e no Mundo; deixo claro que não tenho nenhuma relação com estes protestos, muito pelo contrário, questiono sua necessidade e autenticidade ideológica. 
Originalmente eu tinha colocado a figura para evidenciar um fenômeno mundial cujo estopim foi a divulgação, por parte do Wikileaks, de dados confidenciais do governo americano. 
Aproveito para frisar que política não é o foco deste blog.

Paz e bem,
Renato.
Fedora Workshop, SJCE, Chennai

A Fedora workshop was organised at St. Joseph’s College of Engineering, Chennai, Tamil Nadu, India on Friday, June 14, 2013. The participants were students from the Master of Computer Applications (MCA) department.

The forenoon session began with an introduction to Free/Open Source Software (F/OSS) and Fedora. I explained the various project and communication guidelines that students need to follow, and mentioned the various Fedora sub-projects that they can contribute to. System architecture, and compilation concepts were also discussed. The need to use free and open standards was emphasized. Copyright, and licensing were briefly addressed.

MCA lab

After lunch, a programming lab session was held to see how students solve problems. Their code was reviewed, and suggestions for improvement were given. Klavaro was shown to students to learn touch typing. I also gave an overview of GCC using the “Introduction to GCC” presentation. The concept of using revision control systems was illustrated. A demo of Fedora 18 (x86_64) was shown, and the same was installed on the lab desktops.

Thanks to Prof. Parvathavarthini Mam for working with me in organizing this workshop. Thanks also to Prof. Shirley for managing the logistics.

Few photos taken during the trip are available in my /gallery.

Darkserver Improvement : Google Summer of Code 2013

It’s better later than never. It’s been two week since the Google Summer of Code 2013 results were announced and I am glad to say that I got selected this year.

I will be working on Darkserver Improvment under Fedora. One can see a draft of my proposal here. My mentor is Kushal Das and i am really helpful for helping me out in the whole process both in code and application.


RSA Key Sizes: 2048 or 4096 bits?

Many people are taking a fresh look at IT security strategies in the wake of the NSA revelations. One of the issues that comes up is the need for stronger encryption, using public key cryptography instead of just passwords. This is sometimes referred to as certificate authentication, but certificates are just one of many ways to use public key technology.

One of the core decisions in this field is the key size. Most people have heard that 1024 bit RSA keys have been cracked and are not used any more for web sites or PGP. The next most fashionable number after 1024 appears to be 2048, but a lot of people have also been skipping that and moving to 4096 bit keys. This has lead to some confusion as people try to make decisions about which smartcards to use, which type of CA certificate to use, etc. The discussion here is exclusively about RSA key pairs, although the concepts are similar for other algorithms (although key lengths are not equivalent)

The case for using 2048 bits instead of 4096 bits

  • Some hardware (many smart cards, some card readers, and some other devices such as Polycom phones) don't support anything bigger than 2048 bits.
  • Uses less CPU than a longer key during encryption and authentication
  • Using less CPU means using less battery power (important for mobile devices)
  • Uses less storage space: while not an issue on disk, this can be an issue in small devices like smart cards that measure their RAM in kilobytes rather than gigabytes

So there are some clear benefits of using 2048 bit keys and not just jumping on the 4096 bit key bandwagon

The case for using 4096 bits

  • For some types of attack, security is not just double, it is exponential. 4096 is significantly more secure in this scenario. If an attack is found that allows a 2048 bit key to be hacked in 100 hours, that does not imply that a 4096 bit key can be hacked in 200 hours. The hack that breaks a 2048 bit key in 100 hours may still need many years to crack a single 4096 bit key
  • Some types of key (e.g. an OpenPGP primary key which is signed by many other people) are desirable to keep for an extended period of time, perhaps 10 years or more. In this context, the hassle of replacing all those signatures may be quite high and it is more desirable to have a long-term future-proof key length.

The myth of certificate expiration

Many types of public key cryptography, such as X.509, offer an expiry feature. This is not just a scheme to force you to go back to the certificate authority and pay more money every 12 months. It provides a kind of weak safety net in the case where somebody is secretly using an unauthorised copy of the key or a certificate that the CA issued to an imposter.

However, the expiry doesn't eliminate future algorithmic compromises. If, in the future, an attacker succeeds in finding a shortcut to break 2048 bit keys, then they would presumably crack the root certificate as easily as they crack the server certificates and then, using their shiny new root key, they would be in a position to issue new server certificates with extended expiry dates.

Therefore, the expiry feature alone doesn't protect against abuse of the key in the distant future. It does provide some value though: forcing people to renew certificates periodically allows the industry to bring in new minimum key length standards from time to time.

In practical terms, content signed with a 2048 bit key today will not be valid indefinitely. Imagine in the year 2040 you want to try out a copy of some code you released with a digital signature in 2013. In 2040, that signature may not be trustworthy: most software in that era would probably see the key and tell you there is no way you can trust it. The NIST speculates that 2048 bit keys will be valid up to about the year 2030, so that implies that any code you sign with a 2048 bit key today will have to be resigned with a longer key in the year 2029. You would do that re-signing in the 2048 bit twilight period while you still trust the old signature. Fortunately, there are likely to be few projects where such old code will be in demand.

4096 in practice

One of the reasons I decided to write this blog is the fact that some organisations have made the 4096 bit keys very prominent (although nobody has made them mandatory as far as I am aware).

Debian's guide to key creation currently recommends 4096 bit keys (although it doesn't explicitly mandate their use)

Fedora's archive keys are all 4096 bit keys.

The CACert.org project has developed a 4096 bit root

These developments may leave people feeling a little bit naked if they have to use a shorter 2048 bit key for any of the reasons suggested above (e.g. for wider choice of smart cards and compatibility with readers). It has also resulted in some people spending time looking for 4096 bit smart cards and compatible readers when they may be better off just using 2048 bits and investing their time in other security improvements.

In fact, the "risk" of using only 2048 rather than 4096 bits in the smartcard may well be far outweighed by the benefits of hardware security (especially if a smartcard reader with pin-pad is used)

My own conclusion is that 2048 is not a dead duck and using this key length remains a valid decision and is very likely to remain so for the next 5 years at least. The US NIST makes a similar recommendation and suggests it will be safe until 2030, although it is the minimum key length they have recommended.

My feeling is that the Debian preference for 4096 bit PGP keys is not based solely on security, rather, it is also influenced by the fact that Debian is a project run by volunteers. Given this background, there is a perception that if everybody migrates from 1024 to 2048, then there would be another big migration effort to move all users from 2048 to 4096 and that those two migrations could be combined into a single effort going directly from 1024 to 4096, reducing the future workload of the volunteers who maintain the keyrings. This is a completely rational decision for administrative reasons, but it is not a decision that questions the security of using 2048 bit keys today. Therefore, people should not see Debian's preference to use 4096 bit keys as a hint that 2048 bit keys are fundamentally flawed.

Unlike the Debian keys (which are user keys), the CACert.org roots and Fedora archive signing keys are centrally managed keys with a long lifetime and none of the benefits of using 2048 bit keys is a compelling factor in those use cases.

Practical issues to consider when choosing key-length

Therefore, the choice of using 2048 or 4096 is not pre-determined, and it can be balanced with a range of other decisions:

  • Key lifetime: is it a long life key, such as an X.509 root for an in-house CA or an OpenPGP primary key? Or is it just for a HTTPS web server or some other TLS server that can be replaced every two years?
  • Is it for a dedicated application (e.g. a closed user group all using the same software supporting 4096 bit) or is it for a widespread user base where some users need to use 2048 bit due to old software/hardware?
  • Is it necessary to use the key(s) in a wide variety of smartcard readers?
  • Is it a mobile application (where battery must be conserved) or a server that is likely to experience heavy load?
Daily log June 17th 2013

Busy day. Hit a whole bunch of new bugs.

Daily log June 17th 2013 is a post from: codemonkey.org.uk

Turbocharge DevStack with Raid 0 SSDs

Turbocharging DevStack

I wanted to turbocharge my development cycle of OpenStack running on Fedora 18 so I could be waiting on my brain rather then waiting on my workstation.  I decided to purchase two modern solid state drives (SSD) and run them in RAID 0.  I chose two Intel S3500 160 GB Enterprise grade SSDs to run in RAID 0.  My second choice was the Samsung 840 Pro which may have been a bit faster, but perhaps not as reliable.

Since OpenStack and DevStack mostly use /var and /opt for their work, I decided to replace only /var and /opt.  If a SSD fails, I am less likely to lose my home directory which may contain some work in progress because of the lower availability of RAID 0.

The Baseline HP Z820

For a baseline my system is a Hewlett Packard Z820 workstation (model #B2C08UT#ABA) that I purchased from Provantage in January 2013.  Most of the computer is a beast sporting an 8 core Intel Xeon 35-2670 @ 2.60GHZ running with Hyperthreading for 16 total cpus, Intel C602 chipset,  and 16 GB Quad Channel DDR3 ECC Unbuffered RAM.

The memory is fast as shown with ramspeed:

[sdake@bigiron ramspeed-2.6.0]$ ./ramspeed -b 3 -m 4096
RAMspeed (Linux) v2.6.0 by Rhett M. Hollander and Paul V. Bolotoff, 2002-09

8Gb per pass mode

INTEGER   Copy:      11549.61 MB/s
INTEGER   Scale:     11550.59 MB/s
INTEGER   Add:       11885.79 MB/s
INTEGER   Triad:     11834.27 MB/s
---
INTEGER   AVERAGE:   11705.06 MB/s

Unfortunately the disk is a pokey 1TB 7200 RPM model.  The hdparm tool shows a pokey 118MB/sec.

[sdake@bigiron ~]$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 20590 MB in 2.00 seconds = 10308.76 MB/sec
Timing buffered disk reads: 358 MB in 3.02 seconds = 118.69 MB/sec

Using the Gnome 3 Disk Image Benchmarking tool show a lower average of 82MB per second, although this is also passing through the LVM driver:

bench-disk

Warning: I didn’t run this benchmark with write enabled, as it would have destroyed the data on my disk.

Running stack.sh takes 6 minutes:

[sdake@bigiron devstack]$ ./stack.sh
Using mysql database backend
Installing package prerequisites...[|[/]^C[sdake@bigiron devstack]$ 
[sdake@bigiron devstack]$ ./stack.sh
Using mysql database backend
Installing package prerequisites...done
Installing OpenStack project source...done
Starting qpid...done
Configuring and starting MySQL...done
Starting Keystone...done
Configuring Glance...done
Configuring Nova...done
Configuring Cinder...done
Configuring Nova...done
Using libvirt virtualization driver...done
Starting Glance...done
Starting Nova API...done
Starting Nova...done
Starting Cinder...done
Configuring Heat...done
Starting Heat...done
Uploading images...done
Configuring Tempest...[/]
Heat has replaced the default flavors. View by running: nova flavor-list
Keystone is serving at http://192.168.1.20:5000/v2.0/
Examples on using novaclient command line is in exercise.sh
The default users are: admin and demo
The password: 123456
This is your host ip: 192.168.1.20
done
stack.sh completed in 368 seconds

I timed a heat stack-create operation at about 34 seconds.  In a typical day I may create 50 or more stacks, so the time really adds up.

Turbo-charged DevStack

After installing two SSD devices, I decided to use LVM raid 0 striping.  Linux Magazine indicates mdadm is faster, but I prefer a single management solution for my disks.

The hdparm tool shows some a beast 1GB/sec throughput on reads:

[sdake@bigiron ~]$ sudo hdparm -tT /dev/raid0_vg/ssd_opt

/dev/raid0_vg/ssd_opt:
Timing cached reads: 21512 MB in 2.00 seconds = 10771.51 MB/sec
Timing buffered disk reads: 3050 MB in 3.00 seconds = 1016.47 MB/sec

I also ran the Gnome 3 disk benchmarking tool, this time in write mode.  It showed an average 930MB/sec read and 370MB/sec write throughput:

pic2

I ran stack.sh in a little under 3 minutes:

[sdake@bigiron devstack]$ ./stack.sh
Using mysql database backend
Installing package prerequisites...done
Installing OpenStack project source...done
Starting qpid...done
Configuring and starting MySQL...done
Starting Keystone...done
Configuring Glance...done
Configuring Nova...done
Configuring Cinder...done
Configuring Nova...done
Using libvirt virtualization driver...done
Starting Glance...done
Starting Nova API...done
Starting Nova...done
Starting Cinder...done
Configuring Heat...done
Starting Heat...done
Uploading images...done
Configuring Tempest...[|]
Heat has replaced the default flavors. View by running: nova flavor-list
Keystone is serving at http://192.168.1.20:5000/v2.0/
Examples on using novaclient command line is in exercise.sh
The default users are: admin and demo
The password: 123456
This is your host ip: 192.168.1.20
done
stack.sh completed in 166 seconds

I timed a heat stack create at 6 seconds.  Comapred to the non-ssd 34 seconds, RAID 0 SSDs rock!  Overall system seems much faster and benchmarking shows it.


June 17, 2013

Freestyle Fun

Es ist wieder einmal Zeit für einen neuen Screencast. Dieses Mal wird gezeigt wie mit der, in Version 2.67 von Blender neuen Funktion Freestyle ein Blueprint erzeugt wird. Eine kleine Rolle hat auch Inkscape gespielt. Also viel Spaß beim Nachmachen und wer dafür das kleine Flugzeug benötigt, findet es hier zum Download.

Wohin mit Bugreports und Feature-Request?

Florian Weimer hat heute auf der Entwicklerliste von Fedora die Frage aufgeworfen, ob man Bugreports und Feature-Requests zu einem Paket im Bugtracker von Fedora/Red Hat oder im Bugtracker des jeweiligen Projektes (Upstream) posten soll. Weimer begründet seine Frage damit, das er es nicht einsieht, in jedem Upstream-Bugtracker einen Account anzulegen, nur um einen Fehler zu melden oder einen Verbesserungsvorschlag zu machen. Viel mehr sieht er dies als Aufgabe der Paket-Maintainer an.

Im Verlauf der teilweise recht hitzigen Diskussion wurde jedoch auch angemerkt, das es für viele Maintainer zeitlich kaum zu leisten sei, sowohl den Fedora- als auch den Upstream-Bugtracker quasi als man in the middle zu betreuen und das es deshalb jedem Maintainer selber überlassen sei, wie mit Bugs umgehe, die eigentlich in den Upstream-Bugtracker gehören. Einigkeit bestand jedoch darin, dass das komplette Ignorieren des Fedora-Bugtrackers, das von verschiedenen Maintainern betrieben wird, eher kontraproduktiv ist.

Wie denken die Leser von Fedora-Blog.de über das Thema?

Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
Updated Inkscape trunk builds for Fedora

I just updated the repo for the inkscape trunk builds for fedora. See my previous post here for details on initially setting this repo up. If you have already set the repo up, this updated package provides inkscape trunk revision 12379, with the following changes since the previous build (rev 12353)

[12379] Fix layer selection so defs don't change layers, updated 
          symbol text.
[12378] Fix for 1184408 : Additional zoom levels in zoom context menu
[12377] Revert Fix for 600285 : Zoom slider
[12376] Improve icons for symbols dialog
[12375] Fix crash for external symbol documents, should never select 
        these items.
[12374] Big change in symbols ui and selection chemistry.
[12373] Allow svg elements to be ungrouped
[12372]  Do not allow markers for children of markers (prevent loop)
[12371] Use fixed inkscape icon for 'no-marker' instead of gtk theme icon
[12370] Fix Apache2 license conflict with GPL with re-license from 
        SOIX upstream
[12369] Use 'remove' instead of 'gtk-remove' for theme.
[12368] Restore the old behavior of autogen.sh (do not automatically 
        run configure).
[12367] Change back to using NULL and fix windows theme error by checking
[12366] Fix bug where symbols weren't identified as such
[12365] extensions. hpgl input. new import routine by TimeWaster
[12364] Fix new bug with No-Marker having no icon, use Stock GTK::Remove icon 
        for No-Marker.
[12363] Change marker layout in stroke-widget so they are all on one line.
[12362] use visual bbox in calculation of filter area (Bug 1188336)
[12361] Remove use of separate array for scale values.
[12360] Replace multiple copies of GTK2/GTK3 #ifdef code with single helper 
        function.
[12359] Refactor --export-pdf-version detection. If the user try to export the 
        pdf and ps versions at one run, the sp_export_pdf detection would fail. 
        A better approach (this commit) is to check the mime argument.
[12358] C++ conversion of parallel arrays to vector of class instances.
[12357] Check for value in range before dereferencing.
[12356] Glibmm 2.32+ fix extended to optional components. Fixes bug #1179338.
[12355] Adding inclusion of config.h where needed for threads.h check
[12354] Warning cleanup.
Google map fail under Firefox 17.0

The new google map it's now online. Every one know's this news.

The google devolopment team told us:

The new Google Maps is redrawn for every search and click you make...

Really !?

I have last update of firefox, see :

So firefox is not good for google map.

You can read more news and tutorials here.

Be carefull when updating from RHEL6.1 to RHEL6.4

If you have a RHEL6.1 and try to update to RHEL6.4, you will get some strange errors, about missing libraries.

The reason is that ldconfig will not run anymore, because /etc/ld.so.conf.d/kernel-2.6.32-* sepcifies hwcap 0 till RHEL6.1 and RHEL 6.2 and higher specifies hwcap 1.

It the settings are different you get this error message:

ldconfig: /etc/ld.so.conf.d/kernel-2.6.32-71.29.1.el6.x86_64.conf:6: hwcap index 1 already defined as nosegneg

ldconfig cannot run after installing new libraries and some symlinks are broken.
To Fix: simply change all hwcap setting to 1 and rerun ldconfig.

FUDCon Training Install Fest en la U Andina termina con exito
Hola, después de mucho tiempo. Les cuento que tengo un reto muy grande para septiembre, nos toca realizar el FUDCon-Latam en la ciudad del Cusco y como parte de las actividades, hemos planeado talleres previos. El primero fue el FUDCon Training Install Fest, que se llevo a cabo el 15 de junio en la Universidad Andina del Cusco.

Todo fue muy bien y tuvimos 30 asistentes. Todo inicio con un pequeño retraso pero al final todo fue bien.
Regalamos discos de Fedora con LXDE, XFCE y el spin de seguridad.

Comencé yo con las charlas, hable un poco del proyecto GNU y Linux. Introduje algunos conceptos acerca distribuciones GNU/Linux, Fedora y la comunidad Fedora. Hubieron muchas preguntas :-D





Cuando estaba en la rueda de preguntas llego el Ing. Edwing Carrasco justo a tiempo para su charla sobre que era el software libre. Compartió con los asistentes una visión muy particular de las cosas y nos animo a todos a poner la mano para que GNU/Linux y Fedora alcancen el exito.




Luego nuestro amigo Cesar Villacorta hablo respecto al FUDCon regalo polos y discos (se creia papa noel)


Para terminar la rueda de charlas Eduardo Echevarria nos hablo de la comunidad Fedora en Latinoamerica y que es lo que hace falta para que la comunidad crezca.



Finalmente iniciamos con algunas instalaciones de fedora en algunas laptops, fue genial.


 Nos olvidamos de tomarles fotos a todos, pero con algunos asistentes y los chicos y chicas que nos ayudaron posaron para las camaras :-D



Gracias a todos por asistir a nuestro primer taller.....
Elecciones del Proyecto Fedora

Yo ya voté

En este momento los contribuidores de fedora, que tengan su cuenta abierta en el proyecto fedora y sean miembros de al menos un equipo del Proyecto Fedora pueden elegir a las personas que dirigen esta comunidad. Estan abiertas las votaciones para la Junta Directiva, para el comité de ingeniería y para el comité de embajadores.

Para mí es especial participar de una comunidad tan transparente y sobre todo con pocos niveles jerárquicos. En particular en el comité de embajadores hay representación de candidatos latinoamericanos, y yo los apoyo. Sin embargo, las propuestas de cada quien estan ahí y ustedes pueden valorar quien ha definido mejor sus objetivos en cada uno de estos puestos.

Para votar, nada más simple que ir a la página de votación.

Hacker's Log 2013-06-16

I had a relaxing weekend and most of today was the same. I did do a little hacking on Tahrir, though. I made some design updates in preparation for adding all sorts of cool metrics and functionality this week. Tomorrow I'll be tackling some database connection rewiring between Tahrir and Tahrir-API. After that, I'll be able to make all sorts of awesome updates.

Feedback

Please, send your questions and comments in a plain text email to oddshocks at riseup dot net. I may respond publicly, so please tell me if you would not like the email content and/or your name published.

June 16, 2013

#changeBrazil

What is really happening in Brazil?


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

First time with Fedora Gooey Karma

Fedora Gooey Karma now has its own repository! It was developed by examon (Tomas Meszaros) who wrote some basic functionality before. I’ve forked his repository and created a new one which will be the main for Google Summer of Code.

Problem with threads

Tomas did a lot of great work but the code needed some tweaks. The main problem I’ve hit was with threads in Python. BodhiClient query started from thread got stuck in deadlock. It’s important to have internet queries in different thread than main GUI to don’t get it freeze for user.

So I filled a bug 972429 against fedora-python (it contains BodhiClient class) because I thought it’s problem with that. After IRC discussion with Toshio Kuratomi we figured out that problem is in implementation of python (or QT) threads. Thread cannot be spawned from imported library as it’s mentioned on the very bottom of official docs page.

Firstly, other than in the main module, an import should not have the side effect of spawning a new thread and then waiting for that thread in any way. Failing to abide by this restriction can lead to a deadlock if the spawned thread directly or indirectly attempts to import a module.

This problem was pretty serious because Tomas’s code has pretty much everything imported from one main file. I had to rewrite it to some “less abstract” code. I’ve split classes to separated files. Now we have two main “workers”. :) One is for packages which get info mainly from RPM database or YUM. Second one is communicating with Bodhi servers. Application spawns 15 threads of Bodhi workers now and I hope it will be good enough to have relevant results from servers in quite a short time.

You can see these changes in this and this commit.

What to do next

Now I’m going to edit Makefile to have it properly “installable” on system because it’s runnable from src/fedora-gooey-karma which can be a little confusing for random strangers now. :)


[QuickTip] Cómo pausar aplicaciones en Linux

Recientemente, nos tocó enterarnos de las "novedades" de OS X 10.9 "Mavericks". Una de las supuestas "novedades" es algo interesante que desde siempre se ha podido hacer en Linux: Pausar Aplicaciones ondemand.

¿Para qué nos sirve esto? Bueno, pues para evitar que una aplicación nos consuma recursos si no se está usando mientras el ordenador tiene cargas drásticas de trabajo. En una laptop incluso ayuda al ahorro de energía. ¿Cómo podemos hacerlo? Sencillo:

Método por consola

La pausa de aplicaciones se logra por medio de algo que se llaman "PID's" o Identificadores de procesos. Si te gusta usar la consola como a mí, puedes hacer esta gestión con 2 simples comandos:

1.- pgrep aplicación/daemon

(Ejemplos: "pgrep firefox/pgrep sshd"). Nos permite saber el PID de una aplicación determinada. Apps "multiproceso" como Chrome nos devolverán varios, pero el primero es el proceso padre, es decir, el que nos interesa.

2.- kill -19 PID 

Pausa la aplicación

3.- kill -18 PID

Reanuda la aplicación

Método Gráfico

Si lo tuyo no son las terminales, entonces puedes hacerlo también en modo gráfico. Por ejemplo, en el monitor del sistema de KDE, le das con el botón secundario al proceso deseado y le mandas la señal de STOP, CONTINUE o cualquiera de las disponibles según te sea necesario:


En este caso si se trata de una app multiproceso, el proceso padre (es decir, el que nos interesa en realidad) es aquél con el ícono de la aplicación representándolo. Me imagino que en el task manager de otros escritorios pasa lo mismo.

Monitoring with Ganglia: an O'Reilly community book project

I recently had the opportunity to contribute to an O'Reilly community book project, developing the book Monitoring with Ganglia in collaboration with other members of the Ganglia team



The project itself, as a community book, pays no royalties back to the contributors, as we have chosen to donate all proceeds to charity. People who contributed to the book include
Robert Alexander, Jeff Buchbinder, Frederiko Costa, Alex Dean, Dave Josephsen, Bernard Li, Matt Massie, Brad Nicholes, Peter Phaal and Vladimir Vuksan and we also had generous assistance from various members of the open source community who assisted in the review process.

Ganglia itself started at University of California, Berkeley as an initiative of Matt Massie, for monitoring HPC cloud infrastructure

My own contact with Ganglia only began in 2008 when I was offered the opportunity to work full-time on the enterprise-wide monitoring systems for a large investment bank. Ganglia had been chosen for this huge project due to it's small footprint, support for many platforms and it's ability to work on a heterogeneous network as well as providing dedicated features for the bank's HPC grid.

This brings me to one important point about Ganglia: it's not just about HPC any more. While it is extremely useful for clusters, grids and clouds, it is also quite suitable for a mixed network of web servers, mail servers, databases and all the other applications you may find in a small business, education or ISP environment.

Instantly up and running with packages

One of the most compelling features, even for small sites with less than 10 nodes, is the ease of installation: install the packages on Debian, Ubuntu, Fedora, OpenCSW and some other platforms, and it just works. Ganglia nodes will find each other over multicast, instantly, no manual configuration changes necessary. On one of the nodes, the web interface must be installed for viewing the statistics. Dare I say it: it is so easy, you hardly even need the book for a small installation.

Where the book is really compelling is if you have hundreds or thousands of nodes, if you want custom charts or custom metrics or anything else beyond just installing the package. If monitoring is more than 10% of your job, the book is probably a must-have.

Excellent open source architecture

Ganglia's simplicity is largely thanks to the way it leverages other open source projects such as Tobi Oetiker's RRDtool and PHP

Anybody familiar with these tools will find Ganglia is particularly easy to work with and customise.

Custom metrics: IO service times

One of my own contributions to the project has been the creation of ganglia-modules-linux, some plugins for Linux-specific metrics and ganglia-modules-solaris providing some similar metrics for Solaris.

These projects on github provide an excellent base for people to fork and implement their own custom metrics in C or C++

The book provides a more detailed account of how to work with the various APIs for Python, C/C++, gmetric (command line/shell scripts) and Java.

The new web interface

For people who had tried earlier versions of Ganglia (and for those people who installed versions < 3.3.0 and still haven't updated), the new web interface is a major improvement and well worth the effort to install.

It is available on the most recent packages (for example, it is in Debian 7 (wheezy) but not in Debian 6.)

It was originally promoted as a standalone project (code-named gweb2) but was adopted as the official Ganglia web interface around the release of Ganglia 3.3.0. This web page provides a useful overview of what has changed and here is the original release announcement.

robot scara con openCV
Esta es una prueba de un robot SCARA fabricado con 3 servos para el brazo actuador y 2 servos para controlar una cámara web.
Los brazos actuadores de tipo SCARA son un sistema muy eficiente para poner objetos en un espacio horizontal.
en esta pagina excelente se explica como calcular la cinematica inversa de de un brazo SCARA para obtener el angulo de os 2 servos que representan el brazo y ante brazo.
Este robot fue diseñado para hacer distintas pruebas, en este caso, se utilizo para "jugar" al clásico juego infantil TA-TE-TI, donde el robot usando visión artificial para determinar la jugada echa por el humano (los cuadrados naranjas) usando openCV con la función cv.SURF para detectar imágenes planas


vista del brazo actuador


cámara web para visión artificial


detalle de la placa ICARO



<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://i1.ytimg.com/vi/40XXQrdgbnc/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/40XXQrdgbnc?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata"/><param name="bgcolor" value="#FFFFFF"/><param name="allowFullScreen" value="true"/><embed allowfullscreen="true" height="266" src="http://www.youtube.com/v/40XXQrdgbnc?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" width="320"></embed></object>

video de reconocimiento de las fichas naranjas.


<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://i1.ytimg.com/vi/Xb1Zz7Bk0wU/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/Xb1Zz7Bk0wU?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata"/><param name="bgcolor" value="#FFFFFF"/><param name="allowFullScreen" value="true"/><embed allowfullscreen="true" height="266" src="http://www.youtube.com/v/Xb1Zz7Bk0wU?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" width="320"></embed></object>

jugando (y ganando) al ta-te-ti


Red Hat will provide PHP 5.4 for RHEL-6

Official announcement : Red Hat Software Collections 1.0 Beta Now Available

More information on Software Collections

Stability addicts can keep quiet, PHP 5.3.3 is still the standard version provided with RHEL-6.

We'll soon have an official and supported way to install PHP version 5.4, beside the system version, without any effect on installed components. Announcement tells the life cycle will be 3 years.

Attention  it's a beta version, published for evaluation purpose.

Installation

Activation of the distribution channel (requires a valid subscription) from the RHN web interface or from command line:

# rhn-channel --add --channel=rhel-x86_64-server-6-rhscl-1-beta

Installation of the meta-package and default components:

# yum install php54
...
======================================================================================================================================================
 Package                            Arch                    Version                          Repository                                          Size
======================================================================================================================================================
Installing:
 php54                              x86_64                  1-7.el6                          rhel-x86_64-server-6-rhscl-1-beta                  3.3 k
Installing for dependencies:
 php54-php-cli                      x86_64                  5.4.14-3.el6                     rhel-x86_64-server-6-rhscl-1-beta                  2.6 M
 php54-php-common                   x86_64                  5.4.14-3.el6                     rhel-x86_64-server-6-rhscl-1-beta                  566 k
 php54-php-pear                     noarch                  1:1.9.4-7.el6                    rhel-x86_64-server-6-rhscl-1-beta                  370 k
 php54-php-process                  x86_64                  5.4.14-3.el6                     rhel-x86_64-server-6-rhscl-1-beta                   45 k
 php54-php-xml                      x86_64                  5.4.14-3.el6                     rhel-x86_64-server-6-rhscl-1-beta                  109 k
 php54-runtime                      x86_64                  1-7.el6                          rhel-x86_64-server-6-rhscl-1-beta                  1.0 M

Transaction Summary
======================================================================================================================================================
Install       7 Package(s)

Total download size: 4.7 M
Installed size: 0 
Is this ok [y/N]: y

That's all ;)

Utilisation

Default version still 5.3.3

# php -v
PHP 5.3.3 (cli) (built: Nov 29 2012 04:12:23)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

You need to explicitly ask to use the SCL version, standard (SCL) way:

# scl enable php54 "php -v"
PHP 5.4.14 (cli) (built: May 23 2013 07:42:19)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

You can also use (for this collection, not supported for others):

# /opt/rh/php54/root/usr/bin/php -v
PHP 5.4.14 (cli) (built: May 23 2013 07:42:19)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

You can also permanently activate the collection:

# source /opt/rh/php54/enable
# php -v
PHP 5.4.14 (cli) (built: May 23 2013 07:42:19)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

Use from Apache

Various way exists, we'll only see the mod_php case

# yum install php54-php

Warning : apache can't load 2 php5 modules, so if the standard module is already present, on apache startup, you will get the error message:

[Sun Jun 16 16:51:01 2013] [warn] module php5_module is already loaded, skipping

You need to uninstall (or disable) the standard module, and then apache will use the PHP 5.4 from the collection.

Conclusion

I think this is a very important new feature which should help for the adoption of recent PHP version in enterprise environment.

CentOS (or other clones) users can also try the packages available on the community project site : Software Collections

Questions, with no answer yet:

  • For CentOS, will those packages be available in some official repository, or third-party (as the tru repo for DTS) ?
  • Will a php55 collection exists ?
  • Will packages for  RHEL-5 be available ?
  • Will EPEL be able to provide more extensions ?
  • Which PHP version will be packaged in the finale RHSCL version ?
OpenStack Cinder - Configure multiple backends

Following my first post of the series discussing how to scale OpenStack Cinder to multiple nodes, with this I want to approach the configuration and usage of the multibackend feature landed in Cinder with the Grizzly release.

This feature allows you to configure a single volume node for use with more than a single backend driver. You can find all about the few configuration bits needed also in the OpenStack block storage documentation. That makes this post somehow redundant but I wanted to keep up with the series and the topic is well worth to be kept also here.

As usual, some assumptions before we start:

  • you're familiar with the general OpenStack architecture
  • you have already some Cinder volume node configured and working as expected

Assuming we want our node, configured with some LVM based and an additional NFS based backend, this is what we would need to add into cinder.conf:

enabled_backends=lvm1,nfs1
[lvm1]
volume_driver=cinder.volume.drivers.lvm.LVMISCSIDriver
volume_backend_name=LVM_iSCSI
[nfs1]
nfs_shares_config=${PATH_TO_YOUR_SHARES_FILE}
volume_driver=cinder.volume.drivers.nfs.NfsDriver
volume_backend_name=NFS

The enabled_backends value defines some names (separated by a comma) for the config groups. These do not have to match the driver name nor the backend name.

When the configuration is complete, to use a particular backend when allocating new volumes, you'll have to pass a volume_type parameter to the creation command. Such a type has to be created beforehand and to have some backends assigned to it:

# cinder type-create lvm
# cinder type-key lvm set volume_backend_name=LVM_iSCSI
# cinder type-create nfs
# cinder type-key nfs set volume_backend_name=NFS

Finally, to create your volumes:

# cinder create --volume_type lvm --display_name inlvm 1

For people using the REST interface, to set any type-key property, including volume_backend_name, you pass that information along with the request as extra specs. You can list those indeed to make sure the configuration is working as expected:

#  cinder extra-specs-list

Note that you can have backends of the same type (driver) using different names (say two LVM based backends allocating volumes in different volume groups) or you can also have backends of the same type using the same name! The scheduler is in charge of making the proper decision on how to pickup the correct backend at creation time so a few notes on the filter scheduler (enabled by default in Grizzly):

  • firstly it filters the available backends (AvailabilityZoneFilter, CapacityFilter and CapabilitiesFilter are enabled by default and the backend name is matched against the capabilities)
  • secondly weights the previously filtered backends (CapacityWeigher is the only one enabled by default)

The CapacityWeigher attributes high score to backends with the most available space, so new volumes are allocated within the backend with the more space available matching the particular name in the request.

SFD 2013 registration is now ON!

At SFD mailing list, the announcement that the registration for SFD 2013 is open has come out. The wiki has been prepared with the current localized languages. As usual we are available for support through email on sfd-discuss or on IRC (#SFD on freenode).

web-banner-chat-attending-h

The deadline for registered teams to get the free goodies is July 21st which should give us enough time to ship everything everywhere. Simply create your team page under http://wiki.softwarefreedomday.org/2013 (/country/city/team for most) and complete the form on http://www.softwarefreedomday.org/cgi-bin/register.py . All information and links are of course available from the SFD website.

As usual artworks are available under http://wiki.softwarefreedomday.org/Artwork and CC-BY licensed. Feel free to use, enhanced and eventually localize them.

This year sponsors are Canonical, Google, and Linode. So let’s get started and happy SFD preparations!

SFD 2011 winners for inspiration: http://www.softwarefreedomday.org/en/competition/winners-2011

My First Ruby on Rails project

I will be working on my first ruby on rails project with the admin interface.

I found this great tutorial from DigitalOcean that shows how to get everything installed on ubuntu 12.04, I am also looking on how to install it on my home computer with fedora 18

 

rubyonrails


June 15, 2013

Gordische Knoten

Vor einigen Tagen bin ich auf ein kleines Programm aufmerksam geworden – Knotter. Mit diesem in QT implementierten Programm kann man im Handumdrehen keltische Knoten oder islamische Flechtwerke erstellen. Mit Inkscape geht das zwar auch, ist aber wesentlich aufwendiger. Die Erweiterung für Knotenmuster trennt nur an den Überlappungen die jeweiligen Pfade auf, um Knoten darzustellen.
Knotter läßt sich relativ leicht und intuitiv bedienen, es gibt nicht allzu viele Optionen. Vielleicht ist auch genau das, dass Geheimnis das Programm läßt sich wirklich einfach bedienen.

Ein Gitter an dem die gesetzten Knotenpunkte einrasten erleichtert die Arbeit, bei Bedarf kann man es auch abschalten. Wer nichtvon Beginn an, Knoten setzen möchte, der kann eines der mitgelieferten Plugins benutzen. Mit Hilfe dieser kann man sich ein Gitter, Polygone oder sogar Schriftrendern lassen. Bei Bedarf lassen sich eigene Plugins in JSON erstellen und Knotter damit erweitern. Dabei wird in 3 verschiedenen Arten von Scripten unterschieden. Es gibt Scripts zum Ändern der Spitzen (cusp), der Überschneidungen (edge) und natürlich zum Rendern von Formen. Wer interessiert ist Knotter zu erweitern, findet im Wiki eine ausreichende Dokumentation.

Nach dem man die Grundform des Knotenmuster erstellt hat, kann man natürlich das Aussehen noch anpassen, so eine Spitzenart einstellen, die Kurven anpassen, die Abstände und Größe der Löcher und die Winkel einstellen. Man kann natürlich auch die Farbe des Muster und der Ränder einstellen, hier sind nahezu beliebig viele Randfarben möglich.
Hat man sein Knotenmuster erstellt, kann man es als Rastergrafik oder als SVG exportieren. Zum speichern benutzt Knotter sein eigenes Format, *.knot man kann aber auch als XML-Datei abspeichern. Man kann aber auch den erstellten Knoten per Copy & Paste in Inkscape importieren. Wer Hilfebeim Einstieg braucht, findet im Wiki des Projektes einige Tutorials.

Es gibt aber auch Abstriche, da Knotter ein relativ junges Projekt ist, gibt es noch keine deutsche Übersetzung, dasstut der Sache aber keinen Abbruch. Man kann mit dieser Software auf jeden Fall Spaß haben.

Wer Knotter installieren möchte, findet den Sourcecode natürlich auf den Seiten des Projektes. Es gibt aber auch Pakete für Debian, Ubuntu, Fedora und weitere.

IMHO: Gnome Classic Mode: Die Gnome-Shell ist auf dem Desktop gescheitert

Mit der Version 3.8 hat das Gnome-Projekt den seit Gnome 3.0 existierenden Fallback-Mode durch den so genannten Classic-Mode ersetzt, der dem Gnome 2.x Desktop ähnelt.

Offiziell begründet man beim Gnome-Projekt den Classic-Mode damit, das der Fallback-Mode zu wartungsintensiv und kaum genutzt worden sei. Viel Wahrscheinlicher dürfte jedoch sein, das man bei Gnome zu der Erkenntnis gekommen ist, das die Gnome-Shell auf dem Desktop gescheitert ist und das man hofft, mit dem Classic-Mode Benutzer, die zu anderen Desktops gewechselt sind, wieder zu Gnome zurück holen zu können.

Ob dieses Ansinnen von Erfolg gekrönt ist, wird sich noch zeigen müssen. Da jedoch Red Hat bereits hat verlauten lassen, das man bei RHEL 7 standardmäßig den Classic-Mode als Desktop nutzen will, dürften wohl viele “Gnome-Flüchtlinge” zumindest kurzzeitig wieder zu Gnome zurückkehren ob sie jedoch bei Gnome bleiben hängt auch davon ab, wie es mit dem Classic-Mode in Zukunft weitergeht.

Nichts desto trotz wären die Gnome-Entwickler gut beraten, einerseits den Classic-Mode nicht so stiefmütterlich zu behandeln, wie sie es beim Fallback-Mode getan haben und andererseits sollten sie sich ernsthaft Gedanken machen, ob die an eine Tablet-Oberfläche erinnernde Gnome-Shell tatsächlich die richtige Arbeitsoberfläche für Notebooks und Desktop-PCs ist, da sie Arbeitsabläufe erzwingt, die im Berufsalltag wohl sehr oft als nicht intuitiv empfunden werden dürften.

IMHO ist der Kommentar von Fedora-Blog.de. IMHO = In My Humble Opinion (Meiner bescheidenen Meinung nach).
Red Hat Summit 2013 Recap

Red Hat Summit Opening KeynoteThe 2013 Red Hat Summit was my second one and I enjoyed it more than last year. Quite a few people asked for a recap and some takeaways from the Summit and that’s what I hope to do in this post.

Keynotes
It’s quite apparent that Red Hat is taking a more assertive — and sometimes aggressive — stance against closed source, overpriced solutions that prevent consumers from getting things done. Jim Whitehurst had a slide that showed “Open or Die” with a live plant on the left and a dead one on the right (see the photo in the post just below this paragraph). You could hear the gasp in the audience from some of the less technical crowd. Red Hat is making a big push to deliver on Openstack and to modernize their RHEL and RHEV platforms. Paul Cormier detailed some of the upcoming offerings and the overall strategy seems to be a double-down on virtualization via Openstack and further enhancement of Enterprise Linux.

Jim Whitehurst: Open or DieOf the vendor keynotes, the Intel keynote from Dirk Hohndel was superb. He seemed a bit nervous at first and we were quickly losing interest but he brought us back in with some good anecdotes. Dirk went into detail about how a company with a ton of intellectual property could also embrace open source. Surprisingly, the speech really moved me and there were no slides involved; it was just Dirk talking.

You can watch the keynotes on Red Hat’s Summit site. If you only watch one of them, watch Dirk Hohndel’s talk (direct link to MP4).

Sessions
Jon Masters: Hyperscale ARMThe most memorable was Jon Masters’ demonstration of the 64-bit ARM platform (AArch64). Although there was no bicycle or spandex involved this year (he apologized for the lack of both), it was amazing to see some firsts. It was the first time AArch64 has been demonstrated in public and the first time Gluster ran on 64-bit ARM. He had a 2U rackmount chassis and the fans were extremely loud. Jon commented that the chips are “rarer than gold” and that he wasn’t going to chance turning the fans off. The server performed quite well during the demonstration and certainly outperformed what I’d expect from an ARM system.

Dan Walsh led two informative sessions that I enjoyed. The first was a session on Linux containers. LXC confused me quite a bit before the talk but Dan and the product manager went through how containers work step by step. They gave real world use cases and made comparisons to the more prevalent virtualization methods, like KVM. As you might expect, Dan sprinkled in some useful security tips to make containers more safe to use.

Another of Dan’s talks was about how to use SELinux in a large enterprise. He started it off with a brief explanation of SELinux and made us all stand up and say the words on his first slide (“SELinux is a labeling system”). He offered some tips on how to manage SELinux on multiple machines with Puppet and Ansible. In addition, he showed how custom policies could be easily exported and then passed around as RPM’s or within configuration management systems. We also saw how to send auditd logs to remote systems for aggregation and alerting. You can certainly manage SELinux on many machines simply by treating the policies and configuration just like you treat any other service’s configuration files.

Even after the Pub Crawl on Thursday night, the Friday morning presentation about systemd was packed with attendees. The presenters went through SysV’s shortcomings and what systemd can deliver. It will replace init in RHEL 7. Adding systemd reduces the complexity of managing services and allows you to automate many of the things that are annoying to do manually (like cgroups). Its default method of handling cgroups allows CPU share to be carved up per service rather than per process. That means that if httpd has ten workers and MySQL is running two processes, each service will receive a 50% share of the total CPU (rather than httpd getting a lot extra since it has multiple processes).

The RHEL 7 talks were extremely informative and I was writing until my hand almost fell off. I probably missed a lot of the new features so it might be a good idea to wait for the slides to be published. If you’re eager to use RHEL 7 as a desktop, you’ll see GNOME’s classic mode on the desktop (and it looks great).

After-hours
As usual, the Red Hat Certified Professionals reception at McGreevy’s was a great networking opportunity. I met other Linux users from around the world and enjoyed some pretty decent beer and food. I stayed after the reception and received a detailed lesson about how hockey works. The Bruins pushed through three OT’s but eventually lost.

The rain ruined Thursday night’s plans but the Red Hat marketing folks put together a great alternative in less than 24 hours. We ended up at Royale and were treated to a ton of food and drinks. Some musicians set up late in the evening and we were all wondering what type of music they’d play. It was a group called Alter Ego from Montreal and they really rocked the place. They’re famous for “60 costume changes in 90 minutes” and they took us through oldies, disco, and contemporary music. They hit every single music genre I could think of (except country) and everyone was amazed that they entertained us for 90 minutes without a single break. If you get the chance to see this group in person, don’t miss it.

Panorama: Alter Ego at Royale

Wrap-up
The Red Hat Summits continue to be a good opportunity to learn, network, and experiment. The ratio of attendees seems to be tilting more toward the non-technical side, and this is a problem that the organizers will definitely need to improve. There were several technical sessions packed wall to wall with plenty of non-technical people playing on their phones or checking email on their laptops. It’s a tough problem to fix and many conferences have the same issue.

Next year’s summit will be in San Francisco in April. I hope to see you there!

Red Hat Summit 2013 Recap is a post from: Major Hayden's blog.

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

June 14, 2013

Daily log June 14th 2013
  • Switched out a broken SSD in test machine for a hybrid drive. Hopefully it’ll last longer even if it is slightly slower.
  • Hit a trinity bug where a child process would sleep for a really long time, and the watchdog had already exited. Reworked things so the watchdog never leaves while there child processes still running so that it can SIGKILL ‘stuck’ children. Stupid bug..
  • Spent some time cleaning up the linked list uses in trinity. Not happy with the resulting patch so didn’t commit it. Maybe next week.
  • Short bi-weekly kernel meeting in #fedora-meeting. Nothing exciting.

Looked over my 3.10-rc5 outstanding issues. Some more patches got merged, so things are starting to look better, as long as I don’t find any new problems next week.

Daily log June 14th 2013 is a post from: codemonkey.org.uk

State of Fedbadges #2

I am happy to report that this summer has been excellent. We are making real progress on the Fedora Badges infrastructure and I'm very satisfied with our pace. There is going to be some awesome hackery ahead.

Tahrir

  • Fedora cloud node is still live with current develop branch, though not much in the way of end-user functionality. That will be this coming week.

  • Notable improvements to the interface.

    • Better structure.
    • More Fedora look & feel.
    • Built Fedora Badges logo.
    • Implemented initial Tahrir logo and favicon. Thanks, Decause.
  • Did away with is_admin and implemented proper Pyramid __acl__ machinery. See issue #33.

  • As per issue #61, took variables base_url and title out of views' return dicts and added them as Pyramid events with super-fancy Pyramid magic:

    # This is Tahrir's events.py file.
    
    from pyramid.events import (
        subscriber,
        BeforeRender,
    )
    
    from pyramid.security import (
        authenticated_userid,
    )
    
    
    @subscriber(BeforeRender)
    def inject_globals(event):
        """Injects global variables into every template after the view
        is processed but before the template is rendered."""
    
        # request is available in every template, and we can just pull it
        # in like so...
        request = event['request']
    
        # ... and then set a couple global variables that will be available
        # in every template, so we don't have to pass them through the
        # dict returned by the view every time!
        event['title'] = request.registry.settings['tahrir.title']
        event['base_url'] = request.registry.settings['tahrir.base_url']
    
  • Began rewiring database structure. Tahrir will now soon have a database connection through tahrir_api.dbapi to tahrir_api.model, rather than being directly connected to tahrir_api.model. I will be implementing the currently-unused TahrirDatabase class provided by Tahrir-API's dbapi.py file.

  • Other changes required by changes to database model in Tahrir-API, detailed below.

Tahrir API

  • Learned Alembic and wrote some migration scripts for the database additions I planned to make. It was cool. They worked.
  • Made additions to database detailed in recent posts. Check out the before post and the after post.
  • Fixed a failing test caused by one of my changes. Also fixed a warning regarding silly unicode things. Note: hashlib's hexdigest() function does not return a unicode value.

Badges General

  • Added badge ideas found on this old wiki page to my overarching summer badges repo.
  • Threebean, Decause, and Jenn contributed a significant amount to the repo today.
  • Threebean is hard at work implementing many of the badges outlined in the repo. But I'll let him talk about that.

Previous State of Fedbadges

Daily Misc.

  • ASCiiFLOW is a cool thing.
    • I have some feelings about the very persistent "Help us improve this website" dialog.
  • Daily Dead: 71-12-07
    • Chooba chooba

Feedback

Please, send your questions and comments in a plain text email to oddshocks at riseup dot net. I may respond publicly, so please tell me if you would not like the email content and/or your name published.