feeds
Cheesecake for all
If you maintain a Python package that is registered on PyPI, go check out Cheesecake service now! We automatically test new releases, so if you have released a new version of your code recently, you can check its Cheesecake score right away.
Cheesecake is a tool that gives you feedback about state of your python package. Unit testing gives you feedback about behaviour of your code, while Cheesecake tells you about such things like whenever your package can be easily installed, how well it is documented and how strictly your code adheres to common coding standards (like PEP-8).
Cheesecake defines three types of indexes: installability, documentation and code kwalitee index. In short, installability tells you if your package can be easily found, downloaded and installed using distutils/setuptools facilities. Documentation index informs you how many of your code objects (modules/classes/functions) have docstrings and did you remember to create files like README or INSTALL (which users tend to look for first after unpacking the source). Code kwalitee checks your unit tests and runs pylint on the whole package. If you combine all of those different aspects of a package and check their conformance to a common practice - you get Cheesecake score. Want more details? Check out description of an algorithm for computing the Cheesecake index.
Score isn’t meant to define “better” and “worse” packages, it is only a helpful estimate of progress, as you make certain efforts to make your package easier to install, understand and modify. More work you put into your distribution, higher Cheesecake score you should get. We tried hard to make this correlation of good packaging practice and Cheesecake score high, but chances are we made some mistakes. If you think we scored some parts of your package wrongly or we missed some effort, we urge you to send us a bug report. The whole Python community will benefit, as the definition of a good Python package is still not well crystallized. We want Cheesecake to be a useful tool for all Python programmers who seek guidance on how to improve their distributions. The profit is mutual - developer can raise his knowledge of good coding practices and potential distribution problems, while his improved package will get used more often for the benefit of whole Python community.
So, check out Cheesecake service or try Cheesecake on your computer. Bon Appétit!
Cancion del Viernes
La culpa de esto la tiene el Guitar Hero, y no asumo las consecuencias del visionado del video.
Les dejamos con Ozzy Osbourne y su Bark at the Moon. Heavy Metal en toda regla, del que ya no se hace.
All of us should do Phds
People with PhDs live longer than people with master’s degrees, who in turn live longer than people with only a bachelor’s. A study of census data by Robert Erikson at Stockholm University in Sweden found that men aged 64 with a basic tertiary education had a greater rate of mortality than men with doctorates. In the years between 1991 and 1996, the less educated men had a 9.6 per cent chance of death, versus a 6 per cent risk among those with PhDs. Those with a master’s had an 8.5 per cent risk of death.
[Source: New Scientist]
Skype Is Passing Your PC Unique Identifier To Their Server
This post claims Skype is sending on startup to its server your unique PC indentifier to their server. They send the BIOS content containing some unique informations.
Anonymity on Skype seems something from the past. Since you have bought your PC: those UUID are on a bill or an invoice order somewhere, hence a link to your name and your Skype calls.
There are others UUID in a PC (ie MAC address), so this is clearly to allow identification of a call. In a way this is no surprise and easy to defeat, still sad.
Since I am on Linux, I cannot check. Did someone else found this file?
Holidays
Hello, hey, hi
Up Up Up Tracklist
Lo prometido es deuda, aqui estan las canciones de la ultima sesión de The Interface.
Track List
Si todavía no la tienes puedes descargarla aqui.
Thesis subject
New and Improved inclusion
All Experts, All Artists
Tipos de mantenimientos
A raíz de una conversación sobre el ciclo de vida del software, llevo varios días con la mosca detrás de la oreja pensando en los distintos tipos de mantenimiento y cuales son los límites entre ellos. Os voy a dejar por estos lares los distintos tipos que pensando en estos años en primera linea de guerra puedo identificar. Poco a poco va siendo normal que el desarrollo de un producto de software venga ligado a una posterior fase de mantenimiento. En dicha fase, pueden diferenciarse varios tipos de acciones:
- Mantenimiento correctivo. Destinando a corregir defectos de funcionalidades del sistema. Una vez acabado el desarrollo e implantación de un sistema de información este es el tipo de mantenimiento que prevalece frente al resto. Puesto que estamos en una fase de mantenimiento, el fallo del sistema se produce una vez que este está en producción, por tanto es vital diferenciar un orden de criticidad de los fallos para marcar el orden de atención que deberían tener en vistas a que la calidad del sistema sea la más alta posible en todo momento.
- Mantenimiento adaptativo. Es aquel que se realiza sobre el sistema para adaptarlo a nuevas versiones de módulos externos, compatibilidad con nuevo hardware. Pese a que por norma general, la actualización de un componente externo traiga mejoras de rendimiento, estabilidad o funcionales, su actualización puede ser un gran problema que puede estar presente en forma de incompatibilidad parcial o total con el sistema de información.
- Mantenimiento perfectivo. Mejora el rendimiento o complementa funcionalidades. No debe confundirse con la realización de un nuevo componente que cubra una nueva funcionalidad no relacionada con ninguna de las existentes. El desarrollo de una nueva funcionalidad sólo debe estar justificado si es necesario para el buen funcionamiento de otra ya existente en el sistema.
- Mantenimiento preventivo. Consiste en tareas o inspecciones periódicas que analizan posibles puntos de fallo e implementan su respectiva solución si procede. Este tipo de uso enmascara al correctivo siendo la detección del error el trabajo extra por parte de los mantenedores del sistema.
Cualquier sistema de información debe tener, como mínimo, un mantenimiento correctivo. El resto son recomendables, en concreto el mantenimiento perfectivo y el preventivo cobran sentido desde que el software comienza su explotación hasta su apogeo, pasado el periodo de vida más intenso del sistema, estos tipos de mantenimientos pierden importancia. Por último, el mantenimiento adaptativo suele darse bajo demanda sin ningún tipo de programación de fechas.
Un sistema de información de alta calidad debe poseer un mantenimiento correctivo durante toda la vida útil, acciones adaptativas bajo demanda y perfectivas y preventivas desde el comienzo hasta que el sistema este muy adentro de un estado "adulto".
Curly bracket strikes back
With decent web frameworks for Python and Ruby writing web applications is a real pleasure. You no longer have to clutter your screen with ugly Java/PHP/whatever mess, you can even write AJAX stuff directly in your language of choice (which is a hack on its own, but we can’t argue with so called de facto standard), so your UI needs can be mostly satisfied.
But there comes another threat - it’s called Flex (no, not the GNU lexer). On the surface it may look really nice, but under the hood some serious code bloat is going on. I’m not saying this particular code is bad (it is quite nice actually), but the general pattern is clear - lots, LOTS of typing. Effect - big amounts of code to read with intentions of the implementor hidden inside. I believe code can be kept clean. I wonder how in earth Bruce Eckel, proponent of Python, man who not so long ago wrote that this kind of code bloat costs time and money could support this technology. We can write (and maintain) code with text editors. With emerge of dynamic languages this trend was finally going upstream. Today, Flex compared to Ruby or Python just seems backwards. So please don’t use Flex. Otherwise we will again have to come up with pieces of middleware for automatic ActionScript generation and that’s no fun. We don’t need another hack for the web. And no excuses.
Widget Accelerator
WidgetAccelerator is the best way to accelerate the displays of your widgets in a webpage.
My blog uses it. It has two accelerated widgets. The display of the page has been increased of more than 10 times actually.
It caches the JS file and prints its content directly in the HTML page. Therefore, your visitors do not need anymore to gather a lot of different javascript files from a lot of various hosts. The main consequence is a speedier website.
It does not check for cache consistency before displaying the page. This is why it is fast (Most HEAD requests are as slow as a GET.)
This is also why you have to specify which widget to cache. Of course you should not use it for widget with highly dynamic content like a Javascript webstat tracker.
Installation
To use this script, you will need to.
- Download the script (copy/paste this link and rename the extension of the file to .php)
- Upload it to your server.
- Create a writable directory to store the cached widgets.
- Configure the script: two constants must be defined (at the top of the script). $CACHE_DIR is the path to the cache (ie: $CACHE_DIR="/var/www/cache/";) and $CACHE_TTL is the lifetime in seconds of the cached widget (ie: $CACHE_TTL = 3600;)
- Include the script in your template or in the page you want to accelerate: $lt;?php include( "/PATH/TO/widget_accelerator.php" ) ?>
- Accelerate the widgets you like. You have to change for instance this widget
<script defer="defer" id="snap_preview_anywhere" type="text/javascript" src="http://spa.snap.com/snap_preview_anywhere.js?ap=0&etc" ></script>
to
<?php accelerate('<script defer="defer" id="snap_preview_anywhere" type="text/javascript" src=http://spa.snap.com/snap_preview_anywhere.js?ap=0&etc" ' ></script>');?>
- Optional but nice for me add this quote to your template: powered by WidgetAccelerator
which in html is: <a href="http://www.deviant-abstraction.net/index.php/2007/01/30/widget-accelerator/"> powered by WidgetAccelerator</a>
A little bit further
WidgetAccelerator looks for src=” or src=’ inside accelerate(). Without proper enclosing of this attribute, the accelerate function will print an error. Finally, all URL inside src must be in absolute to be accelerated.
In case of problem, features ideas or contribution, do not hesitate to mail me or leave a comment here.
Legal
Of course, this script is offered AS IS and I withhold all responsability for any damage that might come due to its use.
Next steps
If you like it, I will add support for images and predictive cache (to automatically set up the cache TTL).
Linux kernel drivers
http://www.kroah.com/log/2007/01/29/#free_drivers
Nice move by the kernel developers.
Now hardware companies got almost no reason at all not to provide Linux drivers for their devices. Especially since "Linux Compatible" starts to become more important everyday.
