Canonical Voices

Posts tagged with 'general'

Prakash

Asus 7? Tablet for US$149

Right after CES, Asus has announced a 7″ Tablet for US$ 150 called MemoPad. Here are the features.

  • 1 GHz Single core processor: Wondermedia WM8950 (VIA)
  • 1 GB RAM
  • 7″ Screen with 1024×600 screen
  • 16 GB memory with SD card slot
  • MicroUSB
  • WiFi Only

 

Read more
Prakash

Netflix is at it again, this time showing off its homemade architecture for running Hadoop workloads in the Amazon Web Services cloud. It’s all about the flexibility of being able to run, manage and access multiple clusters while eliminating as many barriers as possible.

Read More

.

Read more
facundo

Tratando de colaborar


Hace alguna semanas ví un tuit sobre la posibilidad de ayudar con la revista on line Hackers & Developers, un magazine digital de distribución mensual sobre Software Libre, Hacking y Programación.

La revista está interesante, y se nota que le ponen un montón de laburo atrás. Entonces, me pareció copado ayudar. Lamentablemente no tengo tiempo en ponerme a escribir artículos desde cero (habrán notado cuanto participé en otras iniciativas como PET, la revista de Python Argentina... más allá de algo puntual, no tuve tiempo tampoco de escribir nada nuevo).

Pero, hay algo que sí me da el tiempo y es revisar algún que otro artículo. O sea, agarrar un artículo de Python y asegurarme que esté (a nivel de Python, no de castellano) correcto.

Entones mandé un mail a la cuenta a la que uno se podía postular: "(...) Me gustaría ser *revisor* de cualquier artículo que tenga que ver con Python.".

Me contestaron que gracias por mi contacto, que "... estamos buscando profesionales que deseen incorporarse al Staff permanente de HDMagazine, como columnistas/redactores.  Si estás interesado en sumarte como redactor, por favor, no dudes en hacérnoslo saber."

O sea, no les gustó mi propuesta. Quise ser revisor, me dijeron que no, que estaban buscando otra cosa.

Todo bien.

Hoy me acordé de eso y tuiteé que me había postulado como revisor y me habían rechazado.

Me contestaron desde que la revista "no es un grupo de satisfacción de deseos personales" (publicamente) y hasta me trataron de mentiroso y malintencionado (en privado), lo cual más allá de que uno lo relativice, no deja de doler.

En fin. Mejor enfocar energías en quienes lo merecen.

Read more
facundo

Extrapolando la realidad


Con el tiempo me fui dando cuenta que disfruto muchísimo las historias de ciencia ficción donde el autor agarra algo ya de por sí interesante de la realidad, lo extrapola para otro lado, y le agrega una historia copada alrededor.

Esto hace que si yo ya conocía las bases reales de la historia, disfrute mucho la extrapolación y las posibilidades que se desprenden. Y si no las conocía, tuve contacto con las mismas y es una excusa para aprender.

Por ejemplo, tomemos algo interesante de la realidad sobre lo cual estaba leyendo el otro día: un teorema de incompletitud de Kurt Gödel que básicamente dice que en cualquier teoría siempre hay enunciados que no se pueden probar como verdaderos o falsos a partir de los axiomas de la misma teoría. O sea, no se puede demostrar toda la teoría, completamente, desde adentro.

Una extrapolación de esto (totalmente fuera de lo que dijo Gödel, ya entrando en terrenos propios de la ciencia ficción) es que viviendo dentro de un Universo no se puede llegar a conocer toda la física que explique el funcionamiento de ese Universo. Por ejemplo, los fantasmas, el alma, o lo que pasa adentro de un agujero negro: existen y funcionan con reglas físicas del Universo, pero estas reglas no son deducibles/encontrables a menos que al Universo se lo estudie de afuera.

A eso le agregamos toda una historia, posiblemente que involucre comunicación entre científicos entre dos Universos distintos (mediante mediums o interlocutores paranormales!), lo escribimos bonito e interesante, y tenemos un libro.

Y la parte complicada es esta última.

Ideas de historias copadas tiene cualquiera. Armar un buen libro, interesante y lindo de leer, es otro tema.

Read more
Deryck Hodge

Today, the Private Projects and Private Blueprints features on Launchpad are leaving beta. These features are available now for use by all Launchpad users. Private Blueprints was started as part of the Private Projects work, with the end goal in mind of truly private projects on Launchpad. Private Projects was described in its beta announcement like this:

When creating a new project on Launchpad, beta testers will have the option to create “Proprietary” or “Embargoed” projects. Embargoed exists for projects that intend to start private but later be revealed publicly. All other private projects should be proprietary. Milestones and series are proprietary or embargoed based on the project setting. To make them public, you will need to make the project itself public.

When you create a proprietary or embargoed project on Launchpad, all of the sharing policies for your project will be set correctly for you. This means that if you start your project as a proprietary project, your branches, bugs, and blueprints will be created proprietary by default. Answers and translations are not available for private projects.

A commercial subscription is required to use private projects, but any user who creates a proprietary or embargoed project on Launchpad will receive a 30 day trial commercial subscription. Launchpad users with existing commercial subscriptions can convert a public project to proprietary or embargoed by changing the information type in the project’s settings. You may have some work to do on your project before you can transition to a private information type — for example, disable answers if you have that app enabled for your project — but Launchpad will block the change and tell you what needs to happen before you can switch to a private information type.

Users should be aware, though, that if your project has been listed on Launchpad publicly until now, then search engines know of its existence already. If you want a proprietary project that no one can learn of its name, you should create a new project on Launchpad. Transitioning a public project to private allows you to keep your series and milestones private going forward, but users may have already been able to discover the existence of the project since it was public already.

We are happy to make truly private projects available for all users on Launchpad. If you run into any issues, please file a bug against Launchpad or ask for help in #launchpad on Freenode.

Read more
facundo

Películas, catching up


Al fin una buena temporada donde vi muchas pelis...

  • A Nightmare on Elm Street: -0. Dentro de todo zafa, pero no tiene vueltas la historia, y es todo muy repetitivo y predecible.
  • Che: +1. Más allá que la historia es conocida, está muy, pero MUY bien filmada, y contada. Imperdible.
  • Cop out: +0. Para ser una de "polis que se llevan bien/mal en tono de comedia", es bastante rescatable.
  • From Paris with love: +1. Típica de superagentes contra el mal, pero divertida y bien hecha (y muy violenta, como deben ser estas pelis).
  • Hot tub time machine: -0. Tiene sus momentos bastantes divertidos, pero no vale la pena como peli en general. A menos que estén muy al pedo...
  • Pirate radio: +0. Buenas historias, divertidas actuaciones, algunos temas interesantes... imperdible musicalización.
  • Prince of Persia: The Sands of Time: +0. Película de acción, de las berretas; por ejemplo, el tipo después de estar toda la película en el desierto, tiene el pelo sin arena...
  • Robin Hood: +1. Muy buena versión, que no cae en contar lo mismo de siempre, y arma una historia muy interesante.
  • Salt: +0. Parecida a 'From Paris with love' en su concepto (espías, el bien y el mal, violencia), pero un escalón abajo.
  • The Dark Knight rises: +1. No es la mejor Batman, y tiene una de las peores actuaciones de "me estoy muriendo, me morí", pero la peli en general está buena.
  • The imaginarium of Doctor Parnassus: +1. Muy difícil de describir... es una peli muy loca, pero muy interesante.
  • The raven: +1. Una historia alternativa sobre los últimos días de Edgard Allan Poe, convertido en un thriller macabro de suspenso, bastante bien hecho.
  • Tinker tailor soldier spy: -0. Muy enroscado todo al principio para disolverse en un final que no me pareció demasiado interesante... pero si te gustan las películas de espías (a nivel de inteligencia y contrainteligencia), adelante.
  • Toy story 3: -0. Más de lo mismo.
  • Wall Street: Money never sleeps: +1. Recontra interesante cómo explican la timba financiera en USA, tomando como ejemplo (real) el debacle que sufrieron de las hipotecas. ¡Para verla hasta entenderla! ;)
  • When you're strange: +1. Muy bien contada la historia de los Doors, muy bien mezclada con la música. Imperdible si te gusta la banda.


Obviamente, hay una buena tanda de nuevas anotadas:


Finalmente, el conteo de pendientes por fecha:

(24-Sep-2008)   15   6
(21-Ene-2009)   18  18  12   1   1
(09-May-2009)   13  11  10   5
(15-Oct-2009)   17  16  15  14
(01-Mar-2010)   18  18  18  18  16   4
(12-Sep-2010)   19  18  18  18  18  18
(14-Dic-2010)   13  13  13  13  12  12
(13-Abr-2011)       23  23  23  23  23
(09-Ago-2011)           12  12  11  11
(06-Ene-2012)               21  21  18
(27-Jul-2012)                   15  15
(26-Nov-2012)                       12
Total:         113 123 121 125 117 113

Read more
facundo

Noviembre complicado


El mes pasado les decía que la agenda venía complicada, que cerrar el año no iba a ser descansado, etc...

A fines de Octubre me fui para Venezuela con la familia. ¿La excusa? Fui invitado a dar un par de charlas en la primer PyConVe, y también una charla en una "mañana Python" en la ciudad de Mérida, así que aproveché y llevé a Moni y Felu para convertir el resto de los días en vacaciones :)

La verdad es que estuvo todo muy lindo (más allá de los viajes, como ya comenté por acá). Llegamos a Caracas, y al toque nos fuimos para Mérida, donde fuimos recibidos por Francisco Palm (organizador de la jornada allí, donde di "Python en el mundo real") quien nos alojó en su casa.

Francisco y yo

Estuvimos allí un par de días, y la verdad que la pasamos genial. La familia de Francisco nos hizo sentir muy bienvenidos, y la hijita menor (Abril, cuatro años) se llevó muy bien con Felipe así que nos divertimos bastante, y descansamos un montón. Aquí hay algunas fotos de esos días.

Luego volvimos a Caracas. El primer día de la conferencia decidí no asistir y con la familia hicimos un paseo muy interesante subiendo a un teleférico y visitando un pueblito de montaña. Al otro día sí fui a la conferencia a la mañana, donde di la charla de "Python más rápido que C". Por la tarde me volví a escapar, ya que acompañé a Moni y a Felu al aeropuerto, que ya se volvían para casa.

Esperando para subir al teleférico

El sábado fue el día más fuerte mío en la conferencia, ya que abrí y cerré el día. No era la idea, tampoco, pero faltó un disertante a la mañana, y ya había gente, así que aproveché y pre-estrené (juiiira de programa!) mi charla que ya tenía preparada para PyCon Argentina. El cierre fue con la clásica "Entendiendo Unicode", :)

La verdad es que la pasé muy bien en Venezuela, charlé con muchísima gente, y siempre me sentí muy bien. Gracias a Fermín, Francisco y al resto de los colaboradores por toda la buena onda. Acá están las fotos de la parte de Caracas.

Yo llegué a Argentina el lunes a la mañana, con la mala noticia de que me habían perdido la valija, :(. Me fue a buscar mi viejo, y me quedé en su casa todo el día. A la tarde vinieron Moni y Felu y cenamos en lo de mi mamá.  Del martes a viernes hice casi vida normal... trabajando, pero también haciendo doble tenis y doble natación (para recuperar la semana anterior), y tratando de cerrar otros temas varios (por ejemplo, recuperar mi valija: me la trajeron el martes a casa).

Y fue todo así como muy ocupado porque el sábado al mediodía ya me rajé de nuevo... esta vez sólo, y por laburo, ya que había reunión general de Onlines Services en Londres. La verdad es que entre el trabajo y algunas salidas a la noche, la semana se me pasó volando. Fui un par de veces a comprar ropa, un par a cenar con compañeros, y la salida formal de todo el equipo, que fue en Venturi's Table donde volvimos a cocinar entre todos (esta vez no pizza, sino platos elaborados!). Obviamente, siempre que paseábamos por ahí, no perdíamos oportunidad de tomarnos alguna cervecita en un pub londinense...

Pub

La salida más atípica fue claramente cuando fuimos una noche a un lugar donde cenamos completamente a oscuras! Esto fue en Dans Le Noir, un lugar totalmente dedicado a que te den de morfar sin que veas ni la punta de tu nariz. Fuimos varios, todos de confianza y hablando castellano, y nos reímos muchísimo, la pasamos muy bien. La experiencia de estar 100% a oscuras ya es interesante per se, pero si a eso le agregás tener que comer (¡y podés pedir platos sorpresa, así que no sabés qué te van a traer!) y beber, es recomendable.

Quizás la semana se hizo corta también porque el viernes a la tarde ya estaba emprendiendo el regreso. Fue todo muy apurado, pero salió bien: llegué a las diez y media de la mañana del sábado a aeroparque, y luego de hacer todos los trámites para salir del mismo (con valija y todo!) me tomé un taxi a casa. Medio acomodé todo, me pegué un baño, y luego de estar un ratito con la familia, agarré el auto y me fui para Quilmes.

El apuro era porque se estaba desarrollando la PyCon Argentina 2012, a la cual no pude asistir completamente por obvias razones, :(. Pero tenía que dar dos charlas, así que era ir o ir. Llegué, di mi charla estreno de "Bindings, mutable default arguments, y otros quilom... detalles", luego me metí en la charla de Brett Cannon sobre cómo funciona el import de Python, al toque di yo otra charla (nuevamente "Entendiendo Unicode"), y luego "Inferencias de tipos en Python", de Claudio Freire.

Import Python

La verdad, sólo estuve una tarde en la conferencia, pero la aproveché al máximo. Luego de un break vinieron las lightning talks, y finalmente la charla de cierre del evento, a cargo de Roberto Alsina: "Python 2 debe morir".  Luego fotos, sorteo, y huida al parque cervecero de Quilmes a cerrar el día haciendo sociales.

En fin... un noviembre a full, y eso que recién pasamos la mitad. Pero ahora viene todo un poco más tranquilo... por una semanita o así, que ya arrancan las jodas de despedida del año, tengo muchas clases de tenis atrasadas, y mil cosas que hacer en casa. Pero vieron como es el refrán, calavera con gusto no pica ;).

Read more
Laura czajkowski

Launchpad has been a key tool used in developing Novacut. I use Launchpad for code hosting, bug tracking, daily builds, and more. For almost two years I’ve been doing monthly stable releases on Launchpad, and Novacut now spans six separate Launchpad projects. To say the least, I’ve learned a lot about Launchpad in the process.

I don’t think Novacut could be where it is today without Launchpad, so I want to pass on some of what I’ve learned the past two years. Here are my five essential Launchpad best practices:

1. Daily Builds

I’m always very thankful that early on Paul Hummer took the time to school me on using Source Package Recipes to do daily builds. This Launchpad service gives you automated package builds across multiple architectures, and multiple Ubuntu releases.

I don’t know how to emphasize this enough, but seriously, you need daily builds. As a point of reference, daily builds are the 3rd item in the famed Joel Test.

These builds are triggered simply by making commits to the appropriate bzr branch on Launchpad (usually your trunk branch). You’ll automatically get up to one build per 24-hour period, and you can manually trigger additional builds when needed.

You can include your debian/ packaging directory in your project source tree, or you can keep debian/ in a separate bzr branch. For the Novacut components, I’ve found it most helpful to keep debian/ in the source trees because it’s handy to be able to land a code change and its corresponding packaging change in a single merge. This works for us because we currently can use the exact same debian/ for all the Ubuntu versions we support. If that’s not true for your project, you’ll need multiple debian/ branches.

For reference, here’s the Novacut Source Package Recipe.

2. Unit Tests

You should run your unit tests during your package builds, and you should fail the build when any unit test fails. This is particularly important for daily builds, because this will prevent a package with broken unit tests from reaching your daily PPA.

The Launchpad build servers are strict and unforgiving environments, which is a good thing when it comes to unit tests. The build servers are also probably quite different from your local development environment. On countless occasions our daily builds have caught failures that only occur on i386 (my workstation is amd64), or only occur on an Ubuntu release other than the one I’m running, etc.

To run your unit tests during the package build, you’ll need to modify your debian/rules file as appropriate. If you’re using debhelper, add an override_dh_auto_test target.

You might also need to add additional packages to the Build-Depends section of your debian/control file, packages that are needed by the unit tests but are otherwise not needed by the build itself.

For reference, here’s the debian/rules file used to run the Dmedia unit tests (which is also a handy Python3 example).

3. Track Ubuntu+1

When a new Ubuntu version opens up for development, I immediately start doing daily builds on the development version, even though I don’t typically upgrade my own computers till around 4 months into the cycle.

I use daily builds on the development release as an early warning system. With no extra effort on my part, these builds give me a heads-up about code or packaging changes that might be needed to make Novacut work well on the next Ubuntu release.

To enable daily builds on the next Ubuntu version, just go to your Source Package Recipe, click on “Distribution series”, and check the box for the newest series. Now you’ll have daily builds on the newest Ubuntu version, in addition to all the versions you were already building for.

For example, I’m currently in the process of enabling daily builds for Raring, as you can see in the Microfiber Source Package Recipe. And I did indeed encounter a build failure on Raring, seemingly caused by a debhelper issue.

For the first month or so in a cycle, I don’t tend to worry much about build failures on the development version. But after the dust has settled a bit, I make sure to keep the builds in working order, and I even do monthly stable releases for the Ubuntu development version. Again, I do all this pro-actively even before I personally start running the newest Ubuntu version.

4. PPAs & Users

Whenever someone asks me why I use Launchpad instead of github, my short answer is always, “PPAs and users”.

Source Package Recipes give you much more than just a build, they give you daily packages that are easily consumable by your testing community and early adopters. This tight feedback loop prevents you from running too far ahead without getting a good reality check from your target users.

Keep in mind that for some products, the early adopters willing to install from a PPA might not be all that representative of your target user. So when it comes to making design decisions, you might need to politely ignore certain feedback from some of these early adopters. In my experience, this wont cause any hard feelings as long as you have clearly communicated who your target user is, and why.

For reference, you might look at the way we’ve defined the Novacut target user.

I recommend creating PPA names that are well-branded and easy to remember. First, create a Launchpad team with the same name as your product. In our case, we have a ~novacut team. Second, I recommend creating a daily and a stable PPA owned by the same team. In our case, that gives us two easy to remember PPAs:

Although none of our target users (professional video editors) currently use Ubuntu to do their job, I’ve been surprised by how many follow Novacut’s development via our stable PPA, and even our daily PPA. This has helped keep us on track, and has helped us build customer loyalty even before we have a finished product.

For me personally, this daily user engagement also makes the design and development process more enjoyable. It’s hard to empathize with an abstract persona; it’s easier to solve specific problems for specific people.

5. Use Apport

Till recently I didn’t realize that you can use Apport for automated crash reporting in unofficial packages delivered through a PPA.

We haven’t had Apport integration for that long, but it’s already provided us with dozens of highly valuable crash reports. Almost immediately some hardware specific issues came to light and were fixed, convincing me that a key benefit of Apport is knowing how your app might misbehave on a larger, more variable pool of hardware.

Apport also helped some rare bugs come to light. I thought Dmedia was basically crash-free, but those one-in-a-thousand bugs pop out quickly when thousands of people are running it. Most of these bugs would have eventually been found by one of our core devs, but the quicker a bug is discovered, the quicker and easier the bug is to fix.

For more info, check out this blog post and this screencast, where I covered our Apport integration in detail.

And for reference, see the merge proposal that added Apport integration in Novacut.

A big thank you to Jason DeRose for sharing how his project uses Launchpad on a daily basis.

 

Read more
Victor Palau

Chances are that either by now, or by the end of the week, some of you reading this post will have bought a new computer with Windows 8. Chances are high that you immediately felt the urge of installing Ubuntu, possibly also to have a shower.

If you did, I would like you to tell me about (Installing Ubuntu.. not about having a shower). I am specially interested if you installed 12.10, and if you had any secure boot issues.

Did all work magically? Did you have to muck around with BIOS settings? Tell me all about it.


Read more
Victor Palau

To make it easier to keep up with the work and progress on the Nexus 7 , I have set up a topic in status.ubuntu.com and a wiki page with the performance goals for the release:

If there is  a missing Blueprint that should be track under this topic, please let me know.

 


Read more
Prakash

At Netflix we need to be able to quickly query and analyze our AWS resources with widely varying search criteria. For instance, if we see a host with an EC2 hostname that is causing problems on one of our API servers then we need to find out what that host is and what team is responsible, Edda allows us to do this.

Read More.

Read more
Curtis Hovey

Launchpad’s bug and branch privacy features were replaced by information sharing that permits project maintainers to share kinds of confidential information with people at the project level. No one needs to manage bug and branch subscriptions to ensure trusted users have access to confidential information.

The Disclosure features

Disclosure is a super feature composed on many features that will allow commercial projects to work in private. Untrusted users cannot see the project’s data. Project maintainers can share their project with trusted users to reveal all or just some of the project’s data. The ultimate goal is to create private project in Launchpad, but that feature required several other features to be completed first. The Purple squad worked on Trusted Pickers, Privacy Transitions, Hardened Projects, Social Private Teams, and Sharing.

There was a lot of overlap between each feature the Purple squad worked on. Though we could start each feature independent of one another, we could only complete about 90% of each. When the Sharing UI changes entered beta, we were unblocked and fixes about most of the remaining issues, but fixing all the issues required all projects to switch to Sharing.   We did not consider Sharing, or any of the required features complete until we fixed all the bugs.

Disclosure facts

  • Planning started in June 2010 to replace the existing privacy mechanisms with something that would scale.
  • Early testing revealed that users did not trust Launchpad because the UI could not explain what was confidential, or what the consequences of a change would be — this needed to be fixed too.
  • 149 related bugs were identified in Launchpad.
  • Work started in June 2011 by the Purple squad.
  • Replacing the old privacy mechanisms and addressing the trust and information issues took 16 months.
  • About 45,000 lines code were added to support the features.
  • About 15% of the lines were for missing JavaScript test coverage.
  • More that 700 bugs were fixed in total.
  • About 5% of the fixed bugs were caused by the old non-scaling privacy mechanisms.
  • About 4% of the fixed bugs were caused by old JavaScript enhancements that broke features for non-JavaScript users.

Lessons learned

  • Misrepresentation of what is confidential, or what will be confidential or public is very important to users — more important than supporting private data.
  • Privacy/Sharing must be a first-class mechanism beneath all the mechanisms that work with confidential data.
    • Privacy was added on top of bugs, and it failed to scale to 100′s of bugs.
    • Privacy was added on top of branches, and it failed to scale to 1000′s of branches.
    • Filtering private items in code, or in database joins is not fast enough to work with 100,000′s of items.
  • Launchpad’s ReSTful object API is not suitable for working with large collections of objects like bugs or branches; a lighter, service-based approach was used to quickly work with large amounts of data.
  • Users need to work with confidential data via the API, using a text web browser from servers, using a browser with accessibility tools, as well as the common case of using a JavaScript enabled browser.
  • Lots of mock-ups and interactive tests will not predict all the interactions a user will have with real data; test with real code and data early to developer the final design.

Read more
Victor Palau

I decided to run some browser performance benchmarks from http://peacekeeper.futuremark.com/ in the Nexus 7 running Ubuntu, mainly to see how it compares with other platforms. Here are my basic conclusions as a result of the test:

  • In general Ubuntu + Nexus 7 performs pretty well
  • The Nexus 7 with Ubuntu and Chromium (629) performs better that the Android Nexus 7 (489)
  • Firefox performance (257) is pretty bad compare with Chromium (629). I have tested it in my laptop and the same different exist, however the more powerful hardware makes it not as relevant.

Unfortunately, I wasn’t able to access the detailed results (it displays blank), any suggestions why? My results are the bottom firefox (257) results, and the top Chrome (629):


Read more
Deryck Hodge

Private projects for beta testers

If you are part of Launchpad’s beta testers team, you can now start trialing private projects on Launchpad. The private projects feature builds on the great sharing work that Launchpad’s Purple Squad has done, allowing Launchpad users to create true private projects now. A commercial subscription is required to use private projects, but any user who creates a private project on Launchpad will receive a 30 day trial commercial subscription.

When creating a new project on Launchpad, beta testers will have the option to create “Proprietary” or “Embargoed” projects. Embargoed exists for projects that intend to start private but later be revealed publicly. All other private projects should be proprietary. Milestones and series are proprietary or embargoed based on the project setting. To make them public, you will need to make the project itself public.

Be warned, this is a large change to Launchpad and there are certainly bugs in our handling of privacy. You can check out our list of known issues, if you’d like. We, as the Launchpad Orange Squad, are committed to fixing all of those before we leave beta. So don’t worry, we’re still actively working on this feature. We did, however, want users to begin using this feature to get early feedback on the work. Don’t trial your super secret project with this feature just yet, but if you have something safe to try out private projects, now is a good time for beta testers to get going with the feature.

Enjoy private projects on Launchpad now, beta testers! And please file any bugs you find.

Read more
Laura czajkowski

Launchpad Workshop at UDS-R

After the success of the Launchpad clinics at the last UDS-Q we’ve decided to run some more! This time removed the sterile name of clinic and called them workshops.

If you want to get involved, scratch that itch, learn how to fix that irksome bug that has been bugging you’re not alone. Everyone probably has at least one that they’d like to see fixed.  The problem is now knowing how to fix them or maybe they don’t know how to set up the Launchpad development  environment, well lucky for you we have a lot of Launchpad developers at UDS-R and we’d like to help you help get bugs fixed!

The idea being if you have a bug you would like to fix, or pointed in the right direction  that we’ll be there to help you get on the road  to offer advice on every step of the Launchpad development process from Lines of code, to branch reviews to getting things done. We’ll have EC2 instances ready for you to develop on, so if you haven’t already gone through the process of setting up local Launchpad development on your machine, you don’t need to worry.

I have created a wiki page on which you should register if you’re going to be attending either of the clinics. Just list your name and the ID of the bug(s) you want to work on on that page. We’ll check the bugs out and get in touch with you if we think they’re too big to work on in the clinics – in which case we’ll try and work with you to get them fixed over a longer period. We’ve added the event to summit schedule, for Tuesday and Thursday of UDS so why not sign up and come along!

If you’ve never contributed before, Graham Binns has written a useful guide to contributing to  Launchpad.  He has also done up a screencast on fixing a bug in Launchpad.

Read more
facundo

Tercer cumple de Felu


Hace una semana festejamos los tres años de Felipe.

Hicimos el festejo en el mismo lugar que el año pasado, que está buenísimo. Es al aire libre, hay un montón de espacio, los chicos se divierten, los adultos tienen un montón de lugar para moverse.

Soplando las velitas

Sí, siendo al aire libre está el riesgo de que el día esté feo. De hecho, lo festejamos el domingo pasado porque lo tuvimos que pasar del lunes anterior, por cuestiones climáticas. Pero el lugar vale el riesgo.

Con Moni preparamos muchísimas cosas nosotros. Desde comida, hasta adornos, los souvenirs, etc. Estuvimos más de un mes laburando para el cumpleaños, y llega el día y ambos corriendo, y jurás que nunca más tanto quilombo.

Pero después sale todo tan lindo que realmente tenés ganas que al año siguiente sea parecido, :).

Juegos

Todas las fotos, acá.

Read more
facundo

Vorágine de fin de año


¿Fin de año? Ni cerca. Pero ya en septiembre mi agenda se empezó a complicar con muchas actividades...

Arrancamos a mitad de septiembre, con el PyDay de Córdoba. Aunque el evento era sólo el sábado, viajé el jueves a la noche (llegando el viernes a la mañana), y volví el domingo a la noche. Eso me permitió laburar todo el día con Naty y Matías, estar fresco para el evento, que luego tuvo una cena, y estar el domingo allá para el asado que hizo Perrito en la casa.

El evento en sí estuvo muy bueno, con mucha mucha gente y charlas copadas. Yo dí dos, Python 3000 que actualicé y renové para ese día, y Cómo los logs me salvaron el alma, una charla que originalmente había hecho en inglés.

Llegué a casa el martes a la madrugada, y el jueves al mediodía ya estabamos saliendo (con Moni y Felu) para Artigas, Uruguay, donde fue el Congreso Innovation 2012, un congreso sobre tecnología al servicio de la educación e implementación de las TICs en todas las asignaturas.

Yo di una versión "light" de Introducción a Python, que es la misma charla de siempre pero sin el contenido más avanzado y con unas páginas al final sobre Pilas, un motor para hacer videojuegos de manera sencilla que está dirigido a personas que comienzan a programar videojuegos y quieren lograr resultados interesantes y divertidos en poco tiempo.

La charla, a nivel Python, resultó (aún luego de los recortes) un poco avanzada para la audiencia, pero se quedaron bastante enganchados con Pilas; estuvo bueno. El resto de la conferencia no me interesó demasiado, aunque hubieron algunas cosas piolas. Igual me dediqué un poco a pasear con la familia, y conocer el lugar. Como parte del evento (y también con la familia) fuimos a un paseo el domingo a un lugar donde procesaban unas piedras fantásticas que son de la zona. Fotos.

Con las piedras de Artigas

Ese mismo domingo emprendimos el regreso, pero nos quedamos un día en Concordia, con la familia de Moni, y a casa realmente llegamos el lunes a la noche. Y esa misma semana, Junín.

La ventaja del evento en Junín (Séptimas Jornadas de Software Libre) es que el viernes arrancaba a las cinco de la tarde, por lo que sólo me pedí ese día en el laburo. Arranqué de casa luego del mediodía, como para llegar una hora antes, pero el viaje estuvo complicado a nivel rutas (están arreglando un montón, y eso hizo que por zonas no se podía ir a la máxima, o directamente me frenaron porque había partes de "un solo carril". Así y todo llegué justito: entré al hotel, me cambié y llegué a la Universidad dos minutos antes de que empiecen :).

El evento en sí estuvo lindo, algunas charlas interesantes, y mucho hacer sociales. No sólo porque viernes y sábado hubo cena grupal, sino porque el tener un pool al lado del hotel hizo que ambos días continuemos la joda ahí :p. ¡Hasta deporte hice! Invitados por Gastón y Cecilia, el sábado a la tarde jugamos un rato al tenis, y un rato al paddle. Y hasta me dieron las horas para un pequeño tallercito de Python y los frameworks más usados para hacer juegos, que dí en un bar para unos seis o siete chicos. Un lujo (dejo un par de fotos).

Plaza

No tuve más eventos que esos, pero el resto de los días tenía que trabajar, hacer cosas en la casa, y actividades como llevar a Felu a natación, o tomar clases de tenis (con las que venimos atrasados!). Encima, estamos preparando todo para el cumpleaños de Felipe, y no es menor la cantidad de horas que eso lleva.

Y bueno, calavera no chilla. Tengo que aprovechar Octubre, que no tengo eventos hasta casi fin de mes, y recuperar las clases de tenis, juntarme con gente (tengo como diez u once reuniones tentativas), y hacer un par de trámites que tengo pendientes. A ponerse las pilas, que Noviembre es otro mes enquilombado a nivel agenda...

Read more
Prakash

Boris Renski is co-founder of OpenStack integration consultancy Mirantis and he says every enterprise he’s worked with so far has been interested in OpenStack because they view it as an alternative to VMware. The board’s vote earlier this month has now muddled the differences, he says. “If OpenStack isn’t an alternative to VMware, then what the hell is it?” Renski says.

VMware’s entrance into OpenStack has been part of a whirlwind of news during the past few months for the virtualization company and Renksi’s comments may reflect some tension between the two camps.

Read More.

Related posts:

  1. VMware Joining OpenStack Delayed, For Now The OpenStack Board of Directors met this week and on...
  2. If AWS is the Walmart of cloud, is OpenStack the Soviet Union? The Cloud Faceoff! The stage was set for a lively...
  3. OpenStack could be the Linux of the cloud OpenStack has the potential to become as widely used in...

Related posts brought to you by Yet Another Related Posts Plugin.

Read more
Curtis Hovey

I have been analysing Launchpad’s critical bugs to track the Purple squad’s progress while on Launchpad maintenance duty. In January of 2011, the Cloud Engineering team né Launchpad Engineering team was reorganised into squads, where one or more squads would maintain Launchpad while other squads work on features. This change also aligned with a new found effort to enforce the zero-oops policy. The two maintenance squads had more than 332 critical bugs to close before we could consider adding features that the stakeholders and community wanted. By July 2011, the count dropped to its lowest point, 250 known critical bugs. Why did the count stop falling for fifteen months? Why is the count falling again?

Charting and analysing critical bugs

Chart of Launchpad's critical bugs since the formation of Launchpad squads and maintenance duties
The chart above needs some explanation to understand what is happening in Launchpad’s critical bugs over time. (You may want to open the image in a separate window to see everything in detail.) Each iteration is one week. The backlog represent the open critical bugs in launchpad at the start of the iteration. The future bugs are either bugs that are not discovered, not introduced, or reported and fixed within the iteration. The last group is crucial to understand the lines plotting the number of bugs fixed and added during the iteration. We strive to close critical bugs immediately. Most critical bugs are reported and fixed in a few days, so most bugs were not open long enough to be show up in the backlog. The number of bugs fixed must exceed the number added to make the backlog count fall. You can see that the maintenance squads have always been burning down the critical bugs, but if you are just watching the number of open bugs in Launchpad, you get the sense that the squads are running to just stand still.

I use the lp-milestone YUI widget to chart the bugs and analyse the our progress through the critical bugs. It allows me to summarise a set of bugs, or analyse a subset by bug tag.

Launchpad maintenance analysis -- driving critical bugs to zero

Though 22 bugs were fixed this past week, 14 were added, thus the critical count dropped by 8. The last eight iterations are used to calculate the average bugs closed and open per iteration. The relative velocity (velocity – flux) is used to estimate the remaining number of days to drive the count to zero. When the Purple squad started maintenance on September 10th of 2012, the estimated days of effort was more than 1,200. In just three weeks, the number has fallen dramatically. The principle reason the backlog of critical bugs has fallen is that the Purple squad is now giving those bugs their full attention, but that generalisation is unsatisfactory.

Why is the Purple squad so good at closing bugs in the critical backlog?

I do not know the answer to my question. The critical backlog reached its all-time low of 250 bugs with the release of the Purple squad’s maintenance work in July 2011. There was supposition that  Purple fixed the easy bugs, or that the fixes did not address the root cause, so another critical bug was opened. I disagree. The squad had no trouble finding easy bugs, and it too would have been fixing secondary bugs if the first fix was incomplete. I can tell you how the squad works on critical bugs, but not why it is successful.

I was surprised to see the Purple squad were still the top critical bug closers when it returned to maintenance after 15 months of feature work. How could that be?  The squad fixed a lot of old timeout and JavaScript bugs in the last few months through systemic changes — enough to significantly affect the statistics. About 600 critical bugs were closed while Purple squad were on feature work. The squad closed 210 of those bugs. 60 were regressions that were fixed within the iteration, so they never showed up in the backlog. 70 critical bugs were fixed because they blocked the feature, and 80 critical bugs were because Purple was the only squad awake when the issue was reported. The 4 other squads fixed an average of 98 bugs each when they were on maintenance. The Purple squad fixed more bugs then maintenance squads on average even when they were not officially doing maintenance work.  The data, charts, and analysis always includes the Purple squad.

I suspect the Purple squad has more familiarity with bugs in the critical backlog. They never stopped reading the critical bugs when they were on feature work. They saw opportunities to fix critical bugs while solving feature problems. I know some of the squad members are subscribed to all critical bugs and re-read them often. They triage and re-triage Launchpad bugs. This familiarity means that many bugs are ready to code — they know where the problem is and how to fix it before the work is assigned to them. They fixed many bugs in less than a day, often doing exactly what was suggested in the bug comments.

During the first week of their return to maintenance, about 30 critical bugs were discovered to be dupes of other bugs. Though this change does make the backlog count fall, it also revised all the data, so the chart is not showing these 30 bugs as at all now. The decline of backlog bugs does not include dupes. While the squad was familiar enough to find many bugs that they close in a single day, they were not so familiar as to have known that there were 30 duplicate bugs in the backlog when they started.

Most squad have only one person with DB access, but the Purple squad is blessed with 3 people who can test queries against production-level data. This could be a significant factor. It is nigh impossible to fix a timeout bug without proper database testing. Only 13 of the recent bugs closed were timeouts though. The access also helps plan proper fixes for other bugs as well, so maybe 20% of the fixed bugs can be attributed to database access.

Maybe the Purple squad are better maintenance engineers than other squads who work on maintenance. For 28 months, I was the leading bug closer working on Launchpad. I closed 3 times more bugs than the average Launchpad engineer. I am not a great engineer though. My “winning” streak came to a closed shortly after William Grant started working on Launchpad full time; he soundly trounced me over several months. Then he and I were put on the same squad and asked to fix critical bugs. Purple also had Jon Sackett, who was closing almost 2 times the number bugs than the other engineers. I don’t think I need to be humble on this matter. To use the vulgar, we rocked! Ian was the odd man on the Purple squad. He was the slowest bug closer, often going beyond our intended scope to fix an issue. Then Purple switched to feature work…Ian lept to the first rank while the rest of the squad struggled. Ian fixed almost double the number of Disclosure bugs than other squad members. The leading critical bug closer on the squad at the moment though is Steve Kowalik. This is his first time working on maintenance. His productivity has jumped since transitioning to maintenance.

I can only speculate as to why some engineers are better at maintenance, or can just close more bugs than others. A maintenance engineer must be familiar with the code and the rules that guide it. Feature engineers need to analyse issues and create new rules to guide code. I did not gradually become a leading bug closer, it happen in a single day when I realised while solving one issue that the code I was looking at was flawed, it certainly was causing a bug, I knew how to fix it, and with a few extra hours of extra effort, I could close two bugs in a single day. Closing bugs has always been easy since that moment.

I believe the Purple squad values certainty over severity and small scope over large scope when choosing which critical backlog bugs to fix. I created several charts that break the critical bugs into smaller categories. I suggested the squad burn down sub-categories of bugs like regressions, or 404s. The squad members are instead fixing bugs from the entire backlog. They are choosing bugs that they are certain they can fix in a few hours.  I think the squad has tacitly agreed to fix bugs that are less than a day of effort. When this group is exhausted, they will fix issues that require days of effort, but also fix as many bugs. The last bugs to be fixed will be those that require many days to fix a single bug. Fixing the bugs with the highest certainty reduced our churn through the critical bugs, there are fewer to triage, to dupe, to get ready to code.

The Purple squad avoids doing feature-level design and effort to fix critical bugs. Feature-level efforts entail more risk, more planning, and much more time. There is often no guarantee, low certainty, that a feature will fix the issue. A faster change with higher certainty can fix the issue, but leaves cruft in the code that the engineers do not like. Choosing to do feature-level fixes when a more certain fix is available indicates there is tension between the Launchpad users who have a “critical” issue that stops them from using Launchpad, and the engineers who have a “high” issue maintaining mediocre code. I contend it is easier to do feature-level work when you are not interrupted with maintenance issues. When the Purple squad does choose to do feature-level work to fix a critical, they have a list of the bugs they expect to fix, and they cut scope when fixing a single bug delays the fix of the others. The Launchpad Answers email subsystem was re-written when other options were not viable, there we about 20 leading timeouts represented by 5 specific bugs to justify 10 days of effort to fix them.

The Purple squad is not unique

Nothing that I have written explains why the Purple squad are better are closing critical bugs. All squads have roughly the same skills and make decisions like Purple. Maybe the issue is just a matter of degree. If the maintenance squad is not closing enough bugs to burn down the backlog, their time is consumed by triaging and duping new critical bug reports. Familiarity with Launchpad’s 1000′s of bugs is an advantage when triaging bugs and getting a bug ready to code. Being able to test queries yourself on a production-level database takes hours or days off the time needed to fix an issue. Familiarity with the code and the reasoning that guided it increases the certainty of success. The only domain that Purple is not comfortable working with is lp.translations; the squad is comfortable changing 90% of Launchpad’s code. There may be correlation between familiarity with code, and the facts that the squad members participated in the apocalypse that  re-organised the code base, and that some have a LoC credit count in the 1000′s.

Read more
Richard Harding

Network graph of the combo loaded JavaScript.

Updated network graph

Back in January a side project was started to update the JavaScript used in Launchpad. Launchpad has been using YUI 3.3.0 for a long time, very successfully, however recent advances in YUI 3.5 and higher have added some great tools for development that Launchpad can take advantage of. In order to facilitate easier upgrades our YUI library version Launchpad has been moved to using a combo loader for serving out JavaScript.

This means, that instead of a single launchpad.js file that can be upwards of 3MB in size, each request builds a list of JavaScript modules needed for the current page to work, and the combo loader only sends down those modules. This drastically cuts down on the download size of the JavaScript for users. These combo loaded JavaScript files are also cached for speedy serving to other users of Launchpad.

The combo loader also allows us to specify which YUI version to load via a tweak to the url. In this way we can easily test new version of YUI side by side with the current stable version as they come out. This allows Launchpad to keep with future YUI released much faster.

We’re excited that today Launchpad has moved from YUI 3.3.0 to 3.5.1 and is now served by the combo loader. This change provides a faster experience for users along with easier maintenance and new JavaScript library features for developers.

We’ve still got more to do though. YUI just released version 3.7 and we aim to push that into production faster than ever before. Please let us know how these changes work for you.

Launchpad also wants to thank the folks over at YUI for continuing the great work on a tool that Launchpad heavily depends on.

Read more