<?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>Vincenzo Carabillo' &#187; Software</title>
	<atom:link href="http://www.carabillo.it/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.carabillo.it</link>
	<description>Technology Consulting</description>
	<lastBuildDate>Sat, 12 Feb 2011 02:19:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>The most useful freeware</title>
		<link>http://www.carabillo.it/2007/11/the-most-useful-freeware/</link>
		<comments>http://www.carabillo.it/2007/11/the-most-useful-freeware/#comments</comments>
		<pubDate>Sat, 17 Nov 2007 11:24:18 +0000</pubDate>
		<dc:creator>Vincenzo Carabillo&#39;</dc:creator>
				<category><![CDATA[Freeware]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Websites]]></category>

		<guid isPermaLink="false">http://www.carabillo.it/2007/11/17/the-most-useful-freeware/</guid>
		<description><![CDATA[The Freeware Genius website has posted a great list of freeware software that can be used to re-install a Windows machine. The list contains a lot of incredibly useful software as well as screenshots and reviews. Link: Reinstall Windows and outfit your system with all freeware programs]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://freewarelogo.vegard2.no/"><img width="225" height="135" align="left" alt="" src="http://www.carabillo.it/wp-content/uploads/image/freeware_logo.png" style="margin-right: 10px;" /></a>The Freeware Genius website has posted a great list of <a href="http://en.wikipedia.org/wiki/Freeware" target="_blank">freeware software</a> that can be used to re-install a Windows machine. The list contains a lot of incredibly useful software as well as screenshots and reviews.</p>
<p>Link:<br />
<a href="http://www.freewaregenius.com/2007/10/29/reinstall-windows-and-outfit-your-system-with-all-freeware-programs/" target="_blank">Reinstall Windows and outfit your system with all freeware programs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.carabillo.it/2007/11/the-most-useful-freeware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google&#8217;s Android revolution</title>
		<link>http://www.carabillo.it/2007/11/android-revolution/</link>
		<comments>http://www.carabillo.it/2007/11/android-revolution/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 19:05:40 +0000</pubDate>
		<dc:creator>Vincenzo Carabillo&#39;</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[OSs]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.carabillo.it/2007/11/15/android-revolution/</guid>
		<description><![CDATA[Will we have have an Android in our pockets? Google new exciting project is an Operating System for mobile phones. Android is a groundbreaking idea that will probably change the market. In the future we would be able to use the same user interface for mobile phones made by different companies. An API (Application Program [...]]]></description>
			<content:encoded><![CDATA[<p><img width="361" height="85" src="http://www.carabillo.it/wp-content/uploads/image/android.gif" alt="" /></p>
<p>Will we have have an Android in our pockets? Google new exciting project is an Operating System for mobile phones. <a target="_blank" href="http://code.google.com/android/">Android</a> is a groundbreaking idea that will probably change the market. In the future we would be able to use the same user interface for mobile phones made by different companies. An API (<a href="http://en.wikipedia.org/wiki/Api" target="_blank">Application Program Interface</a>) is already available for accessing the low-level hardware features, and a conveniently crafted <a href="http://www.eclipse.org" target="_blank">Eclipse</a> plug-in can be downloaded to start writing new applications in Java. The Android SDK (<a href="http://en.wikipedia.org/wiki/Sdk" target="_blank">Software Development Kit</a>) contains a nice emulator in which to preview the applications under development. Everything works smoothly, and is very easy to setup. Excellent!</p>
<p>&nbsp;<img width="300" height="350" align="middle" src="http://www.carabillo.it/wp-content/uploads/image/open-handset-alliance.jpg" alt="" /></p>
<p>The Open Handset Alliance which Google is building, holds together many big names (HTC, LG, Samsung, Motorola,Intel, Broadcom, Marvell, Qualcomm, SiRF, T-Mobile, Telefonica, Telecom Italia and Sprint, plus                          Google and eBay and a variety of other partners) but not Nokia or Microsoft. This means that it seem that no Nokia phone wil be equipped by Android for the moment being, but I guess that Nokia could join later. Of course Microsoft would be <a target="_blank" href="http://www.youtube.com/watch?v=VLRtUGviSc8">much harder</a> to convince!<br />
For motivating developers to start using the new platform, Google has launched a contest (the <a href="http://code.google.com/android/adc.html " target="_blank">Android Developer Challenge</a>), for which there are more than 10 million $ awards for the best applications made for this platform.</p>
<p>The idea to deliver an Operating System like Android is surprisingly in line with Google&#8217;s mission to &quot;organize the world&#8217;s information&quot;. Once again Google proved to work smart, and once again will change the way we approach the IT, this time in our pocket.</p>
<p>What will happen next?</p>
<ul>
<li>Many developers will happily start to work with Android</li>
<li>there will be several hundreds of beautiful pragrams for this platform before the commercial launch</li>
<li>many manufacturers will be happy to see such audience, and will put more attention (and budget) on the platform</li>
<li>mobile phone users will be able to buy phones from several companies, sure to be able to use the same android software in each of them. Now the choice for an handy will be easier, finally not based on usability, but on style, and hardware quality!</li>
</ul>
<p>Android is good news. We have to wait until the second half of next year to be able to buy one of those phones able to run Android.</p>
<p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="425" height="344" src="http://www.youtube.com/embed/1FJHYqE0RDg" frameborder="0" allowFullScreen="true"> </iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.carabillo.it/2007/11/android-revolution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basic Software Architecture and Deployment Choices (part 1)</title>
		<link>http://www.carabillo.it/2007/06/basic-software-architecture-and-deployment-choices-part-1/</link>
		<comments>http://www.carabillo.it/2007/06/basic-software-architecture-and-deployment-choices-part-1/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 12:56:54 +0000</pubDate>
		<dc:creator>Vincenzo Carabillo&#39;</dc:creator>
				<category><![CDATA[Architectures]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.carabillo.it/2007/06/22/basic-software-architecture-and-deployment-choices-part-1/</guid>
		<description><![CDATA[This is the first of a serie of posts on how to face some basic challenges when starting a new software project. The choice now is more complex than in the past, and this happened mainly because many languages have evolved, many other are born, many more people use now computers, and especially because internet [...]]]></description>
			<content:encoded><![CDATA[<p><img width="180" height="222" align="left" alt="" src="http://www.carabillo.it/wp-content/uploads/Image/Architect.png" style="margin-right: 10px;" />This is <font size="-1">the first of a serie of posts</font><font size="-1"></font> on how to face some basic challenges when starting a new software project. The choice now is more complex than in the past, and this happened mainly because many languages have evolved, many other are born, many more people use now computers, and especially because internet is now a very important reality.</p>
<p>
<strong>Gentlemen, choose your language</strong></p>
<p>To choose a language in which to develop a project is not trivial. If somebody asks me &quot;Which is your favorite language?&quot; I promptly answer Java, but in case I am given a new project, a structured decision approach is needed. </p>
<p><strong> &ldquo;<a target="_blank" href="http://en.wikipedia.org/wiki/John_Dewey">A problem well-defined is half solved</a>&rdquo; &mdash; John Dewey</strong></p>
<p>The main question is: what do you want to achieve? The question must then be better specified focusing on the user, performance, available technologies, quantity of data involved, time-to-market, competitors, state-of-the-art, and so on. Each architecture has pros and cons: Java is portable and object-oriented, but needs resources; C is fast, but neither object-oriented nor easily portable; Lisp is good for artificial intelligence, but is very hard to teach to procedure-oriented people; with PHP you can build fantastic web-based applications, but is not the best choice for stand-alone programs&#8230; there is also the possibility to mix up solution: in a past project I wrote PHP code that generates HTML and Javascript, which was executing dynamically generated SQL code; in that case some lines of code ended to host four different languages!</p>
<p><img width="510" height="87" border="1" src="http://www.carabillo.it/wp-content/uploads/Image/4languages_2.png" alt="" /></p>
<p><strong> Aim to reduce complexity</strong><br />
The secret for a successful architectural choice is aiming to reduce the project&#8217;s complexity.<br />
Facing the challenge to release the project in time, within the given budget, and with the highest possible quality (within the given time and budget), complexity is the most evil enemy.<br />
A general rule to face complexity is to (<a target="_blank" href="http://en.wikipedia.org/wiki/Divide_and_rule]">Divide et impera</a>: divide the problem in small, independent parts, and develop those parts separately.&nbsp; How far this &quot;divide and conquer&quot; analysis will go it will be your choice. It is a matter of experience to identify how to reach your target in a clever way. Generally speaking, an object oriented language almost forces the division of the project in &quot;objects&quot;, and this helps code maintainability and scalability.</p>
<p>
<strong>Prototyping</strong><br />
Another enemy (funny to say!) to achieve a good final quality is the <em>client</em>: non-it oriented people tend to underestimate how bad it could be to change the requirements after that development has started. The requirements must be well defined, understood, and agreed at the beginning of the project. Writing down requirements and describing the agreed solution in detail to the client before starting development can seem a waste of time, but will save lots of efforts afterwards.<br />
Most projects involve some GUI (Graphical User Interface), or at least a &quot;presentation layer&quot;. A prototype should be presented as soon as possible in the development phase. Just think that the client will see and use software only from outside: algorithms and calculation engines will probably remain just black boxes for the client, while he will just focus on the usage and results.<br />
The prototype should be built in the same way the final product will be executed (E.G.: if you have chosen Java, just present a dummy Java GUI). If this is not possible, just build a graph in Powerpoint (or the <a target="_blank" href="http://en.wikipedia.org/wiki/Open_source">open source</a> <a target="_blank" href="http://www.linux.com/articles/40736">alternative</a> <a target="_blank" href="http://www.openoffice.org/product/impress.html">OpenOffice Impress</a>). If even this is not possible, just use pen and paper, and do not forget to finish with date and signatures from both parts.</p>
<p>
In the next post of this serie, we are going to explore deeper technical and architectural topics&#8230; stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.carabillo.it/2007/06/basic-software-architecture-and-deployment-choices-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

