<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUEBSXkzfip7ImA9WhRaFEg.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432</id><updated>2012-02-17T04:40:58.786Z</updated><title>VasLabs</title><subtitle type="html">BSBS: Be Smart, Be Simple. . .</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://vaslabs.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>85</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Vaslabs" /><feedburner:info uri="vaslabs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Vaslabs</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;A0EDSH04cSp7ImA9WhRVEEg.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-6470200310524496596</id><published>2012-01-08T14:25:00.000Z</published><updated>2012-01-08T21:54:39.339Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T21:54:39.339Z</app:edited><title>jlab : Your own Java Testing Lab by VasLabs for you!</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
What is the way of programming big programs? You create object classes and test them individually. You configure them to work as you want and then you put them together to form a nice new shiny program.&lt;br /&gt;
Most of the programmers use IDE's to do that. However, if you are a hardcore of the kind, you may wish to create your own environment just as how you like it to be.&lt;br /&gt;
VasLabs has created a small script to give you ideas and/or help you start building your own lab environment to do what everyone does in labs; tests!&lt;br /&gt;
The philosophy behind it is that for every object class you get a test class. And for every test you do, you can view a log file containing the results. Then you can compare it with the expected results by reading it or using cmp, or even better, you could initially create a file that contains the expected results and then use jlab to run the test by comparing for you both results.&lt;br /&gt;
The program works on your current directory. I.e. you should change directory to the directory you want to build your lab and then run jlab.&lt;br /&gt;
Here is the manual of the program (you can also view it by running jlab without arguments):&lt;br /&gt;
&lt;br /&gt;
To use this &lt;a href="http://ubuntuone.com/4dVffWAx7WgM4uSZBNXmkO"&gt;program&lt;/a&gt; use the format &lt;b&gt;jlab&lt;/b&gt; &lt;i&gt;--argument [file]&lt;/i&gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
The list of available arguments are: &lt;br /&gt;
&lt;b&gt;--initialise&lt;/b&gt;&lt;br /&gt;
Initialises your lab environment in your current directory creating the appropriate folders&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;--create [file1 ... fileN]&lt;/b&gt;&lt;br /&gt;
Creates the given class names and puts them in the src directory. It also opens them using gedit&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;--create_tests&lt;/b&gt;&lt;br /&gt;
Creates a test class for each class in the src directory. It then opens them with gedit&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;--compile&lt;/b&gt;&lt;br /&gt;
Compiles every src file in all directories and puts the .class files in the bin directory&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;--run_tests&lt;/b&gt;&lt;br /&gt;
Runs all tests and puts the results in log files. Then it opens the log files with gedit&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;--test file expectedResults&lt;/b&gt;&lt;br /&gt;
Runs the given test file and compares its results with the given expectedResults file. If there is a difference it opens the results with gedit&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Requires:&lt;/b&gt; gedit text editor&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Author:&lt;/b&gt; Vasilis Nicolaou&lt;br /&gt;
&lt;b&gt;Distributed by:&lt;/b&gt; vaslabs&lt;b&gt;&lt;br /&gt;User Agreement:&lt;/b&gt;&lt;br /&gt;
This script shall be used with care by people who know what they are doing. This program intends to help building a java lab. By java lab&lt;br /&gt;
we mean a virtual environment that behaves like IDE with the difference that offers simple functionalities for testing java object classes.&lt;br /&gt;
The author has no responsibility for any loss of data or damage caused by using this script.&lt;br /&gt;
You can edit and re-distribute this script as you wish. If you do not agree delete this script file from you computer.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Tip:&lt;/b&gt; You can create aliases for every different functionality and put it in .my_bashrc&lt;br /&gt;
08/01/2012&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-aAw9mtDs_aM/Twmf2mRqQqI/AAAAAAAAAJ4/61oOYdKGHBo/s1600/jlab.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="73" src="http://1.bp.blogspot.com/-aAw9mtDs_aM/Twmf2mRqQqI/AAAAAAAAAJ4/61oOYdKGHBo/s320/jlab.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Using this idea you can build a similar lab for every language or facility you want.&lt;br /&gt;
Download it from &lt;a href="http://ubuntuone.com/4dVffWAx7WgM4uSZBNXmkO"&gt;here&lt;/a&gt;.&lt;br /&gt;
This is written in bash, and therefore can be run only on Unix based OS which have bash installed. &lt;br /&gt;
By VasLabs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-6470200310524496596?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/K5KFu8uYZzfA4Z9jqeWq6oBqzOY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/K5KFu8uYZzfA4Z9jqeWq6oBqzOY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/K5KFu8uYZzfA4Z9jqeWq6oBqzOY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/K5KFu8uYZzfA4Z9jqeWq6oBqzOY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/ef5x95ZGPuA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/6470200310524496596/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2012/01/jlab-your-own-java-testing-lab-by.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/6470200310524496596?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/6470200310524496596?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/ef5x95ZGPuA/jlab-your-own-java-testing-lab-by.html" title="jlab : Your own Java Testing Lab by VasLabs for you!" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-aAw9mtDs_aM/Twmf2mRqQqI/AAAAAAAAAJ4/61oOYdKGHBo/s72-c/jlab.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2012/01/jlab-your-own-java-testing-lab-by.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEDSHY_cSp7ImA9WhRQF04.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-5357389905271596023</id><published>2011-12-13T00:49:00.002Z</published><updated>2011-12-13T00:54:39.849Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-13T00:54:39.849Z</app:edited><title>The great convert tool of ImageMagick</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
It's of those days where you are just wondering why you are failing to program as usual. Your mind is sleepy, your thinking slow. While drinking a cup of coffee in order to awake your brain (even if you know that in such situations coffee just fails) you listen something not so important (as most things sound at the beginning). "I have a large pdf file how do I reduce its size?".&lt;br /&gt;
(I want to inform you now that this article is not about pdf resizing).&lt;br /&gt;
Then, as the coffee sinks in, along with this words, there is another question on the horizon. Can you reduce anything without losing something? Of course not. Anyway, that's not my point.&lt;br /&gt;
&lt;br /&gt;
I decided to try and find how to do that, with linux, using scripts. After a couple of google searches I found ghostscript. It was quite a fail, since the pdf was at its minimum size that ghostscript could convert, so it made it bigger. &lt;br /&gt;
&lt;br /&gt;
Then, I looked at my pictures. I always do this when I fail to find a solution for something. Great images, with high resolution. Hang on! What about making every pdf page as a jpg file and then reducing the resolution of those images, and after that putting all these images back as pdf pages?&lt;br /&gt;
&lt;br /&gt;
If you have the knowledge of a normal user this could mean hours of work, especially if pdf has 100 pages. Imagine having at the end another bigger pdf file.&lt;br /&gt;
&lt;br /&gt;
So, I realised that it was a lot of work. What about using a script to do that? Here it comes the convert of ImageMagick!&lt;br /&gt;
&lt;br /&gt;
I might failed to find an optimised solution for the pdf problem, but I've found a great tool! Convert is a terminal program created by ImageMagick that can convert any image file into another by user's will. In addition, it is open source, written in C.&lt;br /&gt;
&lt;br /&gt;
You can reduce your size of your images, transform them, skew them, flip them, change colours with mapping and more more advance image things! It's like having photoshop in a small program, without the heavy brashes and tools. Type the commands, you have your image converted. Just visit man pages on your linux. Or visit&amp;nbsp;&lt;a href="http://www.imagemagick.org/script/convert.php"&gt; http://www.imagemagick.org/script/convert.php&lt;/a&gt; to download a version with GUI or for a different operating system.&lt;br /&gt;
&lt;br /&gt;
For the story, I used this to convert my pdf:&lt;br /&gt;
convert input.pdf -scale 500 output.pdf&lt;br /&gt;
And got a smaller file with a terrible resolution.&lt;br /&gt;
Anyone knows anything about it?&lt;br /&gt;
&lt;br /&gt;
That's a story about how something irrelevant results to an exploration of another irrelevant thing (but useful).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, even if you are going to fail, never mind, explore! Even if it's pangolins! :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-5357389905271596023?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XCdazmz--n23G5eMNmiasQnk3RE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XCdazmz--n23G5eMNmiasQnk3RE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XCdazmz--n23G5eMNmiasQnk3RE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XCdazmz--n23G5eMNmiasQnk3RE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/K_ao9TrCy8Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/5357389905271596023/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/12/great-convert-tool-of-imagemagick.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/5357389905271596023?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/5357389905271596023?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/K_ao9TrCy8Q/great-convert-tool-of-imagemagick.html" title="The great convert tool of ImageMagick" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/12/great-convert-tool-of-imagemagick.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMFQnY_fCp7ImA9WhRSFEk.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-1209291032894102701</id><published>2011-11-14T23:36:00.001Z</published><updated>2011-11-16T11:20:13.844Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T11:20:13.844Z</app:edited><title>Computer Synesthesia</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Synesthesia (also spelled synæsthesia or synaesthesia, plural synesthesiae or synaesthesiae), from the ancient Greek σύν (syn), "together," and αἴσθησις (aisthēsis), "sensation," is a neurologically based condition in which stimulation of one sensory or cognitive pathway leads to automatic, involuntary experiences in a second sensory or cognitive pathway. People who report such experiences are known as synesthetes. &lt;a href="http://en.wikipedia.org/wiki/Synesthesia"&gt;(http://en.wikipedia.org/wiki/Synesthesia)&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here, we are going to illustrate Synesthesia as a situation where a person (in this case the computer) hears images. I.e. instead of seeing them, the pathway goes from the eyes to the part of the brain that understands sounds (or something like that :))&lt;br /&gt;
&lt;br /&gt;
How is it like to hear images? Let's hear one.&lt;br /&gt;
&lt;br /&gt;
You have to have this tools:&lt;br /&gt;
A linux distribution&lt;br /&gt;
The pacat program (check if you have it, otherwise install it)&lt;br /&gt;
A little C (so we need gcc compiler)&lt;br /&gt;
&lt;br /&gt;
Here is the code for reading a file. We are going to use it to read image files:&lt;br /&gt;
&lt;br /&gt;
#include &lt;stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;int t = 0;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;FILE *input;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;input = fopen(argv[1], "r");&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;while (t != -1)&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;{t = getc(input); putchar(t);}&lt;br /&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;fclose(input);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Save it as sounds.c and compile it using gcc sounds.c -o sounds&lt;br /&gt;
Then use&lt;br /&gt;
sounds mypicture.png | pacat --format u8 --rate 8000&lt;br /&gt;
&lt;br /&gt;
And you can hear your pictures and images :P Don't expect the sweetest melody :P&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-1209291032894102701?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ccGUKzu9FUCB2EyZohwfIrusObo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ccGUKzu9FUCB2EyZohwfIrusObo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ccGUKzu9FUCB2EyZohwfIrusObo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ccGUKzu9FUCB2EyZohwfIrusObo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/-GZEdyrjVPc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/1209291032894102701/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/11/computer-synesthesia.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/1209291032894102701?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/1209291032894102701?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/-GZEdyrjVPc/computer-synesthesia.html" title="Computer Synesthesia" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/11/computer-synesthesia.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QNQ3czcSp7ImA9WhZaEE8.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-8437966403493637085</id><published>2011-06-11T21:14:00.006+01:00</published><updated>2011-06-25T20:16:32.989+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-25T20:16:32.989+01:00</app:edited><title>C : thank you for the memories</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;C is in general a quite free language, in a sense that it usually compiles! However, when it comes to running, even the most experienced programmers get errors or values that they wouldn't expect.&lt;br /&gt;
The most common error is a segmentation fault. This happens when your program tries to write or read a memory location out of its bounds, so the operating system does not allow it.&lt;br /&gt;
In addition, sometimes, you get some unexpected values, because you accidentally read a wrong memory location that belongs to your program, so the operating system does not block it. Furthermore,somebody can write accidentally a piece of code that might cause the program to freeze:&lt;br /&gt;
Imagine you want to create an array of length 10 and initialise it with 0 values. &lt;br /&gt;
What would happen if you write this (by mistake of course)&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;
&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; int a[10];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; int i = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (;i&amp;lt;=10; i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; a[i] = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
}&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Why your program freezes? What would happen if you read the array without putting initial values in it if you print it out?&lt;br /&gt;
Can you guess what would happen if you read a[10]?&lt;br /&gt;
Try it! It's really fun!&lt;br /&gt;
&lt;marquee&gt; by VasLabs &lt;/marquee&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-8437966403493637085?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8jz7ilHodNhZaZUrXn6CgGMIlmw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8jz7ilHodNhZaZUrXn6CgGMIlmw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8jz7ilHodNhZaZUrXn6CgGMIlmw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8jz7ilHodNhZaZUrXn6CgGMIlmw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/j4aF72-3dXY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/8437966403493637085/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/06/c-thank-you-for-memories.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/8437966403493637085?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/8437966403493637085?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/j4aF72-3dXY/c-thank-you-for-memories.html" title="C : thank you for the memories" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/06/c-thank-you-for-memories.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUENRX09fCp7ImA9WhZUFUw.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-2478933916361504279</id><published>2011-06-08T08:21:00.000+01:00</published><updated>2011-06-08T08:21:34.364+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-08T08:21:34.364+01:00</app:edited><title>Text File Encryptor</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Here is the idea. Create a simple program that changes the bytes of a file using a passphrase in a such way that they can be revered to their initial state.&lt;br /&gt;
Of course this program is not suitable for commercial use because the encryption is very simple. But you get the idea.&lt;br /&gt;
The program is written in java and you can download the source code and the compiled program from there:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href="http://ubuntuone.com/p/xqq/"&gt;ByteReader&lt;/a&gt;&lt;/b&gt; source code &lt;br /&gt;
&lt;b&gt;&lt;a href="http://ubuntuone.com/p/y2l/"&gt;ByteReader&lt;/a&gt;&lt;/b&gt; byte code &lt;br /&gt;
&lt;b&gt;&lt;a href="http://ubuntuone.com/p/xrc/"&gt;ByteEncryptor&lt;/a&gt;&lt;/b&gt; source code &lt;br /&gt;
&lt;b&gt;&lt;a href="http://ubuntuone.com/p/y2i/"&gt;ByteEncryptor&lt;/a&gt;&lt;/b&gt; byte code &lt;br /&gt;
&lt;b&gt;&lt;a href="http://ubuntuone.com/p/xs3/"&gt;DataEncryptor&lt;/a&gt;&lt;/b&gt; source code &lt;br /&gt;
&lt;b&gt;&lt;a href="http://ubuntuone.com/p/xwv/"&gt;DataEncryptor&lt;/a&gt;&lt;/b&gt; byte code &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
We have an object ByteReader that reads the contents of a text file using a BufferedReader which wraps a FileReader. It reads it line by line to avoid reading dumb null bytes (it happened when we used InputStreamReader, no idea why!&lt;br /&gt;
After that we convert each character of the line to an int! And then we store it in a variable such that b = object ByteReader and b.bytes[][] = thearray of ByteReader that keeps the bytes read.&lt;br /&gt;
&lt;br /&gt;
Then we create another object, a ByteEncryptor which takes as one of its arguments the byte reader and according to another argument password and whether to subtract from the value of the bytes or add(i.e. 0 or 1) as another argument. It also takes the number of lines and the destination to store the encrypted data.&lt;br /&gt;
&lt;br /&gt;
It encrypts each byte with the simplest calculation that exists!&lt;br /&gt;
for each byte&lt;br /&gt;
byte = byte + (passphrase.hashCode() % 91)&lt;br /&gt;
and decrypts&lt;br /&gt;
byte = byte - (passphrase.hashCode() % 91)&lt;br /&gt;
&lt;br /&gt;
Some notes to have in mind!&lt;br /&gt;
1) Never use this program on important data! They might be corrupt! Use it only on test data that you don't mind to lose!&lt;br /&gt;
2) It fails to decrypt images, videos, pdf and similar formats. Do you suspect why?&lt;br /&gt;
3) Never use this program to encrypt data and feel safe! Can you think of a simple program that it can decrypt these data without knowing the password? If yes, let others know! (We know :) )&lt;br /&gt;
&lt;br /&gt;
To run the program open a terminal the directory you saved the files and then run&lt;br /&gt;
java DataEncryptor yourFileYouWantToEncrypt destinationFile password 1/0&lt;br /&gt;
&lt;br /&gt;
1 is for adding, ie encryption, 0 is for subtracting, ie decryption.&lt;br /&gt;
Do not run it the first time with the value 0, you may not be able to recover it, and also remember the notes above.&lt;br /&gt;
If you put less arguments you will get an ArrayIndexOutOfBoundsException, i.e. the program will crash.&lt;br /&gt;
You can make whatever changes you like on this program since it's just a simple silly one that aims to excite your imagination for building similar things, more sophisticated. So, it is not licensed and there is no copyright.&lt;br /&gt;
&lt;br /&gt;
Enjoy!!!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-2478933916361504279?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_iGgUzRmLlcpxeFcL0fktFHIPyA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_iGgUzRmLlcpxeFcL0fktFHIPyA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_iGgUzRmLlcpxeFcL0fktFHIPyA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_iGgUzRmLlcpxeFcL0fktFHIPyA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/9O7ZdKrUDls" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/2478933916361504279/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/06/text-file-encryptor.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/2478933916361504279?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/2478933916361504279?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/9O7ZdKrUDls/text-file-encryptor.html" title="Text File Encryptor" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/06/text-file-encryptor.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YNQ386eCp7ImA9WhZUFUw.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-2771748776767791787</id><published>2011-06-07T14:31:00.006+01:00</published><updated>2011-06-08T08:46:32.110+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-08T08:46:32.110+01:00</app:edited><title>The MontyHallProblem</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The Monty Hall problem is as follows(stated in wikipedia):&lt;br /&gt;
The &lt;b&gt;Monty Hall problem&lt;/b&gt; is a probability puzzle based on the American television game show &lt;i&gt;Let's Make a Deal&lt;/i&gt; that was originally hosted by Monty Hall. The problem, also called the &lt;b&gt;Monty Hall paradox&lt;/b&gt;, is a &lt;i&gt;veridical paradox&lt;/i&gt;  because the result appears odd but is demonstrably true. The Monty Hall  problem, in its usual interpretation, is mathematically equivalent to  the earlier Three Prisoners problem, and both bear some similarity to the much older Bertrand's box paradox.&lt;br /&gt;
&lt;br /&gt;
In a few words &lt;br /&gt;
&lt;blockquote class="templatequote"&gt;&lt;div&gt;Suppose you're on a game show, and you're given the choice of three  doors: Behind one door is a car; behind the others, goats. You pick a  door, say No.&amp;nbsp;1, and the host, who knows what's behind the doors, opens  another door, say No.&amp;nbsp;3, which has a goat. He then says to you, "Do you  want to pick door No.&amp;nbsp;2?" Is it to your advantage to switch your choice?&lt;/div&gt;&lt;div class="templatequotecite"&gt;—&lt;a href="http://en.wikipedia.org/wiki/Monty_Hall_problem#refWhitaker1990"&gt;Whitaker/vos Savant 1990&lt;/a&gt;&lt;/div&gt;&lt;/blockquote&gt;&amp;nbsp;Furthermore the Monty Hall problem is briefly discussed in the movie "21 Blackjack".&lt;br /&gt;
The answer in the question switch or not is given but without a mathematical analysis.&lt;br /&gt;
The mathematical solution for this problem is based on Bayes' Theorem. This article, however, does not aim to explain Bayes' Theorem, but how we use it to create a program in java that will give us the best solution for N doors.&lt;br /&gt;
The steps is that you choose a door, and Monty Hall opens a door other that yours and the winning door. In each stage you choose to switch or stick to your choice. This process is until there's nothing left but two closed doors, yours and another one.&lt;br /&gt;
&lt;br /&gt;
So let's say we have N doors. The prior probability of each door to have the car behind it is obviously 1/N&lt;br /&gt;
&lt;br /&gt;
So, let's say D is the set of containing all closed doors, such that its initial value is&lt;br /&gt;
P(D) = 1&lt;br /&gt;
(That means that the car is behind of a closed door)&lt;br /&gt;
and card(D) = N&lt;br /&gt;
(that means that D has N elements)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
∀L∊D&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P(L) = 1/N&lt;br /&gt;
(this means that each door that is a closed door has probability be the right door of 1/N)&lt;br /&gt;
&lt;br /&gt;
So now Monty Hall opens a door b other than your door you chose.&lt;br /&gt;
D = D-{b}&lt;br /&gt;
P(D) = 1&lt;br /&gt;
&lt;br /&gt;
Now for every door that is closed the probability changes.&lt;br /&gt;
Let Oi be the event that Monty Hall opens a door i, and P(Oi | L) be the probability that&lt;br /&gt;
he opens door I by knowing that the right door is L.&lt;br /&gt;
so if L = "your door" ⇒ i is a door other than L&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
so P(Oi | L) = 1/(N-1)&lt;br /&gt;
Wonder why? think about it. He knows that you choosed the right door, so he has a range of N-1 doors to choose.&lt;br /&gt;
He wouldn't open the right door (that's the rules) and so if L = i ⇒ P(Oi | L) = 0&lt;br /&gt;
Now what happens if the door is not the door you chose?&lt;br /&gt;
if (L ≠ your door) and (L ≠ i) then&lt;br /&gt;
&amp;nbsp; P(L) = 1/(N-2)&lt;br /&gt;
&lt;br /&gt;
If you still wonder why count how many doors left for Monty Hall to choose.&lt;br /&gt;
&lt;br /&gt;
Now, we have to update our probabilities of belief for each door. We must forget the prior probabilities we begun because they have no meaning any more.&lt;br /&gt;
&lt;br /&gt;
So we've found those probabilities of opening, how do we find the new probabilities for each door?&lt;br /&gt;
&lt;br /&gt;
Using Bayes' theorem to find the probability that L is the right door under the event that Moonty Hall opened door i&lt;br /&gt;
I.e&lt;br /&gt;
P(L | Oi) = P(Oi | L)p(L) / (∑P(Oi | d)P(d))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d∊D&lt;br /&gt;
&lt;br /&gt;
So for each step you must do the same thing, and in the end you will have your probability.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can ask for questions on facebook or below this article&lt;br /&gt;
&lt;br /&gt;
If you find the solution in a language other than Java we would be glad to share it with us along with your name!&lt;br /&gt;
&lt;br /&gt;
Solution is uploaded, you can find the source code &lt;a href="http://ubuntuone.com/p/y30/"&gt;here&lt;/a&gt; and the byte code &lt;a href="http://ubuntuone.com/p/y31/"&gt;there!&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-2771748776767791787?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/B8xW133uuGNHAcHW5qQKZsQ1ySI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B8xW133uuGNHAcHW5qQKZsQ1ySI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/B8xW133uuGNHAcHW5qQKZsQ1ySI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B8xW133uuGNHAcHW5qQKZsQ1ySI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/ejyKcmlvLa8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/2771748776767791787/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/06/montyhallproblem.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/2771748776767791787?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/2771748776767791787?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/ejyKcmlvLa8/montyhallproblem.html" title="The MontyHallProblem" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/06/montyhallproblem.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ANRnYyfSp7ImA9WhZQF0g.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-5435309315818519237</id><published>2011-04-25T17:41:00.004+01:00</published><updated>2011-04-25T18:16:37.895+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-25T18:16:37.895+01:00</app:edited><title>Anagram Game Updated</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;We have updated Anagram Game. A new language has been added (Greek). Our efforts are about adding as many languages and words as possible! Since we can't find a dictionary for every language online, we use a trick invented by Vasilis Nicolaou who said recently:&lt;br /&gt;
"I have implemented an idea for creating dictionaries of any word easily, during my flight to Cyprus"&lt;br /&gt;
This simple idea enabled him and the rest of the team to add any language to Anagram Game easily.&lt;br /&gt;
In addition Vasilis Nicolaou discussed why people do not like this game much!&lt;br /&gt;
"I think it's quite our fault, we haven't explained to the public that it's quite different than simple anagram games! We were supposed to write a manual for that game but we haven't done that yet. We hope it will be ready soon!"&lt;br /&gt;
We have to mention that correct words must be solved considering anagram level witch is the number of swaps between letters. ebla can be only the word able and ebal can be only the word abel if anagram level is 0. However you need luck and much more thought if anagram level is bigger than 0.&lt;br /&gt;
&lt;br /&gt;
VasLabs Press Office&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-5435309315818519237?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qJnUPMQ-5yb2foe1qTA2IfJDmWY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qJnUPMQ-5yb2foe1qTA2IfJDmWY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qJnUPMQ-5yb2foe1qTA2IfJDmWY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qJnUPMQ-5yb2foe1qTA2IfJDmWY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/W_Oy43cgSl8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/5435309315818519237/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/04/anagram-game-updated.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/5435309315818519237?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/5435309315818519237?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/W_Oy43cgSl8/anagram-game-updated.html" title="Anagram Game Updated" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/04/anagram-game-updated.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4MRX47fCp7ImA9WhZRGUg.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-7687374052896286020</id><published>2011-04-15T22:00:00.004+01:00</published><updated>2011-04-16T12:56:24.004+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-16T12:56:24.004+01:00</app:edited><title>Personalise your messages! A new service by VasLabs</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;globaltext&gt;This service is published also at the bottom of this blog as a gadget!&lt;br /&gt;
&lt;script type="text/javascript"&gt;
 var la=33;   
 function start(letterA) {
        // get the reference for the body
              
        if (letterA == 0)
         la+=91;
        else
         if (letterA == 1)
         { if (la &gt; 123)
           la-=91;}       
          else
           la=letterA;
       
        var body = document.getElementsByTagName("theTable")[0];
        body.innerHTML="";
        // creates a &lt;table&gt; element and a &lt;tbody&gt; element
        var tbl     = document.createElement("table");
        var tblBody = document.createElement("tbody");

        // creating all cells
        /*for (var j = 0; j &lt; 10; j++) {
            // creates a table row
            var row = document.createElement("tr");
*/          var j = 0;
            var row = document.createElement("tr");
            for (var i = la; i &lt; la + 91; i++) {
                // Create a &lt;td&gt; element and a text node, make the text
                // node the contents of the &lt;td&gt;, and put the &lt;td&gt; at
                // the end of the table row
                                   
                j+=1;               
                var cell = document.createElement("td");
                var cellText = "&lt;button type='button' value=" + "'" +
                               String.fromCharCode(i) +"'" + " onclick = 'appendToText(this.value)'&gt;" + String.fromCharCode(i) + "&lt;/Button&gt;";
                cell.innerHTML += cellText;
                row.appendChild(cell);
                if (j==7)
                {
                    j=0;
                    row = document.createElement("tr");
                }//if
           

            // add the row to the end of the table body
            tblBody.appendChild(row);
        }//for
      
        // put the &lt;tbody&gt; in the &lt;table&gt;
        tbl.appendChild(tblBody);
        // appends &lt;table&gt; into &lt;body&gt;
        body.appendChild(tbl);
        // sets the border attribute of tbl to 2;
        tbl.setAttribute("border", "2");
    }
   
    function reset()
    {
         start(33);
         document.getElementById("mytext").value = "";
   }
  
  
   function appendToText(a)
   {  if (a=="")
          document.getElementById("mytext").value += "'";
      else
         document.getElementById("mytext").value += a;
  
   }//
&lt;/script&gt;&lt;br /&gt;
&lt;thisframe&gt;&lt;/thisframe&gt;&lt;/globaltext&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;input id="mytext" maxlength="255" name="myText" size="40" type="text" /&gt;&lt;/div&gt;&lt;center&gt;&lt;thetable&gt; &lt;/thetable&gt;&lt;br /&gt;
&lt;input name="change" onclick="start(0)" size="25" type="button" value="Switch" /&gt;&lt;input name="back" onclick="start(1)" size="25" type="button" value="Back" /&gt;&lt;input name="resetMe" onclick="reset()" size="25" type="reset" value="Reset" /&gt;&lt;br /&gt;
&lt;h3&gt;&lt;span style="color: #0b5394;"&gt;Switch through character tables and add special characters to your text!&lt;/span&gt;&lt;br style="color: #0b5394;" /&gt; &lt;br style="color: #0b5394;" /&gt;&lt;span style="color: #0b5394;"&gt; Make your messages in facebook, skype, msn etc more interesting and funny :)&lt;/span&gt;&lt;br style="color: #0b5394;" /&gt; &lt;br /&gt;
&lt;/h3&gt;&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-7687374052896286020?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/q6SzOd-50QdFDhwo5XfiVzPSrkA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q6SzOd-50QdFDhwo5XfiVzPSrkA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/q6SzOd-50QdFDhwo5XfiVzPSrkA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q6SzOd-50QdFDhwo5XfiVzPSrkA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/VoAUl7XPlI8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/7687374052896286020/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/04/personalise-your-messages-new-service.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/7687374052896286020?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/7687374052896286020?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/VoAUl7XPlI8/personalise-your-messages-new-service.html" title="Personalise your messages! A new service by VasLabs" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/04/personalise-your-messages-new-service.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIHSX47fip7ImA9WhZSGUg.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-1572261798693606633</id><published>2011-04-04T21:53:00.001+01:00</published><updated>2011-04-04T21:55:38.006+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-04T21:55:38.006+01:00</app:edited><title>Windows 7 wireless problem: connecting with DNS server</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This solution is for the below reported problem:&lt;br /&gt;
"When I connect wireless to my router I can't have internet access with my browser! Skype is working though! What's going wrong?"&lt;br /&gt;
&lt;br /&gt;
The problem is that the machine doesn't get the correct DNS address, so the browser can't translate e.g. www.google.com to it's numeric IP address. If you put instead 209.85.143.99 it should work!&lt;br /&gt;
To solve entirely this problem you have to change your network settings in order to get DNS automatically.&lt;br /&gt;
So you have to simply follow these steps:&lt;br /&gt;
1. Click on Start and then Control Panel.&lt;br /&gt;
2. Go to Networking and sharing center and then click on Change adapter settings.&lt;br /&gt;
3. Right click on Local Area Connection and choose properties.&lt;br /&gt;
4. Highlight Internet Protocol Version 6 (IPv6) and click on Properties.&lt;br /&gt;
5. Choose Obtain DNS server address automatically and press Ok (it might be already ok, see IPv4 as well).&lt;br /&gt;
6. Choose Obtain IP address automatically.&lt;br /&gt;
7. Repeat the steps for Internet Protocol version 4 (IPv4) as well.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-1572261798693606633?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/j4aDVKzxNiqAqqsabTppcnXrxi8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/j4aDVKzxNiqAqqsabTppcnXrxi8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/j4aDVKzxNiqAqqsabTppcnXrxi8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/j4aDVKzxNiqAqqsabTppcnXrxi8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/w9PRu032k9Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/1572261798693606633/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/04/windows-7-wireless-problem-connecting.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/1572261798693606633?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/1572261798693606633?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/w9PRu032k9Q/windows-7-wireless-problem-connecting.html" title="Windows 7 wireless problem: connecting with DNS server" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/04/windows-7-wireless-problem-connecting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcERngyeyp7ImA9WhZSFko.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-8249820179564019264</id><published>2011-04-01T17:35:00.006+01:00</published><updated>2011-04-01T17:40:07.693+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-01T17:40:07.693+01:00</app:edited><title>Why you should not buy an iPhone</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;So you are just in the moment you are considering of buying an iPhone! Such a great device, lot's of applications, lot's of eye candy, great design etc etc etc. . . &lt;br /&gt;
&lt;br /&gt;
These points shall make you think twice! &lt;br /&gt;
&lt;br /&gt;
-Several iPhone users have reported a constant loss of signal! It is known that for iPhone, Apple shared a plastic cover to their users to avoid loss of signal, but the problem is not entirely solved yet. &lt;br /&gt;
&lt;br /&gt;
-It doesn't support Java! Steven Jobs says that Java is too slow for iPhone but this is half of the truth. Java is indeed a kind of semi-interpreted language, as it translates source code to Bytecode, and interprets the Bytecode, but for repeated execution this Bytecode becomes native language and many times is faster even than C!!! This is a very important case for iPhone. Java is everywhere (even your car has Java), most programmers know Java and iPhone loses a huge amount of products. In addition if you are a developer you want at least your phone to have Java so you can experiment with it!&lt;br /&gt;
&lt;br /&gt;
-iPhone is so closed that you can't change it as you like! Android and other Linux distributions &lt;br /&gt;
are entirely open, so you change your phone as you wish! If you have iPhone you would find it almost impossible to put any other Operating System on it, and if you find that it's possible it contains such risks that you won't dare it!&lt;br /&gt;
&lt;br /&gt;
-It is very expensive, you need about $200 to buy one, because you pay the device and the software installed! This days open source software has reached the level of commercial software, and in some cases it is better! We live in times that free and open products are better than commercial and expensive one's! Isn't that great?&lt;br /&gt;
&lt;br /&gt;
-Also, many security holes have been found on apple's products (not only iPhones) because Apple&lt;br /&gt;
doesn't consider security as much as they should do! And here we leave you with the below external articles. Hundreds similar to them are out there ready to warn you!&lt;br /&gt;
&lt;br /&gt;
External Articles:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a completely new hacking vector, a new&lt;br /&gt;
exploitation door opened by researcher Ralf-Philipp&lt;br /&gt;
Weinmann.&lt;br /&gt;
Every smartphone has a multi-cpu architecture with&lt;br /&gt;
an Application processor and a Baseband processor,&lt;br /&gt;
both ARM CPU’s and implemented in a single chip.&lt;br /&gt;
While Application processors deal with the execution of&lt;br /&gt;
the phone tasks, Baseband deals with the protocols in&lt;br /&gt;
the air: GSM, UMTS...&lt;br /&gt;
According to Ralf, firmware code for the Baseband&lt;br /&gt;
was created in 90s and there’s almost no mitigation for&lt;br /&gt;
code execution beside hardware DEP implemented in&lt;br /&gt;
iPhone 4. This makes exploitation possible, however&lt;br /&gt;
no one until now took the time to reverse engineer the&lt;br /&gt;
firmware binaries and uncover many, many unchecked&lt;br /&gt;
memory copies through memcpy().&lt;br /&gt;
The possibilities of running a payload on poorly coded&lt;br /&gt;
phones Baseband firmware was also mitigated by the&lt;br /&gt;
costs involved in having malicious BTS, base stations&lt;br /&gt;
usually operated by carriers, required for the exploitation&lt;br /&gt;
to take place.&lt;br /&gt;
The researcher, demoed a remote code execution&lt;br /&gt;
against a mobile phone through $1250 worth of&lt;br /&gt;
equipment simulating a BTS through the OpenBTS&lt;br /&gt;
code, an open source project on purpose.&lt;br /&gt;
A price that can be afforded by the majority of the&lt;br /&gt;
criminals out there considering the potential outcome&lt;br /&gt;
presumed by Weinmann: eavesdropping conversations,&lt;br /&gt;
stealing corporate passwords, installing rootkits,&lt;br /&gt;
propagating worms, bricking phones and so on.&lt;br /&gt;
&lt;br /&gt;
Source: Armanod Romeo,&lt;br /&gt;
www.elearnsecurity.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not only are Apple fans misguided about the Mac's security, but Apple doesn't take security &lt;br /&gt;
as seriously as Microsoft, according to one expert. &lt;br /&gt;
&lt;br /&gt;
Apple fans who claim that the Mac is more secure than PCs not only are wrong, but they're ignorant about their security &lt;br /&gt;
risks, says a well-known hacker and security expert who has made a name for himself finding vulnerabilities in Windows. &lt;br /&gt;
And Apple itself doesn't take security as seriously as does Microsoft, he claims.&lt;br /&gt;
&lt;br /&gt;
Marc Maiffret, currently chief security architect at security firm FireEye first gained a modicum of fame as a hacker &lt;br /&gt;
targeting Microsoft products. For example, he uncovered the security hole that the Code Red worm exploited back I&lt;br /&gt;
n 2001 to attack Windows servers.&lt;br /&gt;
&lt;br /&gt;
He's been no stranger to publicity, being one of the hackers featured on MTV's I'm a Hacker, and named as one of &lt;br /&gt;
People Magazine's "Next Wave" of people to watch, back in 2004.&lt;br /&gt;
&lt;br /&gt;
In an interview with CNet, he claims that Microsoft takes security more seriously than does Apple, and excoriates &lt;br /&gt;
Apple fans as being "ignorant" about security risks.&lt;br /&gt;
&lt;br /&gt;
Maiffret says he believes Microsoft does one of the best jobs in the industry around security, telling CNet:&lt;br /&gt;
&lt;br /&gt;
"From an internal process in how they go about auditing their code and securing software from a technical &lt;br /&gt;
perspective, they do have one of the best models. The area they still have room for improvement is around &lt;br /&gt;
time lines of how long it takes for them to fix things." &lt;br /&gt;
&lt;br /&gt;
As for Apple and its fans, he has very little good to say, saying that the Mac is vulnerable, and its fans &lt;br /&gt;
ignorant about security risks:&lt;br /&gt;
&lt;br /&gt;
"...they try to market themselves as more secure than the PC, that you don't have to worry about viruses, &lt;br /&gt;
etc. Anytime there's been a hacking contest, within a few hours someone's found a new Apple vulnerability.&lt;br /&gt;
If they were taking it seriously, they wouldn't claim to be more secure than Microsoft because they are very &lt;br /&gt;
much not. And the Apple community is pretty ignorant to the risks that are out there as it relates to Apple. &lt;br /&gt;
The reason we don't see more attacks out there compared to Microsoft is because their market share isn't &lt;br /&gt;
near what Microsoft's is." &lt;br /&gt;
&lt;br /&gt;
And he leaves no doubt that he believes Microsoft as a company pays more attention to security than does &lt;br /&gt;
Apple, and says the only reason the Mac hasn't been targeted by malware writers is that it doesn't have a &lt;br /&gt;
large enough installed base:&lt;br /&gt;
&lt;br /&gt;
"I think Microsoft does a better job with their code auditing than folks like Apple do. We've only seen a &lt;br /&gt;
scratching of the surface as far as Apple vulnerabilities because nobody cares to find them. There's nothing &lt;br /&gt;
Inherent with Apple themselves and their development. The only reason Apple gets little increase in security &lt;br /&gt;
is because they're running on top of a Unix-based operating system and they can take advantage of some of &lt;br /&gt;
the things that have been done for them."&lt;br /&gt;
&lt;br /&gt;
source&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.pcworld.com/article/194429/apple_fans_are_clueless_about_security_hacker_says.html?tk=nl_dnx_h_crawl" target="_blank"&gt;http://www.pcworld.com/article/19442...nl_dnx_h_crawl&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
PS1:&lt;br /&gt;
We don't understand your enthusiasm about iPad 2!!!!&lt;br /&gt;
PS2: iPhone has great functionalities too, but so all smartphones!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-8249820179564019264?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UdBv1XZfJ97NvecLnf88vv8QQfk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UdBv1XZfJ97NvecLnf88vv8QQfk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UdBv1XZfJ97NvecLnf88vv8QQfk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UdBv1XZfJ97NvecLnf88vv8QQfk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/bxce_81BkgQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/8249820179564019264/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/04/why-you-should-not-buy-iphone.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/8249820179564019264?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/8249820179564019264?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/bxce_81BkgQ/why-you-should-not-buy-iphone.html" title="Why you should not buy an iPhone" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/04/why-you-should-not-buy-iphone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04MR3k7fyp7ImA9WhZSFE8.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-4222929256573313156</id><published>2011-03-29T21:19:00.002+01:00</published><updated>2011-03-29T21:19:46.707+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-29T21:19:46.707+01:00</app:edited><title>New Game for android</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;We are delighted to announce the release of our new product.&lt;br /&gt;
We continue to publish for you free of charge and free of ads programs.&lt;br /&gt;
The new game is called Anagram Game. You can find about it by searching vaslabs on android market or &lt;a href="https://market.android.com/details?id=vaslabs.games.puzzle&amp;amp;feature=search_result"&gt;here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The beauty of this game is that you can choose by changing the anagram level of the word the quantity of swaps the anagram has, so you can figure out the right word.&lt;br /&gt;
We hope you will like it, and have fun.&lt;br /&gt;
Don't forget to report any bugs by email on: vaslabsco@gmail.com&lt;br /&gt;
&lt;br /&gt;
VasLabs press Office&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-4222929256573313156?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yFn-Xd7xmeZRM8YZd6li9apkErE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yFn-Xd7xmeZRM8YZd6li9apkErE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yFn-Xd7xmeZRM8YZd6li9apkErE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yFn-Xd7xmeZRM8YZd6li9apkErE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/0ovIu-7TI14" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/4222929256573313156/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/03/new-game-for-android.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/4222929256573313156?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/4222929256573313156?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/0ovIu-7TI14/new-game-for-android.html" title="New Game for android" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/03/new-game-for-android.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUNRnk-cCp7ImA9Wx9aGUs.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-850444470261948248</id><published>2011-03-12T20:02:00.001Z</published><updated>2011-03-12T20:04:57.758Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-12T20:04:57.758Z</app:edited><title>The Android Market and the Open Software</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;As we all know, android is a completely open operating system. It is also free, so when you by an android phone, you do not pay for the operating system.&lt;br /&gt;
This, of course is fine!&lt;br /&gt;
However, when someone looks for applications in the android market, he hardly finds free and good applications. You are gonna say know, what are you talking about, I have the best applications for free! Ha! You think so.&lt;br /&gt;
The concept of a free aplication, is that you can use it as you want and share it! In additions you do not need to see all those silly ads (which unfortunately we have also in the blogspot, but this is something temporary, and a site is completely different from an app!) which you will never intend to click on them, but sometimes you click one by accident.&lt;br /&gt;
Furthermore, android maybe is an open source OS but it lost that purpose! Take for example any Linux distribution! Have you ever looked for a professional level application and you didn't find it? Not me.&lt;br /&gt;
An operating system is not considered free if basic applications are not free! Why do I have to pay for a good task manager? Even in windows you find a free one! Why do I have to pay for password managers, talking simulators and stuff? Most applications that are not free have a poor level, and they have been programmed by stupid programmers!&lt;br /&gt;
Android has is based on a linux core. In linux I can find a good anti-virus and a firewall for free.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="https://lh4.googleusercontent.com/-MNdV6HtNfKg/TXvRz7XNb9I/AAAAAAAAAD4/YeZWTCvIxCc/s1600/Screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="295" src="https://lh4.googleusercontent.com/-MNdV6HtNfKg/TXvRz7XNb9I/AAAAAAAAAD4/YeZWTCvIxCc/s400/Screenshot.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All developers have the right to sell their work! It's ok with me if the application is indeed a worth one! I would pay for a good game or a really good anti-virus! (I was paying for anti-virus for years)! But searching in the android market I have found only a couple of applications that worth money. &lt;br /&gt;
In conclusion Android Market is now a mess! For example compare Ubuntu software center with android market!&lt;br /&gt;
Where did the linux spirit go? Where did open source power go? Basic applications have to be free! And free means also free of ads!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-850444470261948248?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8mfiVxWCMmdZ6_G5gI9xalzvxLY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8mfiVxWCMmdZ6_G5gI9xalzvxLY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8mfiVxWCMmdZ6_G5gI9xalzvxLY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8mfiVxWCMmdZ6_G5gI9xalzvxLY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/ZpQ6BALj0Mw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/850444470261948248/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/03/android-market-and-open-software.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/850444470261948248?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/850444470261948248?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/ZpQ6BALj0Mw/android-market-and-open-software.html" title="The Android Market and the Open Software" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-MNdV6HtNfKg/TXvRz7XNb9I/AAAAAAAAAD4/YeZWTCvIxCc/s72-c/Screenshot.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/03/android-market-and-open-software.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8AR30-eSp7ImA9Wx9aE0g.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-3358493613679055776</id><published>2011-03-05T19:44:00.009Z</published><updated>2011-03-05T20:27:26.351Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-05T20:27:26.351Z</app:edited><title>ΝΕΟ ΔΙΑΓΩΝΙΣΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Παρατηρώντας τα τελευταία μας downloads είδαμε πως πολλοί ενδιαφέρεστε για το περσινό μας διαγώνισμα στην πληροφορική. Έτσι σας ετοιμάσαμε ένα νέο διαγώνισμα με την ελπίδα να μελετήσετε όσο το δυνατόν περισσότερο και να τα πάτε καλά στις εξετάσεις σας. Το νέο διαγώνισμα είναι κάπως πιο δύσκολο από το προηγούμενο, απαιτεί προγραμματιστική σκέψη, εξυπνάδα και μελέτη :)&lt;br /&gt;
Ελπίζουμε να το βρείτε ενδιαφέρον, και να μας στείλετε τις λύσεις σας για διόρθωση στο email μας: vaslabsco@gmail.com&lt;br /&gt;
Καλές επιτυχίες!!!&lt;br /&gt;
&lt;br /&gt;
Δείτε το από τα google docs &lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0ByLXBwbVmHQTM2M4M2QxY2ItMWM4ZS00NTNkLWIyNGItNzFhMDg0N2RhMjFk&amp;amp;hl=el"&gt;πατώντας εδώ&lt;/a&gt;!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-3358493613679055776?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qHfA5bNcVTZ12yqeQxytkL_wmnk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qHfA5bNcVTZ12yqeQxytkL_wmnk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qHfA5bNcVTZ12yqeQxytkL_wmnk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qHfA5bNcVTZ12yqeQxytkL_wmnk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/uIsve9skeFs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/3358493613679055776/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/03/blog-post.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/3358493613679055776?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/3358493613679055776?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/uIsve9skeFs/blog-post.html" title="ΝΕΟ ΔΙΑΓΩΝΙΣΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/03/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08HQX4zfSp7ImA9Wx9aE04.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-6686344187547701231</id><published>2011-03-05T15:39:00.002Z</published><updated>2011-03-05T15:43:50.085Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-05T15:43:50.085Z</app:edited><title>How to download all haiku source files in 5 minutes</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Many of you emailed us to ask how to download haiku source files, since they are too many to click every one of them. The answer is quite simple though and it also shows the power of the bash again!&lt;br /&gt;
Use the script below&lt;br /&gt;
&lt;br /&gt;
link="http://haiku-files.org/files/releases/r1alpha2/sources/"&lt;br /&gt;
&lt;i&gt;links=`less index.html | grep "href=*" | tr "=;&amp;lt;&amp;gt;" "\n" | tr -d '"' | grep ".xz"`&lt;br /&gt;
for lnk in $links; do&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;wget "$link$lnk"&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;done&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
And wait until all downloads are finished!!!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-6686344187547701231?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QmjQxr7o8bD8htKTjD1VXR_ayQk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QmjQxr7o8bD8htKTjD1VXR_ayQk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QmjQxr7o8bD8htKTjD1VXR_ayQk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QmjQxr7o8bD8htKTjD1VXR_ayQk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/n0-yGvFqLUM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/6686344187547701231/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/03/how-to-download-all-haiku-source-files.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/6686344187547701231?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/6686344187547701231?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/n0-yGvFqLUM/how-to-download-all-haiku-source-files.html" title="How to download all haiku source files in 5 minutes" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/03/how-to-download-all-haiku-source-files.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYCRno-eCp7ImA9Wx9aFEU.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-7425194282922224424</id><published>2011-03-05T14:19:00.001Z</published><updated>2011-03-07T07:16:07.450Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-07T07:16:07.450Z</app:edited><title>Haiku</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Well, we installed haiku on a virtual machine. We have tried it a bit and we present it to you!&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-zBqe8C5a_gY/TXI97yodfmI/AAAAAAAAADQ/iDt8gjTZsCk/s1600/haiku.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="98" src="https://lh3.googleusercontent.com/-zBqe8C5a_gY/TXI97yodfmI/AAAAAAAAADQ/iDt8gjTZsCk/s320/haiku.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;At first we needed a virtual machine. So we installed virtual box and executed it:&lt;br /&gt;
&lt;i&gt;&lt;b&gt;#download virtual box &lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;wget http://download.virtualbox.org/virtualbox/4.0.4/virtualbox-4.0_4.0.4-70112~Ubuntu~maverick_i386.deb&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;#install the package (if your linux distro is not debian this might be slightly different) &lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;sudo dpkg -i virtualbox-4.0_4.0.4-70112~Ubuntu~maverick_i386.deb&lt;/i&gt;&lt;br /&gt;
&lt;b&gt;#now execute it&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;virtualbox&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&lt;/i&gt;In addition the iso image file of haiku is needed.&lt;br /&gt;
&lt;i&gt;#get haiku iso, you can visit http://haiku-os.org/get-haiku to choose a server&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;#the below is the server of the University of Crete&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;wget http://ftp.cc.uoc.gr/mirrors/haiku/releases/r1alpha2/haiku-r1alpha2-iso.zip&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Then using Virtual Box wizard specify the allocated ram and hard disk sizes. Unzip the haiku iso and load it to the virtual machine.&amp;nbsp; &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-iKE8PzXirjw/TXJCU_9oOLI/AAAAAAAAADc/hSvMhg2NfRM/s1600/haiku-virtual-machine.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="297" src="https://lh6.googleusercontent.com/-iKE8PzXirjw/TXJCU_9oOLI/AAAAAAAAADc/hSvMhg2NfRM/s400/haiku-virtual-machine.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
After you load haiku image it loads the OS live CD desktop, so you can try it out. Since it's on a virtual machine now, you can install it without affecting the rest of your system and try it later.&lt;br /&gt;
To install it simply choose install option. Then you should create a "partition" which is virtual, that will be used by the virtual machine to install haiku.&lt;br /&gt;
The installation progress is very easy.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-6dr-JyPR1LQ/TXJDWkBut3I/AAAAAAAAADg/52OPksjtATA/s1600/Haiku-installing-on-vm.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="317" src="https://lh3.googleusercontent.com/-6dr-JyPR1LQ/TXJDWkBut3I/AAAAAAAAADg/52OPksjtATA/s400/Haiku-installing-on-vm.png" width="400" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;After installation you have to restart it(not your pc, haiku that is on virtual machine, remember that &lt;b&gt;you should not close the virtual machine&lt;/b&gt;)&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You can restart it with a terminal command or bu pressing the feather and choosing shutdown-&amp;gt;Restart System &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You can open the terminal with right click-&amp;gt;Add-ons-&amp;gt;Open Terminal&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-V1yjSpY0AwM/TXJE-6gQ4gI/AAAAAAAAADs/9-iUbKCLrBg/s1600/haiku-open-terminal.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="254" src="https://lh6.googleusercontent.com/-V1yjSpY0AwM/TXJE-6gQ4gI/AAAAAAAAADs/9-iUbKCLrBg/s320/haiku-open-terminal.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;And then type the restart command:&lt;br /&gt;
shutdown -r&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Or simply press shutdown:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-WwjnO32UuIU/TXJGPPA0mLI/AAAAAAAAAD0/dEHC59aavdQ/s1600/haiku-shutdown.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="317" src="https://lh3.googleusercontent.com/-WwjnO32UuIU/TXJGPPA0mLI/AAAAAAAAAD0/dEHC59aavdQ/s400/haiku-shutdown.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Here are the rest of the photos after installation:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-ENv3ykCp5bs/TXJDvEBuQ9I/AAAAAAAAADo/D8LcopNEIzg/s1600/haiku-windows.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="317" src="https://lh5.googleusercontent.com/-ENv3ykCp5bs/TXJDvEBuQ9I/AAAAAAAAADo/D8LcopNEIzg/s400/haiku-windows.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-xcJHp49cjj8/TXJDujRUqfI/AAAAAAAAADk/iOGCH9e8pLQ/s1600/haiku-installed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="317" src="https://lh5.googleusercontent.com/-xcJHp49cjj8/TXJDujRUqfI/AAAAAAAAADk/iOGCH9e8pLQ/s400/haiku-installed.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-7425194282922224424?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/s1XfuboPQycXPsmGBRt5e9OnNMg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s1XfuboPQycXPsmGBRt5e9OnNMg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/s1XfuboPQycXPsmGBRt5e9OnNMg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s1XfuboPQycXPsmGBRt5e9OnNMg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/ryWLT7360FQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/7425194282922224424/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/03/haiku.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/7425194282922224424?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/7425194282922224424?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/ryWLT7360FQ/haiku.html" title="Haiku" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-zBqe8C5a_gY/TXI97yodfmI/AAAAAAAAADQ/iDt8gjTZsCk/s72-c/haiku.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/03/haiku.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MHQ30zfip7ImA9Wx9aEkU.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-1951323000704959994</id><published>2011-03-05T00:35:00.001Z</published><updated>2011-03-05T00:37:12.386Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-05T00:37:12.386Z</app:edited><title>Haiku operating system</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Haiku is an open source operating system currently in development that  specifically targets personal computing. Inspired by the Be Operating  System, Haiku aims to become a fast, efficient, simple to use, easy to  learn and yet very powerful system for computer users of all levels.&lt;br /&gt;
&lt;br /&gt;
The key highlights that distinguish Haiku from other operating systems include:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Specific focus on personal computing&lt;/li&gt;
&lt;li&gt;Custom kernel designed for responsiveness&lt;/li&gt;
&lt;li&gt;Fully threaded design for great efficiency with multi-processor/core CPUs&lt;/li&gt;
&lt;li&gt;Rich OO API for faster development&lt;/li&gt;
&lt;li&gt;Database-like file system (OpenBFS) with support for indexed metadata&lt;/li&gt;
&lt;li&gt;Unified, cohesive interface&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;The above information is from the official web-site of haiku!&lt;br /&gt;
Of course it is still in its alpha release but:&lt;br /&gt;
&lt;br /&gt;
The best thing is that is open source of course, so now that haiku is on its birth, it's good for any programmer put his lines on it. There are many things that haiku still doesn't support, like&lt;br /&gt;
wireless WPA. &lt;br /&gt;
You can find its source code on: http://haiku-files.org/files/releases/r1alpha2/sources/&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-1951323000704959994?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CyoXBe1TSBc-i-t470tmN4tLaCY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CyoXBe1TSBc-i-t470tmN4tLaCY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CyoXBe1TSBc-i-t470tmN4tLaCY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CyoXBe1TSBc-i-t470tmN4tLaCY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/_wTP0s9hRbc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/1951323000704959994/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/03/haiku-operating-system.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/1951323000704959994?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/1951323000704959994?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/_wTP0s9hRbc/haiku-operating-system.html" title="Haiku operating system" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/03/haiku-operating-system.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMFRHsyfSp7ImA9Wx9aEkU.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-2994510020968324543</id><published>2011-03-05T00:03:00.000Z</published><updated>2011-03-05T00:03:35.595Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-05T00:03:35.595Z</app:edited><title>Our official/unofficial advertisement</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;We are delighted to announce and publish our official/unofficial advertisment of Vaslabs!&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-80542e4141fd6245" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;
&lt;param name="bgcolor" value="#FFFFFF"&gt;
&lt;param name="allowfullscreen" value="true"&gt;
&lt;param name="flashvars" value="flvurl=http://v22.nonxt2.googlevideo.com/videoplayback?id%3D80542e4141fd6245%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1333100772%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D85B22D676AC6DEEEDE07DC12FE09902E0089C7F3.69B17F50532CFD961D4A29BB0024C60F377DE15A%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D80542e4141fd6245%26offsetms%3D5000%26itag%3Dw160%26sigh%3DYTHOwXfUm0X3SqRf64r8zK8kRb8&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;
&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"
width="320" height="266" bgcolor="#FFFFFF"
flashvars="flvurl=http://v22.nonxt2.googlevideo.com/videoplayback?id%3D80542e4141fd6245%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1333100772%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D85B22D676AC6DEEEDE07DC12FE09902E0089C7F3.69B17F50532CFD961D4A29BB0024C60F377DE15A%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D80542e4141fd6245%26offsetms%3D5000%26itag%3Dw160%26sigh%3DYTHOwXfUm0X3SqRf64r8zK8kRb8&amp;autoplay=0&amp;ps=blogger"
allowFullScreen="true" /&gt;&lt;/object&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-2994510020968324543?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7A5WEgTjcHkN9-nbZs2Elc655y4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7A5WEgTjcHkN9-nbZs2Elc655y4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7A5WEgTjcHkN9-nbZs2Elc655y4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7A5WEgTjcHkN9-nbZs2Elc655y4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/xob4EVO8Nc0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/2994510020968324543/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/03/our-officialunofficial-advertisement.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/2994510020968324543?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/2994510020968324543?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/xob4EVO8Nc0/our-officialunofficial-advertisement.html" title="Our official/unofficial advertisement" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/03/our-officialunofficial-advertisement.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UHQ385eCp7ImA9Wx9aEUU.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-925423342796757571</id><published>2011-03-03T01:09:00.005Z</published><updated>2011-03-03T21:53:52.120Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-03T21:53:52.120Z</app:edited><title>The power of the bash</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I am going to show you a script that was found useful to me for testing a piece of code I wrote for a particular job.&lt;br /&gt;
Actually, that job, takes some data and outputs a single result. It is not necessary for you to know what the program does, because it doesn't affect what I am going to show you.&lt;br /&gt;
In addition this article shows the power of the command 'grep'! You can find about grep by typing 'man grep' on your terminal.&lt;br /&gt;
&lt;br /&gt;
Well, the piece of code I wrote it was nothing new. It actually exists on linux. So to test it I should get some data, give it to the linux program and to my program and compare the results. The data might be numbers, characters or whatever. So I need a program from linux that each time is called it outputs different data. That program is actually a game and is called 'fortune'.&lt;br /&gt;
&lt;br /&gt;
The code I wanted to test was written in java so the bash script I wrote was:&lt;br /&gt;
&lt;br /&gt;
0:&amp;nbsp;&amp;nbsp; #!/bin/bash&lt;br /&gt;
1:&amp;nbsp;&amp;nbsp; for ((i=1;i&amp;lt;=10;i++)); do &lt;br /&gt;
2:&amp;nbsp;&amp;nbsp; data=`fortune`&lt;br /&gt;
3: &amp;nbsp; myprogram=`echo "$data" | java myJavaProgram`&lt;br /&gt;
4:&amp;nbsp;&amp;nbsp; linuxprogram=`echo "$data" | name-of-linux-program`&lt;br /&gt;
5:&amp;nbsp;&amp;nbsp; similarity=`echo "$linuxprogram" | tr [:space:] \n | grep "$myprogram"`&lt;br /&gt;
6:&amp;nbsp;&amp;nbsp; if [ -z "$similarity" ]; then &lt;br /&gt;
7:&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "Program is wrong"&lt;br /&gt;
8:&amp;nbsp;&amp;nbsp; else echo "Program is right"&lt;br /&gt;
9:&amp;nbsp;&amp;nbsp; fi&lt;br /&gt;
10: echo $myprogram&amp;nbsp;&amp;nbsp; $linuxprogram&lt;br /&gt;
11: done&lt;br /&gt;
&lt;br /&gt;
*lines was put for discription only&lt;br /&gt;
&lt;b&gt;Line 0:&lt;/b&gt; defining that the code will be executed with bash&lt;br /&gt;
&lt;b&gt;Line 1:&lt;/b&gt; a for loop which will be executed 10 times because this is the number of times I&lt;br /&gt;
want to test my program.&lt;br /&gt;
&lt;b&gt;Line 2:&lt;/b&gt; the variable 'data' will curry the output of fortune&lt;br /&gt;
&lt;b&gt;Line 3:&lt;/b&gt; the variable 'myprogram' will curry the data of my programs output which will process the data from variable 'data'&lt;br /&gt;
&lt;b&gt;Line 4:&lt;/b&gt; the same with line 3 but this time with the finished linux program&lt;br /&gt;
&lt;b&gt;Line 5:&lt;/b&gt; 'linuxprogram' data is split with tr, and then grep is looking if my program result&amp;nbsp; matches linux program result. Remember, pipe ('|') sends the result of a program to the next as its input.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Line 6-9:&lt;/b&gt; the if that checks if there is a similarity. if -z $similarity is true, it means that the similarity is empty, so my program's output is different than the linux one's&lt;br /&gt;
&lt;b&gt;Line 10:&lt;/b&gt; outputs the result of both programs, just to be sure that the script does the right thing&lt;br /&gt;
&lt;br /&gt;
I could add a couple lines of code and have a summarise of my results: i.e. In the end it would tell me program errors: 3, or no error found.&amp;nbsp; &lt;br /&gt;
That would need a variable initialised to zero, and every time it finds an error it will be increased.&lt;br /&gt;
And the script should be like that:&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
errors=0&lt;br /&gt;
for ((i=1;i&amp;lt;=10;i++)); do &lt;br /&gt;
data=`fortune`&lt;br /&gt;
myprogram=`echo "$data" | java myJavaProgram`&lt;br /&gt;
linuxprogram=`echo "$data" | name-of-linux-program`&lt;br /&gt;
similarity=`echo "$linuxprogram" | tr [:space:] \n | grep "$myprogram"`&lt;br /&gt;
if [ -z "$similarity" ]; then &lt;br /&gt;
&amp;nbsp;echo "Program is wrong"&lt;br /&gt;
&amp;nbsp;let errors+=1&lt;br /&gt;
else echo "Program is right"&lt;br /&gt;
fi&lt;br /&gt;
echo $myprogram&amp;nbsp;&amp;nbsp; $linuxprogram&lt;br /&gt;
done&lt;br /&gt;
if [ $errors -eq 0 ]; then&lt;br /&gt;
&amp;nbsp;echo "No errors found"&lt;br /&gt;
else&lt;br /&gt;
&amp;nbsp;echo "Found $errors errors"&lt;br /&gt;
fi&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-925423342796757571?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Uvxo4WM35DLk48LG0mhHQqhz8_g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Uvxo4WM35DLk48LG0mhHQqhz8_g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Uvxo4WM35DLk48LG0mhHQqhz8_g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Uvxo4WM35DLk48LG0mhHQqhz8_g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/-doORr2xLjk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/925423342796757571/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/03/power-of-bash.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/925423342796757571?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/925423342796757571?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/-doORr2xLjk/power-of-bash.html" title="The power of the bash" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/03/power-of-bash.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIESHo4cCp7ImA9Wx9bGUo.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-3093827656782708739</id><published>2011-03-01T09:12:00.002Z</published><updated>2011-03-01T09:41:49.438Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-01T09:41:49.438Z</app:edited><title>Vaslabs press announcement</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;We have noticed in many android related sites that they have descriptions of our products and a profile description for Vaslabs. We may note that the correct profile of Vaslabs is:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Vaslabs corporation is a mini software business created to offer freeware utilities. Here(in our blogspot) you can view  all our news, release products for Android phones, linux or Windows and information about their updates and bugs.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
In addition some information about our products may be wrong, like the released version. Opap games 1.0 does not exist, the version now available is 2.3&lt;br /&gt;
&lt;i&gt; &lt;/i&gt;&lt;br /&gt;
&lt;b&gt;For official information, help, feedback and whatever you may contact vaslabs&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;u&gt;Vaslabs Press office&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-3093827656782708739?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TnldkcAFD_Rs0BmqH_5wVVmDfjc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TnldkcAFD_Rs0BmqH_5wVVmDfjc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TnldkcAFD_Rs0BmqH_5wVVmDfjc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TnldkcAFD_Rs0BmqH_5wVVmDfjc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/iRzeXI15MqQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/3093827656782708739/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/03/vaslabs-press-announcement.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/3093827656782708739?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/3093827656782708739?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/iRzeXI15MqQ/vaslabs-press-announcement.html" title="Vaslabs press announcement" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/03/vaslabs-press-announcement.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04MRH4zeip7ImA9Wx9bFEw.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-4756428591741831397</id><published>2011-02-22T23:05:00.002Z</published><updated>2011-02-22T23:06:25.082Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-22T23:06:25.082Z</app:edited><title>News for our MD5 cracker</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;We have further improved brute force attack. See for yourself:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hh8f6anDol0/TWRBDKpAqrI/AAAAAAAAADI/cEwWvmoidMs/s1600/p5.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="128" src="http://4.bp.blogspot.com/-hh8f6anDol0/TWRBDKpAqrI/AAAAAAAAADI/cEwWvmoidMs/s400/p5.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-9J8toDaJ0bc/TWRBFg1JTYI/AAAAAAAAADM/bHfcEqp0SUU/s1600/p6.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="67" src="http://3.bp.blogspot.com/-9J8toDaJ0bc/TWRBFg1JTYI/AAAAAAAAADM/bHfcEqp0SUU/s400/p6.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And we keep improving!!!&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-4756428591741831397?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gsImLpT2pmcBodemhOlHg6vISAQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gsImLpT2pmcBodemhOlHg6vISAQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gsImLpT2pmcBodemhOlHg6vISAQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gsImLpT2pmcBodemhOlHg6vISAQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/-dPSAN5K3ww" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/4756428591741831397/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/02/news-for-our-md5-cracher.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/4756428591741831397?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/4756428591741831397?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/-dPSAN5K3ww/news-for-our-md5-cracher.html" title="News for our MD5 cracker" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-hh8f6anDol0/TWRBDKpAqrI/AAAAAAAAADI/cEwWvmoidMs/s72-c/p5.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/02/news-for-our-md5-cracher.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMGSH45eCp7ImA9Wx9bFEw.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-1456253437297187764</id><published>2011-02-22T22:24:00.001Z</published><updated>2011-02-22T22:40:29.020Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-22T22:40:29.020Z</app:edited><title>VasLabs press announcement</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Dear friends of VasLabs,&lt;br /&gt;
We shall thank you all who are using our products. We are also pleased to announce our progress of our most important released products as follows:&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://sourceforge.net/projects/vaslookexe/files/vaslook%201.0.2.1.zip/download"&gt;&lt;b&gt;&lt;u&gt;VasLook&lt;/u&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Vaslook is a product that notifies you when you get an email. We are pleased that has over than 500 downloads, since it's an application only for yahoo emails. We know that this project fall behind, however you should expect some small updates and fixes by the end of March.&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;a href="http://public.bay.livefilestore.com/y1pGI_ELYqGzm6S3sNa-lVb4O3Pl6JKZpyUI3yVIM-I8PA_wjXreQWmGCX6PrrPDdpMr5oY193xWY6TZDYI5t_yYA/File%20Engineer%20v1.0.rar?download&amp;amp;psid=1"&gt;File Engineer&lt;/a&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
This product is in it's final version. It is the upgraded version of an older program called File Editor. The basic function that it does is hiding your files, but you can also use it for fast browsing through your files. It is fully stable and for that reason this project closed, but we still offer support on any problems you may have.&lt;br /&gt;
&lt;br /&gt;
For Android:&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Password Maker(Android Market)&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
We could write whole books about this product. Although it didn't reach in downloads our expectations, it is a high level security solution for both creating AND managing your passwords. Consider how many viruses you have got until now, and how many data got stolen from your drives even if you don't know it. It is not hard for a hacker to decrypt the file that the Password Manager you use saves your passwords. However, with this application, no data will be stolen because there isn't any. The idea of managing your passwords, is that you use the same Master Password each time, then you put the reason you want it, e.g. for www.gmail.com you put gmail, and then the length of the password.&lt;br /&gt;
We also use your phone data to produce unique passwords for each handset.&lt;br /&gt;
Anyway, we expect you to use this product and be safer than ever(that will be useful to us, since less friends will ask us what to do for their hijacked account).&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;OpapGames&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Many people show their love for that application, especially Greeks. It is statistically the most popular application we ever made, having now more than 1500 downloads. You can expect an upgrade soon, that will contain more games collected from european countries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These were the news of VasLabs in the context of our Applications.&lt;br /&gt;
We are creating a video advertisement too, and soon will be available on the blog and on youtube!&lt;br /&gt;
&lt;br /&gt;
Thank You&lt;br /&gt;
The Manager&lt;br /&gt;
Vasilis Nicolaou&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-1456253437297187764?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Lk6svV3xRqy3nNHOEu08PjzvqK0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Lk6svV3xRqy3nNHOEu08PjzvqK0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Lk6svV3xRqy3nNHOEu08PjzvqK0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Lk6svV3xRqy3nNHOEu08PjzvqK0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/gny1nHYjHgs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/1456253437297187764/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/02/vaslabs-press-announcement.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/1456253437297187764?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/1456253437297187764?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/gny1nHYjHgs/vaslabs-press-announcement.html" title="VasLabs press announcement" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/02/vaslabs-press-announcement.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEENR3gyeip7ImA9Wx9bEkw.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-4442680611270126909</id><published>2011-02-20T14:28:00.001Z</published><updated>2011-02-20T14:38:16.692Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-20T14:38:16.692Z</app:edited><title>First succession with brute force attack!!!</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Fcg9e9yOajg/TWEktDVa11I/AAAAAAAAADE/By7_1QkNzhM/s1600/p4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://3.bp.blogspot.com/-Fcg9e9yOajg/TWEktDVa11I/AAAAAAAAADE/By7_1QkNzhM/s400/p4.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-4442680611270126909?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZtBTezTA6MK0U3xvDGZltd8ctYg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZtBTezTA6MK0U3xvDGZltd8ctYg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZtBTezTA6MK0U3xvDGZltd8ctYg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZtBTezTA6MK0U3xvDGZltd8ctYg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/vjH8QQI4W9M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/4442680611270126909/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/02/first-succession-with-brute-force.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/4442680611270126909?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/4442680611270126909?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/vjH8QQI4W9M/first-succession-with-brute-force.html" title="First succession with brute force attack!!!" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-Fcg9e9yOajg/TWEktDVa11I/AAAAAAAAADE/By7_1QkNzhM/s72-c/p4.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/02/first-succession-with-brute-force.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8MQns8eyp7ImA9Wx9bEUs.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-4628895513922277472</id><published>2011-02-20T00:10:00.005Z</published><updated>2011-02-20T00:48:03.573Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-20T00:48:03.573Z</app:edited><title>Our md5 cracker!</title><content type="html">Our md5 cracker is our new tool for recovering md5's. It will be available soon. For now look at that pictures and see its power:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-fSm0sQvq_0E/TWBcYN1xqCI/AAAAAAAAACk/n7Q5krdIuKc/s1600/p1.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 97px;" src="http://4.bp.blogspot.com/-fSm0sQvq_0E/TWBcYN1xqCI/AAAAAAAAACk/n7Q5krdIuKc/s400/p1.png" alt="" id="BLOGGER_PHOTO_ID_5575557909786503202" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-4LuWUM4fEEo/TWBksyvG0LI/AAAAAAAAAC8/kgz2W6bcGl0/s1600/p3.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 90px;" src="http://4.bp.blogspot.com/-4LuWUM4fEEo/TWBksyvG0LI/AAAAAAAAAC8/kgz2W6bcGl0/s400/p3.png" alt="" id="BLOGGER_PHOTO_ID_5575567059381047474" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-em1gyIlZjb4/TWBd8cCT8UI/AAAAAAAAAC0/-YuZpnn4w48/s1600/p3.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 109px;" src="http://3.bp.blogspot.com/-em1gyIlZjb4/TWBd8cCT8UI/AAAAAAAAAC0/-YuZpnn4w48/s400/p3.png" alt="" id="BLOGGER_PHOTO_ID_5575559631584096578" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-o1ER4S92kuI/TWBdERt4HYI/AAAAAAAAACs/dNoPGD3-ZbQ/s1600/p2.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 98px;" src="http://4.bp.blogspot.com/-o1ER4S92kuI/TWBdERt4HYI/AAAAAAAAACs/dNoPGD3-ZbQ/s400/p2.png" alt="" id="BLOGGER_PHOTO_ID_5575558666741357954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-4628895513922277472?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3o3MCTEHIJc7hy2M580W3c87e-M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3o3MCTEHIJc7hy2M580W3c87e-M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3o3MCTEHIJc7hy2M580W3c87e-M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3o3MCTEHIJc7hy2M580W3c87e-M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/Hmc1LLRGtfM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/4628895513922277472/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/02/our-md5-cracker.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/4628895513922277472?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/4628895513922277472?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/Hmc1LLRGtfM/our-md5-cracker.html" title="Our md5 cracker!" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-fSm0sQvq_0E/TWBcYN1xqCI/AAAAAAAAACk/n7Q5krdIuKc/s72-c/p1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/02/our-md5-cracker.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEGR3g7fyp7ImA9Wx9bEEg.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-8803419606125730018</id><published>2011-02-18T18:22:00.007Z</published><updated>2011-02-18T19:33:46.607Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-18T19:33:46.607Z</app:edited><title>Linux Lessons (another lesson) Aliases</title><content type="html">Aliases is a strong utility in linux arsenal, which benefits the using of your linux machine. With aliases you can create simple "key phrases" which execute complicated and/or long commands. You can have a file with your aliases, or just create instant aliases in the terminal with a short life (until you close your terminal).&lt;br /&gt;&lt;br /&gt;Let's see first how to create an instant alias, just for your current terminal session.&lt;br /&gt;All actions were made in Ubuntu with GNOME as the desktop environment.&lt;br /&gt;&lt;br /&gt;Open your terminal:&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="file:///tmp/moz-screenshot-4.png" alt="" /&gt;&lt;img src="file:///tmp/moz-screenshot-5.png" alt="" /&gt;We are going to create an alias for a simple command: the command that change directory to our video files!!!&lt;br /&gt;The path of the videos is:&lt;span style="font-style: italic;"&gt; ~/Videos&lt;/span&gt;&lt;br /&gt;The command to go there is: &lt;span style="font-style: italic;"&gt;cd ~/Videos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We can just create an alias for going to that directory, with giving only the word videos. Like this:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;alias videos="cd ~/Videos"&lt;/span&gt;&lt;br /&gt;and press enter.&lt;br /&gt;Now try it:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;videos&lt;/span&gt;&lt;br /&gt;press enter&lt;br /&gt;&lt;br /&gt;Let's see another command which is longer and we would use it most of the times if it wasn't so big to write. The command that locks your screen which is (in gnome) :&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;gnome-screensaver-command -l&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We've created this alias:&lt;br /&gt;alias lock="gnome-screensaver-command -l"&lt;br /&gt;&lt;br /&gt;Now try &lt;span style="font-style: italic;"&gt;lock.&lt;/span&gt; (After that put your password and return here)&lt;br /&gt;&lt;br /&gt;These are good but they have a disadvantage: They live short. What if you want to use them e.g for ever?&lt;br /&gt;For this purpose you can create a file in your home directory with the appropriate name. The name of that file is found in another file in ~/.bashrc. Remember that you can view the file using less ~/.bashrc. The important part who says the name of the file is at the end of the .bashrc.&lt;br /&gt;Here it is in our case:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-T4D7Re3a7jk/TV6-KCqmAFI/AAAAAAAAACc/xBwWLlyspd8/s1600/p2.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 110px;" src="http://3.bp.blogspot.com/-T4D7Re3a7jk/TV6-KCqmAFI/AAAAAAAAACc/xBwWLlyspd8/s400/p2.png" alt="" id="BLOGGER_PHOTO_ID_5575102468454744146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's name is .bash_aliases.&lt;br /&gt;Let's create that file. type:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;touch .bash_aliases&lt;br /&gt;&lt;/span&gt;Now your file is created but it's empty.&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Let's put the aliases we looked at(for every new line press enter:&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;cat &gt;&gt;~/.bash_aliases&lt;br /&gt;or use&lt;br /&gt;nano &gt;&gt;~/.bash_aliases&lt;br /&gt;(if you&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;alias videos="cd ~/Videos"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;alias lock="gnome-screensaver-command -l"&lt;/span&gt;&lt;br /&gt;^d&lt;br /&gt;(The previous was ctrl+d which means that you won't send any more data)&lt;br /&gt;&lt;br /&gt;Let us now give you some ideas for other aliases:&lt;br /&gt;your favourite&lt;span style="font-style: italic;"&gt; &lt;/span&gt;website&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;alias vaslabs='firefox "http://www.vaslabs.blogspot.com"'&lt;/span&gt;&lt;br /&gt;the shutdown and restart commands:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;alias shutdown="sudo shutdown -P now"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;alias restart="sudo shutdown -r now"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What other aliases can you think of? Send us if you want your aliases on &lt;a href="http://www.blogger.com/vaslabsco@gmail.com"&gt;vaslabsco@gmail.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///tmp/moz-screenshot.png" alt="" /&gt;&lt;img src="file:///tmp/moz-screenshot-1.png" alt="" /&gt;&lt;img src="file:///tmp/moz-screenshot-2.png" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-8803419606125730018?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FWtShIogpNGigm1UzIZgm4_pFpc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FWtShIogpNGigm1UzIZgm4_pFpc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FWtShIogpNGigm1UzIZgm4_pFpc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FWtShIogpNGigm1UzIZgm4_pFpc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/qbLjGFXfCzY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/8803419606125730018/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/02/linux-lessons-another-lesson-aliases.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/8803419606125730018?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/8803419606125730018?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/qbLjGFXfCzY/linux-lessons-another-lesson-aliases.html" title="Linux Lessons (another lesson) Aliases" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-T4D7Re3a7jk/TV6-KCqmAFI/AAAAAAAAACc/xBwWLlyspd8/s72-c/p2.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/02/linux-lessons-another-lesson-aliases.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQBQH8ycCp7ImA9WhZTEkQ.&quot;"><id>tag:blogger.com,1999:blog-4703494640021651432.post-6986454610801477406</id><published>2011-02-15T19:36:00.019Z</published><updated>2011-03-16T15:45:51.198Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-16T15:45:51.198Z</app:edited><title>Triple test for Square!!!</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This is a suggestion from Cleanthis Metaxas who wrote us on his email to check whether Recursive Functions are fast.&lt;br /&gt;
First we thing that they are usually slow, but we will check it for a specific problem: finding the square of an integer number.&lt;br /&gt;
Before that we have to inform you that recursive function is a useful tool in a programmers arsenal, in order to use dynamic programming for solving complicated problems.&lt;br /&gt;
&lt;br /&gt;
We used 3 different pieces of code to find the fastest: Let's analyse them:&lt;br /&gt;
public class StraightTest&lt;br /&gt;
{&lt;br /&gt;
private static int sqr(int n)&lt;br /&gt;
{&lt;br /&gt;
return n*n;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public static void main(String[] args)&lt;br /&gt;
{&lt;br /&gt;
System.out.println(sqr(Integer.parseInt(args[0])));&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
This is a fast way of solving the problem and very very simple.  It get's the number, multiplies it with itself and returns the result&lt;br /&gt;
&lt;br /&gt;
public class ForTest&lt;br /&gt;
{&lt;br /&gt;
private static int sqr(int n)&lt;br /&gt;
{&lt;br /&gt;
int result = 1;&lt;br /&gt;
for (int i = 1; i&amp;lt;=2; i++) result *= n; return result; }  public static void main(String[] args) { System.out.println(sqr(Integer.parseInt(args[0]))); } }  ----------------------------------------------------------- This is a more general way of doing it in the aspect of finding any power of a number. Since we are looking for the square we need to loop only twice.  public class RecursiveTest { private static int sqr(int n) { if (n == 0) return 0; else return sqr(n - 1) + 2*(n-1) + 1; } public static void main(String[] args) { System.out.println(sqr(Integer.parseInt(args[0]))); }  }   And this is the recursive function-&amp;gt; f(0) = 0, f(n+1) = f(n-1) + 2*(n-1) + 1&lt;br /&gt;
So it calls repeatedly itself until the whole result is found.&lt;br /&gt;
Seems slower than the others.&lt;br /&gt;
&lt;br /&gt;
Out experiment will be done using the following numbers for each one:&lt;br /&gt;
0, 5, 100, 1000&lt;br /&gt;
But we see for this problem the disadvantage of that recursive function, as well as the for: they cannot return the square of a negative number. But this is totally fixable by using absolute so we skip that.&lt;br /&gt;
&lt;br /&gt;
Let's observe our tests:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;Input = 0&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;StraightTest:&lt;/span&gt;&lt;br /&gt;
real    0m0.825s&lt;br /&gt;
user    0m0.528s&lt;br /&gt;
sys    0m0.244s&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;ForTest:&lt;/span&gt;&lt;br /&gt;
real    0m0.891s&lt;br /&gt;
user    0m0.564s&lt;br /&gt;
sys    0m0.228s&lt;br /&gt;
--------------------------&lt;br /&gt;
real    0m0.911s&lt;br /&gt;
user    0m0.560s&lt;br /&gt;
sys    0m0.220s&lt;br /&gt;
&lt;br /&gt;
The sys time is that we have to look. Since 0 returns 0 at once, recursive method was the fastest.&lt;br /&gt;
However, somebody would expect for to be slower than just a multiplication. But maybe our results are not so accurate because of the println. Let't remove it and try again:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;StraightTest:&lt;/span&gt;&lt;br /&gt;
real    0m0.774s&lt;br /&gt;
user    0m0.528s&lt;br /&gt;
sys    0m0.212s&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;ForTest:&lt;/span&gt;&lt;br /&gt;
real    0m0.766s&lt;br /&gt;
user    0m0.552s&lt;br /&gt;
sys    0m0.180s&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;RecursiveTest&lt;/span&gt;&lt;br /&gt;
real    0m0.782s&lt;br /&gt;
user    0m0.576s&lt;br /&gt;
sys    0m0.172s&lt;br /&gt;
&lt;br /&gt;
Well, recursive should be faster because it uses the less operations for finding zero. Now let's&lt;br /&gt;
check the other numbers too:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;input = 5&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;StraightTest:&lt;/span&gt;&lt;br /&gt;
real    0m0.776s&lt;br /&gt;
user    0m0.572s&lt;br /&gt;
sys    0m0.168s&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;ForTest:&lt;/span&gt;&lt;br /&gt;
real    0m0.781s&lt;br /&gt;
user    0m0.548s&lt;br /&gt;
sys    0m0.196s&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;RecursiveTest&lt;/span&gt;&lt;br /&gt;
real    0m0.773s&lt;br /&gt;
user    0m0.564s&lt;br /&gt;
sys    0m0.176s&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;Let's use a medium number let's say:&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;input = 100&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;StraightTest:&lt;/span&gt;&lt;br /&gt;
real    0m0.773s&lt;br /&gt;
user    0m0.576s&lt;br /&gt;
sys    0m0.168s&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;ForTest:&lt;/span&gt;&lt;br /&gt;
real    0m0.773s&lt;br /&gt;
user    0m0.540s&lt;br /&gt;
sys    0m0.196s&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;RecursiveTest&lt;/span&gt;&lt;br /&gt;
real    0m0.782s&lt;br /&gt;
user    0m0.540s&lt;br /&gt;
sys    0m0.208s&lt;br /&gt;
&lt;br /&gt;
And use a big number:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;input = 1000&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;StraightTest:&lt;/span&gt;&lt;br /&gt;
real    0m0.780s&lt;br /&gt;
user    0m0.568s&lt;br /&gt;
sys    0m0.176s&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;ForTest:&lt;/span&gt;&lt;br /&gt;
real    0m0.766s&lt;br /&gt;
user    0m0.564s&lt;br /&gt;
sys    0m0.168s&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;RecursiveTest&lt;/span&gt;&lt;br /&gt;
real    0m0.773s&lt;br /&gt;
user    0m0.548s&lt;br /&gt;
sys    0m0.196s&lt;br /&gt;
&lt;br /&gt;
So in general all results are pretty close. We can't be sure what is the fastest from those results:&lt;br /&gt;
All about computers are hypothesis if we do not know exactly how something works.&lt;br /&gt;
Java is a language that has a lot of noise, in the sense that, it interprets its bytecode on its virtual machine. Then garbage collector is also used, we don't know what happens exactly.&lt;br /&gt;
&lt;br /&gt;
In our next experiment we'll use another language, so don't miss our article!&lt;br /&gt;
&lt;br /&gt;
We should thank Cleanthis Metaxas for his idea.&lt;br /&gt;
&lt;br /&gt;
You can also send us your experiments or ideas at: vaslabsco@gmail.com&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4703494640021651432-6986454610801477406?l=vaslabs.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1_4XsO7zdIUF702W8Oayp97h1cQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1_4XsO7zdIUF702W8Oayp97h1cQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1_4XsO7zdIUF702W8Oayp97h1cQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1_4XsO7zdIUF702W8Oayp97h1cQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Vaslabs/~4/WM_MZTUrDZA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://vaslabs.blogspot.com/feeds/6986454610801477406/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://vaslabs.blogspot.com/2011/02/triple-test-for-square.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/6986454610801477406?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4703494640021651432/posts/default/6986454610801477406?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Vaslabs/~3/WM_MZTUrDZA/triple-test-for-square.html" title="Triple test for Square!!!" /><author><name>vaslabs</name><uri>http://www.blogger.com/profile/01259133974023599944</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://vaslabs.blogspot.com/2011/02/triple-test-for-square.html</feedburner:origLink></entry></feed>

