<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kristo Vaher</title>
	<atom:link href="http://waher.net/feed" rel="self" type="application/rss+xml" />
	<link>http://waher.net</link>
	<description>inventas vitam iuvat excoluisse per artes</description>
	<lastBuildDate>Fri, 13 Apr 2012 19:07:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WWW Framework v2.0.7 has been released!</title>
		<link>http://waher.net/archives/1065</link>
		<comments>http://waher.net/archives/1065#comments</comments>
		<pubDate>Mon, 12 Mar 2012 21:04:50 +0000</pubDate>
		<dc:creator>Kristo Vaher</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[www-framework]]></category>

		<guid isPermaLink="false">http://waher.net/?p=1065</guid>
		<description><![CDATA[WWW is a PHP micro-framework that is built loosely on model-view-control architecture and factory method design pattern. It is made for web services, websites and info-systems and is built around a native API architecture, caching and smart resource management. WWW is a compact framework that does not include libraries and bloated features and is developed [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1052" class="wp-caption alignright" style="width: 250px"><a href="http://waher.net/wp-content/uploads/2012/02/wlogo1.jpg"><img class="size-full wp-image-1052" title="WWW Framework" src="http://waher.net/wp-content/uploads/2012/02/wlogo1.jpg" alt="WWW Framework" width="240" height="240" /></a><p class="wp-caption-text">WWW Framework</p></div>
<p>WWW is a PHP micro-framework that is built loosely on model-view-control architecture and factory method design pattern. It is made for web services, websites and info-systems and is built around a native API architecture, caching and smart resource management. WWW is a compact framework that does not include libraries and bloated features and is developed keeping lightweight speed and optimizations in mind.</p>
<p><em><strong>Note that WWW Framework is currently in BETA and it is not recommended for production use yet.</strong></em></p>
<p><strong>Latest version of WWW Framework can be grabbed <a title="WWW Framework" href="https://sourceforge.net/projects/www-php/" target="_blank">here</a>.</strong></p>
<p><span id="more-1065"></span></p>
<p><strong>Feature list of WWW Framework 2.0.7:</strong></p>
<ul>
<li>Modern API-focused framework</li>
<li>Secure API requests with input and token and key-based authentication</li>
<li>Dynamically loaded Hierarchical MVC objects through Factory pattern</li>
<li>API returns XML, CSV, JSON, HTML, native PHP and other data formats</li>
<li>Compressed data output with Deflate and Gzip</li>
<li>Input and output data is fully UTF-8</li>
<li>PDO-specific database controller for general-use database connections</li>
<li>Smart Index gateway that handles all HTTP requests</li>
<li>Full cache control for all types of dynamic and static requests</li>
<li>View and URL controllers that support multiple languages and clean URL&#8217;s</li>
<li>On-demand dynamic image resizer and basic image editor</li>
<li>On-demand resource compressing, unifying and minifying</li>
<li>jQuery JavaScript framework supported</li>
<li>Automatic sitemap.xml and robots.txt generation</li>
<li>Optional 256bit Rijndael CBC data communication encryption</li>
<li>Installation-specific MVC class and resource overrides</li>
<li>API wrapper classes that make server to server API communication easy</li>
<li>Request limiter that can block HTTP requests under various conditions</li>
<li>Request logger that can be used for detailed performance grading of HTTP requests</li>
<li>Backup, update and filesystem maintenance tools</li>
<li>Compatibility script that tests support for server setup</li>
<li>Supports Apache and Nginx servers in Linux and Windows environments</li>
<li>Licensed under GNU Lesser General Public License Version 3</li>
</ul>
<p><strong>Documentation and repositories</strong></p>
<p>Documentation about how to set up a system and use the API, as well as tutorials are available <a href="https://sourceforge.net/p/www-php/wiki/Home/" target="_blank">here</a>. Tutorial about how to build a basic web service is already available and tutorial about how to build a simple website will be released soon.</p>
<p>Mercurial and Git repositories are available for developers who are interested in following the development at <a href="https://sourceforge.net/p/www-php/www-php/" target="_blank">SourceForge</a>, <a href="https://github.com/kristovaher/WWW-Framework" target="_blank">GitHub</a>, <a href="http://code.google.com/p/www-framework/" target="_blank">Google Code</a> and <a href="https://bitbucket.org/kristovaher/www-framework" target="_blank">BitBucket</a>. All repositories are updated as new versions are released. It is also a good idea to follow latest development and news of WWW Framework at <a href="http://plus.google.com/106969835456865671988" target="_blank">Google+</a>, <a href="http://www.facebook.com/WWWFramework" target="_blank">Facebook</a> and <a href="http://www.twitter.com/WWWFramework" target="_blank">Twitter</a>.</p>
<p><strong>Is WWW Framework fast?</strong></p>
<p>Micro-framework has its benefits! The following chart shows the performance of frameworks with and without APC extension supported. Also note that the chart has a no-cache version of WWW framework listed, which basically has WWW Framework running without internal optimizations. It was included to test the difference between WWW Framework&#8217;s internal optimizations.</p>
<div id="attachment_1084" class="wp-caption aligncenter" style="width: 310px"><a href="http://waher.net/wp-content/uploads/2012/03/www-benchmark.jpg"><img class="size-medium wp-image-1084" title="www-benchmark" src="http://waher.net/wp-content/uploads/2012/03/www-benchmark-300x134.jpg" alt="" width="300" height="134" /></a><p class="wp-caption-text">Benchmark chart (click to see full chart)</p></div>
<p>&nbsp;</p>
<ul>
<li>Benchmark was run on a dual-core WAMP setup over the period of two nights</li>
<li>WAMP setup was <a href="http://www.easyphp.org/">EasyPHP 5.3.8.1</a> and <a href="http://uniformserver.com/" target="_blank">The Uniform Server 8.3.1</a></li>
<li><a href="http://pylot.org/" target="_blank">Pylot</a> was used to do the HTTP load benchmarking</li>
<li>Framework setup and installation for known frameworks was provided by <a href="http://code.google.com/p/phpmark/">PHPMark</a></li>
<li>Tested frameworks <a href="https://sourceforge.net/projects/www-php/" target="_blank">WWW Framework 1.9.6</a>, <a href="http://www.yiiframework.com/" target="_blank">Yii Framework 1.1.4</a>, <a href="http://codeigniter.com/" target="_blank">CodeIgniter 1.7.2</a>, <a href="http://kohanaframework.org/" target="_blank">Kohana 3.2.0</a>, <a href="http://cakephp.org/" target="_blank">CakePHP 1.3.4</a> and <a href="http://framework.zend.com/" target="_blank">Zend Framework 1.10.8</a></li>
<li>Every benchmark-run was 20 seconds long, every framework was tested ten times with both APC turned on and off</li>
<li>Apache was reset before each benchmark run and log files were deleted</li>
<li>Sessions and output compression by Apache was not used</li>
<li>The results below show averaged results from EasyPHP and The Uniform Server for non-APC tests and APC tests were only done on The Uniform Server</li>
<li>Benchmark scores varied most when APC was on. Without APC each benchmark run was within 1% of other scores of the same benchmark</li>
<li>While PHPMark includes Symfony 1.4.8, it was unable to be tested due to it crashing the testing environments Apache when run</li>
<li>WWW Framework running without internal cache (&#8216;no cache&#8217; on the chart) means that it does do any internal optimization and was used for testing purposes</li>
</ul>
<div><strong>Latest version of WWW Framework can be grabbed <a title="WWW Framework" href="https://sourceforge.net/projects/www-php/" target="_blank">here</a>.</strong></div>
]]></content:encoded>
			<wfw:commentRss>http://waher.net/archives/1065/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why should you encode images in web applications as base64?</title>
		<link>http://waher.net/archives/1058</link>
		<comments>http://waher.net/archives/1058#comments</comments>
		<pubDate>Fri, 09 Mar 2012 09:58:08 +0000</pubDate>
		<dc:creator>Kristo Vaher</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[essay]]></category>

		<guid isPermaLink="false">http://waher.net/?p=1058</guid>
		<description><![CDATA[A skilled young developer posted this recently on Twitter: Well, yes, base64-encoding and embedding the image into HTML is one way to reduce HTTP requests, but honestly, why would anyone do this? This article will describe briefly how base64 encoding is done and what benefits it might have. By base64 encoding images, he means inserting [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1061" class="wp-caption alignright" style="width: 250px"><a href="http://waher.net/wp-content/uploads/2012/03/useful.jpg"><img class="size-full wp-image-1061" title="Website weight loss?" src="http://waher.net/wp-content/uploads/2012/03/useful.jpg" alt="" width="240" height="121" /></a><p class="wp-caption-text">Website weight loss?</p></div>
<p>A skilled young developer posted <a href="https://twitter.com/#!/AndoRoots/status/177825664060227586" target="_blank">this</a> recently on Twitter:</p>
<p><em><strong>Well, yes, base64-encoding and embedding the image into HTML is one way to reduce HTTP requests, but honestly, why would anyone do this?</strong></em></p>
<p>This article will describe briefly how base64 encoding is done and what benefits it might have.</p>
<p><span id="more-1058"></span>By base64 encoding images, he means inserting HTML images like this:</p>
<blockquote><p>&lt;img src=&#8221;data:image/png;base64,<em>[BASE64]</em>&#8220;/&gt;</p></blockquote>
<p>Where [BASE64]  is a base64 string generated from the file with a tool like <a href="http://www.opinionatedgeek.com/dotnet/tools/base64encode/" target="_blank">this here</a>.</p>
<p>What this effectively does is that it embeds the entire content of the image into the HTML itself. This means that the browser that visits the website has to do one less HTTP request that it would otherwise do to get the file. HTML file itself would be larger as a result since it also includes the image file. The reason why the question is asked though is because if the HTML itself is not cached, then every time user requests the page they have to re-download the entire content, defeating the purpose, since browsers would otherwise cache the image and make subsequent requests on the websites faster if the same image is displayed in HTML again.</p>
<p>So why should you do it?</p>
<p>Reducing the amount of HTTP requests is a seriously important issue. If your website includes a lot of different files (JavaScript, CSS, fonts and images) and has a lot of users (especially new users) at the same time, then your site will slow down very quickly and might even cause problems for the server. To help with this, a lot of frameworks combine CSS and JavaScript files automatically and it is recommended to do this yourself as well even if you don&#8217;t use a framework. But images still make a huge chunk of an average website request, so encoding some images in base64 can give you quite a bit of performance gain should your site become suddenly popular.</p>
<p>But  can I back up my claim?</p>
<p>First of all, it is not recommended to use base64 encoded images in inline HTML, unless browser is able to cache this information in any way. <strong>But there is an alternative: you can embed images and fonts inside CSS file, effectively making your entire web &#8216;design&#8217; into a single CSS file.</strong> It&#8217;s not useful to do this right away and not for all files and debugging will be rather difficult once you do this, but you should do it only once you&#8217;re not &#8216;developing&#8217; the site anymore and don&#8217;t need to change font or graphics files around. Basically when you are ready to deploy your website and go live. It&#8217;s useful for all little parts of your code, like custom bulletins, some repeatable background images and so on.</p>
<p>As a result, single images in HTML (like galleries and other content pictures) will still make their own requests while website design will be stored in a single CSS file.</p>
<p>Anyways, just because I was curious, I made a little test since I was worried about how this might affect the situation when Gzip is used to compress CSS (usually it is not recommended to Gzip image content since they are already compressed). I built two examples on my <a href="https://sourceforge.net/projects/www-php/" target="_blank">WWW framework</a> which automatically Gzips non-image output sent to the browser:</p>
<p>Test A was done with base64 encoding used in images and Test B was done without base64 encoding. HTML of both tests were the same:</p>
<blockquote><p>&lt;div id=&#8221;div1&#8243; style=&#8221;width:240px;height:240px;&#8221;&gt;&lt;/div&gt;<br />
&#8230; and #div2-#div10 just like above &#8230;</p></blockquote>
<p>Test A had a CSS as follows <em>([BASE64] again was the long custom string generated with the tool shown above)</em>:</p>
<blockquote><p>#div1 { background-image:url(&#8220;data:image/png;base64,[BASE64]&#8220;); }<br />
&#8230; and #div2-#div10 just like above &#8230;</p></blockquote>
<p>Test B had CSS like:</p>
<blockquote><p>#div1 { background-image:url(&#8220;image1.jpg&#8221;); }<br />
&#8230; and #div2-#div10 just like above &#8230;</p></blockquote>
<p>Both examples included ten JPEG images of 240&#215;240 pixels in size. This is far more picture content than you&#8217;d expect from an average website design, but works really well as an extreme example for current tests.</p>
<p><strong>Results:</strong></p>
<p>Test A does 8 HTTP requests, including HTML, three CSS files and four JavaScript files. Test B does 18 HTTP requests, including all of what was in Example A, but also 10 JPEG image files. In both cases, JavaScript and CSS and HTML are Gzip encoded. I did 12 tests on both scripts without cache being used. I then removed 2 tests from both sets that were the slowest, since sometimes server lags and would throw off the averages. Tests were done and measured by Google Chrome.</p>
<p>Test B, where base64 encoding was not used to include image files in CSS, had the average time to render the page as <strong>668ms</strong>.</p>
<p>Test A, where images were encoded in base64, had the average time to render the page as <strong>463ms</strong>, almost<strong> 30% faster while also making 10 HTTP requests less</strong> on the web server.</p>
<p>So the benefits are certainly there, but the benefits are there only for cases where content can be cached. As I said above, there&#8217;s no point to base64 images into HTML that is not cached. If HTML is not cached, do not use base64. No point using base64 for embedding galleries and other content pictures. But for website design? Yes. 30% victory in processing time and a lot less HTTP requests after all.</p>
<p>Hopefully this helped a little.</p>
]]></content:encoded>
			<wfw:commentRss>http://waher.net/archives/1058/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WWW Framework released!</title>
		<link>http://waher.net/archives/1050</link>
		<comments>http://waher.net/archives/1050#comments</comments>
		<pubDate>Wed, 08 Feb 2012 21:11:43 +0000</pubDate>
		<dc:creator>Kristo Vaher</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[www-framework]]></category>

		<guid isPermaLink="false">http://waher.net/?p=1050</guid>
		<description><![CDATA[I am proud to present the first complete release of WWW Framework. Goal of the project has been to create an API (Application Programming Interface) focused framework which can be used to build user-interface independent software which can be controlled from any type of interface required (be it a simple website or a mobile app). [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1052" class="wp-caption alignright" style="width: 250px"><a href="http://waher.net/wp-content/uploads/2012/02/wlogo1.jpg"><img class="size-full wp-image-1052" title="WWW Framework" src="http://waher.net/wp-content/uploads/2012/02/wlogo1.jpg" alt="WWW Framework" width="240" height="240" /></a><p class="wp-caption-text">WWW Framework</p></div>
<p>I am proud to present the first complete release of <a href="https://sourceforge.net/projects/www-php/" target="_blank">WWW Framework</a>. Goal of the project has been to create an API (Application Programming Interface) focused framework which can be used to build user-interface independent software which can be controlled from any type of interface required (be it a simple website or a mobile app). The result is this, an API-focused web and infosystems PHP micro-framework.</p>
<p><span id="more-1050"></span></p>
<p>Project has been launched with <a href="https://sourceforge.net/p/www-php/wiki/Home/" target="_blank">full documentation</a> as well as <a href="https://sourceforge.net/p/www-php/wiki/How%20to%20set%20up%20a%20simple%20web%20service%20with%20WWW%20Framework/" target="_blank">first tutorial</a> that explains how to build a simple web service with WWW.</p>
<p>You can follow news related to the project on various social media channels <a href="http://plus.google.com/106969835456865671988" target="_blank">Google+</a>, <a href="http://www.facebook.com/WWWFramework" target="_blank">Facebook</a>, <a href="http://twitter.com/WWWFramework" target="_blank">Twitter</a> and source code is officially published at <a href="https://sourceforge.net/projects/www-php/" target="_blank">SourceForge</a>, <a href="http://code.google.com/p/www-framework/" target="_blank">Google Code</a> as well as <a href="https://bitbucket.org/kristovaher/www-framework" target="_blank">BitBucket</a>. Repository that is used is Mercurial and you can easily subscribe to it or pull the latest version.</p>
<p>Summary description of the project:</p>
<blockquote><p>WWW is a PHP micro-framework that is built loosely on model-view-control architecture and factory method design pattern. It is made for web services, websites and info-systems and is built around a native API architecture, caching and smart resource management. WWW is a compact framework that does not include libraries and bloated features and is developed keeping lightweight speed and optimizations in mind.</p>
<p>The package comes by default with a view controller and a gateway intended for website functionality with clean URLs. Framework also incorporates a front-end JavaScript controller.</p>
<p>Please make sure to read documentation about how to set up a system and use the API. Complete documentation with detailed tutorials are available here at <a href="https://sourceforge.net/p/www-php/wiki/Home/">https://sourceforge.net/p/www-php/wiki/Home/</a></p>
<p>Mercurial repository is available for developers who are interested in following the development.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://waher.net/archives/1050/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Notepad++ theme and style for developers</title>
		<link>http://waher.net/archives/1013</link>
		<comments>http://waher.net/archives/1013#comments</comments>
		<pubDate>Thu, 29 Sep 2011 17:25:13 +0000</pubDate>
		<dc:creator>Kristo Vaher</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://waher.net/?p=1013</guid>
		<description><![CDATA[If you are using Windows and use Notepad++ as one of your main source-code editors and happen to be a web developer then you might just love this.  I originally developed this for personal use for I was unhappy with other themes or found them a little inconsistent across different web development languages. By now [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1014" class="wp-caption alignright" style="width: 250px"><a href="http://www.waher.net/blog/waher-style.jpg"><img class="size-full wp-image-1014" title="Waher-style Theme" src="http://waher.net/wp-content/uploads/2011/09/theme.jpg" alt="Waher-style Theme" width="240" height="200" /></a><p class="wp-caption-text">Waher-style Theme</p></div>
<p>If you are using Windows and use <a href="http://notepad-plus-plus.org/" target="_blank">Notepad++</a> as one of your main source-code editors and happen to be a web developer then you might just love this.  I originally developed this for personal use for I was unhappy with other themes or found them a little inconsistent across different web development languages. By now I have used this theme in Notepad++ for more than a year now.</p>
<p><em>Thanks to this being shared in <a href="http://www.reddit.com/r/programming/comments/kvpld/reddit_encouraged_me_to_release_this/" target="_blank">reddit</a>, <a href="http://twitter.com/#!/search/%22http%3A%2F%2Fwaher.net%2Farchives%2F1013%22" target="_blank">Twitter</a> and Facebook, it has been downloaded more than ten thousand times in one day.</em></p>
<p><span id="more-1013"></span>It is recommended to use this theme with <a href="http://www.microsoft.com/download/en/details.aspx?id=17879" target="_blank">Consolas</a> font.</p>
<p>You can download the theme archive <a href="http://www.waher.net/blog/waher-style.rar" target="_blank">HERE</a> <em>(*.rar archive)</em> or the theme XML directly <a href="http://waher.net/blog/Waher-style.xml">HERE</a> <em>(right click and save-as)</em>. Preview is available <a href="http://www.waher.net/blog/waher-style.jpg" target="_blank">here</a>.</p>
<p><strong>Features:</strong></p>
<ul>
<li>Comfortable color scheme with a dark background and eye-friendly colors for working long hours</li>
<li>The styles used are intended for a web developer and cover most common files associated with web development</li>
<li>Supports Notepad++ styles for following languages and files: <strong>CSS</strong>, <strong>HTML</strong>, <strong>*.ini</strong> files, <strong>JavaScript</strong>, <strong>PHP</strong>, <strong>SQL</strong> and <strong>XML</strong>.</li>
<li>Covered by <a href="http://www.gnu.org/licenses/fdl.html" target="_blank">GNU Free License</a>, you can modify and redistribute it in however way you like.</li>
<li>Some support for Java and Python files <em>(recently added, might require some testing)</em></li>
</ul>
<p><strong>Install:</strong></p>
<ol>
<li>Unpack the *.rar archive into your <strong>Notepad++</strong> installation directory under subfolder <em>/themes/</em></li>
<li>Open <strong>Notepad++</strong></li>
<li>Go to <em>Settings -&gt; Style Configurator</em></li>
<li>Select <strong>Waher-style</strong> from <em>Select Theme</em> dropdown</li>
<li>Click <em>Save &amp; Close</em></li>
</ol>
<p>I hope this theme will serve you as well as it has served me!</p>
]]></content:encoded>
			<wfw:commentRss>http://waher.net/archives/1013/feed</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Open source &#8216;WebViewApp v1.12&#8242; for Android released!</title>
		<link>http://waher.net/archives/989</link>
		<comments>http://waher.net/archives/989#comments</comments>
		<pubDate>Sun, 28 Aug 2011 11:48:17 +0000</pubDate>
		<dc:creator>Kristo Vaher</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://waher.net/?p=989</guid>
		<description><![CDATA[I have only recently become curious about developing for Android phones. As a web developer the most important thing for me was to provide a way to bridge the gap between web applications and native applications. Free and open source WebViewApp application is a simple base setup for developing Android applications that communicate with web [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_990" class="wp-caption alignright" style="width: 250px"><a href="http://waher.net/wp-content/uploads/2011/08/primitive.jpg"><img class="size-full wp-image-990" title="WebViewApp" src="http://waher.net/wp-content/uploads/2011/08/primitive.jpg" alt="" width="240" height="241" /></a><p class="wp-caption-text">WebViewApp</p></div>
<p>I have only recently become curious about developing for Android phones. As a web developer the most important thing for me was to provide a way to bridge the gap between web applications and native applications.</p>
<p>Free and open source WebViewApp application is a simple base setup for developing Android applications that communicate with web services. WebViewApp is released as open source and developers can use this base application to build their own fully functional web applications in Android.</p>
<p><span id="more-989"></span>This application is as bare bones as possible and includes commented code and some examples.</p>
<p>Following features are included:</p>
<ul>
<li>Cookie management (application stores cookies)</li>
<li>Cache management (application stores cache based on web service cache lifetime and maintains it when user is not using the app)</li>
<li>Javascript interface (Web service can execute commands in Java and vice versa, such as for scripting hardware keys or executing alerts from web service, displayed in Android.)</li>
<li>Contained URL&#8217;s (Web service only opens its own URL&#8217;s in app, every other URL is launched in browser.)</li>
<li>Online Checks (App checks if user is online, if not then shows an offline page with an option to continue and reload where user left off once internet is back)</li>
<li>Sending custom user agent string to web service for testing if web service is used through Android app. Also includes a (possibly) unique device ID and application version for update checks.</li>
<li>Can load local HTML pages that uses local resources</li>
<li>Can be installed on SD card.</li>
<li>Can save settings and preferences</li>
<li>Can set background services and timed services</li>
<li>Can start a service at boot time</li>
<li>Can make HTTP connections to online API&#8217;s</li>
<li>Can use private and public file system, read and write files</li>
<li>Can use SQLite database</li>
</ul>
<p>This application shows that it is possible to create very extensive Android applications while relying mostly on HTML and JavaScript user interface, which makes it much easier to port to other systems or create a counterpart to browser version of a website.</p>
<p>Please note that there is no ‘guide’ on how to change the base application into your own new application, but source package does include a short overview of all the necessary modifications. Basic knowledge of Android and web development is recommended.</p>
<p>The bare-bones application can be downloaded from Android Market with its name &#8216;WebViewApp&#8217; or from <a href="https://market.android.com/details?id=com.webviewapp.app" target="_blank">Android Market</a>.</p>
<p>Source code can be downloaded from <a href="http://webviewapp.waher.net/webviewapp-source.rar" target="_blank">here</a>. This includes source code for both the Android app as well as the web service.</p>
<p>VERSION HISTORY:</p>
<blockquote><p>v1.12 Database and file system examples, HTTP request examples<br />
v1.11 Starting service at boot time<br />
v1.10 Background services and timed services<br />
v1.09 Notifications, settings and preferences<br />
v1.08 Local image test for local HTML<br />
v1.07 Activity checks and local file support<br />
v1.06 Better examples and descriptions<br />
v1.05 Possibility to keep previous scroll position<br />
v1.04 Back button now works with POST variables<br />
v1.03 Fix for back button in certain conditions<br />
v1.02 Reload page now uses Javascript interface<br />
v1.01 Fix for no-internet reload page<br />
v1.00 Release</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://waher.net/archives/989/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This is why Google+ matters, or &#8216;Hi there, Google+&#8217;</title>
		<link>http://waher.net/archives/975</link>
		<comments>http://waher.net/archives/975#comments</comments>
		<pubDate>Mon, 11 Jul 2011 16:57:16 +0000</pubDate>
		<dc:creator>Kristo Vaher</dc:creator>
				<category><![CDATA[Web Business]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[web publishing]]></category>

		<guid isPermaLink="false">http://waher.net/?p=975</guid>
		<description><![CDATA[&#160; Google+ is a social networking service by Google that has been in development for a few years and was launched about a week ago. While still in invite-only testing phase, the interest in joining the site has been massive and the service quickly gathered over a million users. Feedback from early adopters has been [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<div id="attachment_979" class="wp-caption alignright" style="width: 252px"><a href="http://waher.net/wp-content/uploads/2011/07/googleplus.jpg"><img class="size-full wp-image-979" title="Google+" src="http://waher.net/wp-content/uploads/2011/07/googleplus.jpg" alt="Google+" width="242" height="240" /></a><p class="wp-caption-text">Google+</p></div>
<p><a title="Google+" href="http://plus.google.com" target="_blank">Google+</a> is a social networking service by Google that has been in development for a few years and was launched about a week ago. While still in invite-only testing phase, the interest in joining the site has been massive and the service quickly gathered over a million users. Feedback from early adopters has been very positive, despite Google+ not really inventing a wheel here. Best achievement of Google+ is that it takes what is already there and improves on it while also closing one of the most relevant gaps between the four more notable social networking services of the last five years: Facebook, Twitter, Foursquare and LinkedIn. This post will point out the features that are relevant to Google+.</p>
<p><span id="more-975"></span><strong>More personal Twitter</strong></p>
<p>While the entire internet buzzed about Google+ taking on Facebook&#8217;s huge 750+ million userbase, reality is that the main feature of Google+ is really challenging Twitter, while dressed in Facebook-like user interface. Twitter is mainly used as releasing public information about your daily activities in a micro-blogging form while allowing for discussions on various relevant matters and allowing anyone follow whatever you post in public. And personally I have always been bothered by both the limited &#8216;text-message&#8217; length notices and very awkward public commenting on those posts.</p>
<p>Google+ takes the similar concept of anyone being allowed to follow anyone else without requiring confirmation of friends. As such, if the person you follow does not add you to their circles in return, they will not see your posts in their stream while you will see their public posts. This is very similar to how Twitter works.</p>
<p>At the same time Google+ remedies one of the biggest flaws of Twitter, which is public discussion that can be followed in Twitter through &#8216;hash tags&#8217; and retweets and so on. It is very awkward (and has been, in my opinion, ever since it was released). Google+ simply applies public commenting to public feed posts, so celebrities, companies, brands and whatnot can have all their discussion happen right under their own public posts. Already many little-known people use this for great effect, such as Apple-fanboy <a href="https://plus.google.com/107753428759636856492/posts" target="_blank">MG Siegler of Techcrunch</a> and <a href="https://plus.google.com/110286587261352351537/posts" target="_blank">Felicia Day</a>, the lovely actress of <a href="http://www.imdb.com/title/tt1227926/" target="_blank">Dr. Horrible</a> fame. This opens up such public discussions with a more personal touch than would ever be possible with Twitter.</p>
<p>And Google+ allows sharing information with only specific people (listed as Limited in feeds) in your specific circles, which is more similar to how Facebook works. This ability to balance information read and shared is what makes Google+ ultimately a better Twitter killer than it is Facebook killer, especially once mobile integration on Google+ becomes as common as it is on Twitter. As a sidenote, Google&#8217;s +1 buttons (which are essentially Facebook &#8216;Like&#8217; buttons, but across all Google services, including search) are already <a href="http://blogs.forbes.com/mashable/2011/07/08/googles-1-button-already-more-widespread-than-twitters-tweet-button-stats/" target="_blank">more common</a> than Twitter share buttons.</p>
<p>Google+ also implements a location-specific sharing for photos as well as posts. Location specific data has become important on social landscape ever since Foursquare capitalized on it. This is especially handy when using a mobile phone and checking out updates from near where you are. This is similar to Twitter&#8217;s location specific tweets, however I personally prefer Google+ implementation of this, which can easily be set per photo and post, instead of an account wide setting it is in Twitter.</p>
<p><strong>More public Facebook</strong></p>
<p>Everybody was talking about Google&#8217;s &#8216;social layer&#8217; attempting to challenge Facebook. And the first impression people got was that Google+ was indeed very similar to Facebook, but it is not &#8211; at least in the shape and form it is right now &#8211; a network where your parents might end up joining, just like they are unlikely to join Twitter. While Google+ includes all the usual features of a social network, from profiles to networking to photo sharing and discussions, it is not as personal as Facebook. While it includes relationship statuses, they are not linked to specific other user. It also has no families, no anniversaries and events (the latter two would likely be implemented through Google Calendar instead). Google+ is a network that suits better for professional networking, than personal networking, without neglecting the latter completely. And in a way, it does it better than LinkedIn which has always felt like a niche networking tool I rarely found any actual use for, despite being a user for more than three years.</p>
<p>The concept of circles is similar to Facebook friends lists, which majority of Facebook users do not use. Difference is that Google+ allows you to also filter out information based on this circle, not just share to specific circle, which makes this type of information networking more intuitive to me as a user. At work I am not much interested in what most friends post and share, but I would be interested in what people of my industry share and Google+ allows me to do it much better than both Facebook and Twitter.</p>
<p>One of the features Google+ could benefit from is the Groups aspect, where those shared circles can be created. It is possible with Google+, but would require everyone to create a same circle and follow everyone in that circle, which is a hassle. For social collaboration it would be better if such groups could be created, since I personally use them in Facebook rather frequently.</p>
<p>Google+ also intends to add business pages and apps into its midst in the future, challenging Facebook in those aspects as well, but as of right now it is only guesswork what might happen and thus I shall leave it at that for now.</p>
<p><strong>Google+ is everywhere</strong></p>
<p>Something that Facebook has tried for years has already been succeeded at by Google from day one. By having already millions of users of various Google services, from Google search to Gmail and Docs features, Google+ is integrated across all of those services seamlessly through the top black Google bar that includes links to all Google services as well as Google+ notifications. Seeing notifications pop up through various Google services will instantly make using Google+ more streamlined and natural since you do not need to visit Google+ main website to be notified of various activities.</p>
<p>Google also launched the service near-perfectly by making sure that it contained everything that people would expect such a service to have. This includes mobile interface &#8211; both web based and mobile applications &#8211; as well as introducing new design across these services prior to launch. This made for a very notable launch that felt less like an arrival of a new product and more like a corporate wide move by Google to take its services to next generation, double-dipped in social media.</p>
<p><strong>Google finally decided to hire designers</strong></p>
<p>While a minor point in comparison to previous three, Google decided to redesign all of it&#8217;s main services both on desktop<strong></strong> and mobile while developing Google+ and launching them just prior to Google+. While Google has experimented with minimalistic designs for years, it is only now that the new interface seems to have hit the right mark. New design is very sleek and minimalistic, with desaturated colors of red, black and gray being dominant, accompanied by blue and with minimalistic use of gradient transitions. Google+, as well as <a href="http://thenextweb.com/google/2011/07/01/gmails-got-a-brand-new-look-and-you-can-try-it-now/" target="_blank">new design of Gmail</a>, balances white space better than previous Google designs have ever done. All in all, this makes Google+ and their applications pretty to use, which is important, since how things look is <em>so very important</em> to shallow users that we are.</p>
<p><strong>Chinks in the armor</strong></p>
<p>Not all has been great, of course. Google did not anticipate Google+ to become as great a success from day one and the mass interest in the service caused problems even in its invite-only model of growing userbase. Patience is not something that is to be expected from people who live in this fast-paced industry and everybody wanted to be early adopters mainly due to this great word of mouth that Google+ has received. What happened was that very soon there were more people wanting an invite to Google+ than there were people who actually knew what Google+ is about and had read through Google&#8217;s <a href="http://googleblog.blogspot.com/2011/06/introducing-google-project-real-life.html" target="_blank">blog post</a> and watched the <a href="http://www.google.com/intl/en/+/demo/" target="_blank">demonstration</a>.</p>
<p>Google+ has also been underwhelming for early adopters due to once arriving there, not many people you know had joined yet, so once you managed to get in, the place looked sleek, but empty. Even if that was to be expected of a new service that demands large amount of users, it felt disappointing. Some of Google+ features have also been a little broken since launch, but that too is to be expected from this public invite-only testing phase that Google+ is going through (despite there not being a Beta sign anywhere to be seen). Google+ also needs to work on how public commenting can be read, since comments cannot be collapsed again once opened and it can be a problem with hundreds of comments on public threads, but that will surely be remedied soon.</p>
<p>Google+ also has similar issues related to account authenticity that Twitter and Facebook has faced. For example there are six different Mark Zuckerberg Google accounts. At least it is confirmed that one of them is <a href="http://techcrunch.com/2011/07/03/zuckerberg-surprised-that-people-are-surprised-hes-on-google/" target="_blank">authentic</a>. At the time being however, Google+ has no methods for verifying if the account belongs to the right person or not.</p>
<p>Google+ feature &#8216;Sparks&#8217;, which is a list of interests of sorts, also remains a bit strange to me and I have not been able to find a usable purpose for its existence, but since it is still in testing phase, I am sure it will expand and become more useful in time.</p>
<p><strong>Conclusions</strong></p>
<p>In this article I have mostly focused on the sharing and circle aspects of Google+. I did not touch chat and video calling functions since I have not tried them often enough.</p>
<p>Taking all of this into account it is perhaps surprising to realize that Google+ is perhaps the very best way Google could have entered the social networking arena. By combining the best of features of Facebook and Twitter and implementing a very clean layer of location based information sharing, Google+ is a serious entry on social market that will definitely make an impact in scale that cannot be predicted today. While it does not challenge Facebook as much as it challenges Twitter, all signs point that it is here to stay without having to battle over social market share the way people were expecting.</p>
]]></content:encoded>
			<wfw:commentRss>http://waher.net/archives/975/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Summary of selected chapters &#8211; About Face 3</title>
		<link>http://waher.net/archives/963</link>
		<comments>http://waher.net/archives/963#comments</comments>
		<pubDate>Sun, 05 Jun 2011 20:57:43 +0000</pubDate>
		<dc:creator>Kristo Vaher</dc:creator>
				<category><![CDATA[Master's Studies]]></category>
		<category><![CDATA[IFI7103]]></category>

		<guid isPermaLink="false">http://waher.net/?p=963</guid>
		<description><![CDATA[Alan Cooper&#8217;s, Robert Reimann&#8217;s and David Cronin&#8217;s third edition of About Face, book about the essentials of interaction design, was released in 2007 (first edition was released in 1995) and is considered one of the must-read books for UI/UX designers. Alan Cooper spearheaded the books and is known for pioneering the use of personas as [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_966" class="wp-caption alignright" style="width: 193px"><a href="http://waher.net/wp-content/uploads/2011/06/about.jpg"><img class="size-full wp-image-966" title="About Face 3" src="http://waher.net/wp-content/uploads/2011/06/about.jpg" alt="About Face 3" width="183" height="240" /></a><p class="wp-caption-text">About Face 3</p></div>
<p>Alan Cooper&#8217;s, Robert Reimann&#8217;s and David Cronin&#8217;s third edition of About Face, book about the essentials of interaction design, was released in 2007 (first edition was released in 1995) and is considered one of the must-read books for UI/UX designers. Alan Cooper spearheaded the books and is known for pioneering the use of personas as practical interaction design.</p>
<p>This summary of selected chapters applies to the third edition of the book and may not apply to earlier editions. Summary is written for the course Interface and Interaction Design, taken in Tallinn University as part of masters studies.</p>
<p><span id="more-963"></span>The summary covers the third part of the book, about designing interaction details, as the attended course generally already covered the first two parts of the book. The third part (pages 321-564) focus mainly on in-depth use-cases of aforementioned techniques and how these principles apply to common problems.</p>
<p>The book opens with chapter about searching through data and finding what the user (hopefully) was looking for. Both categorizing and indexing get a lot of attention and authors mention that while modern storage system are a very good solution, it is the retrieval that is mostly the problem. Authors go over positional retrieval (where), identity retrieval (what) and associative retrieval (related to). Chapter ends with a concept of natural language retrieval that is tied to attribute based retrieval, but is accessed through &#8216;language&#8217;, dynamic sentences and queries which the software solves before returning data to the user.</p>
<p>Second chapter (Chapter 16 in the book) mostly covers the much-beloved command known as &#8216;Undo&#8217; and how it should be applied in modern software. While serving a specific need of correcting mistakes, it also enables exploration for the user in software, as users can learn features of software without fear of making a mistake they cannot revert. Sibling of the Undo command, Redo, is also mentioned as a reverse Undo. The chapter ends with sections about versioning and revision, two widely not used features of software that serve a purpose in specific instances.</p>
<p>Another chapter covers commands related to changing files (copies, renames, moving, reverting). One of the first unexpected issues covered is the idea that &#8216;Do you want to save?&#8217; dialog box should be eliminated from software, due to being one that majority of the time is used for saving. Authors propose better alternatives to this as well as File menu in general by changing the core mindset behind that dialog box and menu.</p>
<p>There is also a brief chapter on improving data entry, about data integrity especially. This chapter is surprisingly short, however the aspects here are mostly covered by other books more focused on software development, than interaction design.</p>
<p>Largest chapter in the third part is about using &#8216;pointing devices&#8217; for interaction and what has to be kept in mind when designing for. This chapter was missing an important note about touchpads and the aspects that features such as &#8216;mouse hover&#8217; may not necessarily exist on touch based interfaces (and today they definitely don&#8217;t).</p>
<p>Interesting section about the chapter discussed scrollbars and offers new alternatives to how scrollbars should be designed. While definitely an improvement, I personally believe that newer Linux style scrollbars (such as in Ubuntu 11 in Unity user interface) are a larger step forward.</p>
<p>Another chapter is about window behaviors and window based user interfaces. Of the chapters covered in the book, this might be the quickest one to become outdated with windows-based user interfaces slowly becoming outdated. There is also a chapter about controls, which includes usability of form fields, as well as links and buttons.</p>
<p>Most interesting chapter for me, as a developer, was about menu trees and usability in software and the concept of &#8216;Pedagogic Vector&#8217;. Authors mention that a good software design from interactivity standpoint should be friendly to all levels of users. Menus can be a way of simple and easy to follow introduction to aspects that the users will learn and start to use later on (such as shortcuts). Ignoring one or the other can cause usability problems not for a single user, but the perspective of users.</p>
<p>Another chapter covers issues related to toolbars, which it contrasts against menu&#8217;s and mentions them being speedy versions of a menu, a very relevant topic today with the dominance of context-sensitive toolbars on touch enabled devices, which will also influence desktop development. Authors mention that finding the balance between icons and text on toolbars is a difficult challenge and this is very relevant today, as my personal experience with software development includes examples where icons on toolbars are developed with little attention put on their context (the &#8216;just something that visualizes the command&#8217; approach, which is rarely even usability-tested). Chapter also covers one of the new redesigns of the classic toolbar from Microsoft Office suite (2007+). Authors disagree with how innovative Microsoft claims the toolbar to be.</p>
<p>There is also a chapter on dialogs (modal windows, commonly known as both pop ups and &#8216;lightbox&#8217; windows). This chapter goes hand in hand with chapter 25, about errors, alerts and confirmation boxes. Authors disagree with the classic use of &#8216;system modal&#8217; dialogs that halt the system, which is a well-known method of developing all modal windows in modern software development due to not requiring additional work by the developer team. Authors also go over process dialogs (dialogs launched by the application itself) that inform the user about what the software is doing (like being busy). Authors also mention the use (or abuse) or bulleting dialog boxes that only require the user to clikc &#8216;ok&#8217; to close it and can also be a system modal dialog that halts softwares other processes.</p>
<p>The third part ends with a more philosophical aspect of interaction design, about developing for different needs, how to educate users and deal with localization issues and relevant details such as help.</p>
<p>Reading these chapters as both a software designer and developer, it was interesting to see the authors keep the developer in mind, despite half the time using &#8216;developer mindset&#8217; as a negative example for software development (such as with the case of wizards, a well-known approach from 1990&#8242;s Microsoft operating systems and installers).</p>
<p>It is also important to note that the book itself is well designed from readability standpoint. Various &#8216;Design principles&#8217; throughout the book are useful notes worth remembering for both designers and developers alike. In time where digital materials and computer screens drive content delivery, well organized books (especially large handbooks and reference materials) are a welcome reminder that printed format still has its benefits.</p>
]]></content:encoded>
			<wfw:commentRss>http://waher.net/archives/963/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review of &#8216;Stephen Hawking and Leonard Mlodinow &#8211; The Grand Design&#8217;</title>
		<link>http://waher.net/archives/960</link>
		<comments>http://waher.net/archives/960#comments</comments>
		<pubDate>Thu, 02 Jun 2011 13:10:08 +0000</pubDate>
		<dc:creator>Kristo Vaher</dc:creator>
				<category><![CDATA[Master's Studies]]></category>
		<category><![CDATA[IFI7038]]></category>

		<guid isPermaLink="false">http://waher.net/?p=960</guid>
		<description><![CDATA[Introduction The somewhat controversial book by world-renowned physicist Stephen Hawking and Leonard Mlodinow was published in September 2010 and is the latest popular-science book spearheaded by Hawking. Having read his previous works, I took the opportunity to read and review this latest book as part of the Tallinn University course &#8217;21st Century concepts in information [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p>The somewhat controversial book by world-renowned physicist Stephen Hawking and Leonard Mlodinow was published in September 2010 and is the latest popular-science book spearheaded by Hawking. Having read his previous works, I took the opportunity to read and review this latest book as part of the Tallinn University course &#8217;21st Century concepts in information and meaning&#8217; by Jaan Teng.<br />
<span id="more-960"></span>Stephen Hawking gained much attention in 1988 when his book, A Brief History of Time, was released and became one of the few bestsellers of its kind. A Brief History of Time, which I personally read for the first time three years ago, encapsulates many aspects of science written in form that a non-scientist is able to grasp the concepts. However, despite authors attempt, the book was still difficult to grasp for the mainstream reader and Hawking, in humour, often refers to his first popular-science book as the most sold book that no one has read. To make the book more reader friendly, an updated and illustrated version of the book was released in 1996.</p>
<p>In 2001, Stephen Hawking released a more reader-friendly book, The Universe in a Nutshell, which quickly became another popular-science bestseller. Dabbling in similar concepts as his first book and full of illustrations from cover to cover, this book is the one Hawkins is most known for by general audience.</p>
<p>After 2001, Hawkins and Mlodinow released a friendlier version of A Brief History of Time, called A Briefer History of Time, in 2005.</p>
<p>Throughout those books, Hawking has remained undecided on the matter of God and creator of the universe. He mentions in A Brief History of Time that he cannot disprove the existence of God, nor can he prove it. This has kept Stephen Hawking a fairly friendly-towards-religion scientist in his profession as opposed to another world-renowned popular-science authors, Richard Dawkins, whose work is often overshadowed by his media-titled status as a &#8216;worlds most famous atheist&#8217;.</p>
<p>The Grand Design, when released, became the first book which received strong critical reaction from some parts of media, as well as church in general. While Stephen Hawking does not make it a goal to disprove the existence of God (far from the way Dawkins did in his &#8216;A Good Delusion&#8217;), he aims to show that Universe &#8211; for what we know of it &#8211; can exist without the need of the universal creator, or God.</p>
<p><strong>The Grand Design</strong></p>
<p>Stephen Hawking has always loved &#8211; both in his books as well as his television series and presentations &#8211; the big questions of life. Where did universe begin and why are we here, what is reality and why is existence &#8211; like that of ourselves &#8211; possible. In a Brief History of Time he mentioned that we are who we are and we exist the way we do &#8216;because&#8217; we are able to ask these questions. If we were not here, we would not be asking.</p>
<p>Despite claiming very early on in the book that philosophy is dead, Hawking is often very philosophical, a quiet reminder that philosophy used to be &#8211; in ancient Egypt especially, before science became a field of it&#8217;s own – a study of being and study of universe more than collection of quotes by thinkers and oft-pretentious grandiose quest for the meaning of life. This makes Hawking a dreamer, as much as a scientist and perhaps a more valid philosopher than philosophers themselves.</p>
<p>The Grand Design is a book that, from the very beginning, approaches the subject with broad strokes. New answers to the ultimate questions of life is promised on the cover of the book and the first chapters are more philosophical and about the progress of science until modern times, to quickly get the user up to speed with the topics discussed.</p>
<p>I found it fascinating how Hawking was able to describe concepts of quantum mechanics in a non-technical way using simplistic, everyday terms, making it an easy read from a popular science standpoint.</p>
<p>After covering the basics and perhaps hoping that readers are up to speed, Hawking and Mlodinow take a decided turn towards the &#8216;grand design&#8217; of the book, how what we know today and observe today can be interpreted through science and applied to &#8211; often as theories &#8211; how universe began and why we are here.</p>
<p>Authors believe that such a multiverse is not just possible, but more logical than the single universe concept. By using string theory, where our four-dimensional (time and three phsyical dimensions) world consists of seven more curled up dimensions, each of them leading up to different laws of physics and through development of universes, to different universes. The idea that since particles have no specific position and exist in multple possible positions is extrapolated here. So if this is true with particles, it must be true with the universe. This is called particle superposition, a quantum mechanical property of solutions to the Schrödinger equation.</p>
<p>It is not a new theory, but it has not been covered often by renowned physicists in popular fiction and Hawking&#8217;s name closely applied to it now has gotten a lot of attention.</p>
<p>Main focus of the book is about Hawking bringing attention to this same, both critiqued and appreciated, belief that there is no single version of reality and that the concept of multiverse is where we exist. The thought of every reality being possible is frustratingly difficult for us to imagine, we already have trouble imagining how vast the universe itself is with its billions of stars and galaxies. Every sentence being written by me can be slightly different in each of those universes and in some of those I would not be writing this review to begin with. In most of these multiverse realities not I, nor anyone else I know, would even exist. In very many, life as we know it, would not exist either.</p>
<p>This theory becomes a large part of the books focus and is called an &#8216;M-theory&#8217; (Not multiverse-theory as expected, the M stands for master, miracle or mystery). Rooted strongly in string theory, it describes the universe existing of 11 spacetime dimensions. Hawking believes, or hopes, that this is what Einstein was looking for his entire life. It is not a new concept, but more of a new way looking at already existing concepts and theories in a way that would make sense for what we can observe in the world today.</p>
<p>The M-theory is largely about there existing infinite number of &#8216;versions&#8217; of the universe which lead to just as infinite number of different results. From the perspective of science fiction this would be a fascinating idea, but for fact and observation based science, it is a controversial idea not just for people who believe in God, but science in general.</p>
<p>While a fantastic read, this often feels like a hand-forced concept and this makes me, as an avid reader of popular fiction, look for potential irony here. Many often forget that Einstein came up with similarly &#8216;escapist&#8217; themed theories, like the idea of the universal constant which, when applied, makes the physics and math all fall properly in place. But that such a constant is required to make that science click, itself having no basis in science for existing (similarly to God that is supposed to exist, but cannot be proven), requires blind faith.</p>
<p>While Hawking discusses the M-theory and multiverse concepts in general, I found myself wondering if this is a similar grasp by a renowned physicist at a theory that makes all the physics fall in place, yet cannot really be proven other than by observation. But observation of a result, not a process, might mask the actual truth. And it might be affected by Hawking&#8217;s quest to find the theory of everything (or the Big TOE as he refers to it and is discussed in more detail in fifth chapter).</p>
<p>That aside, Hawking&#8217;s and Mlodinow&#8217;s descriptions of M-theory are compelling, albeit against my personal beliefs (or, in fact, hopes). However, as an open-minded reader, I found topics discussed fascinating.</p>
<p><strong>Conclusions</strong></p>
<p>It is somewhat discouraging that such a well written book has gotten more attention from media due to its controversial topics. Hawking himself has been asked more about the book being a statement against God, than the topics and theories discussed within the book, like M-theory or views against Einsteins unified field theory.</p>
<p>Hawkings himself has responded to wide criticism of the book by saying that one cannot prove that God doesn&#8217;t exist, but that science makes God unnecessary.</p>
<p>The Grand Design is one of the more important popular science books to be released in recent years, together with Richard Dawkins 2009 book &#8216;The Greatest Show on Earth&#8217; which proves evolution much the same way as Hawkins attempts to prove scientific concepts. Both books are similar, proving a world around us being possible to function without the need of a creator.</p>
<p>For one reason or another, I can recommend this book to any open minded reader interested in science and theories and concepts about the universe. The book is well written and reader-friendly and Hawking&#8217;s ability to coat even the more difficult concepts with subtle humour is welcome.</p>
<p>One can only wonder what a great lecturer he might have become hadn&#8217;t a paralyzing disease, amyotrophic lateral sclerosis, made it impossible. But Hawking proves that mind can, indeed, cross the boundries of our physical bodies and limits of our small blue world we call Earth and explore beyond, to the stars.</p>
]]></content:encoded>
			<wfw:commentRss>http://waher.net/archives/960/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross-Referenced Review and Discussion on Ubiquitous Computing</title>
		<link>http://waher.net/archives/949</link>
		<comments>http://waher.net/archives/949#comments</comments>
		<pubDate>Sun, 29 May 2011 21:51:35 +0000</pubDate>
		<dc:creator>Kristo Vaher</dc:creator>
				<category><![CDATA[Master's Studies]]></category>
		<category><![CDATA[IFI7114]]></category>

		<guid isPermaLink="false">http://waher.net/?p=949</guid>
		<description><![CDATA[Following is a cross-referenced review and discussion on Ubiquitous Computing (edited by Eduard Babkin) chapter #11 Case Study: The Condition of Ubiquitous Computing Application in Indonesia. It is written for Tallinn University course Experimental Input and Output. Abstract Ubiquitous Computing, or ‘ubicomp’ is a term coined by Mark Weiser in 1988 during his tenure as [...]]]></description>
			<content:encoded><![CDATA[<p><em>Following is a cross-referenced review and discussion on <strong>Ubiquitous Computing</strong> (edited by Eduard Babkin) chapter #11 <strong>Case Study: The Condition of Ubiquitous Computing Application in Indonesia</strong>. It is written for Tallinn University course Experimental Input and Output.</em></p>
<p><em><span id="more-949"></span></em><strong>Abstract</strong></p>
<p>Ubiquitous Computing, or ‘ubicomp’ is a term coined by Mark Weiser in 1988 during his tenure as Chief Technologist of the Xerox Palo Alto Research Center. As one of the dream concepts of computer science, Ubiquitous Computing has largely remained a concept without being realized twenty years later. Articles by Weiser, Genevieve Bell and Paul Dourish (Yesterday’s tomorrows: notes on ubiquitous computing’s dominant vision, 2006) take a different approach to describing the concept, but largely due to the articles written almost twenty years apart. Main subject of cross-review, an article, belongs to a collection of articles &#8216;Ubiquitous Computing&#8217; that is edited by Eduard Babkin, about practical applications in Indonesia. I shall view how it relates to the visions of Weiser, Bell and Dourish twenty years before and five years before that specific case study.</p>
<p>Case Study about Indonesia, written and researched by Dewi Agushinta R., Tb. Maulana Kusuma, Bismar Junatas and Deni Trihasta looks at Indonesia as a developing country in the era of ubiquitous computing. Case study is divided into three parts: mobile application, web application and payment system application, all considered ubiquitous by the authors. They further divide the article into parts describing what ubiquitous computing is, science and development behind it, application of ubiquitous computing and various issues related to it. Case study is written with a goal to bring more attention to ubiquitous computing solutions in Indonesia and perhaps assist in the future development of ubicomp applications.</p>
<p><strong>Weisers vision projected to case study</strong></p>
<p>According to Weiser, ubiquitous computing is the method of enhancing computer use by making many computers available throughout the physical environment, but making them &#8216;effective invisible&#8217; to the user (Weiser, 1993). This description is used as the basis by the authors of the Indonesia case study as well.</p>
<p>In an article, published in Scientific American in 1991 and titled ‘The Computer for the 21st Century’, Mark Weiser describes the principles of ubiqutous computing in a world that includes 50 million computers that ‘nonetheless remain largely in a world of their own’. Twenty years later, mobile phones &#8211; that are small computer devices &#8211; in the world have a total count more than half of the worlds global population (according to statistics by Informa in 2007), reach more than 3.3 billion.</p>
<p>These mobile phones are an advanced version of what Weiser described as ‘tabs’ in his article, small handheld sized ubiquitous computers. Another ubiquitous device described by Weiser, ‘pads’, have become prominent in recent years in the form of tablet computers. Weisers other descriptions about the futuristic room, populated by these tabs, pads and board sized devices (which can be equalled to both modern digital boards or modern television screens with networking access) are surprisingly close to modern world.</p>
<p>While Weiser described futuristic ubiquitous computing world populated by dozens of such devices in any given environment and most of these devices working in the background, serving their own purpose, the view is not quite what we are seeing today, but could be considered relatively close to where we are headed.</p>
<p>Many of Weiser’s ideas about the future are often restricted by the understanding of technology’s potential in 1991. The concept of globally networked devices with immediate access from opposite sides of the world was unknown back then, thus the devices described by Weiser are often very local in functionality. He does however point out that the need for artificial intelligence, as it was understood in 1991, is much lesser than expected. Users would still be in control of the technology and artificial intelligence &#8211; much like ubiquitous computing in general &#8211; works seamlessly in the background.</p>
<p>Weiser also described pads &#8211; equivalents of modern computer tablets &#8211; as functionally different from tabs &#8211; his equivalents of smartphones. Keeping these two computer systems apart was another narrow vision from twenty years ago, as modern technology developments have shown that all computer systems can work using the same functions and fundamentals and should a smaller system without hardware capabilities to do a certain task, it can utilize another system, seamlessly in a network, to do the task for itself &#8211; such as using a printer to print out documents through a laptop or smartphone.</p>
<p>It was only recently when Google announced that they plan to expand the  Android operating system platform for all devices in household, from  printers to refrigerators (Google I/O, 2011) and a unified operating  system is definitely a step closer to more unified ubiquitous computing. This need for standardization of technologies is necessary for true ubiquitous computing in a level that at least demands context sensitive and adaptable software. This becomes apparent in the case study as well as in the article by Bell and Dourish who believe that the messy state of ubicomp is not a failed example of our ubiquitous computing development, but reality of ubiquitous computing the only way it can be.</p>
<p><strong>Ubicomp in case study</strong></p>
<p>As a more modern perspective, Bell and Dourish mention in their article that Ubiquitous Computing has remained a relatively unusual field in Computer Science, different from most concepts since it deals with the vision of the future, without entirely being science fiction. Authors mention that Ubiquitous Computing as a concept has been strongly influenced by Weisers previous work that in itself focuses on futuristic aspects of ubicomp.</p>
<p>Bell and Dourish focus strongly on the proximate future of Ubiquitous Computing, which is relevant to chapters on the book, covering things just around the corner. For an article written five years ago, such a time should be right now. This is similar to Weiser &#8211; who technically was also describing of the proximate future of modern ubiquitous computing. These both articles create an interesting contrast as a background of Indonesia case study, in which it becomes apparent that either Bell and Dourish were correct in their assessment, or what we have cannot truly be considered ubicomp in the first place.</p>
<p>In the article of Indonesia Case study, the authors mention that in recent years, ubiquitous computing has been considered an &#8216;off the desktop&#8217; type of computing and computer science, tightly coupled with principles of networking and web communication as well as mobility. Authors mention that as an applied technology or as a branch of computer science, ubiquitous computing can not be separated from other computer science aspects. By those aspects they mostly mean natural interfaces, context aware computing and micro-nano technology.</p>
<p>Natural interfaces of ubiquitous computing is a concept of making an interface that is used to interact with a computer device, effectively invisible to its users and intuitive to use. Authors state that the word &#8216;natural&#8217; is used, since most computer interfaces use artificial control devices whose operation has to be learned. A natural interface would give the user the feeling that they are instantly and continuously successful. Authors however make it clear that main difficulty in natural interface development is that they are prone to errors, due to having wider area of form. This means that movements or voice could be interpreted differently without proper context.</p>
<p>Context aware computing is a branch of computer science who views a computing process by not focusing its attention on one object, but also all the surrounding aspects, putting an object of interest in &#8216;context&#8217;. Authors descibe this as an ubiquiotous computing that does not take just into account &#8216;who&#8217;, but also &#8216;when, what, where and why&#8217; and makes significant contribution to ubiquitous computing.</p>
<p>Micro-nano technology is an application of small size microchips becoming a major driving factor for development of ubicomp devices. The smaller the device is, the less user focuses on it and the more mobile and invisible it becomes. Case study mentiones specific RFID and T-Engine devices applied in everyday life in the form of smart cards or tags, which can be used as ubiquitous computing bus tickets and in some developed countries, such as Japan, this technology has been applied to everyday life through variety of sensors, with data processing tools remaining invisible to the general public.</p>
<p><strong>Ubiquitous computing in a developing country</strong></p>
<p>First aspect of the case study observes the use of mobile phones in Indonesia. Apparently 40 million people use mobile phones, according to authors and the trend is continuing to improve, since technology becomes cheaper and is not considered a luxury requirement, but mandatory one.</p>
<p>Second aspect of the case study observes an ubiquitous web application. Authors define an ubiquitous web application as an application that &#8216;suffers&#8217; from anytime/anywhere/any-media syndrome. In other words, an application that might be run on different platforms and accessed through different channels. Such an application must take into account different capabilities of devices and must be, in a way, context-aware depending on the environment it is running on. Authors also claimed that such an application must support personalization, though they did not make it clear if this personalization should be automated or not. According to their study they claim that Indonasia has implemented ubiquitous web application, however they do not go into specifics other than show an increasing trend of internet users in Indonesia.</p>
<p>As the third aspect, the authors studied about the application of ubiquitous computing in Indonesia for a payment system, which authors call &#8216;M-payment&#8217;. They make it clear that customers want both convenience and trustworthyness and for that purpose, the solution should be based on standardized architecture. Just like with ubiquitous web application, the customer should be able to choose his preferred device, be it phone or desktop computer. In Indonesia the technology system used for payment system is RFID technology and barcode technology based. Authors were unable to go into the specifics of origins of barcode system in Indonesia, but did give a brief overview of what it entails.</p>
<p>The need for RFID application was established by the need to enhance tracking and create new means of gathering and tracking information. Since then, RFID has become an established part of business processes in variety of markets in Indonesia with different technologies used and is utilized in supermarket, bus stations, gas stations and offices. It is very widely used in Indonesia and is planned to replace barcode based solutions entirely.</p>
<p>Problematic issues brought out by the authors of the case study is that ubiquitous computing has increased risks to security and wireless communication is less secure in comparison to wired networking. Authors do not go further in detail about security issues in Indonesia, but do mention that security is, in general, one of the main focuses of modern research of ubiquitous computing.</p>
<p>Regarding privacy the authors mention that the use of such devices has narrowed space on privacy. With more ubiquitous computing, individuals can be tracked more and risk both privacy and rights of a single individual due to being able to be monitored at all times. As with security, authors do not go in detail about privacy issues other than bringing a few examples.</p>
<p>Authors conclude that challenges to improve the use of ubiquitous computing in Indonesia is to provide infrastructure and environment of ubicomp so that the development of this technology would spread further. Authors end on a note of optimism, hoping that ubicomp is improved in Indonesia further, perhaps with the help of articles such as this, which discuss the topic.</p>
<p>Authors also mention wireless speed being a problem for ubiquitous solutions which can, depending on how good the connection is, cause slowdown or problems with various ubicomp devices. No examples are provided in the case of Indonesia.</p>
<p>In contrast, authors of Yesterday’s Tomorrow describe their own case study of Singapore (that has a close geographical proximity to Indonesia), which by 2006 was one of the most ‘wireless’ countries in the world. Singapore is a country that developed infrastructure for information from early 1990’s. As a small location, this is an ideal development ground for ubiquitous computing technologies. And by 2004, more than 90% of households own a cellphone and more than 70% own a desktop or laptop computer, with more than 60% being connected to the Internet. Singapore includes multiple Ubiquitous Computing technologies, such as electronic road payment system and a computer driven mass-transit system. Authors consider Singapore as a kind-of modern Ubiquitous Computing environment.</p>
<p>The other comparative case study by Bell and Dourish is that of Korea, another most connected country in the world, with 77% of Korea&#8217;s 16.9 million households having computers in them and average user using the computer 15 hours per week, majority of that online. 96% of Koreans aged 6-20 report using the internet regularly and 83% of Koreans have their own e-mail address, including 67% of those aged 60 years or older. Korea is also one of the leading countries in the world when it comes to popularity and activity of online gaming.</p>
<p>Bell and Dourish point out that case studies in western world are less common when it comes to ubiquitous computing research. They believe this to be the result of ubiquitous computing, as a futuristic concept, being too fictional to begin with and reality is that ubiquitous computing will develop based on needs &#8211; solving everyday mess. Because infrastructure is messy to begin with and hopes for unified Ubiquitous Computing may simply be out of reach because of this &#8211; or a version it may already be here, masked by the the messy state of infrastructure. Bell and Dourish believe that a seamless infrastructure that would be ideal for futuristic visions of ubiquitous computing are simply not possible and never will be. This is also very apparent in the Indonesia case study.</p>
<p><strong>Conclusions</strong></p>
<p>Observing ubiquitous computing through developing &#8211; rather than developed &#8211; countries points out various problems that could not have been predicted by Mark Weiser in the early 1990s. This idealistic view of ubiquitous computing has not realized itself and development has been obstructed by multiple factors, from non-standardized platforms to infrastructure problems due to slow development, especially in larger countries. Thus the concept of futuristic ubiquitous computing is irrelevant, despite how accurate Weiser was in his article.</p>
<p>Bell and Dourish recommend the concept for the &#8216;present&#8217; and not the future and that from this angle, Weisers vision has already established itself. They agree, much like I do, that Weisers concept of ubiquitous computing is strikingly accurately realized if one does not put literal meaning behind his futuristic vision. Bigger difference in Weisers vision is related to the field that is dominated by this &#8216;modern ubiquitous computing, mainly social and cultural aspects of it, which are front and center in modern world and drive technology today more than corporate needs. I had the same conclusion when I originally researched into matters of ubiquitous computing, ending up with a conclusion that social cohesiveness plays a large role when it comes to wide adoption of ubiquitous computing.</p>
<p>This is also apparent in the case study of Indonesia and in a way also the contrasting case studies in Korea and Singapore, where features of uniquitous computing are developing faster in areas that serve individual &#8211; albeit basic &#8211; everyday needs of the user.</p>
<p>However, taking everything into account, I would personally side with Mark Weiser and claim that what we have today is not necessarily the ubiquitous computing that our children will live in fifty years time. While standardization and infrastructure related problems will remain prominent, as is apparent in modern case studies, I consider it merely a stepping stone. Internet has already shown that cloud environments and API-enhanced web applications are adopted more widely than those more closed and with the first signs of Google&#8217;s Android with an intent to become a more standardized operating system for devices all around, this will enhance it further.</p>
<p>While I don&#8217;t believe either of the views &#8211; be it Weisers idealized future or Bell and Dourish idea that ubicomp is already here &#8211; being correct, I believe that the actual answer lies in the middle ground. As long as ubiquitous computing development attempts to follow Weisers idealistic view, the infrastructure and modern problems described by Bell and Dourish as well as apparent in case studies, will slowly adapt with a wave-like pattern. As a result, ubiquitous computing will never be the same all around for all users.</p>
<p>As an added note, an interesting point raised by Weiser was that the raise of ubiquitous computing might lead to a decrease of computer addicts. But looking around, it just may be that the opposite is true and as we look at the world around, driven by computer devices, we nod in approval, for we are just fine with it, addicts that we are.</p>
<p><strong>References</strong></p>
<p>Weiser, M. (1991). The Computer for the 21st Century. Scientific American.</p>
<p>Bell, G., Dourish, P. (2006). Yesterday&#8217;s Tomorrows: Notes on Ubiquitous Computing&#8217;s Dominant Vision.</p>
<p>Virki, T. (2007). Global cellphone penetration reaches 50 pct. Reuters.<br />
Retrieved on May 26, 2011 from http://www.reuters.com/article/2007/11/29/cellphones-world-idINL2917209520071129</p>
<p>Francese, R., Passero, I., Tortora, G. (2006) Current Challenges for Mobile Location-Based Pervasive Content Sharing Applications. Ubiquitous Computing.</p>
<p>Agushinta R. D., Maulana Kusuma. Tb., Junatas, B., Trihasta, D. (2006) Case Study: The Condition of Ubiquitous Computing Application in Indonesia. Ubiquitous Computing.</p>
<p>yourmobilesite.net (2011) Android to Communicate with Other Appliances Through Android@Home<br />
Retrieved on May 26, 2011 from http://yourmobilesite.net/android-to-communicate-with-other-appliances-through-android-home/</p>
<p>Vaher, K. (2010) Importance of social cohesiveness in reaching Ubiquitous Computing<br />
Retrieved on May 25, 2011 from http://waher.net/archives/517</p>
]]></content:encoded>
			<wfw:commentRss>http://waher.net/archives/949/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ontology as a Road to Better Relational Database Design</title>
		<link>http://waher.net/archives/932</link>
		<comments>http://waher.net/archives/932#comments</comments>
		<pubDate>Tue, 24 May 2011 16:49:15 +0000</pubDate>
		<dc:creator>Kristo Vaher</dc:creator>
				<category><![CDATA[Master's Studies]]></category>
		<category><![CDATA[IFI7121]]></category>

		<guid isPermaLink="false">http://waher.net/?p=932</guid>
		<description><![CDATA[This essay is written as part of International Media and Knowledge Environments studies for the course Knowledge Representation and Reasoning. Essay looks at various methods how ontologies can improve typical database structures and why, taking into account both basic websites and complicated infosystem solutions. Introduction Philosophically, ontology, in its very basic form, is the study [...]]]></description>
			<content:encoded><![CDATA[<p><em>This essay is written as part of International Media and Knowledge Environments studies for the course Knowledge Representation and Reasoning. Essay looks at various methods how ontologies can improve typical database structures and why, taking into account both basic websites and complicated infosystem solutions.</em></p>
<p><em><span id="more-932"></span></em><strong>Introduction</strong></p>
<p>Philosophically, ontology, in its very basic form, is the study of the nature of being, existence or reality as such, as well as the basic categories of being and their relations. As such, it is also in the core of information science, representing knowledge as a set of concepts and describing relationships between those concepts.</p>
<p>From software development standpoint, ontology can be used to enhance both information storage, management and retrieval both within information systems internally as well as through methods of communication between different systems.</p>
<p>Contrasting what is common in modern software development and how ontology could improve, even in small ways, sofware development, patterns and database design is the main focus of this essay. Essay will also cover additional things to keep in mind when applying various theories into practice.</p>
<p>Essay also covers the practical aspect of the course Knowledge Representation and Reasoning and how the methods covered in this essay are being applied to an actual information system IMKEmonster (imkemonster.com)</p>
<p><strong>Brief overview of ontology</strong></p>
<p>In information science, ontology became more relevant since the mid-1970&#8242;s where researches recognized that capturing knowledge is a key component when it comes to building intelligent systems, even artificial intelligence. While storing information in database or even in a students notebook is as simple as it sounds, in order to make information meaningful to systems that do not know or have time to study the framework, certain logic has to be applied to information and how it is stored.</p>
<p>Another philosophical view, computational theory of mind, believes that it is possible for computers to act like a brain and process information like a brain does. And the way our brains store information is through links and connections that can be processed very quickly and efficiently. While ontology is not related to the way brains store information and link memories directly, the idea that an intelligent information system should be able to access information through streamlined set of methods is in the core of ontology.</p>
<p>In the early 1990s the term &#8216;ontology&#8217; became a technical term in computer science and was described as a &#8216;description of the concepts and relationships that can formally exist for an agent or community of agents&#8217;.</p>
<p>Ontologies share many common qualities with another computer science methodology, called object oriented programming. Object oriented programming, or OOP for short, defines &#8216;classes&#8217;, which are mini-frameworks to define an objects behavior. This is done through a class having defined properties, which are slots for information storage for variables, as well as methods, which are functions that the class can do with its variables to produce new information or complete a specific task. Classes can be extended and there can also be child classes that share qualities (like methods or properties) of their parent classes. An instance of a class is called an object, once defined an object has their own variables and function cycle until they have served their purpose.</p>
<p>Ontologies are very similar to that concept, but only from the angle of knowledge mapping and logical storage. A class, in ontology sense, means sets or collections of knowledge concepts. Such a class has attributes (similar to property slots in object oriented programming) as well as relations (such as parent classes, called superclasses) and various rules how information can be stored in those classes.</p>
<p>As such, ontologies play a large part in the concept of &#8216;semantic web&#8217;, which is a web of data that enables machines to understand the semantics and meaning of the information on the Internet. One of the more basic things added through the concept of semantic web is adding machine-readable metadata about pages and how they are related to one another, enabling automated agents, such as search engines, access information more intelligently and perform tasks more efficiently on behalf of users.</p>
<p>Similarly to problems of ontologies in software architecture and database design, it has also proven less effective in semantic web and has not revolutionalized the way information is accessed on the internet as much as was hoped ten years ago. As market and advertising have become so prominant in the internet and visibility in search engines has become one of major keys to success, various web semantics methods have been abused and metadata about pages simply stored incorrectly. This has resulted in large search engines, such as Google, to ignore most metadata information entirely and generate its own metadata from the websites. By today, no major search engine relies on semantic web metadata stored on websites.</p>
<p>This has left ontology, as a critical component of information science, on unreliable ground when it comes to modern information systems. But at the same time, it has become prominent in software architecture and database design, where the ontologies cannot be taken advantage of the way it has affected the semantic web.</p>
<p><strong>Common modern infosystem designs</strong></p>
<p>Majority of modern web is not designed by people experienced in information science, which means that both websites and even open source frameworks and systems for websites, such as WordPress, do not rely on ontology as basics for database design. These systems are designed based on needs of the software and not on the needs of information.</p>
<p>Majority of information systems and websites that have appeared since late 1990&#8242;s in the internet have been self-contained solutions that rarely shared information with outside sources. Company websites were closed, accessible through navigation on website or through an automated crawlers (much like those of search engines). While the logic of a website was similar, consisting of different URL&#8217;s, information storage within software that the website was built on, needed no attention.</p>
<p>With the advancements in internet and internet becoming the main source of information in modern world, the idea that different systems should share information has become very important. Many social networks, including Facebook, allow information to be fetched from its databases by other infosystems without having to rely on crawlers. This is done through API&#8217;s, or Application Programming Interfaces. An API with only information access and no actual &#8216;application programming&#8217; involved, is used these days by Facebook, Twitter and other major web networks to share information and make these platforms more useful for other systems in the internet.</p>
<p>One of the main problems of such API&#8217;s is that they are often built as layers and often have to convert information that software has access too into a usually non-standardized format for the API to present, if information is requested. Ontology and web semantics have not revolutionalized such information access today, which means that any information system that accesses Facebook or Twitter needs to have their own profiles or set of rules in order to understand the information provided.</p>
<p>It has not helped that one of the more known methods of storing information in modern information systems, in language called Extensible Markup Language or XML, has been largely shunned by API&#8217;s due to it&#8217;s heavy footprint. From semantic web standpoint, the best part of XML has been the introduction of semantically more correct HTML, called XHTML.</p>
<p>This means that today, most information systems store and share information in machine readable form, however in a way that requires hands-on development in majority of cases that are beyond simpler snippets of information, such as RSS feeds (that are a standardized format of XML to share news, called Really Simple Syndication).</p>
<p>While classes of ontologies and that of object oriented programming have many logical similiarities, the actual use of such concepts for information storage and database design is not common in most modern websites or information systems due to it being less time consuming and more productive from softwares standpoint to store information in the ways it needs to access it, without taking into account other systems. Should a need arise for other systems to access the information, a layer is built (usually together with the aforementioned API) that shares information in a certain way.<br />
<strong>Improving database design with ontology</strong></p>
<p>The first thing that software would benefit from, is to store information in multiple tables, even more so than it already does. Storing things like categories or, for example, dog breeds, in the same database table as the dogs themselves is inefficient from information management standpoint. Let&#8217;s take a look at this example of a database table, which can be looked at as a primitive ontology class:</p>
<p><em><strong>PETS</strong></em></p>
<ul>
<li>id (7 etc.)</li>
<li>name (Barky, Lassie etc.)</li>
<li>age (3 months, etc.)</li>
<li>breed (collie, golden retriever, siamese, etc)</li>
<li>category (dog, cat)</li>
</ul>
<p>From a software standpoint, this table is very easy to maintain as all the information is stored within the single table. Should breeds be required, a simple database query could fetch all the unique breed values in the table and display them to the user.</p>
<p>However, from an information system standpoint, this table is flawed. It is not possible to get the list of all breeds that can exist in the information system, but do not have instances in the database table, which means that these breeds have to be stored within software logic and not within database. Same applies to categories.</p>
<p>This table is also not easily extendable, what if more information needs to be displayed for dogs with specific breed? This too would, in that case, be stored within software logic and not within database. This leads very quickly to unmaintainable information system.</p>
<p>Relying on basic ontology, very simple methods could enhance this simple database design by separating breeds and categories, like this:</p>
<p><em><strong>PETS</strong></em></p>
<ul>
<li>id (7 etc.)</li>
<li>name (Barky, Lassie etc.)</li>
<li>age (3 months, etc.)</li>
<li>breed (BREEDS #id)</li>
<li>category (CATEGORIES #id)</li>
</ul>
<p><em><strong>CATEGORIES</strong></em></p>
<ul>
<li>id (3 etc.)</li>
<li>name (dog, cat, etc)</li>
</ul>
<p><em><strong>BREEDS</strong></em></p>
<ul>
<li>id (2 etc.)</li>
<li>name (collie, golden retriever, siamese, etc)</li>
</ul>
<p>This means that the various classes (pets, categories, breeds) can always be extended within their own domain and without affecting other aspects of the database design.</p>
<p>Another key reason why modern database design tends to ignore ontologies is that some of the software logic is stored within the database as well. This includes various data properties that otherwise serve no purpose outside the database. This is called database design pollution and is a known problem especially during database migration from one system to the other.</p>
<p>Relying on another software development pattern, known as MVC, or Model View Controller, information management, both storage and retrieval, would benefit from being managed through a separate part of software that maintains database integrity and separates database pollution from affecting information stored.</p>
<p>A separate software class should be developed for that specific use. If a new person is added to the system, then all the data of this person is handled by this class and stored in specific database table. Should this information affect other aspects of database logic, this class should also make sure that these settings are changed without affecting information directly.</p>
<p><strong>Pros and cons of ontology enhanced databases</strong></p>
<p>There are many things to keep in mind when it comes to making sure your software is a better information system through applying ontology logic to it.</p>
<p>Biggest benefit is a database that not only is easier to handle should information be migrated from one system to the other, but also the API layer can be more streamlined. Ontology-focused infosystems, especially systems that rely on information tagging, are becoming more common these days and API&#8217;s that provide specific information (such as the way Facebook Graph API does) about specific &#8216;class&#8217;, make the system better and more usable as an information source.</p>
<p>Well built information system should allow the user to, for example, get a list of all pet categories, then query the database for all the pets that belong to a certain category and then find a pet with a specific age. Such information traversal can work both ways and in the best cases should cover the entire database and all classes of information stored within the database.</p>
<p>Biggest drawback of such an approach is that while API solutions become more accessible and easy to use, the software itself has to do more work, since database is not designed anymore based on the needs of software, but the needs of information. In some ways this problem can be managed through the separate information retrieval and storage class as described before, however such an approach still makes the software do more work and is certainly slower in execution in comparison.</p>
<p>Being personally involved with developing an information software, a social intranet solution, which relies heavily on ontologies and tagging and entirely separates user interface logic from data logic while all commands are run directly through API and not through within internal software logic, effects of this approach are evident. With certain commands the system can be hundred times slower, requiring either better (and thus more costly) hardware or more internal caching and indexing (methods of storing request results without quering the original database tables again) in order to be effective. But the benefits of information friendly system design far exceed the drawbacks, allowing for dynamic user interfaces and much better information system integration on multiple platforms (on desktop and mobiles both, for example).</p>
<p><strong>Applying ontology methods to a project</strong></p>
<p>As part of the practical work of the course Knowledge Representation and Reasoning, my group (consisting of me, Valeria Gasik and Mehrnoosh Vahdat) developed an ontology to be used for database design for the project IMKEmonster.</p>
<p>IMKEmonster is a feed aggregator and crowdsourced information system for Interactive Media and Knowledge Environments course and its students. Independent from university, IMKEmonster plans to be entirely student-controlled, offering public course feedback, course information, projects and other studies related material.</p>
<p>Originally the database design was based on needs of software, but through the course we decided to apply ontology to database design, separating all the information classes from one another into separate databases. The following is a simple illustration of IMKEmonster information system database design (click for full size):</p>
<div id="attachment_939" class="wp-caption aligncenter" style="width: 310px"><a href="http://waher.net/wp-content/uploads/2011/05/imkemonster.jpg"><img class="size-medium wp-image-939" title="IMKEmonster Database" src="http://waher.net/wp-content/uploads/2011/05/imkemonster-300x276.jpg" alt="IMKEmonster Database" width="300" height="276" /></a><p class="wp-caption-text">IMKEmonster Database</p></div>
<p>IMKEmonster demonstration is currently viewable when visiting imkemonster.com website, which redirects to development website. While database is finalized, the system itself will be open to public starting from autumn 2011.</p>
<p><strong>Conclusion</strong></p>
<p>While ontologies are not similar to the ways our brains store information, they are by far the most logical method of storing information, which can strongly help improve modern database designs and software architecture.</p>
<p>Using ontology for IMKEmonster project both improved the existing solution as well as made sure the information can be easily extended in the future should new courses or project features and other information be added that requires new information slots or other features that were not originally planned. This extendable ability of ontologies is one of the bigger benefits for software development, as it is very similar to object oriented programming.</p>
]]></content:encoded>
			<wfw:commentRss>http://waher.net/archives/932/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

