<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:ymaps="http://api.maps.yahoo.com/Maps/V2/AnnotatedMaps.xsd" >

<channel>
	<title>aux 2 centimes</title>
	<atom:link href="http://blog.lolo.asia/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.lolo.asia</link>
	<description>rien sur tout  et surtout sur rien</description>
	<lastBuildDate>Fri, 31 Aug 2012 21:08:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>CartoDB : EC2 AMI &amp; vmdk VM available</title>
		<link>http://blog.lolo.asia/cartography/2012/06/11/cartodb-ec2-ami-vmdk-vm-available/</link>
		<comments>http://blog.lolo.asia/cartography/2012/06/11/cartodb-ec2-ami-vmdk-vm-available/#comments</comments>
		<pubDate>Mon, 11 Jun 2012 17:14:36 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[cartographie]]></category>
		<category><![CDATA[cartography]]></category>
		<category><![CDATA[cartodb]]></category>
		<category><![CDATA[gis]]></category>
		<category><![CDATA[postgis]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vmdk]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://blog.lolo.asia/?p=546</guid>
		<description><![CDATA[<br/>CartoDB is a beautiful beast but it takes some time to get all its components ( 1 rails app, 2 nodejs apps, postgis, redis, varnish, mapnik, nginx &#8230; ) to work in harmony. Assembling it was an interesting odyssey though which pushed me to read cartodb&#8217;s ruby &#38; javascript source code (Windshaft &#38; CartoDB-sql-api ) itself [...]]]></description>
				<content:encoded><![CDATA[<br/><p><a title="cartoDB" href="http://www.cartodb.com" target="_blank">CartoDB</a> is a beautiful beast but it takes some time to get all its components ( 1 <a title="ruby on rails" href="http://rubyonrails.org/" target="_blank">rails </a>app, 2 <a title="nodejs" href="http://nodejs.org/" target="_blank">nodejs </a>apps, <a title="PostGis" href="http://postgis.refractions.net/" target="_blank">postgis</a>, <a title="redis" href="http://redis.io/" target="_blank">redis</a>, <a title="varnish" href="https://www.varnish-cache.org/" target="_blank">varnish</a>, <a title="Mapnik" href="http://mapnik.org/" target="_blank">mapnik</a>, <a title="nginx" href="http://nginx.org" target="_blank">nginx</a> &#8230; ) to work in harmony. Assembling it was an interesting odyssey though which pushed me to read<a title="cartodb github" href="https://github.com/Vizzuality/cartodb" target="_blank"> cartodb&#8217;s ruby</a> &amp; javascript source code (<a title="cartodb Windshaft" href="https://github.com/Vizzuality/Windshaft" target="_blank">Windshaft </a>&amp; <a title="CartoDB-SQL-API" href="https://github.com/Vizzuality/CartoDB-SQL-API" target="_blank">CartoDB-sql-api</a> ) itself to get things rolling.  To avoid this constructive pain to others I am proposing two ubuntu distributions with CartoDB pre-installed .</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>An Amazon EC2 AMI:</strong></span><span style="text-align: right;"> </span><a style="text-align: right;" href="https://aws.amazon.com/amis/cartodb-ubuntu11-10-server">https://aws.amazon.com/amis/cartodb-ubuntu11-10-server</a></p>
<p><a href="https://aws.amazon.com/amis/cartodb-ubuntu11-10-server"><img class="alignleft  wp-image-548" title="AMI  CartoDB on Ubuntu 11.10 X86 64bit Server" src="http://blog.lolo.asia/wp-content/uploads/2012/06/AMI-CartoDB-on-Ubuntu-11.10-X86-64bit-Server1-1024x665.png" alt="" width="560" height="363" /></a></p>
<p>system : ubuntu server 11.10 x86 64 bit</p>
<p>user : ubuntu<br />
authentication : instance ssh keypair</p>
<p><span style="text-decoration: underline;">Requirements</span>:</p>
<ul>
<li>open ports 22, 80, 8080, 8181 (optionally 8282 )  in your instance security group</li>
<li>point devuser.localhost.lan &amp; admin.localhost.lan to the IP of the instance in your hosts file (on your machine, not on the AMI)</li>
</ul>
<p>( 22: ssh, 80 : varnish, 8080 : cartodb sql api,<br />
8181 : windshaft tileserver, 8282:  rails cartodb app)</p>
<p>remote access via freenx :  ubuntu / ubuntu</p>
<p>CartoDB urls : http://devuser.localhost.lan (user/password: devuser/devuser) , http://admin.localhost.lan (user/password: admin/admin)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Try it free during one year on a Amazon Free Usage Tier Micro Instance  : <a href="http://aws.amazon.com/en/free/">http://aws.amazon.com/en/free/</a></p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><br />
</span></p>
<p><strong><span style="text-decoration: underline;">A vmware vmdk Virtual Machine</span> :  </strong><a title="Google Drive Cartodb VM vmdk" href="https://docs.google.com/folder/d/0B7MWSdtS_8wWTjg5YmNHeDdIRUU/edit" target="_blank">https://docs.google.com/folder/d/0B7MWSdtS_8wWTjg5YmNHeDdIRUU/edit</a> for download</p>
<p>&nbsp;</p>
<p>system : ubuntu server 11.10 x86 64 bit<a href="http://blog.lolo.asia/wp-content/uploads/2012/06/ss_vm.jpg"><img class="wp-image-564 alignright" title="VM cartoDB vmdk - ubuntu - vmplayer" src="http://blog.lolo.asia/wp-content/uploads/2012/06/ss_vm.jpg" alt="" width="576" height="368" /></a><br />
user : cartodb<br />
password: cartodb</p>
<p>ports: all open<br />
connection : ssh , freenx ( user/password : cartodb/cartodb)</p>
<p>The vmware VM is configured with a static IP ( 172.16.192.192) so you if you use vmware/vmplayer you need to run the Virtual Network Editor and change the NAT interface ( in my case VMnet8 ) to use 172.16.192.0 as Subnet IP . On Windows get the Virtual Network Editor vmnetcfg.exe using following<br />
instructions : <a href="http://rednectar.net/2011/07/20/finding-vmnetcfg-exe-in-vmware-player-3-1-4/" target="_blank">http://rednectar.net/2011/07/20/finding-vmnetcfg-exe-in-vmware-player-3-1-4/</a><br />
or <a href="http://communities.vmware.com/message/1853079" target="_blank">http://communities.vmware.com/message/1853079</a></p>
<p>CartoDB urls : http://devuser.localhost.lan (user/password: devuser/devuser) , http://admin.localhost.lan (user/password: admin/admin)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>freenx session configuration  (<a title="Nomachine nx client" href="http://www.nomachine.com/download.php" target="_blank">Nomachine NX client</a> , <a title="openNX client download" href="http://opennx.net/download.html" target="_blank">openNX </a>) :</p>
<p><a href="http://www.nomachine.com/download.php"><img class="alignright" title="freenx cient config" src="http://blog.lolo.asia/wp-content/uploads/2012/06/freenx_config1.jpg" alt="" width="697" height="447" /></a></p>
<p>&nbsp;</p>
<p>use Unix custom settings :</p>
<p>- Run the following command :<br />
exec openbox-session<br />
- New virtual desktop</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"> CartoDB is a <a title="vizzuality" href="http://www.vizzuality.com" target="_blank">Vizzuality</a> open source online mapping application based on postgis.</p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://blog.lolo.asia/cartography/2012/06/11/cartodb-ec2-ami-vmdk-vm-available/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=loicdevaux&amp;popout=1&amp;url=http%3A%2F%2Fblog.lolo.asia%2Fcartography%2F2012%2F06%2F11%2Fcartodb-ec2-ami-vmdk-vm-available%2F&amp;language=en_GB&amp;category=software&amp;title=CartoDB+%3A+EC2+AMI+%26%23038%3B+vmdk+VM+available&amp;description=CartoDB+is+a+beautiful+beast+but+it+takes+some+time+to+get+all+its+components+%28+1+rails+app%2C+2+nodejs+apps%2C+postgis%2C+redis%2C+varnish%2C+mapnik%2C+nginx+%26%238230%3B+%29+to...&amp;tags=cartodb%2Cgis%2Cpostgis%2Cubuntu%2Cvmdk%2Cvmware%2Cblog" type="text/html" />
	</item>
		<item>
		<title>experimental work in progress : Kynetx KBX augmented</title>
		<link>http://blog.lolo.asia/technology/kynetx/2011/08/30/experimental-work-in-progress-kynetx-kbx-augmented/</link>
		<comments>http://blog.lolo.asia/technology/kynetx/2011/08/30/experimental-work-in-progress-kynetx-kbx-augmented/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 15:33:29 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[kynetx]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://blog.lolo.asia/?p=515</guid>
		<description><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/>These days I should have been working on polishing SuiteFramework API which I promised to release on june ( this will teach me to announce release dates&#8230; ) but my procrastinating mind always finds a good reason to believe there are other things that deserve all my attention, RIGHT NOW. About a month ago I [...]]]></description>
				<content:encoded><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/><p>These days I should have been working on polishing <a href="http://blog.lolo.asia/technology/kynetx/2011/05/30/suiteframework-api-a-kynetx-krl-development-module-to-create-kynetx-app-collections-easily/">SuiteFramework API</a> which I promised to release on june ( this will teach me to announce release dates&#8230; ) but my procrastinating mind always finds a good reason to believe there are other things that deserve all my attention, RIGHT NOW.</p>
<p>About a month ago I was dreaming out loudly about a crossbrowser javascript library that would make it possible to <a href="https://convore.com/kynetx/cross-browser-library-to-wrap-native-browser-functions/">access browser&#8217;s internals </a> . Last time <a href="http://blog.lolo.asia/technology/kynetx/2011/04/04/kynetx-facebook-contest-submissions-april-2011/">I dived into Firefox</a> I didn&#8217;t enjoy the journey so much in XUL-manifesto-xml-XPCOM-land . Recently I was lucky to stumble on good <a href="https://addons.mozilla.org/en-US/developers/docs/sdk/1.0/">Firefox Add-on SDK docs</a> (previously calledJetpack SDK) which showed that there were reasons to be much more optimistic. I also found an <a href="https://builder.addons.mozilla.org/">online addon builder</a> which acts as a code repository so developers can understand the architecture of FF addons through working examples and share their code through libraries and that made me feel that Mozilla had become a sweeter monster.  I was positively suprised that chrome and firefox shared similar terminology in their addon architecture like &#8220;content scripts&#8221; ( <a href="https://addons.mozilla.org/en-US/developers/docs/sdk/1.0/dev-guide/addon-development/web-content.html">FF</a> , <a href="http://code.google.com/chrome/extensions/content_scripts.html">Chrome</a>) .</p>
<p>In order to make a proof of concept I focused on how to modify the behavior of the Firefox Location Bar / Chrome omnibox so a KRL ruleset could inject code to augment the browser itself instead of pages.   This meant finding an entry point in the KBX were native api functions could be injected and executed on the fly. The way KBX emulates the Greasemonkey API by exposing javascript functions in a content script and communicating with the &#8220;addon context&#8221; ( main.js on FF and background.html on Chrome) helped me to pass this first obstacle.</p>
<p>One problem that raised while trying to run the injected code is that both Firefox and Chrome expects an addon to explicitely declare which API packages it will run. Thoses permissions are declared in manifest.json for Chrome. On Firefox both the online add-on builder and the command line SDK ( which I recommend for working locally ; check &#8220;Get the SDK&#8221; at the bottom of <a href="https://builder.addons.mozilla.org/">this page</a> ) create a harness-options.json manifest file automatically during xpi build time (the whole process is explained <a href="https://addons.mozilla.org/en-US/developers/docs/sdk/1.0/dev-guide/module-development/chrome.html">here</a>). On Chrome you have to declare what you use manually in <a href="http://code.google.com/chrome/extensions/manifest.html#permissions">manifest.json</a>.<br />
So if we want developers to be able to inject any method available by the APIs then it is necessary to give permission to all of them inside KBX.</p>
<p><strong><span style="text-decoration: underline;">What do we have?</span></strong></p>
<p>A fork of the original KBX  extension that allows a KRL webhook or an external js file to feed the KBX extension with javascript code that runs inside the extension ( as opposed to javascript code that runs inside a page and only has access to the DOM ).<br />
A Kynetx browser app that adds  github search (inspired by <a href="http://erikvold.com/blog/index.cfm/2011/6/14/github-address-bar-search">&#8220;Github address bar search&#8221;</a> ) in the Location Bar (Firefox) or  Omnibox ( Chrome) . As all Kynetx browser apps this app is cross-browser.</p>
<p>On Chrome the github search engine gets invoked by first pressing the &#8216;k&#8217; letter when the cursor is in the omnibox. Then you can type : github mysearch_terms to search for &#8220;mysearch_terms&#8221; on github or  type github @someuser to get &#8220;someuser&#8221; profile page.</p>
<p>On Firefox you don&#8217;t need to press &#8216;k&#8217; first .</p>
<p>Get the modified <a href="http://lolo.asia/kynetx_remote_eval/kbx/KBXmodified.crx">KBX for Chrome</a> and <a href="http://lolo.asia/kynetx_remote_eval/kbx/kbxmodified.xpi">KBX for Firefox</a> .<br />
Install Kynetx <a href="http://apps.kynetx.com/installable_apps/4780-Github_search_engine">&#8220;Github Search Engine&#8221;</a> app .</p>
<p><a href="http://blog.lolo.asia/wp-content/uploads/2011/08/github_search_kbx_user.jpg"><img class="size-large wp-image-532 alignright" title="github_search_kbx_user" src="http://blog.lolo.asia/wp-content/uploads/2011/08/github_search_kbx_user-1024x560.jpg" alt="" width="416" height="227" /></a></p>
<p>&nbsp;</p>
<p><a href="http://blog.lolo.asia/wp-content/uploads/2011/08/github_search_kbx.jpg"><img class="alignleft size-large wp-image-533" title="github_search_kbx" src="http://blog.lolo.asia/wp-content/uploads/2011/08/github_search_kbx-1024x552.jpg" alt="" width="474" height="255" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><span style="text-decoration: underline;">Why use it ?</span></strong></p>
<p>For now this modified KBX extension is experimental. If the concept reaches maturity then we can expect richer Kynetx browser apps that go beyond the scope of webpages because they can interact with location bar/search bar, take screenshots , make desktop notifications, modify context menus, make cross-Origin XMLHttpRequest &#8230; and do all the things browser addons/extensions you find on <a href="https://addons.mozilla.org">Mozilla Addons</a> and <a href="https://chrome.google.com/webstore">Chrome Web Store</a> do.</p>
<p><span style="text-decoration: underline;"><strong>For developers:</strong></span></p>
<p>The extensions exposes the javascript function <strong>remote_url_eval_in_addon(urls_array)</strong> which takes an array of urls pointing to js files ( js files on the remote server should end with _chrome.js or _firefox.js but in remote_url_eval_in_addon you will call :</p>
<p><strong>remote_url_eval_in_addon(["http://lolo.asia/kynetx_remote_eval/omnibox_lib.js","http://lolo.asia/kynetx_remote_eval/github_search.js"])</strong> and the KBX extension will add the missing <em>_chrome</em> or <em>_firefox</em> part .</p>
<p>Another method you can use is webhook_eval_in_addon(webhook_array) that can be used inside an emit &lt;&lt; js_code &gt;&gt; . It takes an array of objects as unique paramenter. Each object has the field &#8216;appid&#8217; which targets a ruleset and &#8216;eventname&#8217; which targets a webhook in that ruleset.</p>
<p>Ex: webhook_eval_in_addon([{appid:"a1135x118",eventname:"omnibox_lib"},{appid:"a1135x116",eventname:"omnibox_github"}]) will request two webhooks from inside KBX :</p>
<p>http://webhooks.kynetxapps.net/h/a1135x118/omnibox_lib?browser=Firefox ( or browser=Chrome)</p>
<p>http://webhooks.kynetxapps.net/h/a1135x116/omnibox_github?browser=Firefox ( or browser=Chrome)</p>
<p>Those webhooks should return javascript which gets evaluated inside KBX in main.js (FF) or background.html ( Chrome) in sequence.</p>
<p>The omnibox_lib webhook returns a browser specific library of plumbery code for adding search engines to the Location Bar/Omnibox with the add_search(options) function.</p>
<p>The omnibox_github webhook returns javascript code that calls add_search(github_options) where github_options is an object that specifies the behavior of the github search engine :</p>
<p><pre><code>

rule omnibox_github_webhook is active {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select when webhook omnibox_github
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pre {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; browser=event:param(&quot;browser&quot;) ;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; js_FF = &lt;&lt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //add github search
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add_search({
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keyword: &#039;github&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; icon: &quot;github_16.png&quot;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; matches: /^github\s/i,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getSuggestions: function(query) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var suggest;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; query = query.replace(/^github\s/i, &quot;&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (/^@([\w\d_-]+)/.test(query)) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var username = query.match(/^@([\w\d_-]+)/)[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; suggest=[
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title: &#039;Github user: &#039; + username,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label: &quot;View user profile for @&quot; + username,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;favicon: self.data.url(&quot;github_16.png&quot;),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url: &#039;https://github.com/&#039; + username
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; suggest=[{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title: &#039;Search Github for: &#039; + query,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; favicon: self.data.url(&quot;github_16.png&quot;),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url: &#039;https://github.com/search?q=&#039; + encodeURIComponent(query)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return suggest;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; js_Chrome = &lt;&lt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add_search({
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keyword: &#039;github&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; icon: &#039;&#039;,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; matches: /^github\s/i,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getSuggestions: function(query) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var suggest;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; query = query.replace(/^github\s/i, &quot;&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (/^@([\w\d_-]+)/.test(query)) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var username = query.match(/^@([\w\d_-]+)/)[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; suggest=[
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{content: &#039;https://github.com/&#039; + username, description: &#039;&lt;match&gt;View github user profile&lt;/match&gt; : https://github.com/&lt;match&gt;&#039; + username+ &#039;&lt;/match&gt;&#039;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; suggest=[{content: &#039;https://github.com/search?q=&#039; + encodeURIComponent(query) , description: &#039;&lt;match&gt;Search github&lt;/match&gt; : https://github.com/search?q=&lt;match&gt;&#039; + encodeURIComponent(query)+ &#039;&lt;/match&gt;&#039;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return suggest;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;js = browser eq &#039;Firefox&#039; =&gt; js_FF&nbsp;&nbsp;| js_Chrome;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; send_directive(&quot;text&quot;) with body = js;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; }
</code></pre></p>
<p>&nbsp;</p>
<p>You can create your own custom and more elaborated search engine with dynamic suggestions by writing a new webhook that returns js code that calls add_search(custom_options) .</p>
<p>Firefox 4 runs<a href="https://developer.mozilla.org/en/JavaScript/New_in_JavaScript"> javascript 1.8.5 code</a> so this is the opportunity to improve your javascript knowledge using the new available functions and syntax like <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach">forEach for arrays</a>. On Chrome we can use at least javascript 1.5 ( <a href="http://stackoverflow.com/questions/300185/google-chrome-javascript-version">http://stackoverflow.com/questions/300185/google-chrome-javascript-version )</a></p>
<p><span style="text-decoration: underline;"><strong>What&#8217;s next ?</strong></span></p>
<p>- evaluate impact on browser security ( what&#8217;s the worst that could happen and how to avoid it)</p>
<p>- specify a cross-browser API that aims to provide access to installed extensions/addons as if they were services using things like <a href="https://developer.mozilla.org/en/Using_JavaScript_code_modules">code modules on Firefox</a> or <a href="http://code.google.com/chrome/extensions/messaging.html#external">cross-extension messaging on Chrome</a> .  KRL rulesets could then mashup data/features provided by installed extensions/addons .</p>
<p>- create more cross-browser KRL modules that act like abstraction layers to common browser features available in <a href="https://addons.mozilla.org/en-US/developers/docs/sdk/1.0/">Firefox Add-on SDK</a> and <a href="http://code.google.com/chrome/extensions/docs.html">Google Chrome Extensions API</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lolo.asia/technology/kynetx/2011/08/30/experimental-work-in-progress-kynetx-kbx-augmented/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=loicdevaux&amp;popout=1&amp;url=http%3A%2F%2Fblog.lolo.asia%2Ftechnology%2Fkynetx%2F2011%2F08%2F30%2Fexperimental-work-in-progress-kynetx-kbx-augmented%2F&amp;language=en_GB&amp;category=software&amp;title=experimental+work+in+progress+%3A+Kynetx+KBX+augmented&amp;description=These+days+I+should+have+been+working+on+polishing+SuiteFramework+API+which+I+promised+to+release+on+june+%28+this+will+teach+me+to+announce+release+dates%26%238230%3B+%29+but+my...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>SuiteFramework API, a Kynetx KRL development module to create Kynetx app collections, easily</title>
		<link>http://blog.lolo.asia/technology/kynetx/2011/05/30/suiteframework-api-a-kynetx-krl-development-module-to-create-kynetx-app-collections-easily/</link>
		<comments>http://blog.lolo.asia/technology/kynetx/2011/05/30/suiteframework-api-a-kynetx-krl-development-module-to-create-kynetx-app-collections-easily/#comments</comments>
		<pubDate>Mon, 30 May 2011 22:02:51 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[kynetx]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[krl]]></category>
		<category><![CDATA[krl module]]></category>
		<category><![CDATA[krl tools]]></category>
		<category><![CDATA[kynetx app collection]]></category>
		<category><![CDATA[kynetx app pack]]></category>
		<category><![CDATA[kynetx app package]]></category>

		<guid isPermaLink="false">http://blog.lolo.asia/?p=480</guid>
		<description><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/>SuiteFramework tries to resolve the following problems: how to create richer applications with Kynetx KRL without compromising readability , extensibility , reusability and maintenance of code given the existing tools ( appbuilder.kynetx.com ) and KRL language constraints , how do we get to create apps in team work how to add persistent settings to an [...]]]></description>
				<content:encoded><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/><p>SuiteFramework tries to resolve the following problems:</p>
<ul>
<li>how to create richer applications with Kynetx KRL without compromising readability , extensibility , reusability and maintenance of code</li>
<li>given the existing tools ( appbuilder.kynetx.com ) and KRL language constraints , how do we get to create apps in team work</li>
<li>how to add persistent settings to an Kynetx app so users can activate/desactivate features they like/dislike</li>
</ul>
<p>Modularity with KRL is achieved with KRL modules . A module is a ruleset that exposes functions and defactions so they can be used in other rulesets. Rules inside rulesets can&#8217;t be reused (yet?) in other rulesets so this makes it complicated to import complete app features. That&#8217;s where SuiteFramwork helps.</p>
<p>Let&#8217;s say developers have made independant apps for Facebook like  <a title="Kynetx browser app : SendAnywhere" href="http://apps.kynetx.com/installable_apps/4045-SendAnywhere" target="_blank">SendAnywhere</a>, <a title="Kynetx browser app : Privatebook" href="http://apps.kynetx.com/installable_apps/3695-Privatebook" target="_blank">Privatebook</a>, <a title="Kynetx browser app : Unfriend Finder" href="http://apps.kynetx.com/installable_apps/3710-Unfriend_Finder" target="_blank">Unfriend Finder</a> , <a title="Kynetx browser app : MyNewsFeed Facebook " href="http://apps.kynetx.com/installable_apps/3343-MyNewsFeed" target="_blank">MyNewsFeed </a>, <a title="Kynetx browser app : Foul Facebook Filter" href="http://apps.kynetx.com/installable_apps/3673-Foul_Facebook_Filter" target="_blank">Foul Facebook Filter</a>. All those apps are great and each one creates a nice experience for users but who are the users who know all of them ?  Who are the users who want to go through five different installations? Who are the users who want to manually check if there are Facebook apps ?</p>
<p>Wouldn&#8217;t it be great if users could install all Kynetx Facebook apps with one click and run new <a title="Kynetx Facebook apps" href="http://apps.kynetx.com/tags/facebook" target="_blank">Kynetx Facebook apps</a> as soon as they are released without the need to install them ?</p>
<p>This is what SuiteFramework does, it allows developers to create &#8220;app suites&#8221; or &#8220;meta-apps&#8221; that launch sets of apps no matter how they were developed initially. Because some users might not be interested by one app or another, SuiteFramework allows the user to disable an app of the collection on the fly. Those user specific settings are persistent and follow the user during his daily use of the app collection.</p>
<p>SuiteFramework  alerts the user when a new app has been added to the collection so he can decided to have it running along the others or disabled it.</p>
<p>SuiteFramework also gives the users the ability to receive a notifications when an app of the collection is updated or proposes a new feature but the user still keeps the freedom to disable the feature because sometimes &#8220;I just don&#8217;t want to have that&#8221;.</p>
<p>SuiteFramework direct &#8220;feature notifications&#8221; from developers to users keeps an app &#8220;alive&#8221;, increasing user loyality to the app.</p>
<p>SuiteFramework comes with an integrated donation system for <a title="Paypal donation buttons" href="https://www.paypal.com/us/cgi-bin/?cmd=_donate-intro-outside" target="_blank">Paypal </a>and <a title="Flattr - The Social Way to Get Paid Online" href="https://flattr.com/" target="_blank">Flattr</a> .</p>
<p>Developers can now distribute and promote their apps through collections because &#8220;unity makes strength&#8221; and it is easier and more effective to communicate on one product.</p>
<p>With SuiteFramework KRL developers can focus on features, not on plumbery. Creating a new suite only needs to copy paste an existing master ruleset and change values of a json object. You don&#8217;t need to modify your apps to include them in a collection. Also SuiteFramework has a developer mode that automatically takes the lates apps versions , no matter they have been deployed or not. Persistent vars can be easily cleared at the app level or suite level. SuiteFramework API gives you functions to make some javascript code work in the KBX sandbox which normally requires lots of coding tricks. For example you can reuse/extend/override the javascript a website includes in its pages.</p>
<p>In the future SuiteFramework will try to :</p>
<ul>
<li>support analytics to get stats about the use of individual apps so creators can share donations accordingly</li>
<li>integrate a feedback system so users can report bugs and post feature requests</li>
<li>support custom collections ( collections created by anyone, promoted by anyone ) with commissions on installs</li>
<li>simple &#8220;site tag&#8221; system to allow one click install of custom collections on any website</li>
<li>easy multilingual system</li>
<li>user notifications when a Kynetx app is available on the site the user is browsing</li>
<li>unit tests / integration tests ( selenium)</li>
<li>support <a title="CoffeeScript" href="http://jashkenas.github.com/coffee-script/" target="_blank">coffeescript </a></li>
</ul>
<p>SuiteFramework is currently under active testing and will be released in june 2011 together with a Dev Suite to increase productivity that will focus on appbuilder enhancements and offer a unique entry point to find precise documentation on KRL ( <a title="Official Kynetx Documentaton" href="http://docs.kynetx.com/docs/Main_Page" target="_blank">docs.kynetx.com</a>, <a title="Kynetx Convore Group" href="https://convore.com/kynetx/" target="_blank">convore.com/kynetx</a> , <a title="KRL on stackoverflow.com" href="http://stackoverflow.com/questions/tagged/krl" target="_blank">stackoverflow.com/questions/tagged/krl</a> , KRL blogs, Google&#8230;)</p>
<p>You can be part of the SuiteFramework API adventure, contact me ( loic ) on Kynetx Convore Group : <a title="Kynetx Convore Group" href="http://convore.com/kynetx" target="_blank"> convore.com/kynetx</a></p>
<p>&nbsp;</p>
<p><a href="http://blog.lolo.asia/wp-content/uploads/2011/04/kyqlax_logo_title_final_smaller1.png"><img class="aligncenter size-full wp-image-344" title="kyqlax_logo_title_final_smaller" src="http://blog.lolo.asia/wp-content/uploads/2011/04/kyqlax_logo_title_final_smaller1.png" alt="" width="520" height="304" /></a></p>
<p>&nbsp;</p>
<div id="_mcePaste" class="mcePaste" style="position: absolute; left: -10000px; top: 523px; width: 1px; height: 1px; overflow: hidden;">https://convore.com/kynetx/</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.lolo.asia/technology/kynetx/2011/05/30/suiteframework-api-a-kynetx-krl-development-module-to-create-kynetx-app-collections-easily/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=loicdevaux&amp;popout=1&amp;url=http%3A%2F%2Fblog.lolo.asia%2Ftechnology%2Fkynetx%2F2011%2F05%2F30%2Fsuiteframework-api-a-kynetx-krl-development-module-to-create-kynetx-app-collections-easily%2F&amp;language=en_GB&amp;category=software&amp;title=SuiteFramework+API%2C+a+Kynetx+KRL+development+module+to+create+Kynetx+app+collections%2C+easily&amp;description=SuiteFramework+tries+to+resolve+the+following+problems%3A+how+to+create+richer+applications+with+Kynetx+KRL+without+compromising+readability+%2C+extensibility+%2C+reusability+and+maintenance+of+code+given+the+existing+tools...&amp;tags=framework%2Ckrl%2Ckrl+module%2Ckrl+tools%2Ckynetx%2Ckynetx+app+collection%2Ckynetx+app+pack%2Ckynetx+app+package%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Youtube Suite ! First Kynetx Browser App collection for Youtube</title>
		<link>http://blog.lolo.asia/technology/kynetx/2011/05/26/youtube-suite-first-kynetx-browser-app-collection-for-youtube/</link>
		<comments>http://blog.lolo.asia/technology/kynetx/2011/05/26/youtube-suite-first-kynetx-browser-app-collection-for-youtube/#comments</comments>
		<pubDate>Thu, 26 May 2011 09:16:29 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[kynetx]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[kynetx browser app collection]]></category>
		<category><![CDATA[kynetx browser apps]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://blog.lolo.asia/?p=462</guid>
		<description><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/>UPDATE: Due to changes in the Kynetx API, this browser app is currently not working anymore.  Youtube Suite is a collection of individual Kynetx Browser Apps glued together inside a single Kynetx Browser App. Think of it as a Firefox add-on collection but better: all the apps included in the collection are installed with one [...]]]></description>
				<content:encoded><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/><p><a title="Youtube Suite" href="http://apps.kynetx.com/installable_apps/4238-Youtube_Suite" target="_blank"><img class="alignleft size-full wp-image-465" style="margin-left: 50px; margin-right: 50px;" title="Youtube Suite Logo" src="http://blog.lolo.asia/wp-content/uploads/2011/05/youtube_suite.jpg" alt="" width="127" height="127" /></a></p>
<p><span style="color: #ff0000;"><strong>UPDATE: Due to changes in the Kynetx API, this browser app is currently not working anymore.  </strong></span></p>
<p><span style="color: #ff0000;"><a title="Youtube Suite" href="http://apps.kynetx.com/installable_apps/4238-Youtube_Suite" target="_blank"><span style="color: #ff0000;">Youtube Suite </span></a>is a collection of individual <a title="Kynetx browser apps" href="http://apps.kynetx.com" target="_blank"><span style="color: #ff0000;">Kynetx Browser Apps</span></a> glued together inside a single Kynetx</span></p>
<p>Browser App. Think of it as a Firefox add-on collection but better: all the apps included in the collection are</p>
<p>installed with one click ! Individual apps can be disabled/re-enabled individually once the collection is</p>
<p>installed.</p>
<p><span style="text-decoration: underline;"><a title="Youtube Suite" href="http://apps.kynetx.com/installable_apps/4238-Youtube_Suite" target="_blank"><br />
Youtube Suite</a> includes</span> :</p>
<ul>
<li><strong><em>YouTube HD Suite</em></strong> so you always watch the highest quality format ( <a title="Greasemonkey YouTube HD Suite" href="http://userscripts.org/scripts/show/39167" target="_blank">http://userscripts.org/scripts/show/39167</a> ) =&gt; ( 720p for now )</li>
<li><strong><em>YouTube Eliminate Video Ads</em></strong> to remove video advertisements ( <a title="Greasemonkey YouTube Eliminate Video Ads" href="http://userscripts.org/scripts/show/40361" target="_blank">http://userscripts.org/scripts/show/40361</a> )</li>
<li><em><strong>Youtube Thumbs </strong></em>to get animated thumbs when moving the mouse over thumbnails ( <a title="Greasemonkey Youtube Thumbs" href="http://userscripts.org/scripts/show/58931" target="_blank">http://userscripts.org/scripts/show/58931</a> )</li>
<li><em><strong>Download YouTube Videos</strong></em> to download youtube videos in MP4 and FLV format ( <a title="Greasemonkey Download YouTube Videos" href="http://userscripts.org/scripts/show/25105" target="_blank">http://userscripts.org/scripts/show/25105</a> )</li>
</ul>
<p>More useful Youtube apps will be added automatically in the future. You can find interesting apps on the<a title="Greasemonkey youtube scripts" href="http://userscripts.org/tags/youtube" target="_blank"> Greasemonkey website with the youtube tag</a> and report me the app on the <a title="Convore Youtube Suite Group" href="https://convore.com/kynetx-youtube-suite/" target="_blank">convore.com Youtube Suite group</a> so I can try to add it to <a title="Youtube Suite" href="http://apps.kynetx.com/installable_apps/4238-Youtube_Suite" target="_blank">Youtube Suite</a> !<br />
<a title="Youtube Suite" href="http://apps.kynetx.com/installable_apps/4238-Youtube_Suite" target="_blank"><img class="size-full wp-image-469 alignright" title="puerta_luna_tiwanku" src="http://blog.lolo.asia/wp-content/uploads/2011/05/puerta_luna_tiwanku.jpg" alt="" width="340" height="170" /></a></p>
<p>&nbsp;</p>
<p>Once installed the right-mouse-click menu will show a Youtube Suite option that allows you to enable/disable individual apps on the fly.</p>
<p>&nbsp;</p>
<p>Loïc</p>
<p>&nbsp;</p>
<p><a title="Kynetx Youtube Suite" href="http://apps.kynetx.com/installable_apps/4238-Youtube_Suite" target="_blank"><img class="aligncenter size-large wp-image-474" title="kynetx_youtube_suite" src="http://blog.lolo.asia/wp-content/uploads/2011/05/kynetx_youtube_suite1-1024x588.jpg" alt="" width="800" height="459" /></a></p>
<p>&nbsp;</p>
<p><a title="kynetx Youtube Suite" href="http://apps.kynetx.com/installable_apps/4238-Youtube_Suite" target="_blank"><img class="aligncenter size-full wp-image-476" title="youtube_suite" src="http://blog.lolo.asia/wp-content/uploads/2011/05/youtube_suite2.jpg" alt="" width="181" height="181" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lolo.asia/technology/kynetx/2011/05/26/youtube-suite-first-kynetx-browser-app-collection-for-youtube/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=loicdevaux&amp;popout=1&amp;url=http%3A%2F%2Fblog.lolo.asia%2Ftechnology%2Fkynetx%2F2011%2F05%2F26%2Fyoutube-suite-first-kynetx-browser-app-collection-for-youtube%2F&amp;language=en_GB&amp;category=software&amp;title=Youtube+Suite+%21+First+Kynetx+Browser+App+collection+for+Youtube&amp;description=UPDATE%3A+Due+to+changes+in+the+Kynetx+API%2C+this+browser+app+is+currently+not+working+anymore.%C2%A0+Youtube+Suite+is+a+collection+of+individual+Kynetx+Browser+Apps+glued+together+inside+a...&amp;tags=chrome%2Cfirefox%2Ckynetx%2Ckynetx+browser+app+collection%2Ckynetx+browser+apps%2Cyoutube%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Build your Empire with Kynetx &#8220;Good Eave!&#8221;</title>
		<link>http://blog.lolo.asia/technology/kynetx/2011/05/22/build-your-empire-with-good-eave/</link>
		<comments>http://blog.lolo.asia/technology/kynetx/2011/05/22/build-your-empire-with-good-eave/#comments</comments>
		<pubDate>Sun, 22 May 2011 05:56:13 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[kynetx]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[browser app]]></category>
		<category><![CDATA[browser extension]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[eav]]></category>
		<category><![CDATA[empire avenue]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[kynetx browser apps]]></category>

		<guid isPermaLink="false">http://blog.lolo.asia/?p=430</guid>
		<description><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/>&#160; UPDATE: Due to changes in the Kynetx API and in the empireavenue.com design, this browser app is currently not working anymore.  Good Eave! is a Kynetx browser app for Firefox and Chrome for Empire Avenue . Good Eave! gives you additional stats in your portfolio and shows a tooltip with valuable information when you [...]]]></description>
				<content:encoded><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/><div id="attachment_432" class="wp-caption alignleft" style="width: 130px"><a title="Kynetx browser app for Empire Avenue : Good Eave !" href="http://apps.kynetx.com/installable_apps/4198-Good_Eave" target="_blank"><img class="size-full wp-image-432 " title="good_eave_logo" src="http://blog.lolo.asia/wp-content/uploads/2011/05/good_eave_logo.jpg" alt="" width="120" height="120" /></a><p class="wp-caption-text">Good Eave!</p></div>
<p>&nbsp;</p>
<p><span style="color: #ff0000;"><strong>UPDATE: Due to changes in the Kynetx API and in the empireavenue.com design, this browser app is currently not working anymore. </strong></span></p>
<p><a title="Good Eave! A kynetx browser app for Empire Avenue" href="http://apps.kynetx.com/installable_apps/4198-Good_Eave" target="_blank">Good Eave!</a> is a Kynetx browser app for Firefox and Chrome for <a title="Empire Avenue" href="http://empireavenue.com" target="_blank">Empire Avenue</a> .<br />
<a title="Good Eave! A kynetx browser app for Empire Avenue" href="http://apps.kynetx.com/installable_apps/4198-Good_Eave" target="_blank"><br />
Good Eave!</a> gives you additional stats in your portfolio and shows a tooltip with valuable information when you click on a ticker symbol like (e)INCA and e(KYNETX) in your twitter stream.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="myvideotag" style="width: 640px;"><iframe width="640" height="390" src="http://www.youtube.com/embed/hmins51g1HU" frameborder="0" allowfullscreen></iframe></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><span style="text-decoration: underline;">Additional infortion includes</span></strong> :<a title="Kynext Good Eave browser app" href="http://apps.kynetx.com/installable_apps/4198-Good_Eave" target="_blank"><img class="size-full wp-image-445 alignright" title="Twitter   Search - e(kynetx)" src="http://blog.lolo.asia/wp-content/uploads/2011/05/Twitter-Search-e-kynetx1.jpg" alt="" width="619" height="280" /></a></p>
<ul>
<li style="text-align: left;">Current Dividend Yield</li>
<li style="text-align: left;">Your Average Purchase Price</li>
<li style="text-align: left;">Your Breakeven Price</li>
<li style="text-align: left;">Gain per Share after Commissions</li>
<li style="text-align: left;">Total Gain after Commissions</li>
<li style="text-align: left;">Total % Gain after Commissions</li>
<li style="text-align: left;">Accumulated Dividends</li>
<li style="text-align: left;">Avg Daily Dividend</li>
<li style="text-align: left;">Avg Daily Dividend per Share</li>
<li style="text-align: left;">Daily Dividend Yield</li>
<li style="text-align: left;">Days to Pay Back (w/ Avg Daily Dividends)</li>
<li style="text-align: left;">Total Return with Dividends</li>
<li style="text-align: left;">Total ROI with Dividends</li>
</ul>
<p>Feature requests and feedback are waiting here: <a title="Feedback and feature requests" href="https://convore.com/good-eave-feedback/" target="_blank">https://convore.com/good-eave-feedback/</a><a title="Feedback and feature requests" href="https://convore.com/good-eave-feedback/" target="_blank"><br />
</a><br />
<a title="Good Eave!" href="http://apps.kynetx.com/installable_apps/4198-Good_Eave" target="_blank">Good Eave</a>! is a port of <a title="P3 for Empire Avenue" href="https://chrome.google.com/webstore/detail/nicoicbaoinjgpcclfjdkfimngkgogdl" target="_blank">P3 for Empire Avenue </a>using <a title="Kynetx website" href="http://www.kynetx.com" target="_blank">Kynetx technologies</a>.<br />
<img class="alignleft size-full wp-image-435" title="Empire Avenue   Home" src="http://blog.lolo.asia/wp-content/uploads/2011/05/Empire-Avenue-Home.jpg" alt="" width="445" height="129" /></p>
<p><a title="Good Eave for Kynetx KBX" href="http://apps.kynetx.com/installable_apps/4198-Good_Eave" target="_blank"><br />
Good Eave!</a> can also be installed as a :<br />
Chrome Extension :  <a title="Good Eave chrome extension crx" href="http://blog.lolo.asia/wp-content/uploads/kynetx_goodeave/Good_Eave.crx" target="_blank">.crx </a><br />
Firefox Extension :   <a title="Good Eave! Firefox extension" href="http://blog.lolo.asia/wp-content/uploads/kynetx_goodeave/Good_Eave.xpi" target="_blank">.xpi </a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: left;">Or try it right now with no install, using the bookmarklet !</p>
<p style="text-align: left;">First add the Good Eave! bookmarklet to your browser&#8217;s bookmarket (follow instruction below) then go to your portfolio on empireavenue.com or look for some tickers on your twitter stream.  Click on the Good Eave ! bookmarklet in your  bookmarks to run Good Eave!</p>
<p style="text-align: left;">Bookmarklet source:</p>
<p style="text-align: left;"><code>javascript:(function(){var d=document;var s=d.createElement(&#039;script&#039;);s.text=&quot;KOBJ_config={&#039;rids&#039;:[&#039;a1135x48]};&quot;;d.body.appendChild(s);var l=d.createElement(&#039;script&#039;);l.src=&#039;http://init.kobj.net/js/shared/kobj-static.js&#039;;d.body.appendChild(l);})()</code></p>
<p style="text-align: left;"><em>What is a bookmarklet?</em> =&gt; <a href="http://en.wikipedia.org/wiki/Bookmarklet" target="_blank">http://en.wikipedia.org/wiki/Bookmarklet</a></p>
<p style="text-align: left;">=&gt; on <strong>Firefox</strong></p>
<ol style="text-align: left;">
<li>make sure Bookmarks Toolbar is visible. If it isn&#8217;t select &#8220;View&#8221; from main menu then &#8220;Toolbars&#8221; and check &#8220;Bookmarks Toolbar&#8221;.</li>
<li>drag this link: <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x48']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Good Eave!</a> to the Bookmarks Toolbar.</li>
<li>alternatively you can right click on this link : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x48']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Good Eave!</a> and select &#8220;Bookmark this Link&#8221;. Then select the &#8220;Bookmarks Toolbar&#8221; folder in the the combobox and click &#8220;Save&#8221;.</li>
</ol>
<p style="text-align: left;">=&gt; on <strong>Chrome</strong></p>
<ol style="text-align: left;">
<li>make sure Bookmarks Bar is visible. If it isn&#8217;t right click on any part of the menu bar and check &#8220;Always show bookmarks bar&#8221;.</li>
<li>drag this link : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x48']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Good Eave!</a> to the Bookmarks Bar.</li>
</ol>
<p style="text-align: left;">=&gt; on <strong>Internet Explorer</strong>:</p>
<ol style="text-align: left;">
<li>make sure the Favorites Bar is visible. If it isn&#8217;t click on any part of the menu bar and check &#8220;Favorites Bar&#8221;.</li>
<li>using your mouse, right click on this link :  <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x48']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Good Eave!</a> and select &#8220;Add to Favorites&#8221;.</li>
<li>select &#8220;Favorites Bar&#8221; folder in the combobox and click the Add button.</li>
</ol>
<p style="text-align: left;">=&gt; on <strong>Safari</strong>:</p>
<ol style="text-align: left;">
<li>make sure Bookmarks Bar is visible. If it isn&#8217;t select &#8220;View&#8221; from main menu and select &#8220;Show Bookmarks Bar&#8221;.</li>
<li>drag this link : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x48']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Good Eave!</a> to the Bookmarks Bar.</li>
</ol>
<p style="text-align: left;">=&gt; on <strong>Opera</strong> :</p>
<ol>
<li style="text-align: left;">make sure Personal Bar is visible. If it isn&#8217;t select &#8220;View&#8221; from main menu then &#8220;Toolbars&#8221; and check &#8220;Personal Bar&#8221;.</li>
<li style="text-align: left;">drag this link : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x48']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Good Eave!</a> to the Personal Bar.<a href="http://blog.lolo.asia/wp-content/uploads/2011/05/good_eave_logo2.jpg"><img class="aligncenter size-full wp-image-447" title="good_eave_logo" src="http://blog.lolo.asia/wp-content/uploads/2011/05/good_eave_logo2.jpg" alt="" width="95" height="95" /></a></li>
</ol>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lolo.asia/technology/kynetx/2011/05/22/build-your-empire-with-good-eave/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=loicdevaux&amp;popout=1&amp;url=http%3A%2F%2Fblog.lolo.asia%2Ftechnology%2Fkynetx%2F2011%2F05%2F22%2Fbuild-your-empire-with-good-eave%2F&amp;language=en_GB&amp;category=software&amp;title=Build+your+Empire+with+Kynetx+%26%238220%3BGood+Eave%21%26%238221%3B&amp;description=%26nbsp%3B+UPDATE%3A+Due+to+changes+in+the+Kynetx+API+and+in+the+empireavenue.com+design%2C+this+browser+app+is+currently+not+working+anymore.%C2%A0+Good+Eave%21+is+a+Kynetx+browser+app+for...&amp;tags=browser+app%2Cbrowser+extension%2Cchrome%2Ceav%2Cempire+avenue%2Cfirefox%2Ckynetx%2Ckynetx+browser+apps%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Kynetx &#8211; façonnons le web à notre sauce</title>
		<link>http://blog.lolo.asia/technologie/2011/05/03/kynetx-faconnons-le-web-a-notre-sauce/</link>
		<comments>http://blog.lolo.asia/technologie/2011/05/03/kynetx-faconnons-le-web-a-notre-sauce/#comments</comments>
		<pubDate>Tue, 03 May 2011 20:13:45 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[kynetx @fr]]></category>
		<category><![CDATA[technologie]]></category>
		<category><![CDATA[krl]]></category>
		<category><![CDATA[kynetx]]></category>

		<guid isPermaLink="false">http://blog.lolo.asia/?p=396</guid>
		<description><![CDATA[<br/>A l&#8217;ère des apis, des flux d&#8217;informations en temps réel le web continue à être un gros foutoir mais avec des outils de plus en plus adaptés.  En tant que développeur je m&#8217;y sens un peu comme dans un bac à sable où on se refile joyeusement des pelles et des sceaux, où on s&#8217;écrie &#8220;eh! check mon [...]]]></description>
				<content:encoded><![CDATA[<br/><p><a title="site web kynetx " href="http://kynetx.com" target="_blank"><img class="aligncenter size-full wp-image-397" title="KynetxLogo273" src="http://blog.lolo.asia/wp-content/uploads/2011/05/KynetxLogo273.png" alt="" width="273" height="97" /></a></p>
<p>A l&#8217;ère des apis, des flux d&#8217;informations en temps réel le web continue à être un gros foutoir mais avec des outils de plus en plus adaptés.  En tant que développeur je m&#8217;y sens un peu comme dans un bac à sable où on se refile joyeusement des pelles et des sceaux, où on s&#8217;écrie &#8220;eh! check mon nouveau château là&#8221;, ou &#8220;ouaih, je l&#8217;ai déjà connecté par passage secret au miens mais purée tes fondations sont vraiment pourries&#8221;. De temps en temps on creuse un trou et il arrive qu&#8217;on tombe sur des trésors qu&#8217;on imaginait même pas, presque par hasard, et ça vous donne le vertige.</p>
<p>C&#8217;est un peu ce qui m&#8217;est arrivé lorsqu&#8217;en plein bidouillage avec <a title="Yahoo! YQL" href="http://developer.yahoo.com/yql/" target="_blank">Yahoo! YQL</a> je tombe sur un post  d&#8217;un concours de programmation avec <a title="Yahoo! YQL" href="http://developer.yahoo.com/yql/" target="_blank">YQL</a> et <a title="Kynetx" href="http://kynetx.com/" target="_blank">Kynetx</a> (<a title="résultat du concours kynetx yahoo yql" href="http://developer.yahoo.com/blogs/ydn/posts/2011/01/yql-kynetx-power-amacraigbay-a-winning-comparison-shopping-app/" target="_blank">résultat du concours</a>).</p>
<p>Concrètement que permet la techno de <a title="kynetx" href="http://kynetx.com" target="_blank">Kynetx</a> actuellement et quelle est leur ambition sur le long terme?<br />
Elle permet d&#8217;écrire un plugin pour navigateur dans un mélange de KRL (langage serveur ) et de javascript puis de distribuer cette application par bookmarklet ou génération automatique d&#8217;extensions de browser (FF, Chrome, Safari et bientôt IE).  <a href="http://blog.lolo.asia/wp-content/uploads/2011/05/loop.jpg"><img class="alignright size-full wp-image-409" title="loop" src="http://blog.lolo.asia/wp-content/uploads/2011/05/loop.jpg" alt="" width="200" height="300" /></a>C&#8217;est un gain de temps foudroyant: on écrit un seule code qu&#8217;on déploie ensuite dans les navigateurs. Lorqu&#8217;on rajoute une fonctionnalité à l&#8217;application toutes les extensions installées sont directement mises à jour sans intervention de l&#8217;utilisateur.  Plus besoin de maintenir des codes différents pour chaque navigateur, ni même d&#8217;apprendre les apis des différents browsers ( franchement on a mieux à faire qu&#8217;à apprendre des trucs qui n&#8217;arrêtent pas de bouger à chaque version).  Sur le long terme Kynetx s&#8217;attaquera aussi à l&#8217;internet des objets à travers un  moteur de règle qui déclenche des alertes lorsque des évènements se produisent ( &#8220;ya plus de beurre&#8221;, &#8220;mon indice klout est dramatiquement bas&#8221;, &#8220;grand-mère est sur skype mais a pas pris ses cachets&#8221; &#8230;)</p>
<p>Quelle type d&#8217;application peut on réaliser aujourd&#8217;hui?<br />
La liberté est totale et il faut voir ça comme une surcouche sur le web existant, un greasemonkey à l&#8217;ère du cloud. Biensur je peux taper dans telles ou telles apis REST existantes proposées par ci par là mais j&#8217;ai aussi toute liberté pour créer moi même une nouvelle fonctionnalité en javascript que KRL injectera dans le site web lors de ma navigation, du web augmenté en quelque sorte. C&#8217;est ainsi que très récemment lorsque <a title="facebook send button" href="https://developers.facebook.com/docs/reference/plugins/send/" target="_blank">Facebook a sorti son bouton &#8220;Send&#8221;</a> , <a title="concours kynetx facebook send" href="http://code.kynetx.com/2011/04/26/250-to-build-kynetx-facebook-send-within-24hrs-ends-apr-27th/" target="_blank">Kynetx a lancé un concours</a> donnant 24h pour coder une appli qui allait incruster ce bouton dans les blogs wordpress, google reader, blogspot, yelp.com, google places, résultats de rechercher yahoo, bing, google et posterous. <a title="résultas concours facebook send kynetx" href="http://www.readwriteweb.com/archives/extensions_bring_facebooks_new_send_button_to_goog.php" target="_blank">En 12h le challenge était torché</a>. Par défaut Kynetx utilise jquery pour tout ce qui est opération dans le browser ( mais rien n&#8217;empêche d&#8217;inclure la bibliothèque de votre choix ) et côté serveur vous disposez avec KRL de fonctionnalités de <a title="persistent variables" href="http://docs.kynetx.com/docs/Persistent_Variables" target="_blank">persistance de données</a>, accès d&#8217;api tiers ( <a title="kynetx krl twitter api" href="http://docs.kynetx.com/docs/Twitter" target="_blank">twitter</a>, <a title="kynetx krl facebook api" href="http://docs.kynetx.com/docs/Facebook" target="_blank">facebook</a>, <a title="kynetx krl amazon api" href="http://docs.kynetx.com/docs/Amazon" target="_blank">amazon</a>, <a title="kynetx krl twilio api" href="http://docs.kynetx.com/docs/Twilio" target="_blank">twilio </a>, <a title="kynetx krl geolocalisation api" href="http://docs.kynetx.com/docs/Locations" target="_blank">géolocalisation </a>&#8230; ) , bref , de pas mal d&#8217;outil pour remixer le web aisément. Kynetx propose une espèce de <a title="kynetx apps" href="http://apps.kynetx.com/" target="_blank">&#8220;marketplace&#8221; d&#8217;application</a>s   sur laquelle vous pourrez installer l&#8217;extension Kynetx KBX qui permet ensuite d&#8217;installer/desinstaller les applications Kynetx à la volée sans redémarrage du navigateur, pratique.</p>
<p>Vous souhaitez tater le bestiau?<br />
Il faudra maîtriser la langue de Shakespeare mais ça on s&#8217;en doutait.  Pour bien démarrer rien de tel que des examples de code concrets:<br />
<a title="example de code KRL kynetx" href="http://kynetxappaday.wordpress.com/2010/12/11/day-1-basics-and-notify/" target="_blank">kynetxappaday.wordpress.com</a> de Mike Grace , <a title="documentation officielle kynetx krl" href="http://docs.kynetx.com/docs/Main_Page" target="_blank">la doc officielle </a>, l&#8217;excellent <a title="krl questions / responses kynetx" href="http://stackoverflow.com/questions/tagged/krl" target="_blank">stackoverflow (tag krl</a>),  <a title="ed orcutt kynetx krl" href="http://edoism.orcutt.org/search/label/kynetx" target="_blank">le blog de Ed Orcutt </a>, <a title="convore kynetx group" href="https://convore.com/kynetx/" target="_blank">le très réactif forum kynetx en temps réel type irc web sur convore.com</a> où vous pourrez discuter en direct avec la communauté de développeur et les gars de Kynetx toujours très heureux de connaître les retours d&#8217;expériences ou de répondre aux questions. Vous pouvez même les <a title="support kynetx téléphone" href="http://code.kynetx.com/2011/01/20/new-office-hours-call-in-and-get-your-questions-answered/" target="_blank">appeler à leur bureau </a><a title="support kynetx téléphone" href="http://code.kynetx.com/2011/01/20/new-office-hours-call-in-and-get-your-questions-answered/" target="_blank">directement</a> si vous le souhaitez . <a title="bureaux kynetx" href="http://www.kynetx.com/about/" target="_blank">Kynetx est une startup localisée à Lehi</a> dans l&#8217;Utah aux Etats Unis ( décalage de 8h en arrière avec la France).</p>
<p>Ah, encore un truc, Kynetx propose très régulièrement des <a title="concours kynetx" href="http://code.kynetx.com/category/contest/" target="_blank">concours de programmation</a> sur 24h ou 1 semaine avec à la clef des ipad2, xbox, chèque cadeau Amazon, kindle etc etc&#8230; C&#8217;est très stimulant et souvent ce qui compte c&#8217;est l&#8217;idée plus que la prouesse technique donc tout le monde a sa chance.</p>
<p><img class="size-thumbnail wp-image-398 alignleft" title="Xbox_360_Console" src="http://blog.lolo.asia/wp-content/uploads/2011/05/Xbox_360_Console-150x150.jpg" alt="" width="150" height="150" /><img class="size-full wp-image-399 alignright" title="ipad2 kynetx contest" src="http://blog.lolo.asia/wp-content/uploads/2011/05/imgres-1-thumb-e1304453059930.jpg" alt="" width="230" height="178" /></p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;">D&#8217;autres ressources intéressantes</span>:</p>
<p>les blogs kynetx : <a title="kynetx code blog" href="http://code.kynetx.com/" target="_blank">http://code.kynetx.com/</a> et <a title="kynetx blog" href="http://blog.kynetx.com/" target="_blank">http://blog.kynetx.com/</a><br />
le blog du patron Dr. Phil Windley : <a href="http://www.windley.com/">http://www.windley.com/</a> (techno mais pas seulement)<br />
des handles twitter : @KynetxApps ,  @Kynetx ,@bradhintze  (évangeliste Kynetx)</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;">Quelques une de mes applications</span>:</p>
<p><a title="privatebook" href="http://blog.lolo.asia/technology/2011/04/11/kynetx-privatebook-released/" target="_blank"><br />
<img class="size-full wp-image-405" title="thumb_privatebook" src="http://blog.lolo.asia/wp-content/uploads/2011/05/thumb_privatebook.png" alt="" width="48" height="48" /></a> <strong>Privatebook </strong>, crypter let tchat et votre contenu facebook  :  <a href="http://blog.lolo.asia/technology/2011/04/11/kynetx-privatebook-released/">http://blog.lolo.asia/technology/2011/04/11/kynetx-privatebook-released/</a></p>
<p><strong><a title="restyler kynetx" href="http://blog.lolo.asia/technology/kynetx/2011/04/11/kynetx-restyler-released/" target="_blank"><img class="size-full wp-image-406 alignleft" title="thumb_restyler" src="http://blog.lolo.asia/wp-content/uploads/2011/05/thumb_restyler.jpg" alt="" width="48" height="48" /></a></strong></p>
<p>&nbsp;</p>
<p><strong> Restyler </strong>, changer le look de vos pages favorites (google, facebook &#8230; ) en injectant des feuilles de style css  provenant de <a title="userstyles.org" href="http://userstyles.org" target="_blank">userstyles.org</a>:<br />
<a href="http://blog.lolo.asia/technology/kynetx/2011/04/11/kynetx-restyler-released/">http://blog.lolo.asia/technology/kynetx/2011/04/11/kynetx-restyler-released/</a></p>
<p>&nbsp;</p>
<p><a title="site web kynetx" href="http://kynetx.com" target="_blank"><img class="aligncenter size-full wp-image-397" title="KynetxLogo273" src="http://blog.lolo.asia/wp-content/uploads/2011/05/KynetxLogo273.png" alt="" width="273" height="97" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lolo.asia/technologie/2011/05/03/kynetx-faconnons-le-web-a-notre-sauce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=loicdevaux&amp;popout=1&amp;url=http%3A%2F%2Fblog.lolo.asia%2Ftechnologie%2F2011%2F05%2F03%2Fkynetx-faconnons-le-web-a-notre-sauce%2F&amp;language=en_GB&amp;category=software&amp;title=Kynetx+%26%238211%3B+fa%C3%A7onnons+le+web+%C3%A0+notre+sauce&amp;description=A+l%26%238217%3B%C3%A8re+des+apis%2C+des+flux+d%26%238217%3Binformations+en+temps+r%C3%A9el+le+web+continue+%C3%A0+%C3%AAtre+un+gros+foutoir+mais+avec%C2%A0des+outils%C2%A0de+plus+en+plus+adapt%C3%A9s.%C2%A0%C2%A0En+tant+que+d%C3%A9veloppeur+je+m%26%238217%3By...&amp;tags=krl%2Ckynetx%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Ponte GaGa ! Sábado 30 de abril 2011 &#8211; Calle Santa Teresa 379 ( frente a la Sunat )</title>
		<link>http://blog.lolo.asia/fiesta/2011/04/29/gaganite-cusco/</link>
		<comments>http://blog.lolo.asia/fiesta/2011/04/29/gaganite-cusco/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 01:33:15 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[fiesta]]></category>
		<category><![CDATA[cusco]]></category>
		<category><![CDATA[lady gaga]]></category>

		<guid isPermaLink="false">http://blog.lolo.asia/?p=375</guid>
		<description><![CDATA[<br/>Click aqui para escoger tu look es esta gagaleria de 134 fotos! Una vez que la galeria esta abierta, se pueden usar las flechas de dirección para navegar mas rapidamente de foto a foto y ver las en zoom. Un click sobre la flecha redonda abajo de la serie de fotos permite abrir una nueva [...]]]></description>
				<content:encoded><![CDATA[<br/><p><span style="color: #800080;"><strong><a href="http://lolo.asia/blog/wp-content/uploads/gaga_select2/index.html" target="_blank">Click aqui</a> para escoger tu look es esta gagaleria de 134 fotos! </strong></span></p>
<p><span style="color: #800080;"><strong> Una vez que la galeria esta abierta, se pueden usar las flechas de dirección para navegar mas rapidamente de foto a foto y ver las en zoom. Un click sobre la flecha redonda abajo de la serie de fotos permite abrir una nueva serie de 48 fotos.</strong></span></p>
<p><a href="http://blog.lolo.asia/wp-content/uploads/2011/04/flyerFinalSmall.jpg"><img class="aligncenter size-full wp-image-381" title="flyerFinalSmall" src="http://blog.lolo.asia/wp-content/uploads/2011/04/flyerFinalSmall.jpg" alt="" width="1024" height="956" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lolo.asia/fiesta/2011/04/29/gaganite-cusco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=loicdevaux&amp;popout=1&amp;url=http%3A%2F%2Fblog.lolo.asia%2Ffiesta%2F2011%2F04%2F29%2Fgaganite-cusco%2F&amp;language=en_GB&amp;category=software&amp;title=Ponte+GaGa+%21+S%C3%A1bado+30+de+abril+2011+%26%238211%3B+Calle+Santa+Teresa+379+%28+frente+a+la+Sunat+%29&amp;description=Click+aqui+para+escoger+tu+look+es+esta+gagaleria+de+134+fotos%21+Una+vez+que+la+galeria+esta+abierta%2C+se+pueden+usar+las+flechas+de+direcci%C3%B3n+para+navegar+mas+rapidamente...&amp;tags=cusco%2Cfiesta%2Clady+gaga%2Cblog" type="text/html" />
<georss:point>-13.516126883528 -71.981134414673</georss:point><geo:lat>-13.516126883528</geo:lat><geo:long>-71.981134414673</geo:long>	</item>
		<item>
		<title>Debugging with KBX extension : how to avoid having to deploy at every code modification</title>
		<link>http://blog.lolo.asia/technology/kynetx/2011/04/16/debugging-with-kbx-extension-how-to-avoid-having-to-deploy-at-every-code-modification/</link>
		<comments>http://blog.lolo.asia/technology/kynetx/2011/04/16/debugging-with-kbx-extension-how-to-avoid-having-to-deploy-at-every-code-modification/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 17:06:24 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[kynetx]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[kbx]]></category>
		<category><![CDATA[krl]]></category>

		<guid isPermaLink="false">http://blog.lolo.asia/?p=347</guid>
		<description><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/>UPDATE: 04/17/2011 : Modified Firefox KBX extension available I decided to have a quick look at the Kynetx KBX Chrome extension and see if I could patch it so I wouldn&#8217;t need to deploy an app everytime I modify it when it runs with the KBX extension ( http://stackoverflow.com/questions/5653090/kynetx-app-not-working-when-installed-via-kbx-extension-on-chrome ). I needed this to help me [...]]]></description>
				<content:encoded><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/><p><a href="http://blog.lolo.asia/wp-content/uploads/2011/04/Kynetx-For-Chrome2.png"><img class="size-medium wp-image-360 alignright" title="Kynetx For Chrome" src="http://blog.lolo.asia/wp-content/uploads/2011/04/Kynetx-For-Chrome2-300x241.png" alt="" width="300" height="241" /></a></p>
<p><strong><span style="color: #800000;">UPDATE: 04/17/2011 : Modified Firefox KBX extension available </span></strong></p>
<p>I decided to have a quick look at the Kynetx KBX Chrome extension and see if I could patch it so I wouldn&#8217;t need to deploy an app everytime I modify it when it runs with the KBX extension ( <a href="http://stackoverflow.com/questions/5653090/kynetx-app-not-working-when-installed-via-kbx-extension-on-chrome">http://stackoverflow.com/questions/5653090/kynetx-app-not-working-when-installed-via-kbx-extension-on-chrome</a> ).</p>
<p>I needed this to help me solve this problem : <a href="http://stackoverflow.com/questions/5653090/kynetx-app-not-working-when-installed-via-kbx-extension-on-chrome">http://stackoverflow.com/questions/5653090/kynetx-app-not-working-when-installed-via-kbx-extension-on-chrome</a></p>
<p>This feature could be achieved with no big magic in:  <strong>page_interaction/pages.js </strong>inside the <strong>Chrome </strong>extension<strong><br />
</strong></p>
<p>replacing :</p>
<p><strong>KOBJ.add_config_and_run({&#8216;rids&#8217;:response.apps});</strong></p>
<p>with :</p>
<p><strong>//patch run_latest_app_version_in_kbx</strong></p>
<p><strong>var run_latest_app_version_in_kbx= true;<br />
</strong><strong>var run_msg_json={&#8216;rids&#8217;:response.apps};<br />
</strong><strong>if (run_latest_app_version_in_kbx===true){</strong></p>
<p><strong> </strong></p>
<p><strong> </strong><strong> for (var i=0;i&lt;response.apps.length;i++){<br />
</strong><strong> run_msg_json[response.apps[i]+&#8217;:kynetx_app_version&#8217;]=&#8217;dev&#8217;;<br />
</strong><strong> }</strong></p>
<p><strong> }</strong></p>
<p><strong>KOBJ.add_config_and_run(run_msg_json); </strong><br />
<strong>//</strong></p>
<p><strong><br />
</strong></p>
<p><span style="text-decoration: underline;">Here is the modified crx extension</span> :  <a title="KBX_run_latest_app_version_in_kbx.crx" href="http://lolo.asia/blog/wp-content/uploads/kynetx_kbx/exts/KBX_run_latest_app_version_in_kbx.crx" target="_blank">KBX_run_latest_app_version_in_kbx.crx</a></p>
<p>This feature can be enabled/disabled in the options page of the extension. It is enabled by default.<br />
<span style="text-decoration: underline;">Modified files</span> :  page_interaction/pages.js,  option_page/options.html , background/background.js, manifest.json</p>
<p><del>A Firefox version might follow when I’ll start debugging on FF.</del></p>
<p><strong><span style="color: #800000;">UPDATE:</span></strong> <span style="color: #800000;"><strong>04/17/2011 : Modified Firefox KBX extension available </strong></span></p>
<p>On <strong>Firefox</strong> the file to modify is : <strong>resources/jid0-njkmo4quo4rc8p9kcuemahnyiku-kynetxforfirefox-data/page_interaction.js</strong></p>
<p>replacing <strong>: </strong></p>
<p><strong>KOBJ.add_config_and_run({&#8216;rids&#8217;:message.apps});</strong></p>
<p>with : <strong> </strong></p>
<p><strong>//patch run_latest_app_version_in_kbx</strong></p>
<p><strong> var run_msg_json={&#8216;rids&#8217;:message.apps};</strong><br />
<strong> var run_latest_app_version_in_kbx=true;</strong><br />
<strong> if (run_latest_app_version_in_kbx===true){</strong></p>
<p><strong> for (var i=0;i&lt;message.apps.length;i++){</strong><br />
<strong> run_msg_json[message.apps[i]+&#8217;:kynetx_app_version&#8217;]=&#8217;dev&#8217;;</strong><br />
<strong> }</strong></p>
<p><strong> }</strong><br />
<strong> KOBJ.add_config_and_run(run_msg_json);</strong><br />
<strong>//</strong></p>
<p>Here is the modified xpi extension :  <a title="KBX_run_latest_app_version_in_kbx.crx" href="http://lolo.asia/blog/wp-content/uploads/kynetx_kbx/exts/KBX_run_latest_app_version_in_kbx.xpi" target="_blank">KBX_run_latest_app_version_in_kbx.xpi</a></p>
<p>There doesn&#8217;t seem to be a preferences screen so this feature cannot be disabled unless you set the variable <strong>run_latest_app_version_in_kbx</strong> to <strong>false </strong>in <strong>page_interaction.js</strong>. Modifications in the file are taken into account immediately, no restart or disactivation/activation  needed.<br />
Modified file :  resources/jid0-njkmo4quo4rc8p9kcuemahnyiku-kynetxforfirefox-data/page_interaction.js</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lolo.asia/technology/kynetx/2011/04/16/debugging-with-kbx-extension-how-to-avoid-having-to-deploy-at-every-code-modification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=loicdevaux&amp;popout=1&amp;url=http%3A%2F%2Fblog.lolo.asia%2Ftechnology%2Fkynetx%2F2011%2F04%2F16%2Fdebugging-with-kbx-extension-how-to-avoid-having-to-deploy-at-every-code-modification%2F&amp;language=en_GB&amp;category=software&amp;title=Debugging+with+KBX+extension+%3A+how+to+avoid+having+to+deploy+at+every+code+modification&amp;description=UPDATE%3A+04%2F17%2F2011+%3A+Modified+Firefox+KBX+extension+available+I+decided+to+have+a+quick+look+at+the+Kynetx+KBX+Chrome+extension+and+see+if+I+could+patch+it+so+I...&amp;tags=chrome%2Cjavascript%2Ckbx%2Ckrl%2Ckynetx%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Kynetx Privatebook released!</title>
		<link>http://blog.lolo.asia/technology/kynetx/2011/04/11/kynetx-privatebook-released/</link>
		<comments>http://blog.lolo.asia/technology/kynetx/2011/04/11/kynetx-privatebook-released/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 17:37:20 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[kynetx]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[browser app]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[kynetx browser apps]]></category>
		<category><![CDATA[privatebook]]></category>

		<guid isPermaLink="false">http://blog.lolo.asia/?p=328</guid>
		<description><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/>&#160; UPDATE: Due to changes in the Kynetx API and in the facebook.com chat, this browser app is currently not working anymore. Feature : encode messages , links , chat communication on Facebook on the fly, transparently If you feel like that privacy is important for freedom of speech and that Mark Zuckerberg might share [...]]]></description>
				<content:encoded><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/><p>&nbsp;</p>
<p><a href="http://blog.lolo.asia/wp-content/uploads/2011/04/privatebook1.png"><img title="privatebook" src="http://blog.lolo.asia/wp-content/uploads/2011/04/privatebook1.png" alt="" width="201" height="73" /></a></p>
<p><span style="text-decoration: underline; color: #ff0000;"><strong><strong>UPDATE: Due to changes in the Kynetx API and in the facebook.com chat, this browser app is currently not working anymore.</strong></strong></span></p>
<p><span style="color: #ff0000;"><span style="text-decoration: underline;"><strong><strong></strong>Feature </strong></span>: encode messages , links , chat communication on Facebook on the fly, transparently</span></p>
<p>If you feel like that privacy is important for freedom of speech and that Mark Zuckerberg might share some common views with <a href="http://gawker.com/#!5419271/google-ceo-secrets-are-for-filthy-people" target="_blank">Eric Schmidt </a>than having all your Facebook chats being logged on FB servers could bother you.</p>
<p>Privatebook is a good start for keeping some privacy on Facebook. This Kynetx browser app installable as a browser extension or startable with a bookmarklet allows you to base64 encode in realtime any input you make in Facebook including the messages you sent on the Facebook chat.</p>
<p>Every message gets encoded before landing on Facebook servers so it&#8217;s stored encoded.</p>
<p>Privatebook works transparently so you won&#8217;t notice any change while typing, reading. On every message you send you can choose to encode it or not. Privatebook decodes encoded message on the fly.</p>
<p>To be able to read your encoded messages your friends will need to use Privatebook too.</p>
<p>Of course base64 is everything but a strong or even low encryption. Stronger encryption could be used in the future and actually there are plenty of implementations of strong encryption in javascript including PGP.</p>
<p>&nbsp;</p>
<div class="myvideotag" style="width: 640px;"><iframe width="640" height="390" src="http://www.youtube.com/embed/TFp_RG0Aocs" frameborder="0" allowfullscreen></iframe></div>
<p><strong>W</strong><strong>hat is Privatebook made off?</strong></p>
<p>&nbsp;</p>
<ul>
<li>jquery with some plugins : hasFocus, livequery , generateId</li>
<li>other js librairies : punnycode, base64_decode/base64_encode, utf8_encode/utf8_decode</li>
<li>Kynetx KRL event driven server-side language</li>
</ul>
<p><strong>How to install </strong>:</p>
<p>Install as a browser extension:</p>
<p><strong>Chrome </strong>extension: <a title="chrome extension privatebook crx" href="http://blog.lolo.asia/wp-content/uploads/kynetx_privatebook/Privatebook.crx" target="_blank">crx</a><strong> </strong></p>
<p>&nbsp;</p>
<p><strong>Firefox </strong>extension : <a title="xpi privatebook firefox extension" href="http://blog.lolo.asia/wp-content/uploads/kynetx_privatebook/Privatebook.xpi" target="_blank">xpi</a></p>
<p>&nbsp;</p>
<p><strong>Safari, IE </strong>extensions<strong> : </strong>not implented yet&#8230;</p>
<p><strong>Kynetx KBX</strong> : <a title="Privatebook with Kynetx KBX" href="http://apps.kynetx.com/installable_apps/3695-Privatebook" target="_blank">http://apps.kynetx.com/installable_apps/3695-Privatebook</a></p>
<p>&#8230; or test it before with the bookmarklet : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x22']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Privatebook</a> !</p>
<p><strong>Your feedback is essential ! Please give it here : </strong><a title="Kynetx Privatebook feedback" href="https://convore.com/give-feedback-privatebook/" target="_blank">https://convore.com/give-feedback-privatebook/</a><strong> !</strong></p>
<p>Bookmarklet source:</p>
<p><code>javascript:(function(){var d=document;var s=d.createElement(&#039;script&#039;);s.text=&quot;KOBJ_config={&#039;rids&#039;:[&#039;a1135x22&#039;]};&quot;;d.body.appendChild(s);var l=d.createElement(&#039;script&#039;);l.src=&#039;http://init.kobj.net/js/shared/kobj-static.js&#039;;d.body.appendChild(l);})()</code></p>
<p><em>What the hell is a bookmarklet?</em> =&gt; <a href="http://en.wikipedia.org/wiki/Bookmarklet" target="_blank">http://en.wikipedia.org/wiki/Bookmarklet</a></p>
<p>=&gt; on <strong>Firefox</strong></p>
<ol>
<li>make sure Bookmarks Toolbar is visible. If it isn&#8217;t select &#8220;View&#8221; from main menu then &#8220;Toolbars&#8221; and check &#8220;Bookmarks Toolbar&#8221;.</li>
<li>drag this link: <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x22']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Privatebook</a> to the Bookmarks Toolbar.</li>
<li>alternatively you can right click on this link : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x22]};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Privatebook</a> and select &#8220;Bookmark this Link&#8221;. Then select the &#8220;Bookmarks Toolbar&#8221; folder in the the combobox and click &#8220;Save&#8221;.</li>
</ol>
<p>=&gt; on <strong>Chrome</strong></p>
<ol>
<li>make sure Bookmarks Bar is visible. If it isn&#8217;t right click on any part of the menu bar and check &#8220;Always show bookmarks bar&#8221;.</li>
<li>drag this link : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x22']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Privatebook</a> to the Bookmarks Bar.</li>
</ol>
<p>=&gt; on <strong>Internet Explorer</strong>:</p>
<ol>
<li>make sure the Favorites Bar is visible. If it isn&#8217;t click on any part of the menu bar and check &#8220;Favorites Bar&#8221;.</li>
<li>using your mouse, right click on this link :  <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x22']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Privatebook</a> and select &#8220;Add to Favorites&#8221;.</li>
<li>select &#8220;Favorites Bar&#8221; folder in the combobox and click the Add button.</li>
</ol>
<p>=&gt; on <strong>Safari</strong>:</p>
<ol>
<li>make sure Bookmarks Bar is visible. If it isn&#8217;t select &#8220;View&#8221; from main menu and select &#8220;Show Bookmarks Bar&#8221;.</li>
<li>drag this link : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x22']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Privatebook</a> to the Bookmarks Bar.</li>
</ol>
<p>=&gt; on <strong>Opera</strong> :</p>
<ol>
<li>make sure Personal Bar is visible. If it isn&#8217;t select &#8220;View&#8221; from main menu then &#8220;Toolbars&#8221; and check &#8220;Personal Bar&#8221;.</li>
<li>drag this link : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x22']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Privatebook</a> to the Personal Bar.</li>
</ol>
<p><a href="http://apps.kynetx.com/installable_apps/3695-Privatebook"><img class="aligncenter size-full wp-image-510" title="privatebook1" src="http://blog.lolo.asia/wp-content/uploads/2011/04/privatebook11.png" alt="" width="134" height="49" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lolo.asia/technology/kynetx/2011/04/11/kynetx-privatebook-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=loicdevaux&amp;popout=1&amp;url=http%3A%2F%2Fblog.lolo.asia%2Ftechnology%2Fkynetx%2F2011%2F04%2F11%2Fkynetx-privatebook-released%2F&amp;language=en_GB&amp;category=software&amp;title=Kynetx+Privatebook+released%21&amp;description=%26nbsp%3B+UPDATE%3A+Due+to+changes+in+the+Kynetx+API+and+in+the+facebook.com+chat%2C+this+browser+app+is+currently+not+working+anymore.+Feature+%3A+encode+messages+%2C+links+%2C+chat...&amp;tags=browser+app%2Cchrome%2Cfacebook%2Cfirefox%2Ckynetx%2Ckynetx+browser+apps%2Cprivatebook%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Kynetx Restyler released!</title>
		<link>http://blog.lolo.asia/technology/kynetx/2011/04/11/kynetx-restyler-released/</link>
		<comments>http://blog.lolo.asia/technology/kynetx/2011/04/11/kynetx-restyler-released/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 14:36:39 +0000</pubDate>
		<dc:creator>Loïc</dc:creator>
				<category><![CDATA[kynetx]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[kynetx browser apps]]></category>
		<category><![CDATA[restyler]]></category>

		<guid isPermaLink="false">http://blog.lolo.asia/?p=316</guid>
		<description><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/>&#160; &#160; &#160; &#160; &#160; UPDATE: Due to changes in the Kynetx API and in the userstyles.org design, this browser app is currently not working anymore. Inspired from the popular Stylish extension, Restyler allows users to change the skin of their favorite websites like Facebook or Google. Restyler is compatible with userstyles.org so that you [...]]]></description>
				<content:encoded><![CDATA[<img src="http://blog.lolo.asia//wp-content/uploads/icons/kynetx_logo2.png" width="73" height="73" alt="kynetx" title="kynetx" /><br/><p><a title="kynetx restyler for kbx" href="http://apps.kynetx.com/installable_apps/3769-Restyler" target="_blank"><img class="alignright size-large wp-image-330" title="logo_restyler_big" src="http://blog.lolo.asia/wp-content/uploads/2011/04/logo2-1024x389.jpg" alt="" width="800" height="303" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: #ff0000;"><strong>UPDATE: Due to changes in the Kynetx API and in the userstyles.org design, this browser app is currently not working anymore.</strong></span></p>
<p>Inspired from the popular Stylish extension, Restyler allows users to change the skin of their favorite websites like Facebook or Google. Restyler is compatible with <a href="http://userstyles.org">userstyles.org</a> so that you can install any style you may find there with Restyler.</p>
<p><span style="text-decoration: underline;"><strong>Features</strong></span>:<a href="http://blog.lolo.asia/wp-content/uploads/2011/04/Google_home_small.jpg"><img class="alignright size-medium wp-image-320" title="Google_home_small" src="http://blog.lolo.asia/wp-content/uploads/2011/04/Google_home_small-300x162.jpg" alt="" width="300" height="162" /></a></p>
<ol>
<li>Comes with two preconfigured styles for Facebook and Google</li>
<li>One click install on new styles from <a href="http://userstyles.org/">userstyles.org</a></li>
<li>Manage multiple styles for every website</li>
<li>Styles can have slideshows which allows to randomly show a background image every time the page is refreshed or stay on your favorite image</li>
<li>Restyler can be installed on Firefox and Chrome. IE extension is on the way (for now it only works on IE8 using bookmarklets)</li>
</ol>
<p>&nbsp;</p>
<div class="myvideotag" style="width: 640px;"><iframe width="640" height="390" src="http://www.youtube.com/embed/C7ZLyspD8cA" frameborder="0" allowfullscreen></iframe></div>
<p>Restyler is based on Kynetx technology that allows to distribute <a href="http://apps.kynetx.com/" target="_blank">kynetx browser apps</a> via extensions or bookmarklets on any major browser. With <a href="http://www.kynetx.com" target="_blank">Kynetx</a>, developpers write their program once and deploy the same code on all browsers.<br />
This will dramatically speed up development and maintenance so expect new features in Restyler soon !</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>W</strong></span><a href="http://blog.lolo.asia/wp-content/uploads/2011/04/stylishToo_scr1bis.jpg"><img class="alignright size-medium wp-image-321" title="stylishToo_scr1bis" src="http://blog.lolo.asia/wp-content/uploads/2011/04/stylishToo_scr1bis-300x167.jpg" alt="" width="300" height="167" /></a><span style="text-decoration: underline;"><strong>hat is Restyler made off?</strong></span></p>
<ul>
<li>wonderful jquery with some plugins : fancybox , easydrag , busy</li>
<li>Kynetx KRL event driven server-side language</li>
<li>Fun !</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Future plans</strong></span>:</p>
<ul>
<li>allow modication of styles on the fly to ease and speed up new style creation or customization</li>
<li>extend slideshow functionnality to support facebook albums , flickr, picasaweb &#8230;</li>
<li>export / import styles manually</li>
<li>crossbrowser settings ( same styles on all browser you use shall it be at office or home)</li>
</ul>
<p><span style="text-decoration: underline;"><strong>How to install </strong></span>:<a href="http://blog.lolo.asia/wp-content/uploads/2011/04/google_results_small.jpg"><img class="alignright size-medium wp-image-322" title="google_results_small" src="http://blog.lolo.asia/wp-content/uploads/2011/04/google_results_small-300x162.jpg" alt="" width="300" height="162" /></a></p>
<p>Install as a browser extension:</p>
<p><strong>Chrome </strong>extension: <a title="crx restyler chrome extension" href="http://blog.lolo.asia/wp-content/uploads/kynetx_restyler/Restyler.crx">crx</a><strong><br />
Firefox </strong>extension : <a title="xpi privatebook firefox extension" href="http://blog.lolo.asia/wp-content/uploads/kynetx_restyler/Restyler.xpi" target="_blank">xpi<br />
</a><strong>Safari, IE </strong>extensions<strong> : </strong>not implented yet&#8230;</p>
<p><strong>Kynetx KBX</strong> : <a title="Restyler for Kynetx KBX" href="http://apps.kynetx.com/installable_apps/3769-Restyler" target="_blank">http://apps.kynetx.com/installable_apps/3769-Restyler</a></p>
<p>&#8230; or test it before with the bookmarklet : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x24']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Restyler</a> !</p>
<p><strong>Your feedback is essential ! Please give it here : <a title="kynetx restyler feedback" href="https://convore.com/restyler-feedback-kynetx/" target="_blank">https://convore.com/restyler-feedback-kynetx/</a> !</strong></p>
<p>Bookmarklet source:</p>
<p><code>javascript:(function(){var d=document;var s=d.createElement(&#039;script&#039;);s.text=&quot;KOBJ_config={&#039;rids&#039;:[&#039;a1135x24&#039;]};&quot;;d.body.appendChild(s);var l=d.createElement(&#039;script&#039;);l.src=&#039;http://init.kobj.net/js/shared/kobj-static.js&#039;;d.body.appendChild(l);})()</code></p>
<p><em>What the hell is a bookmarklet?</em> =&gt; <a href="http://en.wikipedia.org/wiki/Bookmarklet" target="_blank">http://en.wikipedia.org/wiki/Bookmarklet</a></p>
<p>=&gt; on <strong>Firefox</strong></p>
<ol>
<li>make sure Bookmarks Toolbar is visible. If it isn&#8217;t select &#8220;View&#8221; from main menu then &#8220;Toolbars&#8221; and check &#8220;Bookmarks Toolbar&#8221;.</li>
<li>drag this link: <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x24']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Restyler</a> to the Bookmarks Toolbar.</li>
<li>alternatively you can right click on this link : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x24']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Restyler</a> and select &#8220;Bookmark this Link&#8221;. Then select the &#8220;Bookmarks Toolbar&#8221; folder in the the combobox and click &#8220;Save&#8221;.</li>
</ol>
<p>=&gt; on <strong>Chrome</strong></p>
<ol>
<li>make sure Bookmarks Bar is visible. If it isn&#8217;t right click on any part of the menu bar and check &#8220;Always show bookmarks bar&#8221;.</li>
<li>drag this link : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x24']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Restyler</a> to the Bookmarks Bar.</li>
</ol>
<p>=&gt; on <strong>Internet Explorer</strong>:</p>
<ol>
<li>make sure the Favorites Bar is visible. If it isn&#8217;t click on any part of the menu bar and check &#8220;Favorites Bar&#8221;.</li>
<li>using your mouse, right click on this link :  <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x24']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Restyler</a> and select &#8220;Add to Favorites&#8221;.</li>
<li>select &#8220;Favorites Bar&#8221; folder in the combobox and click the Add button.</li>
</ol>
<p>=&gt; on <strong>Safari</strong>:</p>
<ol>
<li>make sure Bookmarks Bar is visible. If it isn&#8217;t select &#8220;View&#8221; from main menu and select &#8220;Show Bookmarks Bar&#8221;.</li>
<li>drag this link : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x24']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Restyler</a> to the Bookmarks Bar.</li>
</ol>
<p>=&gt; on <strong>Opera</strong> :</p>
<ol>
<li>make sure Personal Bar is visible. If it isn&#8217;t select &#8220;View&#8221; from main menu then &#8220;Toolbars&#8221; and check &#8220;Personal Bar&#8221;.</li>
<li>drag this link : <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=%22KOBJ_config={'rids':['a1135x24']};%22;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js%27;d.body.appendChild(l);})()">Restyler</a> to the Personal Bar.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.lolo.asia/technology/kynetx/2011/04/11/kynetx-restyler-released/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=loicdevaux&amp;popout=1&amp;url=http%3A%2F%2Fblog.lolo.asia%2Ftechnology%2Fkynetx%2F2011%2F04%2F11%2Fkynetx-restyler-released%2F&amp;language=en_GB&amp;category=software&amp;title=Kynetx+Restyler+released%21&amp;description=%26nbsp%3B+%26nbsp%3B+%26nbsp%3B+%26nbsp%3B+%26nbsp%3B+UPDATE%3A+Due+to+changes+in+the+Kynetx+API+and+in+the+userstyles.org+design%2C+this+browser+app+is+currently+not+working+anymore.+Inspired+from+the+popular...&amp;tags=chrome%2Cfirefox%2Cinternet+explorer%2Cjavascript%2Cjquery%2Ckynetx%2Ckynetx+browser+apps%2Crestyler%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.394 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-05-21 10:46:11 -->
