tag:blogger.com,1999:blog-32211508374797374482024-03-06T21:02:46.516+01:00Billet vertsBillets verts car la plus part des posts de ce blog évoquerons l'environnement et quelques moyen de le préserver au jour le jour.
Billets verts comme argent, aussi, la conscience écologique étant "monétisable". Et monétisée.
Nous évoqueront donc certaines initiatives dans ce sens, des business-models et produits surfant sur cette tendance.
Enfin, des articles geekesques risquent de se glisser parmi ces pages, l'auteur de ses lignes étant ce qu'il est :)Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-3221150837479737448.post-63833416305293748892012-09-30T22:51:00.000+02:002012-09-30T22:51:10.872+02:00Networked A/V setup on the cheap with UPnP<br />
<span style="font-family: inherit;">As some insiders might already know,I recently acquired a flat. After 1+ month of heavy renovation, now comes the geek-entertaining time of setting up a sound and video system.</span><br />
<span style="font-family: inherit;">edit: the flat is now on the market again.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Having a very few physical media supports, the setup favors digital content and provide it to any interested playing or controling device. </span><br />
<span style="font-family: inherit;">UPnP AV/DLNA became quickly obvious with its isolated media provider, controller and renderer concepts.</span><br />
<span style="font-family: inherit;">Unwilling to overpay a dedicated bundle and favoring standards and openess, I went on building my own small wireless flexible A/V system. Might be worth sharing.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">The main content is made available by a UPnP server driven by <a href="http://live.gnome.org/Rygel">Rygel</a> and <a href="http://projects.gnome.org/tracker/">Tracker </a>on a spare old laptop (200€). Tracker indexes medias from file system later served by Rygel UPnP server.</span><br />
<span style="font-family: inherit;">The setup was a breeze on </span><a href="http://fedoraproject.org/" style="font-family: inherit;">Fedora</a><span style="font-family: inherit;"> 16 with the minor </span>annoyance<span style="font-family: inherit;"> of DBus requiring a X session. I guess this coupling will soon be broken in our waylandy days. Hopefully.</span><br />
<span style="font-family: inherit;">Furthermore, each other devices exports its local media content "on the wire".</span><br />
<br />
<a href="http://www.teufel.de/media/oart_0/oart_r/k2245/7884_raumfeld_by_teufel_speaker_m_black_1300x1300x72.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="http://www.teufel.de/media/oart_0/oart_r/k2245/7884_raumfeld_by_teufel_speaker_m_black_1300x1300x72.jpg" width="320" /></a><span style="font-family: inherit;">Music is mainly played on a pair of Raumfeld Speaker M (600€). Those babies access and renders music from UPnP servers through Wifi. </span><br />
<span style="font-family: inherit;">Take my world as a non-audiophile, but they sound very good at all volumes exposing a clear separation of trebbles, mediums and bass. Dont be fooled by the cryptic documentation, the dedicated Controller is not required to integrate nicely within a standard UPnP network. </span><span style="font-family: inherit;">A small web interface is provided to set them up as standalone.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.hdtvtest.co.uk/image/hdtv/Panasonic-TXP42GT30/design.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="213" src="http://www.hdtvtest.co.uk/image/hdtv/Panasonic-TXP42GT30/design.jpg" width="320" /></a></div>
<span style="font-family: inherit;">A Panasonic plasma tv P42GT30 (620€) will take care of sending photons from UPnP content. It is quite on the cheap currently and got a slimmer design while keeping the plasma picture quality.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Free UPnP control point apps were installed on Maemo, Android, webOS, linux, and osx devices. They act as fine-grained remote controllers to distribute content to renderers (speaker or screen).</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">A cheap </span>WiFi<span style="font-family: inherit;"> router ties everything together with an </span>auto-magical<span style="font-family: inherit;"> discovery.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">A Spotify/UPnP bridge would be greatly welcome but I couldn't find any up-to-date working solution. <a href="http://sourceforge.net/apps/trac/independify/">Independify</a> seems un-maintained ans segfaults with current deps.</span><br />
<br />
<span style="font-family: inherit;"><br /></span>
<br />
<br />Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com0tag:blogger.com,1999:blog-3221150837479737448.post-13449068096648558922012-09-30T19:22:00.004+02:002012-09-30T19:22:38.751+02:00Typesafe GObject through static bindingsRecently, I've spent some time discovering type systems theory and got hook to strong statically-typed languages benefits. I just want a compiler to catch more errors thus giving me thrust and guarantees in the predictability of the product and its code.<br />
I also like my IDE to have a lot of contextual data to help me through the implementation. Completion, early errors and defects detection are quite lifesavers.<br />
<br />
Contrary to what one might naively expect from a compiled language, C/GObject lakes such insurances and proofs about the correctness of the generated binary.<br />
<br />
GCC unawareness of anything but structs and functions makes it a bad helping hand when it comes to code with confidence.<br />
In order to provide OO idioms to developers, GObject does most of its typing at runtime: types, signals and properties are all resolved and bound at the last minute.<br />
Thereby a successfully compiled binary might fail at runtime for type related issues that a compiler could have spotted earlier. Typoing "opened" instead of "open" as signal or property name might have unexpected consequences at execution for example.<br />
Test coverage should include reading stderr where Glib/GObject throws type warning. Not fun as it implies a edit-compile-run loop.<br />
<br />
Lets illustrate the issue. In the following code the signal is always referred as an int within an enum or a string. Arbitrary values could be passed without the compiler to raise any flag. Also the arguments typing is enforced only at runtime through a complex marshaling system. Here again, mistakes might sneak in:<br />
C/GObject (example taken from http://simonpena.com/blog/mswl/discovering-gobject-signals/ )<br />
<br />
<script src="https://gist.github.com/3807599.js?file=gistfile1.txt"></script><br />
Some languages bindings with compiler's support of OO idioms exists (Vala, Gtkmm, C#, java-gnome., mono...). Their compilers checks the correctness of types/signals/properties definitions and accesses. Note bellow how both the signal and its handler parameter are typed thus bindings error will be caught at compilation:<br />
Gtkmm<br />
<script src="https://gist.github.com/3807538.js?file=gistfile1.cpp"></script><br />
Vala<br />
<script src="https://gist.github.com/3807523.js?file=gistfile1.vala"></script><br />
<br />
More than their conciseness, the aforementioned benefits of strongly typed bindings makes them really advisable to newcomers IMHO. The C API might be improved by enforcing the wrapping of signals and their handlers within class. This solution implies some verbosity and a more complex bindings generation that could hinder its desirability. Not my call!Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com0tag:blogger.com,1999:blog-3221150837479737448.post-59943666657273007652011-10-12T17:34:00.002+02:002011-10-13T10:55:10.819+02:00Where WebOS got it right: Text-based UI layer and applicationsTaking advantage of the demise of HP webOS hardware venture, an orphan tablet and phone reached my postbox recently. As a traditionalist computer geek, I was interested to live the so-called post-PC experience using the beloved webOS.<br />
<br />
The two form factors hardware feel robust and nice to handle, notably the perfect balance of usability and portability of the Pré 3.<br />
The user experience is as enjoying and intuitive as stated in reviews describing it in great length. Thus, I wont detail it further.<br />
<br />
The active applications developers community is surprising for stray dying platform. Both official and homebrew channels provide maintained software. Firesales and quite flat learning curve broke barriers. Somehow they did something right here.<br />
<br />
Fixes and extentions to standard shell and applications are distributed by Préware. <b> Being defined as textual data, easily diffeable and patcheable, the environment is simple to modify and extend at runtime location. </b>The Holly Trinity HTML/CSS/javascript makes fiddling with the system accessible to casual developers.<br />
Applications, both system and third-parties, <b>are actually editable data</b>.<br />
<br />
The Shell's javascript nature and its you-shall-do-what-you-want extensions mechanism, dynamic languages bindings, GtkBuilder and CSS-enabled Gtk+ tend to offer the same advantages to the Gnome platform.<br />
Though, modifying core modules (mailer, contacts directory, web browser, to name a few) ain't a straight-forward process. Furthermore, patches packaging is not supported by major distributions provisioning services.<br />
<br />
Making the whole environment patcheable in-situ without restrictive extensions points might prove <b>fragile and error-prone</b> but offer a freedom rarely seen even in free software. Preware packages supports patch reversion in case of issue or change of mind.<br />
In the interim of having a common extension mechanism ala OSGi and robust well-defined extension points, local-patching might catalyze the transition from user/applications developer to contributor. Editing a system file and creating a patch is a fast process to create a deviation from a base system compared to getting the source, editing building and packaging.<br />
Proposed patches for distribution should be deeply reviewed to enforce compatibility, security and quality.<br />
<br />
In a read-only base system future, patches could be deployed at boot time using FS overlays as found in Fedora USB image, ZFS or Btrfs. Or why not a system-wide git repository ?<br />
<br />
What's your take ?<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com0Bruxelles, Belgique50.8503396 4.351710350.7701401 4.1937818 50.9305391 4.5096387999999994tag:blogger.com,1999:blog-3221150837479737448.post-87337978420555443562011-09-23T13:43:00.000+02:002011-10-06T11:12:16.107+02:00Third-party developers experience... Where are we ?Apple iOS application-centered focus and marketing made third party applications ecosystem a decisive aspect of user capture. Solution life-cycle and attractiveness are increased by external developers adding each and every use cases imaginable. Even digitally farting.<br />
Thus recruiting third party applications developers is an increasing challenge for a platform competitiveness and userbase/contributions growth.<br />
<br />
The monetary insensitive of commercial platforms is certainly a decisive argument, but we may have better to propose with our warm and human-sized community, independence vis-a-vis a single provider, good-doing and ethical principles. And beer events.<br />
<br />
The introduction to our technologies and community should strive to be as painless and entertaining as possible while matching the developer knowledge-thirst, a common disease upon us and a huge motivation catalyzer.<br />
<br />
A fun, lean and streamlined developer experience may attract the more feature-oriented developers that enjoy watching their ideas materialize as an applications. From project bootstrap to installation on user system.<br />
Those more into technology would enjoy our mature but ever-growing sets of tools, libraries and services.<br />
Picking their interest is an occasion to convince them of the benefits of free software development and maybe have them help improve our common playground.<br />
<br />
It is my opinion that the current offering of Gnome in that regard is not as good as it could be. The learning curve to become a proficient application developer is quite steep beginning by choosing a language and setting up a development environment. Coding, scheduling, sharing, testing and distributing an application, all suffer from barriers and complexity. But that can be improved, right ?<br />
<div>
<br />
By digging into following platforms, I'll try to identify what helps makes a good developer experience, or a great one even.<br />
<br />
<ul>
<li><a href="http://developer.apple.com/devcenter/ios/index.action">Apple iOS</a>: Great documentation and tooling. Self-contained easy-to-setup SDK that handle application life-cycle from development to distribution. Code is written in Objective-C/Cocoa using the XCode IDE. No real 3rd party libraries community.</li>
<li><a href="http://developer.android.com/index.html">Google Android</a>: Regarded as practical API-wise and well-documented. Self-contained easy-to-setup SDK that handle application life-cycle from development to distribution. Using of the Java language, it benefits from its gigantic set of tools (IDEs, build bots, continuous integration) and libraries </li>
<li><a href="http://wiki.eclipse.org/index.php/Rich_Client_Platform">Eclipse RCP</a> + <a href="http://www.coconut-palm-software.com/the_new_visual_editor/doku.php?id=blog:simplifying_swt_with_scala#simplifying_swt_with_scala">XScalaWT</a>: Provide a great module mechanism (OSGi) and a lot of services commonly found in applications. Self-contained easy-to-setup SDK that handle application life-cycle from development to distribution. A rich ecosystem of 3rd parties modules avoid having to reinvent the wheel. Obviously development happens in Eclipse IDE in any language supported by the JVM. Scala peppered with a nice SWT DSL will be used. </li>
<li>the “Web Platform”: Applications development using our century franca-lingua: HTML/CSS/JS. With years of omnipresence, tools, libraries, documentation and community are unmatched. Still, application development requires system resources access, but not everything is standardized. Also javascript might prove a constraint for security, proper testing, static analysis and performance.</li>
<li>HP <a href="https://developer.palm.com/">WebOS</a>: Based on web technologies, both Mojo and Enyo provide access to lower-level services to webby UIs. Offer great tooling and distribution channel (but nobidy on the other end)</li>
<li><a href="http://developer.gnome.org/">Gnome</a>: versatile and complete SDKs, without much constraint in term of technology and possibilities. Might lake a coherent developer story with tools, conventions and processes to guide the developer</li>
<li><a href="http://developer.qt.nokia.com/resources/getting_started">Qt</a>: not experienced yet.</li>
</ul>
</div>
<div>
<br />
For each, I'll share the full process of bootstrapping, creating and distributing a simple app and present thee communication channels, documentation, processes and tools. Good ideas might be picked here and there.</div>
<div>
Then, I’ll match the findings with the current Gnome offering, with *personal* opinions on opportunities to fill holes.</div>
Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com0tag:blogger.com,1999:blog-3221150837479737448.post-22027108707463958222011-07-29T10:11:00.007+02:002011-07-29T10:50:37.171+02:00JDK7: Where's my method ?Yup, it is <a href="http://mreinhold.org/blog/jdk7-ga">finally here</a>. Long live to JDK7!<br />Well hopefully no that long, some people died of age waiting for this version.<br /><br />Even if my work at Igalia do not usually involve Java coding, I keep an eye on the platform and enjoy some <a href="https://github.com/amazari/dbus-osgi">Scala coding sessions</a>. Abstracted from all the complexity of managing object orientation and memory by-hand, helped by amazing tooling and funded by big shots, the community there pushes the envelop in the architecture,methodologies and good practices fields. Always interesting to learn from.<div><br />While bringing some improvements to the Java language and APIs, IMHO, the InvokeDynamic framework is the most important addition.<br />Type inference for generics, handled resources, interesting new/updated APIs (join/fork, NIO2, FileSystem) are great but making dynamic languages at home on the JVM is an amazing achievement.</div><div><br />Basically, <a href="http://jcp.org/en/jsr/detail?id=292">InvokeDynamic</a> let the JVM know and cache implementors decisions regading dynamic method call resolution/transformation at first call. Subsequent calls are then treated directly by HotSpot as any other invocation, applying its dark magic to optimize the hell out of it. And Hotspot is a good wizard.<br /><br /></div><div>Lets see how <a href="http://jruby.org/">JRuby</a>, <a href="http://groovy.codehaus.org/">Groovy</a> and <a href="http://www.jython.org/">Jython</a> will take advantage of it. JS might prove a greater challenge with its fully dynamic prototype typing, but <a href="http://www.google.fr/url?sa=t&source=web&cd=2&ved=0CCEQFjAB&url=https%3A%2F%2Fgroups.google.com%2Fd%2Fforum%2Fjs-jvm%3Ffromgroups&ei=qG4yTvavN8fCtAbCtrXoBg&usg=AFQjCNH7ud5nFkGCSMlySYU1HloGsj1ihg&sig2=ZxG7jbwZIZ8aykwu1jjnnw">work is on the way</a>.<br /><br /><div>Posted from <a href="http://sourceforge.net/projects/gscribble/">GScribble</a>.</div></div>Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com0tag:blogger.com,1999:blog-3221150837479737448.post-89439339073842821542011-07-26T11:12:00.004+02:002011-07-26T11:23:59.599+02:00SeedKit BoF at Desktop Summit 2011<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://www.desktopsummit.org/sites/www.desktopsummit.org/files/DS2011banner.png"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 333px; height: 110px;" src="https://www.desktopsummit.org/sites/www.desktopsummit.org/files/DS2011banner.png" alt="" border="0" /></a><br />The Desktop Summit organizers<a href="http://0pointer.de/blog/projects/desktop-summit-announce.html"> recently announced</a> <a href="https://desktopsummit.org/program/workshops-bofs">the final schedule</a> of the BoF sessions. The SeedKit proposal was selected !<br /><br />So lets meet Friday, 12th August 10am in room 1.301 to discuss the opportunities of using web UI technologies to build offline gnome apps or augment your existing application with webby views.<br />We could even talk about your irresistible lust to contribute your ideas, skills or enthusiasm to the project!<br /><br />In the mean time, get a look at the <a href="http://wiki.desktopsummit.org/Workshops_%26_BoFs/2011/Widgets_Toolkit_are_so_2k..._Build_your_Gnome_application_UI_using_Web_Technologies">session proposal </a>and add your name to the attendants list if you can.<br /><br />See you all there.Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com0tag:blogger.com,1999:blog-3221150837479737448.post-67485945151064760982011-07-20T12:48:00.002+02:002011-07-20T13:03:57.737+02:00Growing SeedKitSeedKit being more than a year old, now is a good time to do a retrospective, get an overview of what's coming next and where you could help.<br /><br />By lowering the entry barrier for building, distributing and maintaining a Gnome application, the <a href="http://live.gnome.org/SeedKit">SeedKit project</a> wants to attract new contributors and make current developers' life easier.<br />The approach taken is simple: let developers reuse their web UI development skills, tools and community.<br />Furthermore, the resulting UIs will be more flexible, eyes-pleasing and dynamic, thanks to the amazing progress of the HTML/CSS/JS threesome in <a href="http://webkitgtk.org/">WebKitGtk</a> and <a href="http://live.gnome.org/Seed">Seed</a>.<br /><br /><span style="font-weight:bold;">So where are we now ?</span><br /><br />We currently provide an GTK widget rendering HTML/CSS/JS content where native libraries and services are accessible from the JavaScript context.<br />DBus services, GObjects or custom code can be invoked and/or bound to DOM elements data and events. <br />End result: building an HTML UI communicating with local lower level systems is now possible. This might prove a great alternative to Gtk+ or Clutter.<br /><br />For the full-blown SeedKit applications (lets call them hybrid for a minute) scenario, a runtime environment is provided. For now it only consists of a simple launcher but will hopefully be augmented with a standard library and a set of guidelines (mostly following the HIG 3) to ensure consistency among hybrids and 'classic' applications.<br /><br />So yeah, you can run your hybrid application on your computer... Great, but how does it fall and deploy in the hands of the end-user you might ask ?<br /><br />That's <span style="font-weight:bold;">what is coming next.</span><br />We have no intention to build a versioning, dependencies and provisioning management system from scratch. Thus hybrid applications should be easily installed from distributions channels, namely packages and repositories.<br />Thus templates for .desktop files, rpm specs and debian recipes will be added soon to make the packaging a breeze.<br />If you are a bored packaging wizard, drop by the seedkit-devel list, <span style="font-weight:bold;">we need you</span>!<br /><br />Another missing piece is the aforementioned standard library. HTML alone is far from providing the high-level concepts required to express a user interface naturally (sliders, modal windows, tree, list for example). Web developers already provided solutions in the form of libraries like Mootool, JQuery or ExtJs.<br />jQuery and its UI widgets will become the favoured target and will be packaged with each application or depended upon if provided by distribution's package. <span style="font-weight:bold;">Some help with converting Gtk's Adwaita CSS to jQuery-ui would be great</span>.<br />Also, we'll build jQuery-esque convenience wrappers for common operations like signals/events connection, data binding, internationalization and files access.<br /><br />The vision and execution are still in their infancy so <span style="font-weight:bold;">now is the good time for you to get involved</span>, shape them to your tastes and need and have fun building the next big thing together ! Gnome developers, designers, web developers, translators, bug hunters will be welcomed with open arms.<br /><br />Lets get in touch at the the Desktop Summit in Berlin, I'll hopefully present SeedKit in a BoF session.Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com0tag:blogger.com,1999:blog-3221150837479737448.post-38271230166411099692011-04-08T12:50:00.008+02:002011-04-08T14:04:54.706+02:00Push your Eclipse Mylyn activity to PHPReport... automatically.Following my awesome <a href="http://base-art.net/Articles/118/">colleagues</a> <a href="http://blogs.igalia.com/alex/2011/04/08/webkit2-minibrowser-for-the-gtk-port-running/">announcements</a>, here is my smaller contribution to make life of lazies a bit better.<br /><br />In my day-to-day routine I heavily rely on the <a href="http://eclipse.org/mylyn/">Eclipse Mylyn tools</a> to schedule my development activity, communicate with my fellow developers via Bugzilla and focus on the task at hand. (I'll explain soon how Eclipse is the new Emacs, stay tuned)<br /><br />Anyway, my company (the awesome <a href="http://www.igalia.com/">Igalia</a>) uses <a href="http://phpreport.igalia.com/">PHPReport</a> to track work-hours of its employees. This is a requirement to account overtime and vacations of such a worldwide-spread community of people.<br /><br />The lazy-ass I am often (read always) forget to fill my activity there. I guess can forget about travelling for the next 10 years.<br />PHPReport already integrates with <a href="http://projecthamster.wordpress.com/">Project Hamster</a> but nothing existed for Mylyn until now.<br />So I took a day or two to make the process of tracking time fully automatized based on the Mylyn records of tasks activations.<br /><br />Pictures being worth a thousand words, here is a short clip of its current state.<br /><br /><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/rDL1FonmNEY?hl=fr&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/rDL1FonmNEY?hl=fr&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />original file: http://people.igalia.com/amazari/mylyn-phpreport.webm<br /><br /><br />Following updates will hopefully remove the need to give credentials to the plugin by using the user's web browser cookies/session. Also the secrets will be saved encrypted in the <a href="http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/secure_storage_dev.htm">Eclipse Secure storage</a>.<br /><br />You can easily install it by adding http://people.igalia.com/amazari/mylyn-phpreport-latest/ in Eclipse Update Manager.<br /><br />Sources are available from https://github.com/amazari/mylyn-phpreport .<br /><br />Suggestions, bug report and coments are always welcome !Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com0tag:blogger.com,1999:blog-3221150837479737448.post-16194189410600850432010-08-19T19:14:00.006+02:002010-08-20T15:24:54.960+02:00Announcing the SeedKit library and SeedKit Viewer 0.1 release.<div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">The </span></span><a href="http://live.gnome.org/SeedKit"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">SeedKit project</span></span></a><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"> is happy to announce the simultaneous releases of both the SeedKit library and viewer.</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">It is the first ever release of the SeedKit project.</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">SeedKit view's consumers, documentation writer, hybrid applications developers and contributors are welcome to test/modify/contribute. Any help gladly appreciated !</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><b><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">Notes</span></span></b></div><div><ul><li><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"> This is unstable development release. While it has had a bit of testing, there are certainly plenty of bugs remaining to be found. This release should not be used in production.</span></span></li><li><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">No API compatibility guarantee is provided. The interfaces are susceptible to change until the 1.0 release.</span></span></li><li><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">to pre-release testers : the project was split recently and changed its license terms, please update your copy of the original repository and clone the viewer one (see bellow).</span></span></li></ul></div><div><b><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">What does it ? </span></span></b></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">With SeedKit, a developer can choose to define the user interface of a native application in pure web standard technologies (HTML/CSS/Javascript).</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">Alternatively a developer of an existing GTK+ application can embed a SeedKit view within the current interface.</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><b><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">What is it ?</span></span></b></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">The SeedKit project currently consists of two modules:</span></span></div><div><ul><li><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">SeedKit library: HTML view Gtk+ widget with access to lower-level libraries and systems within its Javascript environment. It is build around the </span></span><a href="http://webkitgtk.org/"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">Gtk+ port of WebKit</span></span></a><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"> and </span></span><a href="http://live.gnome.org/Seed"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">Seed</span></span></a><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"> [1]. Licensed under the </span></span><a href="http://www.gnu.org/licenses/lgpl.html"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">LGPL 3+</span></span></a><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"> terms.</span></span></li><li><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">SeedKit viewer: a simple command-line viewer/launcher for applications whose views are defined in pure web standard technologies, while accessing lower-level libraries and systems (hybrid applications). Licensed under the </span></span><a href="http://www.gnu.org/licenses/lgpl.html"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">GPL 3+</span></span></a><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"> terms.</span></span></li></ul></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">Examples of hybrid applications are provided in the examples/ directory of the seedkit-viewer package.</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><b><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">Download</span></span></b></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">SeedKit release packages are currently hosted on a personal public dropbox folder until a proper solution is found.</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">SeedKit library 0.1: http://dl.dropbox.com/u/5746554/seedkit-releases/seedkit-0.1.tar.gz</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">SeedKit viewer 0.1: http://dl.dropbox.com/u/5746554/seedkit-releases/seedkit-viewer-0.1.tar.gz</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">To follow the SeedKit development, you should clone the following repositories on Gitorious:</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">git://gitorious.org/seedkit/seedkit.git</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">git://gitorious.org/~scaroo/seedkit/seedkit-viewer.git </span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><b><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">Building and installing</span></span></b></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">The SeedKit library compilation depends on the presence of :</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"> * gtk-3.0 >= 2.90</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"> * webkit-3.0 >= 1.3.3</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"> * seed >= 2.31.5</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">The viewer only depends on the SeedKit library's presence.</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">Both can be compiled and install using the classic "./configure && make && sudo make install" sequence.</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><b><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">Contact</span></span></b></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">Concidering its low maturity, expect to experience bugs and misbehavior. Please report any issue, expectation or remark to the </span></span><a href="http://mail.gnome.org/mailman/listinfo/seedkit-list"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">SeedKit mailing-list</span></span></a><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"> at </span></span><a href="mailto:seedkit-list@gnome.org"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">seedkit-list@gnome.org</span></span></a><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"> until a proper bug-tracker is be set or used (hello sysadmin team ;)</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">Of course, drop a mail on the list if you want to participate in the SeedKit development too.</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:x-small;">Happy coding !</span></span></div><div><br /></div>Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com0tag:blogger.com,1999:blog-3221150837479737448.post-33424254375802582902010-05-25T13:42:00.002+02:002010-05-26T10:05:27.808+02:00HJGMPB 1 : Profils de deploiement (Updated)<div>Commençons la série des <span class="blsp-spelling-error" id="SPELLING_ERROR_0">HJGMPB</span> (<span class="blsp-spelling-error" id="SPELLING_ERROR_1">How</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_2">JEE</span> 6 Gave <span class="blsp-spelling-error" id="SPELLING_ERROR_3">My</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_4">Productivity</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_5">Back</span>) avec la présentation de la gestion et définition de profils standards de déploiement introduite par <span class="blsp-spelling-error" id="SPELLING_ERROR_6">EE</span> 6.</div><div><br /></div><div>L'une des critiques récurrente à l'encontre de la plate forme <span class="blsp-spelling-error" id="SPELLING_ERROR_7">EE</span> est sa lourdeur et sa fâcheuse tendance à accumuler les <span class="blsp-spelling-error" id="SPELLING_ERROR_8">APIs</span> peu maintenues, utilisées et élégantes par souci de <span class="blsp-spelling-error" id="SPELLING_ERROR_9">rétro-compatibilité</span> et de <span class="blsp-spelling-error" id="SPELLING_ERROR_10">complétude</span>.</div><div>Cela implique l'obligation pour les fournisseurs de serveurs d'application de proposer une <span class="blsp-spelling-error" id="SPELLING_ERROR_11">implémentation</span> pour chacune de celles-ci, qui seront ensuite déployées sur toutes les instances. Qu'elles soient utilisées ou non.</div><div><br /></div><div>La spécification de la gestion des profils apporte la possibilité de configurer des types de déploiement standards <span class="blsp-spelling-error" id="SPELLING_ERROR_12">ciblant</span> des besoins précis. Ils définissent notamment les systèmes et <span class="blsp-spelling-error" id="SPELLING_ERROR_13">APIs</span> déployés et mis au service des applications. Ainsi, un bus d'entreprise ne nécessite certainement pas les technologies de vue comme les <span class="blsp-spelling-error" id="SPELLING_ERROR_14">servlets</span> ou <span class="blsp-spelling-error" id="SPELLING_ERROR_15">JSF</span>.</div><div><br /></div><div>Le premier de ces profils à voir le jour est le "<span class="blsp-spelling-error" id="SPELLING_ERROR_16">Web</span> Profile" destiné à l'hébergement d'applications <span class="blsp-spelling-error" id="SPELLING_ERROR_17">Web</span> légères. Il se passe donc des <span class="blsp-spelling-error" id="SPELLING_ERROR_18">APIs</span> "entreprise" superflues telles que <span class="blsp-spelling-error" id="SPELLING_ERROR_19">EJB</span>2, <span class="blsp-spelling-error" id="SPELLING_ERROR_20">JDO</span> ou encore <span class="blsp-spelling-error" id="SPELLING_ERROR_21">JMS</span>.</div><div>Ne restent principalement que <span class="blsp-spelling-error" id="SPELLING_ERROR_22">JPA</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_23">EJB</span>3, <span class="blsp-spelling-error" id="SPELLING_ERROR_24">JSF</span>2, <span class="blsp-spelling-error" id="SPELLING_ERROR_25">CDI</span> et <span class="blsp-spelling-error" id="SPELLING_ERROR_26">Beans</span> Validation, tous utiles dans le cadre du développement <span class="blsp-spelling-error" id="SPELLING_ERROR_27">web</span>.</div><div><br /></div><div>Cela permet à des serveurs d'application légers, comme <span class="blsp-spelling-error" id="SPELLING_ERROR_28">Tomcat</span> ou <span class="blsp-spelling-error" id="SPELLING_ERROR_29">Caucho</span> de se déclarer compatibles avec ce profil, bien que n'implémentant pas l'ensemble des spécifications <span class="blsp-spelling-error" id="SPELLING_ERROR_30">EE</span>6.</div><div>De ce fait, une application <span class="blsp-spelling-error" id="SPELLING_ERROR_31">ciblant</span> ce profil est d'autant plus portable et résistante aux changements futurs.</div><div><br /></div><div>En outre, le temps de lancement et l'occupation en ressources du serveur d'application s'en trouvent réduits. Un avantage <span class="blsp-spelling-error" id="SPELLING_ERROR_32">non-négligeable</span> dans sa gestion des coûts et de la disponibilité. </div><div><br /></div><div>Les développeurs ne sont pas en reste, le (<span class="blsp-spelling-error" id="SPELLING_ERROR_33">re</span>)lancement du serveur d'application étant récurrent dans le cadre de <span class="blsp-spelling-error" id="SPELLING_ERROR_34">l'implémentation</span> d'une application <span class="blsp-spelling-error" id="SPELLING_ERROR_35">Web</span> en Java. Le swap à chaud n'est malheureusement pas toujours applicable.</div><div>Le gain peut se révéler de l'ordre de la demi-heure par jour, ce qui est loin d'être négligeable.</div><div><br /></div><div>Si par ailleurs, le projet est régulièrement déployé sur un serveur d'intégration continue, le temps gagné peut permettre un rythme plus soutenu de test sans engendrer de coûts supplémentaires. Et ainsi mettre en évidence plus rapidement la moindre régression détectée.</div><div><br /></div><div>Il intéressant de noter que la majorité des fournisseurs de serveurs d'application reposent leur gestion des profils sur <span class="blsp-spelling-error" id="SPELLING_ERROR_36">OSGi</span>. </div><div>Utilisant un même standard de <span class="blsp-spelling-error" id="SPELLING_ERROR_37">plugins</span>, les fournisseurs partagent facilement leur travail.</div><div><br /></div><div>"<span class="blsp-spelling-error" id="SPELLING_ERROR_38">Web</span> Profile" sera bientôt rejoint par de profils destinés à bien d'autres usages qui bénéficieront alors de tous les avantages suscités en terme de flexibilité et de performance.</div><div><br /></div><div><br /></div><div><br /></div><div><br /></div>Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com0tag:blogger.com,1999:blog-3221150837479737448.post-28576443499548992632010-05-21T16:25:00.000+02:002010-05-21T16:26:08.607+02:00Comment JavaEE 6 m'a rendu ma productivité.<div>Disponible depuis la fin de l'année dernière notamment au sein de <span class="blsp-spelling-error" id="SPELLING_ERROR_0">l'implementation</span> de référence <span class="blsp-spelling-error" id="SPELLING_ERROR_1">Glassfish</span> 3 de Sun (désormais Oracle) et <span class="blsp-spelling-error" id="SPELLING_ERROR_2">JBoss</span> AS6, Java <span class="blsp-spelling-error" id="SPELLING_ERROR_3">EE</span> 6 apporte son lot de nouveautés et dépoussière heureusement une plate-forme trop souvent perçue comme vieillissante.</div><div><br /></div><div>Java <span class="blsp-spelling-error" id="SPELLING_ERROR_4">EE</span> souffre notamment d'une image d'usine à gaz dont les anciennes <span class="blsp-spelling-error" id="SPELLING_ERROR_5">APIs</span> sont <span class="blsp-spelling-error" id="SPELLING_ERROR_6">intrusives</span>, inélégantes et compliquées (<span class="blsp-spelling-error" id="SPELLING_ERROR_7">JDO</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_8">EJB</span>2...). En outre, elles demandaient aux développeurs un effort de configuration (<span class="blsp-spelling-error" id="SPELLING_ERROR_9">XM</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_10">Hell</span>) certain, du fait de leur (trop?) grande abstraction et flexibilité.</div><div><span class="blsp-spelling-error" id="SPELLING_ERROR_11">EE</span> 5 a grandement amélioré la situation avec l'introduction <span class="blsp-spelling-error" id="SPELLING_ERROR_12">d'API</span> modernes basées sur le principe de "convention <span class="blsp-spelling-error" id="SPELLING_ERROR_13">over</span> configuration". On peut citer notamment <span class="blsp-spelling-error" id="SPELLING_ERROR_14">JPA</span> et <span class="blsp-spelling-error" id="SPELLING_ERROR_15">EJB</span> 3.</div><div><span class="blsp-spelling-error" id="SPELLING_ERROR_16">EE</span>6 poursuit cette simplification sur tous les fronts avec la mise à jour des nouveautés introduites par la 5<span class="blsp-spelling-error" id="SPELLING_ERROR_17">eme</span> version, l'ajout d'un système d'injection de dépendances et de gestion de contextes <span class="blsp-spelling-error" id="SPELLING_ERROR_18">stateful</span> et la mise à jour de <span class="blsp-spelling-error" id="SPELLING_ERROR_19">JSF</span> introduisant la gestion <span class="blsp-spelling-error" id="SPELLING_ERROR_20">d'Ajax</span>. </div><div>Le déploiement n'est pas oublié puisque les spécifications définissent des profiles serveurs type, notamment le "<span class="blsp-spelling-error" id="SPELLING_ERROR_21">Web</span> Profile" qui se passe des API trop "<span class="blsp-spelling-error" id="SPELLING_ERROR_22">corporate</span>" comme les <span class="blsp-spelling-error" id="SPELLING_ERROR_23">ESB</span> ou <span class="blsp-spelling-error" id="SPELLING_ERROR_24">EJB</span>2.</div><div><br /></div><div>Ces avancées ont transforme <span class="blsp-spelling-error" id="SPELLING_ERROR_25">JEE</span> en une plate forme concurrentielle pour le développement de site de petite à moyenne taille, là où elle se destinait jusqu'alors aux grands comptes. </div><div>Comparé en terme de <span class="blsp-spelling-corrected" id="SPELLING_ERROR_26">productivité</span> à Rails, <span class="blsp-spelling-error" id="SPELLING_ERROR_27">Django</span> ou <span class="blsp-spelling-error" id="SPELLING_ERROR_28">CakePHP</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_29">JSF</span>2+<span class="blsp-spelling-error" id="SPELLING_ERROR_30">Weld</span>+<span class="blsp-spelling-error" id="SPELLING_ERROR_31">JPA</span> semble largement à la hauteur avec son <span class="blsp-spelling-corrected" id="SPELLING_ERROR_32">écosystème</span> d'outils de conception, ses performances <span class="blsp-spelling-corrected" id="SPELLING_ERROR_33">inégalables</span> et sa <span class="blsp-spelling-corrected" id="SPELLING_ERROR_34">maturité</span>.</div><div>Pour les geeks : c'est tres peu verbeux, je vous l'assure.</div><div><br /></div><div>Une série de <span class="blsp-spelling-error" id="SPELLING_ERROR_35">posts</span> sera consacrée aux détails des changements et à leur intérêt en terme de productivité.</div><div><br /></div><div><br /></div>Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com0tag:blogger.com,1999:blog-3221150837479737448.post-24554922400963823132010-05-19T18:18:00.003+02:002010-06-11T14:58:47.320+02:00News and noteworthy in the SeedKit land<span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">Due to my current professional engagements, </span></span><a href="http://live.gnome.org/SeedKit"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">SeedKit</span></span></a><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;"> development slowed down the last few week on my side.</span></span><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">This did not stop others to take the flame with contributions from </span></span><span class="Apple-style-span" style="line-height: 18px; "><span style="font-style: normal; "><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="color:#000000;"><span class="Apple-style-span" style="font-size:small;"><a href="http://blogs.gnome.org/jjardon">Javier Jardón</a></span></span></span><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;"> and <a href="http://townx.org/">E</a></span></span></span></span><span class="Apple-style-span" style="line-height: 18px; "><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="color:#000000;"><span class="Apple-style-span" style="font-size:small;"><a href="http://townx.org/">lliot Smith</a></span></span><span class="Apple-style-span" style="font-size:small;"> related to the build system (autotools).</span></span></span></div><div><span class="Apple-style-span" style="line-height: 18px; "><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">Also a <a href="http://alsaf1.wordpress.com/2010/05/13/first-seedkit-program-sort-of/">first third-party application</a> is currently being developed by <a href="http://alsaf1.wordpress.com/">Alan Forbes</a>. This log viewer is a great showcase for SeedKit. Thumbs up.</span></span></span></div>Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com0tag:blogger.com,1999:blog-3221150837479737448.post-67691145675712543512010-03-22T18:39:00.006+01:002010-06-11T14:59:20.332+02:00Announcing SeedKit project.<div style="font-family:Helvetica;font-size:medium;"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">Those last few days, I had the oportunity to spend some time on my pet projects. Being far enough for now and waiting gladly for some external help, I am ready to announce one of them : </span></span><a href="http://gitorious.org/seedkit"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">SeedKit</span></span></a><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">.</span></span></div><div style="font-family:Helvetica;font-size:medium;"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;"><br /></span></span></div><div face="Helvetica" size="medium"><a href="http://gitorious.org/seedkit"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">SeedKit</span></span></a><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;"> is a runtime environment for hybrid Web-ui/GObject applications.</span></span></div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">Taking advantage of Seed </span></span><a href="https://bugzilla.gnome.org/show_bug.cgi?id=612590"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">bug #</span></span></a><a href="https://bugzilla.gnome.org/show_bug.cgi?id=612590"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">612590</span></span></a><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">, SeedKit provides a Webview whose Javascript context is filled with Seed-provided GObject symbols. </span></span><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">It makes possible the creation of a ui using standard Web technologies, such as JS, CSS3 and HTML5 bound to lower level events and behaviours of GObject based libs and DBus services (WIP).</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">All it requires is the path to an html file (defaulting to ui.html in CWD). This file can include js files calling into GIR-provided symbols.</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">You can pass --inspector to be able to inspect dom elements dynamically and --script=file.js for a custom initialization javascript file.<br />Some samples (Notifications, GIO, DBus...)are provided in the examples dir.<br /><br />The project is still in its infacy and suffers from serious issues. Notably the DBus binding is not in a working state, seems like the js context is cleared after first-level imports or something.<br /><br />TODO (as of now) :<br />- define a system-wide css file for common theming.<br />- add a developer mode, with reloading button</span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">- create a bug tracker, an agile management tool, a website, ML<br />- fix DBus binding (exposes a customly created dbus connection within native code ?)<br />- add samples of web-services integration ( Evolution Contacts on a google map ?)<br />- a runtime for widgets ?<br />- see what s come next :)<br /><br /></span></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">The sources can be grabbed at http://gitorious.org/seedkit and you can mail me at scaroo@gmail.com, in the wait of a proper ML.</span></span></div><div style=" ;font-family:Helvetica;font-size:medium;"><span class="Apple-style-span" style="font-family:verdana;"><span class="Apple-style-span" style="font-size:small;">Any code, help or idea appreciated. Contributions welcomed :)<br /></span></span><br /></div>Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com1tag:blogger.com,1999:blog-3221150837479737448.post-39384619276211585612010-02-23T14:12:00.010+01:002010-02-23T19:09:53.039+01:00Cloud computing : vers une industrie de la transformation de ressources ?<span class="Apple-style-span" style=" ;font-family:Verdana, sans-serif;font-size:13px;"><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:medium;"><span><span></span></span></span></span></span><span><span><div><span><span><br /></span></span></div>A la lecture de </span><a href="http://www.perspective.it/index.php/post/2010/02/22/le-cloud-et-la-%C2%AB%C2%A0customer-driven%C2%A0roadmap-%C2%BB/trackback/">cet article</a> et dans le cadre d'un projet personnel, je me suis fais la réflexion suivante : proposer un service hébergé sur une plate-forme cloud n'est-il pas comparable à l'industrie de transformation de matières premières ?</span><div><span><span>Avant d'essayer d'y répondre, faisons un point sur ce qu'est le cloud, ou du moins la façon dont je l'envisage.</span></span><div><span><span><br /><span><span><b>La tête dans les nuage</b></span></span><b>s</b></span></span></div><div><span><span></span></span><b><br /></b><div><span><span>L'hébergement d'une application sur le cloud implique un paiement à la demande : seules les ressources réellement consommées sont facturées.</span></span></div><div><span><span>Les cycles CPU, le stockage et les transferts réseau sont souvent les ressources quantifiables, unités de la facturation.</span></span></div><div><span><span>Cette approche est à comparer avec celle, plus classique, consistant à payer un forfait mensuel, voire annuel, quelque soit la charge effectivement utilisée.</span></span></div><div><span><span>En outre, l'approche cloud apporte de l'élasticité, de la scalabilite puisque des ressources supplémentaires peuvent être allouées de manière (quasi-)transparente en cas d'un besoin ponctuel supérieur. </span></span></div><div><span><span>Enfin, une bonne partie des tâches d'administration et de garantie de disponibilité sont déléguées au fournisseur.</span></span></div><div><span><span>Ce modèle économique permet notamment de supprimer les frais initiaux (pas d'achat de serveur), de lisser et réduire les frais et de se concentrer sur le coeur de son métier, sans ce soucier des problématiques orthogonales que sont l'hébergement et la garantie de service.<br /><br /><b>Cloud Factory</b></span></span></div><div><span><span><b><br /></b>Imaginons maintenant le cas d'un service web hébergé sur ce type de plate-forme. Imaginons aussi, dans un premier temps, que son fournisseur s'oriente vers une facturation forfaitaire de ses clients. Il parie donc sur le fait que le forfait mensuel payé par chaque client couvrira les coûts en ressources induits par son utilisation du service.<br />Il y a donc un risque que l'activité ne se révèle pas rentable, voire déficitaire. Le fournisseur peut minorer ce risque en misant sur la mutualisation et en imposant des règles d'utilisation limitant ce dépassement éventuel.</span></span></div><div><span><span> Il reste malgré tout une zone d'incertitude.</span></span></div><div><span><span><br />A contrario, l'éditeur peut opter pour une facturation à la demande, au même titre que ses propres frais d'hébergement. Ainsi, l'utilisateur ne paierait que la quantité de service auquel il a fait appel. Par exemple, un service de conversion de devises ou l'utilisateur serait facturé pour chaque conversion effectuée. Cette somme doit bien entendu être définie en fonction du coût engendré par une telle requête.<br /><br />Avec un peu de recul, on peut dire que le fournisseur effectue la transformation, la combinaison et la valorisation de ressources brutes (CPU, réseau, mémoire, stockage) en produit transformé (conversion) consommable par l'utilisateur. Le tout en flux tendu. Ces produits sont alors vendu sous forme packagée, de manière unitaire et sans le moindre stockage.<br />Cela vous rappelle quelque chose ? Et oui, l'application hébergée sur le cloud est foncièrement devenue une usine de transformation comparable à celles du secteur de l'industrie ou de l'agronomie. </span></span></div><div><span><span><br />Du coup, il serait judicieux de s'appuyer sur les nombreux enseignements, modèles et outils du domaine industriel pour optimiser son activité de prestation de service sur le cloud. Non ?</span></span><div><span class="Apple-style-span" style=" ;font-family:Verdana, sans-serif;font-size:13px;"><div style="margin-top: 0px; margin-bottom: 0px; "><div style="margin-top: 0px; margin-bottom: 0px; "><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-size:medium;"></span></span></div></div></span></div></div></div></div><div><span><span><br /></span></span></div><div><span><span>EDIT : rephrasage, correction de fautes.</span></span></div>Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com1tag:blogger.com,1999:blog-3221150837479737448.post-25942978978834803702009-07-22T19:30:00.007+02:002009-07-23T15:16:09.929+02:00A plead for a SSB generator and execution environement for Gnome<span style="font-family:arial;">This paper describes a proposed solution for a SSB system aimed at the Gnome Desktop. Having various web applications more tightly integrated within the user desktop would be a step toward the unification of the web and the native world.</span><br /><span style="font-size:130%;"><br /></span><span style="font-weight: bold;font-size:130%;"><span style="font-family:arial;">What is an SSB ?</span></span><br /><br /><span style="font-family:arial;">dixit Wikipedia : '</span><br /><span style="font-family:arial;">A site-specific browser (SSB) is a software application that is dedicated to accessing pages from a single source (site) on a computer network such as the Internet or a private intranet. SSBs typically simplify the more complex functions of a web browser by excluding the menus, toolbars and browser chrome associated with functions that are external to the workings of a single site.</span><br /><span style="font-family:arial;">'</span><span style="font-size:130%;"><br /><span style=" font-weight: bold;font-family:arial;">What are the benefits of an SSB compared to standard browsing ?</span></span><br /><ul><li><span style="font-family:arial;">Space fully dedicated to web application content</span></li><li><span style="font-family:arial;">System integration (application launcher, notifications, menu, icon badges, local storage...)</span></li><li><span style="font-family:arial;">Standard windows' interaction, being handled by the WM/Shell</span></li></ul><span style="font-weight: bold;font-size:130%;"><span style="font-family:arial;">Existing Solutions</span></span><br /><span style="font-family:arial;">The SSB approach is already applied by several solutions, with diferents objectives and technical directon :</span><br /><ul><li><span style="font-family:arial;"> Mozilla Prism : firefox extension allowing the creation of a SSB from the currently browsed web page. Of course, the execution environnement is built around Gecko.</span></li><li><span style="font-family:arial;"> Fluid : standalone SSB creator and Webkit based execution environment with system integration (dock icon badges, Growl notification) and some goodies (userscripts, custom CSS)</span></li><li><span style="font-family:arial;">Adobe Air : Support application development using standard web technologies, beside Flash content. Embeds WebKit.</span></li></ul><span style="font-weight: bold;font-size:130%;"><span style="font-family:arial;">Proposed Solution</span></span><br /><ul><li><span style="font-family:arial;">a Webkit based SSB execution environnement, a chromeless WebView providing sytem integration</span></li><li><span style="font-family:arial;">An Desktop entry creator, following http://standards.freedesktop.org/desktop-entry-spec</span></li><li><span style="font-family:arial;">an Epiphany extension creating an SSB from the currently browsed Web App.</span></li></ul><span class="Apple-style-span" style="font-family: arial, serif; "><b>Desktop entry creator</b></span><b><br /></b><ul><li><span style="font-family:arial;">Generates .desktop file from user-defined values for the URL, the name and icon path of the SSB</span></li><li><span style="font-family:arial;">Provides right arguments to the execution environnement</span></li><li><span style="font-family:arial;">Defaults to Website favicon if no icon specified</span></li></ul><span style=" font-weight: bold;font-family:arial;">Webkit based SSB execution environnement :</span><br /><ul><li><span style="font-family:arial;">One process per SSB</span></li><li><span style="font-family:arial;">Chromeless WebView</span></li><li><span style="font-family:arial;">Restricted access to the user-defined Web App domain</span></li><li><span style="font-family:arial;">Each SSB has their own cookie storage</span></li><li><span style="font-family:arial;">Use site specific javascript logic for system integration (ex: get the right value in the DOM for the number of unread messages to be displayed in the notification and/or badge)</span></li></ul><span style="font-family:arial;"><br /><span style="font-weight: bold;">System Integration implementation</span></span><br /><ul><li><span style="font-family:arial;">Applications launcher in Gnome menus</span></li><li><span style="font-family:arial;">Icon Badge (ex : number of unread mail)</span></li><li><span style="font-family:arial;">Notification system integration with libnotify using Seed or GtkWebkit DOM bindings ("You've got a mail")</span></li><li><span style="font-family:arial;">Application menu by generating specific GtkBuilder files and linking event using Seed or GtkWebkit DOM bindings</span></li><li><span style="font-family:arial;">Local storage, possibly Google Gears</span></li></ul><div><span class="Apple-style-span" style="font-family:arial, serif;">The project will be hosted on Gitorious and welcome any contribution being code, documentation, or simply advices.</span></div><div><span class="Apple-style-span" style="font-family:arial, serif;">The first draft code will be commited sometime in the next week, the current state being nearly none :)</span></div>Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com2tag:blogger.com,1999:blog-3221150837479737448.post-15354622786045471522009-07-17T16:20:00.008+02:002010-06-11T14:59:47.314+02:00What if GTK+ 4.0 was ... HTML/CSS/Javascript ? Part I<span style="font-size:100%;"><span style="font-weight: bold;"><div><span class="Apple-style-span" style="font-weight: normal;"></span></div><span><span></span></span><span><span><span class="Apple-style-span" style="font-weight: normal;">Following recent activities on the GTK theming/graphical overhaul front, this post exposes some of my thoughts on a possible evolution path.</span></span></span></span></span><div><span style="font-size:100%;"><span style="font-weight: bold;"><span><span><span class="Apple-style-span" style="font-weight: normal;">This first part explains some of the current identified short-comings and tries to dress the profile of the ideal UI toolkit. In the next post I'll try to explain the technical possibilities to go further this road.</span></span></span></span></span></div><div><span class="Apple-style-span" style="font-size:medium;"><br /></span></div><div><span style="font-size:100%;"><span style="font-weight: bold;"><span><span><span class="Apple-style-span" style="font-weight: normal;"></span></span></span><div></div><div><span class="Apple-style-span" style="font-weight: normal;">Nowadays, GTK+ and most of the competing toolkits keeps the user interface creation a developer's affair when the web allows designer and usability experts to directly influence the aspect of the application. This is mainly caused by a steep learning curve and a lake of user friendly authoring tools.</span></div><div><span class="Apple-style-span" style="font-weight: normal;">Also recent efforts by the web standards bodies make them very appealing solutions for highly graphic, dynamic and interactive interfaces.</span></div><div><br /></div>Current State :</span><br /></span><br /><span style="font-size:100%;">GTK+ is the graphical toolkit used by several mainstream software projects. In a non-exhaustive way, we can cite the Gimp, the Gnome Desktop, Firefox and Openoffice.org (in their Linux incarnations).<br /><br />It provides developers a way to programatically define/design the user interface of their software : where to put a button, a text entry or a selectable list for example.<br /><br />It is also possible to declaratively define a GTK UI using the Glade editor and the GtkBuilder XML dialect. The coder binds the events generated by the UI elements (or widgets) to «business» code/services.<br />GTK+ currently misses some features found in more «modern» toolkits like animations support, canvas, free form layout, declarative theming.<br /><br />GTK+ is built using GObject which bring dynamic object oriented concepts to the old-but-good C without scarifying the ability to easily bind the code to higher level languages like Python or Javascript.<br />The GObject ecosystem spun a lot of interesting technologies in the form of libraries mostly developed within the Gnome project. To name a few, we can cite the GStreamer multimedia framework, GIO, Avahi, EDS, PolicyKit.<br />The fact that GTK+ and those services share a common object system makes them easy to integrate in a GTK app, and thus help GTK+ staying relevant.In the same vein, GTK+ UIs can easily be plugged to DBus services.</span></div><div><span class="Apple-style-span" style="font-size:medium;"><br /></span></div><div><span><span class="Apple-style-span" style="font-size:small;">New efforts to make the theming system more flexible like a</span><a href="http://blogs.gnome.org/theming/2008/11/22/what-is-the-css-engine-not/"><span class="Apple-style-span" style="font-size:small;"> CSS theme engine</span></a><span class="Apple-style-span" style="font-size:small;">. By this leave flexible layouting on the side. </span></span></div><div><span class="Apple-style-span" style="font-size:small;">Some </span><a href="http://blogs.gnome.org/metacity/2009/07/18/more-css-thoughts/"><span class="Apple-style-span" style="font-size:small;">discussion</span></a><span class="Apple-style-span" style="font-size:small;"> is also going on the future of the metacity theming.</span></div><div><span style="font-size:100%;"><br /></span><span style="font-size:100%;"><span style="font-weight: bold;">Pros :</span><br /></span><ul><li><span style="font-size:100%;">Multi-platform</span></li><li><span style="font-size:100%;">Community and commercially backed (Red Hat, Novel, Mozilla Foundation)</span></li><li><span style="font-size:100%;">Lots of language bindings</span></li><li><span style="font-size:100%;">Wide range of target system : Nokia Maemo, Moblin, Gnome, OpenMoko...</span></li><li><span style="font-size:100%;">Mature and alive code-base</span></li><li><span style="font-size:100%;">Rich eco-system of GObject libraries (DBus, GStreamer, GIO, Avahi, EDS, PolicyKit...)</span></li><li><span style="font-size:100%;">Enforce a coherence under most linux boxes</span></li></ul><span style="font-size:100%;"><br /></span><span style="font-weight: bold;font-size:100%;">Cons :</span><span style="font-size:100%;"><br /></span><ul><li><span style="font-size:100%;">shrinking numbers of contributors</span></li><li><span style="font-size:100%;">Hard to grasp as mainly programatic</span></li><li><span style="font-size:100%;">Lake of "Bling" and usability/artistic freedom : canvas, animation/transition, freeform layout, declarative theming</span></li></ul><span style="font-size:100%;"><br />Summing up, the </span><span style="font-weight: bold;font-size:100%;">ideal UI toolkit</span><span style="font-size:100%;"> would :<br /></span><ul><li><span style="font-size:100%;">be multi-platform</span></li><li><span style="font-size:100%;">be community and commercially backed</span></li><li><span style="font-size:100%;">have a lots of language bindings</span></li><li><span style="font-size:100%;">be avalaible on a Wide range of target system</span></li><li><span style="font-size:100%;">have a Mature and alive code-base</span></li><li><span style="font-size:100%;">could benefit from the rich eco-system of GObject libraries</span></li><li><span style="font-size:100%;">enforce a coherence under most linux boxes</span></li><li><span style="font-size:100%;">have a big following, including developers, users, authoring tools</span></li><li><span style="font-size:100%;">be Declarative</span></li><li><span style="font-size:100%;">have very flexible styling and layouting </span></li><li><span style="font-size:100%;">provide advanced graphical capabilities as animation, transformation etc...</span></li></ul><span style="font-size:100%;"><br />But wait... Doesn't </span><span style="font-weight: bold;font-size:100%;">HTML/Javascript/CSS</span><span style="font-size:100%;"> match most, if not all, of these criterias ?</span></div>Anonymoushttp://www.blogger.com/profile/17758946274030607907noreply@blogger.com1