L'aventurier du boot linux

grub, initramfs, cramfs, squashfs, unionfs, AuFS, fstab…

Pas facile de s’y retrouver dans cette jungle mais ça commence à venir. N’est-ce pas Beber ?

Tout ça pour un booter sur un disque USB en lecture seule…

Encore une inconnue pour la suite : Debian ou Gentoo ???

Update : quelques liens intéressants pour Gentoo

Sortie de Drupal 5.0

On l’attendait depuis de longs mois.

Elle est enfin sortie.

Drupal 5.0 est une version majeure.

Un extrait des différentes améliorations

Usability improvements

  • Administration pages: completely retooled the administration page. It now has a default task view with an option to hide descriptions (think advanced view) and a ‘by module’ view with links to configuration options.
  • Settings pages: settings are now split up into smaller pages, making it easier to find the options you need.
  • Tables: the content, user and comment lists now include a smart ‘check all’ checkbox and allow range selecting by holding ‘shift’.
  • Capitalization and typography: attention has been paid to properly and consistently format labels and text across Drupal.

New features added

  • Status page and requirement checking: added a status report page with detailed PHP/MySQL/Drupal information and requirement checking.
  • Web-based installer: added web-based installer that checks run-time requirements and that supports pre-made install profiles or distributions with better support for database table prefixes. It is also localizable.
  • Core theme: introduced a new default core theme, called Garland (and a fixed width version Minnelli). Garland uses the new color module to change the theme’s entire color scheme on the fly.
  • Custom content types: core now includes part of the Content Construction Kit and allows you to set up arbitrary types out of the box. For more fields, install the full CCK package from the contributions repository.
  • URL filter: integrated the URL filter module into the filter module. This will cause web and e-mail addressed to be automatically hyperlinked.
  • Blocks per role: extended the block visibility settings with a role specific setting and retained the option to control blocks by PHP snippets..
  • Edit block titles: Drupal 5 makes it possible to customize or overwrite all block titles, even set block titles to empty.
  • User management improvements: Added support for auto-complete forms to user profiles. The ability to filter users by role, permission and status to help better manage users. Made email verification of user accounts optional.
  • Improved module administration: Modules are listed by category and origin, their versions are displayed, and their dependencies are listed in the module descriptions as required or optional.
  • More logging reports: Drupal now provides detailed reports on search terms, ‘page not found’ and ‘access denied’ errors to help improve your site.
  • CSS preprocessor: All (cacheable) stylesheets are now aggregated into one compressed file, which makes your site faster, especially for first time visitors.
  • Performance tuning: Key parts such as Drupal’s session and access mechanism have been optimized for faster page loading across the board.

For developers

  • JavaScript library: the jQuery JavaScript library has been included in Drupal 5. All existing JavaScript in Drupal core has been converted to use it.
  • Reorganized directory structure: All modules now have their own directory and effort has been made to split up resources such as CSS by module. There is also a sites/all directory where you can place your custom modules and themes.
  • Uninstalling modules: when uninstalled, modules will be notified so they can clean up database tables.
  • Pluggable cache backends: with Drupal 5 you can plugin alternative cache backends. This allows you to use file caching, memcached or other cache strategies instead of the default database caching.
  • Pluggable session handling: with Drupal 5 you can plugin alternative session handlers. This allows you to use memcached based session handling instead of the default database caching.
  • PHPTemplate improvements: add the ability to look for a series of suggested templates. Drupal 5 will auto-discover a wide range of template files that allow you to override the default look of various pages.
  • Node access arbiter: made it easier for node access modules to work well with each other.
  • Node rendering: changed node rendering to work with structured arrays.
  • Form API: made it possible to programmatically submit forms and improved the API for multistep forms.

WengoVisio

Je viens de découvrir et d’installer WengoVisio dans la barre latérale du blog.

C’est vraiment sympa et ça fonctionne très bien.

Venez faire un coup de visio-chat avec moi !

A SimpleXMLRPCServer with allow_reuse_address

XMLRPCServer / Python

Useful trick on Linux when you need to reconnect often to the same socket.

import SocketServer  
import SimpleXMLRPCServer   
   
class MyTCPServer(SocketServer.TCPServer):  
    def server_bind(self):  
        self.socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)  
        self.socket.bind(self.server_address)  
        
class MyXMLRPCServer(MyTCPServer, SimpleXMLRPCServer.SimpleXMLRPCDispatcher):  
    def __init__(self, addr, requestHandler=SimpleXMLRPCServer.SimpleXMLRPCRequestHandler, logRequests=1):  
        self.logRequests = logRequests  
        SimpleXMLRPCServer.SimpleXMLRPCDispatcher.__init__(self)  
        MyTCPServer.__init__(self, addr, requestHandler)  
   
my_object = MyObject()  
server = MyXMLRPCServer(("localhost", 8000),logRequests=False)  
server.register_instance(self.my_object)   
while True:  
    self.server.handle_request() 

How to remove SimpleXMLRPCServer Request logs

This is a simple example intended to show how to remove log messages printed on stderr for each request.

import SimpleXMLRPCServer 

class NoLogHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler): 
  def log_request(self, code='-', size='-'): 
    pass  
  
server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8888), NoLogHandler) 
object = MyObject() 
server.register_instance(object) 
server.serve_forever()

Microsoft / Novell : on se marre déjà !

Je pensais qu’on aurait du spectacle en 2007 :Steve Ballmer : “Linux utilise notre propriété intellectuelle” - PJBlog.

Eh bien finalement, il semble que ce soit déjà 2007 !

Dans l’article “L’accord Novell/Microsoft continue d’alimenter la polémique - Le Monde Informatique”, nous apprenons que Novell a tenu à prendre ses distances par rapport au PDG de Microsoft en exprimant ouvertement son désaccord : « Nous sommes en désaccord complet avec les récentes déclarations de Microsoft concernant Linux et les brevets. Surtout, notre accord avec Microsoft ne constitue en rien l’aveu d’une violation de la propriété intellectuelle de Microsoft par Linux. Affirmer le contraire serait semer le doute et l’inquiétude et empêcherait une concurrence loyale. »