tag:blogger.com,1999:blog-76922123293768788122024-02-20T20:46:52.403+02:00The Java RedemptionMy adventures as a Java dev, but expect other techs I explore to show up here from time to timeAnonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.comBlogger65125tag:blogger.com,1999:blog-7692212329376878812.post-73742627785173743662011-04-16T13:54:00.000+03:002011-04-16T13:54:25.863+03:00New FireGSS version for Firefox 4.0<a href="http://code.google.com/p/firegss">FireGSS</a> is the desktop client of <a href="http://code.google.com/p/gss">gss</a> and the <a href="http://pithos.grnet.gr/pithos">Pithos</a> service, in the form of a Firefox extension. Yesterday, I tested it on Firefox 4.0 for the first time (a little bit late, I know). All looked well, except two things: a) The version number in the about box was displayed as ... undefined! and b) all menus were something like transparent (definitely not usable).<br />
<br />
What 's wrong?!? Firebug and chromebug to the rescue! Firebug console displayed an error message in line<br />
<br />
<code class="jscript plain"><br />
var extManager = Cc["@mozilla.org/extensions/manager;1"].getService(Ci.nsIExtensionManager);<br />
</code><br />
<br />
<a href="https://developer.mozilla.org/en/Addons/Add-on_Manager">It seems</a> that Firefox 4.0 has changed the way to programmaticaly access the extensions manager. The new way is<br />
<br />
<code class="jscript plain">Components.utils.import(</code><code class="jscript string">"<a href="http://www.blogger.com/post-create.g?blogID=7692212329376878812">resource://gre/modules/AddonManager.jsm</a>"</code><code class="jscript plain">); //Load AddonManager</code><br />
<code class="jscript plain">AddonManager.getAddonByID("addon id", function (addon) {</code><br />
<code class="jscript plain">//Do something with your addon, we get the version number here<br />
});</code><br />
<br />
As you see, the new way is asynchronous and uses a callback function to return the results. That required some refactoring on our part to make sure that the about box is not displayed before we have the version number.<br />
<br />
The second problem was that we defined the menus as <span style="font-family: Times,"Times New Roman",serif;">popup</span> elements inside a <span style="font-family: Times,"Times New Roman",serif;">popupset</span> element. Another thing that is no longer supported in 4.0 is the <a href="https://developer.mozilla.org/en/XUL/popup"><span style="font-family: Times,"Times New Roman",serif;">popup</span></a> element as it has been replaced by the <a href="https://developer.mozilla.org/en/XUL/menupopup"><span style="font-family: Times,"Times New Roman",serif;">menupopup</span></a>.<br />
<br />
So after those changes the plugin was playing well with Firefox 4.0 but no longer with 3.*. Since it does not have any other functionality enhancements, this is not a problem. Users of Firefox 3.* can continue using FireGSS v. 0.18 and users of Firefox 4.0 can upgrade to 0.19.<br />
<br />
Until we resolve some issue with the update site, you can manually update to version 0.19 by downloading from <a href="http://firegss.googlecode.com/files/firegss-0.19.xpi">here</a>.Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-60348080029194996562011-04-10T14:21:00.000+03:002011-04-10T14:21:48.197+03:00Using Solr as a fast database cacheIn <a href="http://code.google.com/p/gss/">gss</a> (the open source project that the <a href="https://pithos.grnet.gr/">"Pithos"</a> service and <a href="http://home.mynetworkfolders.com/">mynetworkfolders</a> is based upon), <a href="http://www.ebs.gr/">we</a> use <a href="http://lucene.apache.org/solr/">apache solr</a> for full-text indexing and searching of the stored documents. However when a user searches for some terms, we have to show him only results from documents that she has read permission on, i.e. her own documents, document shared to her by others and documents made public.<br />
<br />
During some benchmarks we did recently we observed extremely high response times even for searches that had very few results. After some code reviews and more fine-grained benchmarks, we realized that over 60% of the time that it took for a search to complete was due to permission checks in the database that stores the document metadata. An example search for the term 'java', returned from solr something in the area of 2000 results. After that, each result should have its permissions checked to see if the user that did the search has read permission on the result and filter out results that cannot be read by the specific user. The response from solr was blazingly fast, the transformation of the SolrDocument objects to gss resources and the marshaling to json was around 40% of the total time and the remaining 60% was the permissions checking.<br />
<br />
So, we thought that if the solr search is so fast, why don't we store the document permissions in the index and transform the search query to include the user? That way the search will return only the relevant results (those that the user has read permission) and no permission checking and filtering will be necessary. More specifically, whenever a file is created or updated we store in the index the user and group ids that have read permissions on the file. Now, when a user does a search, we retrieve the groups that the user belongs to and append to the search query a search term that checks if the user id and group ids belong to those stored with the file. That way the search returns only the relevant results, thus improving search times more that 60%.<br />
<br />
Note: Care should be taken to update the index, not only when a file is updated but whenever its permissions are updated too. However, this is not something that happens often and index updating is done asynchronously through a message queue, so the load imposed to the server is insignificant.Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com6tag:blogger.com,1999:blog-7692212329376878812.post-84110217398663503452011-03-25T12:32:00.000+02:002011-03-25T12:32:06.707+02:00My Google Web Toolkit TalkIf you are new to GWT technology or have never heard about it, take a look at my recent <a href="http://slidesha.re/egVtbi">talk</a> about Google Web Toolkit during the 3rd Greece GTUG (Google Technology User Group) Meetup. It is quite introductory, highlighting the main features of the toolkit. I am planning (if time permits) to add the transcript as well, because some slides are not self-explanatory. Your comments are always welcome.Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-27635748171844165232010-11-13T12:39:00.000+02:002010-11-13T12:39:17.362+02:00Inter-operation of Mercurial and GitRecently, I had to incorporate into <a href="http://home.mynetworkfolders.com/">mynetworkfolders</a> various fixes from the open-source <a href="http://code.google.com/p/gss">gss</a> base project. Unfortunately, when the initial version of mynetworkfolders was created, we didn't clone from gss and now we have two completely independent trees, one in mercurial (gss) and one in git (mynetworkfolders). Fortunately, there is a way to link the two repos, so that changes can easily be migrated from one to the other.<br />
<br />
First of all, we need <a href="http://repo.or.cz/w/fast-export.git">fast-export</a>.<br />
<code><br />
git clone git://repo.or.cz/fast-export.git<br />
</code><br />
then create a new git repo that we 'll use to convert the mercurial repo into.<br />
<code><br />
git init gss_git_repo<br />
cd gss_git_repo<br />
../fast-export/hg-fast-export.sh -r ../gss<br />
git checkout HEAD<br />
</code><br />
Now, we have converted the gss mercurial repo into the gss_git_repo Git repo.<br />
<br />
Then, we fetch changes from this repo into the mynetworkfolders git repo.<br />
<code><br />
cd ../mynetworkfolders<br />
git remote add gss ../gss_git_repo<br />
git fetch gss [gss_branch:new_branch]<br />
</code><br />
The last option is not mandatory and is needed only if we want to fetch a particular branch from the gss_git_repo.<br />
Now in the mynetworkfolders git repo we have a new branch containing the gss changesets. If we do a merge, all changes from the beginning of the two projects will be merged so we have a lot of work to do to keep only those changes needed. However after this step and a commit, a common node will be created in the mynetworkfolders repo, so from now on if we repeat the above procedure, only the new changes from gss will be fetched into mynetoworkfolders.Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com1tag:blogger.com,1999:blog-7692212329376878812.post-44521026274164784532010-10-23T23:08:00.000+03:002010-10-23T23:08:05.681+03:00Yet another how to convert an svn repo to git<span id="goog_529772074"></span><span id="goog_529772075"></span><a href="http://www.blogger.com/"></a>If you don't have branches in your svn repo then converting to git is an easy task. Just use <i>git svn </i>and you are done. I not only had branches but I also had multiple projects in the same svn repo and didn't want to move all of them to git. So the first step is to use <i>git svn</i> but explicitly specify where the trunk, branches and tags are for the particular project I wanted to move.<br />
<code><br />
git svn clone http://path-to-root-of-svn-repo -A authors.txt -t tags/myproject -b branches/myproject -T trunk/myproject myproject</path-to-root-of-svn-repo></code><br />
<br />
Notice that under the root of the svn repo, I have <code>trunk, branches and tags</code> folders. Each project has its trunk under <code>trunk/project</code>, its branches under <code>branches/project</code> and its tags under <code>tags/project</code>. The first argument to the command above is the root of the svn repo and trunk, branches and tags of myproject are given as -T, -b and -t parameters. Nothing else worked correctly for my case. Notice also that you need an authors.txt file of the form<br />
<code><br />
username = Firstname Lastname <email><br />
</email></code><br />
with all users that have committed in the svn repo. The process will abort if it finds a name that is not in the authors file and you will have to add it and run the command again.<br />
<br />
After the command finishes (and it might take a while) we have our git repo under myproject. There is one problem though (actually they are two): All svn tags and branches are now git remote tracking branches. If we just push our git repo to a remote hosting site like github we 'll have only the master branch (previously svn trunk). So we have first to convert all previous svn tags to real git tags and the then push everything (master, branches and tags) to github.<br />
<br />
<code>git branch -r</code><br />
will list all remote tracking branches in the newly created git repo. Those with name of the form tags/tagname are coming from svn tags. As Paul Dowman explains in <a href="http://pauldowman.com/2008/07/26/how-to-convert-from-subversion-to-git/">his post</a>, for each one we have to create a git tag<br />
<code>git tag tagname tags/tagname</code><br />
and then delete the remote tracking branch<br />
<code>git branch -r -d tags/tagname</code><br />
<br />
The script I wrote to do the conversion is<br />
<br />
<code><br />
git branch -r |awk -F "/" '$2 {printf("git tag %s tags/%s\n", $2, $2)}' |sh<br />
git branch -r |awk -F "/" '$2 {printf("git branch -r -d tags/%s\n", $2)}'|sh<br />
</code><br />
<br />
After that step we connect the local repo with github<br />
<code>git remote add origin git@github.com:user/myproject.git</code><br />
and push but don't forget --tags otherwise the tags won't be pushed.<br />
<code>git push origin master --tags</code><br />
and push again with --all to push the branches<br />
<code>git push --all</code>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-75967281757000114062010-09-16T22:15:00.000+03:002010-09-16T22:15:50.723+03:00Testing GWT DesignerGoogle announced today on the <a href="http://googlewebtoolkit.blogspot.com/2010/09/google-relaunches-instantiations.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+blogspot%2FNWLT+%28Google+Web+Toolkit+Blog%29&utm_content=Google+Reader">GWT blog</a> the availability of <a href="http://code.google.com/webtoolkit/tools/gwtdesigner/installation/index.html">GWT Designer</a> among other things coming from the Instantiations acquisition. I couldn't help trying it, of course, so I installed the Eclipse plugin and tried to add a DialogBox into an existing project of mine. The plugin created the skeleton code for the new class but when I clicked on the design tab to see the graphical editor, Eclipse crashed miserably. It just disappeared from my screen with nothing written in the log (how typical). I tried updating everything related to Eclipse and test again with no luck. I then tried to create a new project from the beginning with the same results. Google search didn't help either. Tomorrow I 'll try it on the office computer and see what happens.Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-50043488482072985992010-09-05T17:12:00.001+03:002010-09-05T17:12:58.057+03:00Nodify made it to No 5 in the utility category!<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><a href="http://nodifyjs.com/">Nodify</a> is <a href="http://nodeknockout.com/teams/del-fuegos">our</a> entry in the <a href="http://nodeknockout.com/">Node Knockout coding contest</a>. It is a Web-based IDE for writing <a href="http://nodejs.org/">nodeJS</a> applications in Javascript. Initialy, it was meant to be only for server-side apps that implemented a REST-like API but during the 48-hour contest, we decided that it is better for now to have a more general approach.</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">The <a href="http://nodeknockout.posterous.com/and-the-winners-are">results</a> came out yesterday and we are No 5 in the utility category!!! Apart from that, we had some very encouraging comments from the voters and that is even more satisfying than the ranking alone. Anyway, <a href="http://astithas.blogspot.com/">Panagiotis</a> says it all in the <a href="http://vimeo.com/14693203">video</a>, you can check the <a href="http://nodifyjs.com/">project itself</a> or <a href="http://github.com/past/nodify">download the code</a> to play with. It is open-sourced under the MIT Lincence.</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">...and thanks to all that voted for us.</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div><iframe frameborder="0" height="300" src="http://player.vimeo.com/video/14693203" width="400"></iframe>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-65955662225572816542010-08-30T23:25:00.000+03:002010-08-30T23:25:46.152+03:00Nodify, a web-based IDE for node.js applications<a href="http://nodifyjs.com/">Nodify</a> is a web-based IDE for writing Javascript code using the <a href="http://nodejs.org/">node.js</a> framework. It was created by <a href="http://nodeknockout.com/teams/del-fuegos">our team</a> during the <a href="http://nodeknockout.com/">node knockout coding contest</a> in 48 hours. Check it out and if you like it, vote for it. Thank youAnonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-68879188297800911412010-08-23T23:05:00.000+03:002010-08-23T23:05:46.100+03:00paper.li and twittertim.es<a href="http://paper.li/">paper.li</a> and <a href="http://twittertim.es/">twittertim.es</a> are services that take links from your twitter stream and present them in a newspaper format. I have to admit that the first time I saw them, I couldn't find any possible use for me. Then, I thought that I don't follow my twitter stream very closely due to lack of time (no I don't click on every link that you post, sorry) and those services offer a decent way to have a quick but complete look on what happened in my stream for the last 24 hours. I don't intend to do a comparison here (how boring!) but I like twittertim.es because they show which friend shared each link and which friend of a friend which probably is a hint about their ranking algorithm. On the other hand, twittertim.es does not allow the creation of newspapers from hashtags, which is something that paper.li provides, so I use the latter to follow news about topics that interest me. A suggestion for both services is to allow the creation of newspapers from twitter searches (it would be really useful, guys).<br />
<br />
And now let me go back to <a href="http://nodeknockout.com/teams/del-fuegos">my studying</a> for the <a href="http://nodejs.org/">node.js</a> <a href="http://nodeknockout.com/">knockout contest</a>.Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com1tag:blogger.com,1999:blog-7692212329376878812.post-51408461916397399272010-08-05T19:04:00.002+03:002010-08-05T19:14:37.221+03:00Dear Vodafonethank you for bringing me back to the era of 54k modems when a 5kbytes/sec download rate was reason to party. Next time you advertise your mobile internet service, please make sure that it is clear that you are joking. There are naive people like me that believe such advertisements and expect fast internet on their vacation. Because my vacation is the only time I need mobile internet and it is apparent now that you cannot provide it.Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-8872120192233324622010-06-02T12:18:00.001+03:002010-06-02T12:18:04.530+03:00On Android VM performance as a success factor<div xmlns='http://www.w3.org/1999/xhtml'><a href='http://journal.duncandavidson.com/post/636400019/android-vm-performance-is-not-a-factor'>Duncan's Journal (Android VM Performance is not a Factor)</a><br/>VM performance will help but is not THE critical factor for Android 's success according to the author (I mostly agree).<br/><blockquote/></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-43779786860416316902010-05-19T22:26:00.002+03:002010-05-19T22:31:50.062+03:00GWT 2.1 milestone 1 with data presentation widgets<a href="http://googlewebtoolkit.blogspot.com/2010/05/gwt-21-milestone-1-is-now-available.html">GWT 2.1 milestone 1</a> is available and it has business presentation widgets! More details <a href="http://code.google.com/webtoolkit/doc/latest/ReleaseNotes.html">here</a>. I still use smartGWT for complicated widgets but now this may change.Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com1tag:blogger.com,1999:blog-7692212329376878812.post-85202686900013962752010-02-23T22:31:00.002+02:002010-02-23T22:33:48.306+02:00Java is dead<div xmlns="http://www.w3.org/1999/xhtml">I just came back from the 30st Athens <a href="http://www.opencoffee.gr">OpenCoffee</a> event. One more interesting event but the best part for me was when Brian Teeman of Joomla was asked by one of the attendants if Joomla was going to support other databases or other languages like e.g. Java. His answer was immediate: "Java, NO. Java is dead. And if it isn't dead, then it should be".<br /><br /></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com8tag:blogger.com,1999:blog-7692212329376878812.post-85135242386440491302010-02-20T19:51:00.001+02:002010-02-20T19:51:33.784+02:00MyNetworkFolders is here<div xmlns='http://www.w3.org/1999/xhtml'>Panagiotis says everything <a href='http://astithas.blogspot.com/2010/02/cloud-desktop.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+PastMidnight+%28Past+Midnight%29&utm_content=Google+Reader' target='_blank'>here</a>. More on the service <a href='http://home.mynetworkfolders.com/' target='_blank'>here</a>.<br/></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-12131253294228436462010-01-26T11:32:00.001+02:002010-02-01T14:55:37.901+02:00Weekly links for 25 - 31/01/2010<div xmlns='http://www.w3.org/1999/xhtml'><a href='http://www.schneier.com/blog/archives/2010/01/privacy_violati.html'>Schneier on Security: Privacy Violations by Facebook Employees</a><br/><br/><a href='http://ellak.gr/index.php?option=com_content&task=view&id=6929'>Ελεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα - Monomaxos Greek Linux</a><br/>Greek Linux distribution (in Greek)<br/></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-40429277468727574132010-01-18T13:23:00.001+02:002010-01-26T11:31:32.328+02:00Weekly links for 18 - 24/01/2010<div xmlns='http://www.w3.org/1999/xhtml'><a href='http://casper.frontier.nl/'>Casper - live aircraft tracking</a> (via <a target='_blank' href='http://twitter.com/javapapo'>@javapapo</a>)<br/>Live mashup with the air traffic over Schipol airport<br/><br/><a href='http://dilbert.com/strips/'>It is definitely one of the best Dilbert strips ever</a><br/>Sarcasm on cloud computing and outsourcing<br/></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-25262633096140034062009-12-15T11:29:00.001+02:002009-12-20T20:18:02.163+02:00Weekly links for 14-20/12/2009<div xmlns='http://www.w3.org/1999/xhtml'><a href='http://www.woot.com/Blog/ViewEntry.aspx?Id=10506'>Woot : What Was Popular Mechanics Thinking?</a><br/>The comments are very funny<br/><br/><a href='http://idleprocess.wordpress.com/2009/11/24/presentation-summary-high-performance-at-massive-scale-lessons-learned-at-facebook/'>Presentation Summary “High Performance at Massive Scale: Lessons Learned at Facebook” « Idle Process</a><br/>More than 3.9 trillion feed actions per day ??????!!!!!!???????<br/><br/><a href='http://www.insideria.com/2009/12/28-rich-data-visualization-too.html'>28 Rich Data Visualization Tools - InsideRIA</a><br/>It seams that data visualization is no more a problem<br/><br/><a href='http://saperduper.org/post/286362225/unshortenemall-greasemonkey-unshorten-tinyurl-bitly'>Όσο ζω, μαθαίνω</a><br/>Greasemonkey script to unveil the full urls of shortened urls in twitter and identi.ca<br/><br/><a href='http://www.jroller.com/sjivan/entry/smart_gwt_2_0_released'>SmartGWT 2.0 Released - Sanjiv Jivan's Blog</a><br/>Great tool if you want to make web apps that look like native<br/></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-55474703828239884562009-12-10T23:46:00.001+02:002009-12-13T13:40:09.042+02:00Weekly links for 7-13/12/09<div xmlns='http://www.w3.org/1999/xhtml'><a href='http://www.singlefounder.com/2009/11/12/how-to-make-developer-certifications-that-matter/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+miketaber+%28Mike+Taber%27s+Blog%29&utm_content=Google+Reader'>How to Make Developer Certifications That Matter | The Single Founder</a></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-61943158419404001792009-12-06T21:38:00.010+02:002009-12-13T15:12:30.720+02:00What I learned from Startup Weekend Athens<div xmlns="http://www.w3.org/1999/xhtml">This year I took part in Startup Weekend that was organised for the second time in Athens by Andrew Hyde and the kind hospitality of Microsoft. <a href="http://astithas.blogspot.com/2009/12/lessons-from-startup-weekend.html" target="_blank">Panagiotis</a> has told the whole story, so I will just fill the gaps and post some photos.<br /><br />First of all, I have to say that I started to like the iphone. I still believe that it is more an internet device and less a mobile phone but working with it (or should I say "for it") made me feel an attachment. If you are a developer, you know the feeling when you develop for a specific hardware. You either hate its guts or love it. So, as I already said on twitter, if anybody cares to sponsor my iphone purchase .... :-)<br /><br />Google app engine is fantastic and what Panagiotis forgot to mention is the Eclipse plugin which makes your life much easier. The application was created, built and deployed in seconds.<br /><br />Last and more important: I realised that in the process of creating a new business, developers are kind of commodity (I borrow this saying from a friend of mine :-)). Well, I don't want to be misunderstood here. Panagiotis already said that the business aspect is very important but after SWA2 I am starting to think that the technology/developer thing is not considered as important as I would like it to be. My feeling is that according to most people 's belief all you need is a good business plan. Later, you can always find someone to throw some code in. I doesn't matter if they are good or bad. Nobody knows or cares about you superior technology and if problems emerge in the future due to bad technology, it is equally easy to find someone else and fix them for you. Don't get me wrong, I don't mean that we are useless. I just realized that we are not appreciated as I thought we should be.<br /><br />So next year, I hope we will be there again better organized this time with our own business people (I already have some candidates) to prove that if you master the technology you can always find someone to write you a good business plan :-)<br /><br />Now the photos<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_q3QgEWaLY0Q/SyTmwXUrazI/AAAAAAAAAwk/wUNUW3RmepU/s1600-h/%CE%95%CE%B9%CE%BA%CF%8C%CE%BD%CE%B10024.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_q3QgEWaLY0Q/SyTmwXUrazI/AAAAAAAAAwk/wUNUW3RmepU/s400/%CE%95%CE%B9%CE%BA%CF%8C%CE%BD%CE%B10024.jpg" alt="" id="BLOGGER_PHOTO_ID_5414706370575035186" border="0" /></a>Shshshsh, the team is working...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_q3QgEWaLY0Q/SyTnFMp2c4I/AAAAAAAAAws/tpFYBQYKTec/s1600-h/%CE%95%CE%B9%CE%BA%CF%8C%CE%BD%CE%B10025.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_q3QgEWaLY0Q/SyTnFMp2c4I/AAAAAAAAAws/tpFYBQYKTec/s400/%CE%95%CE%B9%CE%BA%CF%8C%CE%BD%CE%B10025.jpg" alt="" id="BLOGGER_PHOTO_ID_5414706728488301442" border="0" /></a>See what you can do with an eeePC ?<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_q3QgEWaLY0Q/SyTnV1ZQ9rI/AAAAAAAAAw8/cEhQI4A1xpo/s1600-h/%CE%95%CE%B9%CE%BA%CF%8C%CE%BD%CE%B10027.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_q3QgEWaLY0Q/SyTnV1ZQ9rI/AAAAAAAAAw8/cEhQI4A1xpo/s400/%CE%95%CE%B9%CE%BA%CF%8C%CE%BD%CE%B10027.jpg" alt="" id="BLOGGER_PHOTO_ID_5414707014302496434" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_q3QgEWaLY0Q/SyTnQnwDL6I/AAAAAAAAAw0/zk7bGBqY8Kk/s1600-h/%CE%95%CE%B9%CE%BA%CF%8C%CE%BD%CE%B10026.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_q3QgEWaLY0Q/SyTnQnwDL6I/AAAAAAAAAw0/zk7bGBqY8Kk/s400/%CE%95%CE%B9%CE%BA%CF%8C%CE%BD%CE%B10026.jpg" alt="" id="BLOGGER_PHOTO_ID_5414706924740620194" border="0" /></a>Business development consulting<br /></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com2tag:blogger.com,1999:blog-7692212329376878812.post-87336154578953056732009-12-06T20:32:00.001+02:002009-12-10T23:47:10.979+02:00Weekly links for 30/11-06/12<div xmlns='http://www.w3.org/1999/xhtml'><a href='http://blog.postmaster.gr/2009/12/05/new-ieeecs-fellows/'>New IEEE/CS Fellows « Blogs are like opinions. Everybody has one…</a></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-74826185082413858852009-11-13T15:15:00.001+02:002009-11-13T15:15:30.675+02:00What a coincidence<div xmlns='http://www.w3.org/1999/xhtml'>After reading this<br/><a href='http://faeenamalaka.blogspot.com/2009/11/blog-post.html'>Φάε ένα μαλάκα!: Πού είναι τα ιπτάμενα αμάξια;</a> (only in Greek)<br/><br/>I saw this<br/><a href='http://xkcd.com/662/'>xkcd - A webcomic of romance, sarcasm, math, and language - By Randall Munroe</a><br/><br/>Strange!<br/></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-66495737280663072402009-11-03T12:45:00.001+02:002009-11-04T11:48:25.245+02:00GWT incompatibility with Karmic Koala<div xmlns='http://www.w3.org/1999/xhtml'>After upgrading to Karmic Koala, the GWT Hosted mode browser stoped working (it couldn't even launch) due to a missing libstdc++5 library. Obviously Ubuntu 9.10 uses version 6 of the library, so a temporary but working solution was to install version 5 too from the <a href='http://packages.ubuntu.com/jaunty/i386/libstdc++5/download' target='_blank'>Jaunty repositories.</a> I found the solution <a href='http://www.google.gr/url?sa=t&source=web&ct=res&cd=8&ved=0CB4QFjAH&url=http%3A%2F%2Fubuntuforums.org%2Fshowthread.php%3Fp%3D5988379&ei=7kzxSqmbHIaC_Abqh5Ux&usg=AFQjCNFVB_x7SS-D-XSMcE-_lcw6bncCvQ&sig2=Mv5HcnB9GVV_dU_W52IUWA' target='_blank'>here</a> and verified it with <a href='http://astithas.blogspot.com' target='_blank'>past</a>.<br/><br/></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-8519404775598603132009-10-31T20:10:00.001+02:002009-11-01T00:54:47.683+02:00Ubuntu 9.10 upgrade<div xmlns='http://www.w3.org/1999/xhtml'>The home pc has just been upgraded to 9.10. Every time I install a new ubuntu I try hibernation. I have never managed to make any of my linux machines hibernate correctly. This time it was different. The machine seemed to hibernate and power off. Well my joy didn't last though. When a tried to resume, a blank screen was all I could have. Never mind, Karmic Koala seems nice and a night of exploration is ahead. <br/></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-70404562104017030332009-10-15T13:26:00.001+03:002009-10-20T11:34:40.608+03:00Links for 2009-10-15<div xmlns='http://www.w3.org/1999/xhtml'><a href='http://uk.techcrunch.com/2009/10/15/put-io-is-an-innovative-new-cloud-storage-service/'>Put.io is an innovative new cloud storage service</a><br/><blockquote/><br/><br/><div class='zemanta-pixie'><img src='http://img.zemanta.com/pixy.gif?x-id=e8762efc-e057-885f-b8e9-9c8b532d346d' alt='' class='zemanta-pixie-img'/></div></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0tag:blogger.com,1999:blog-7692212329376878812.post-86044780640307148222009-10-07T15:54:00.001+03:002009-10-08T12:40:53.411+03:00October 7, 2009<div xmlns='http://www.w3.org/1999/xhtml'><a href='http://weblogs.java.net/blog/forax/archive/2009/10/06/jdk7-do-escape-analysis-default'>JDK7 do escape analysis by default | Java.net</a><br/><br/><a href='http://blog.go2web20.net/2009/10/google-wave-first-impressions.html'>GO2WEB20 Blog: Google Wave: First Impression</a><br/>... and not a good one<br/><br/><div class='zemanta-pixie'><img src='http://img.zemanta.com/pixy.gif?x-id=7eaf793f-b4ec-8b34-8a51-14fe9591e41e' alt='' class='zemanta-pixie-img'/></div></div>Anonymoushttp://www.blogger.com/profile/17356379670827963689noreply@blogger.com0