<?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>ansiko® &#187; Software Development</title>
	<atom:link href="http://www.ansiko.com/category/software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ansiko.com</link>
	<description>software design &#38; development</description>
	<lastBuildDate>Sat, 21 Nov 2009 23:02:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Software Development</title>
		<link>http://www.ansiko.com/2009/11/software-development/</link>
		<comments>http://www.ansiko.com/2009/11/software-development/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 23:02:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.ansiko.com/?p=346</guid>
		<description><![CDATA[Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. Especially the first phase in the software development process may involve many departments, including marketing, engineering, research and development and general management.
The term [...]]]></description>
			<content:encoded><![CDATA[<h3>Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. Especially the first phase in the software development process may involve many departments, including marketing, engineering, research and development and general management.</h3>
<p>The term software development may also refer to computer programming, the process of writing and maintaining the source code.</p>
<p>There are several different approaches to software development, much like the various views of political parties toward governing a country. Some take a more structured, engineering-based approach to developing business solutions, whereas others may take a more incremental approach, where software evolves as it is developed piece-by-piece.</p>
<p><span id="more-346"></span></p>
<p>Most methodologies share some combination of the following stages of software development:</p>
<ul>
<li>Market research</li>
<li>Gathering requirements for the proposed business solution</li>
<li>Analyzing the problem</li>
<li>Devising a plan or design for the software-based solution</li>
<li>Implementation (coding) of the software</li>
<li>Testing the software</li>
<li>Deployment</li>
<li>Maintenance and bug fixing</li>
</ul>
<p> These stages are often referred to collectively as the software development lifecycle, or SDLC. Different approaches to software development may carry out these stages in different orders, or devote more or less time to different stages. The level of detail of the documentation produced at each stage of software development may also vary. These stages may also be carried out in turn (a “waterfall” based approach), or they may be repeated over various cycles or iterations (a more &#8220;extreme&#8221; approach). The more extreme approach usually involves less time spent on planning and documentation, and more time spent on coding and development of automated tests. More “extreme” approaches also promote continuous testing throughout the development lifecycle, as well as having a working (or bug-free) product at all times. More structured or “waterfall” based approaches attempt to assess the majority of risks and develop a detailed plan for the software before implementation (coding) begins, and avoid significant design changes and re-coding in later stages of the software development lifecycle.</p>
<p>There are significant advantages and disadvantages to the various methodologies, and the best approach to solving a problem using software will often depend on the type of problem. If the problem is well understood and a solution can be effectively planned out ahead of time, the more &#8220;waterfall&#8221; based approach may work the best. If, on the other hand, the problem is unique (at least to the development team) and the structure of the software solution cannot be easily envisioned, then a more &#8220;extreme&#8221; incremental approach may work best. A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.</p>
<p>This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article “Software development”.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ansiko.com/2009/11/software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax Programming</title>
		<link>http://www.ansiko.com/2009/11/ajax-programming/</link>
		<comments>http://www.ansiko.com/2009/11/ajax-programming/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 22:47:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AJAX Development]]></category>

		<guid isPermaLink="false">http://www.ansiko.com/?p=149</guid>
		<description><![CDATA[Ajax (shorthand for asynchronous JavaScript + XML) is a group of interrelated web development techniques used on the client-side to create interactive web applications. With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page.
The use of Ajax techniques has led [...]]]></description>
			<content:encoded><![CDATA[<h3>Ajax (shorthand for asynchronous JavaScript + XML) is a group of interrelated web development techniques used on the client-side to create interactive web applications. With Ajax, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page.</h3>
<p>The use of Ajax techniques has led to an increase in interactive or dynamic interfaces on web pages. Data is usually retrieved using the XMLHttpRequest object. Despite the name, the use of JavaScript and XML is not actually required, nor do the requests need to be asynchronous.</p>
<p><span id="more-149"></span></p>
<h2>Constituent technologies</h2>
<p>Like DHTML and LAMP, Ajax is not a technology in itself, but a group of technologies. Ajax uses a combination of:</p>
<ul>
<li>HTML and CSS for marking up and styling information.</li>
<li>The DOM accessed with JavaScript to dynamically display and interact with the information presented.</li>
<li>A method for exchanging data asynchronously between browser and server, thereby avoiding page reloads. The XMLHttpRequest (XHR) object is usually used, but sometimes an IFrame object or a dynamically added &lt;script&gt; tag is used instead.</li>
<li>A format for the data sent to the browser. Common formats include XML, pre-formatted HTML, plain text, and JavaScript Object Notation (JSON). This data could be created dynamically by some form of server-side scripting.</li>
</ul>
<h2>Rationale</h2>
<ul>
<li>In many cases, related pages on a website consist of much content that is common between them. Using traditional methods, that content would have to be reloaded on every request. However, using Ajax, a web application can request only the content that needs to be updated, thus drastically reducing bandwidth usage and load time.</li>
<li>The use of asynchronous requests allows the client&#8217;s Web browser UI to be more interactive and to respond quickly to inputs, and sections of pages can also be reloaded individually. Users may perceive the application to be faster or more responsive, even if the application has not changed on the server side.</li>
<li>The use of Ajax can reduce connections to the server, since scripts and style sheets only have to be requested once.</li>
<li>State can be maintained throughout a Web site. JavaScript variables will persist because the main container page need not be reloaded.</li>
</ul>
<h2>Drawbacks</h2>
<ul>
<li>Ajax interfaces are substantially harder to develop properly than static pages.</li>
<li>Pages dynamically created using successive Ajax requests do not automatically register themselves with the browser&#8217;s history engine, so clicking the browser&#8217;s &#8220;back&#8221; button may not return the user to an earlier state of the Ajax-enabled page, but may instead return them to the last full page visited before it. Workarounds include the use of invisible IFrames to trigger changes in the browser&#8217;s history and changing the anchor portion of the URL (following a #) when Ajax is run and monitoring it for changes.</li>
<li>Dynamic web page updates also make it difficult for a user to bookmark a particular state of the application. Solutions to this problem exist, many of which use the URL fragment identifier (the portion of a URL after the &#8216;#&#8217;) to keep track of, and allow users to return to, the application in a given state.</li>
<li>Because most web crawlers do not execute JavaScript code, publicly indexable web applications should provide an alternative means of accessing the content that would normally be retrieved with Ajax, to allow search engines to index it.</li>
<li>Any user whose browser does not support JavaScript or XMLHttpRequest, or simply has this functionality disabled, will not be able to properly use pages which depend on Ajax. Similarly, devices such as mobile phones, PDAs, and screen readers may not have support for the required technologies. Screen readers that are able to use Ajax may still not be able to properly read the dynamically generated content. The only way to let the user carry out functionality is to fall back to non-JavaScript methods. This can be achieved by making sure links and forms can be resolved properly and do not rely solely on Ajax. In JavaScript, form submission could then be halted with &#8220;return false&#8221;.</li>
<li>The same origin policy prevents some Ajax techniques from being used across domains, although the W3C has a draft of the XMLHttpRequest object that would enable this functionality.</li>
<li>Ajax opens up another attack vector for malicious code that web developers might not fully test for.</li>
<li>Ajax-powered interfaces may dramatically increase the number of user-generated requests to web servers and their back-ends (databases, or other). This can lead to longer response times and/or additional hardware needs.</li>
<li>User interfaces can be confusing or behave inconsistently when normal web patterns are not followed.</li>
</ul>
<h3>This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article “Ajax (programming)”.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.ansiko.com/2009/11/ajax-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Database Design</title>
		<link>http://www.ansiko.com/2009/08/database-design/</link>
		<comments>http://www.ansiko.com/2009/08/database-design/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 22:55:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Database Design]]></category>

		<guid isPermaLink="false">http://www.ansiko.com/?p=153</guid>
		<description><![CDATA[Database design is the process of producing a detailed data model of a database. This logical data model contains all the needed logical and physical design choices and physical storage parameters needed to generate a design in a Data Definition Language, which can then be used to create a database. A fully attributed data model [...]]]></description>
			<content:encoded><![CDATA[<h3>Database design is the process of producing a detailed data model of a database. This logical data model contains all the needed logical and physical design choices and physical storage parameters needed to generate a design in a Data Definition Language, which can then be used to create a database. A fully attributed data model contains detailed attributes for each entity.</h3>
<p>The term database design can be used to describe many different parts of the design of an overall database system. Principally, and most correctly, it can be thought of as the logical design of the base data structures used to store the data. In the relational model these are the tables and views. In an object database the entities and relationships map directly to object classes and named relationships. However, the term database design could also be used to apply to the overall process of designing, not just the base data structures, but also the forms and queries used as part of the overall database application within the database management system (DBMS).</p>
<p><span id="more-153"></span></p>
<h2>Design process</h2>
<p>The process of doing database design generally consists of a number of steps which will be carried out by the database designer. Not all of these steps will be necessary in all cases. Usually, the designer must:</p>
<ul>
<li>Determine the relationships between the different data elements.</li>
<li>Superimpose a logical structure upon the data on the basis of these relationships.</li>
</ul>
<p>Within the relational model the final step can generally be broken down into two further steps, that of determining the grouping of information within the system, generally determining what are the basic objects about which information is being stored, and then determining the relationships between these groups of information, or objects. This step is not necessary with an Object database.</p>
<p>The tree structure of data may enforce a hierarchical model organization, with a parent-child relationship table. An Object database will simply use a one-to-many relationship between instances of an object class. It also introduces the concept of a hierarchical relationship between object classes, termed inheritance.</p>
<h2>Determining data to be stored</h2>
<p>In a majority of cases, a person who is doing the design of a database is a person with expertise in the area of database design, rather than expertise in the domain from which the data to be stored is drawn e.g. financial information, biological information etc. Therefore the data to be stored in the database must be determined in cooperation with a person who does have expertise in that domain, and who is aware of what data must be stored within the system.</p>
<p>This process is one which is generally considered part of requirements analysis, and requires skill on the part of the database designer to elicit the needed information from those with the domain knowledge. This is because those with the necessary domain knowledge frequently cannot express clearly what their system requirements for the database are as they are unaccustomed to thinking in terms of the discrete data elements which must be stored. Data to be stored can be determined by Requirement Specification.</p>
<h2>Conceptual schema</h2>
<p>Once a database designer is aware of the data which is to be stored within the database, they must then determine where dependancy is within the data. Sometimes when data is changed you can be changing other data that is not visible. For example, in a list of names and addresses, assuming a situation where multiple people can have the same address, but one person cannot have more than one addresses, the name is dependent upon the address, because if the address is different then the associated name is different too. However, the other way around is different. One attribute can change and not another.</p>
<p>(NOTE: A common misconception is that the relational model is so called because of the stating of relationships between data elements therein. This is not true. The relational model is so named such because it is based upon the mathematical structures known as relations.)</p>
<h2>Logically structuring data</h2>
<p>Once the relationships and dependencies amongst the various pieces of information have been determined, it is possible to arrange the data into a logical structure which can then be mapped into the storage objects supported by the database management system. In the case of relational databases the storage objects are tables which store data in rows and columns.</p>
<p>Each table may represent an implementation of either a logical object or a relationship joining one or more instances of one or more logical objects. Relationships between tables may then be stored as links connecting child tables with parents. Since complex logical relationships are themselves tables they will probably have links to more than one parent.</p>
<p>In an Object database the storage objects correspond directly to the objects used by the Object-oriented programming language used to write the applications that will manage and access the data. The relationships may be defined as attributes of the object classes involved or as methods that operate on the object classes.</p>
<h2>Physical database design</h2>
<p>The physical design of the database specifies the physical configuration of the database on the storage media. This includes detailed specification of data elements, data types, indexing options and other parameters residing in the DBMS data dictionary. It is the detailed design of a system that includes modules &amp; the database&#8217;s hardware &amp; software specifications of the system.</p>
<h3>This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article “Database design”.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.ansiko.com/2009/08/database-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Software Platform</title>
		<link>http://www.ansiko.com/2009/07/java-software-platform/</link>
		<comments>http://www.ansiko.com/2009/07/java-software-platform/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 23:53:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java Development]]></category>

		<guid isPermaLink="false">http://www.ansiko.com/?p=185</guid>
		<description><![CDATA[Java refers to a number of computer software products and specifications from Sun Microsystems that together provide a system for developing application software and deploying it in a cross-platform environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones on the low end, to enterprise servers and supercomputers [...]]]></description>
			<content:encoded><![CDATA[<h3>Java refers to a number of computer software products and specifications from Sun Microsystems that together provide a system for developing application software and deploying it in a cross-platform environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones on the low end, to enterprise servers and supercomputers on the high end. Java is nearly ubiquitous in mobile phones, Web servers and enterprise applications, and while less common on desktop computers, Java applets are often used to provide improved and secure functionalities while browsing the World Wide Web.</h3>
<p>Writing in the Java programming language is the primary way to produce code that will be deployed as Java bytecode, though there are bytecode compilers available for other languages such as JavaScript, Python, Ruby and Scala, and a native Java scripting language called Groovy. Java syntax borrows heavily from C and C++ but it eliminates certain low-level constructs such as pointers and has a very simple memory model where every object is allocated on the heap and all variables of object types are references. Memory management is handled through integrated automatic garbage collection performed by the Java Virtual Machine (JVM).</p>
<p><span id="more-185"></span></p>
<p>On November 13, 2006, Sun Microsystems made the bulk of its implementation of Java available under the GNU General Public License, although there are still a few parts distributed as precompiled binaries due to copyright issues with Sun-licensed (not owned) code.</p>
<h2>History</h2>
<p>The Java platform and language began as an internal project at Sun Microsystems in December 1990, providing an alternative to the C++/C programming languages. Engineer Patrick Naughton had become increasingly frustrated with the state of Sun&#8217;s C++ and C APIs (application programming interfaces) and tools. While considering moving to NeXT, Naughton was offered a chance to work on new technology and thus the Stealth Project was started.</p>
<p>The Stealth Project was soon renamed to the Green Project with James Gosling and Mike Sheridan joining Naughton. Together with other engineers, they began work in a small office on Sand Hill Road in Menlo Park, California. They were attempting to develop a new technology for programming next generation smart appliances, which Sun expected to be a major new opportunity.</p>
<p>The team originally considered using C++, but it was rejected for several reasons. Because they were developing an embedded system with limited resources, they decided that C++ demanded too large a footprint and that its complexity led to developer errors. The language&#8217;s lack of garbage collection meant that programmers had to manually manage system memory, a challenging and error-prone task. The team was also troubled by the language&#8217;s lack of portable facilities for security, distributed programming, and threading. Finally, they wanted a platform that could be easily ported to all types of devices.</p>
<p>Bill Joy had envisioned a new language combining the best of Mesa and C. In a paper called Further, he proposed to Sun that its engineers should produce an object-oriented environment based on C++. Initially, Gosling attempted to modify and extend C++ (which he referred to as &#8220;C++ ++ &#8211;&#8221;) but soon abandoned that in favor of creating an entirely new language, which he called Oak, after the tree that stood just outside his office.</p>
<p>By the summer of 1992, they were able to demonstrate portions of the new platform including the Green OS, the Oak language, the libraries, and the hardware. Their first attempt, demonstrated on September 3, 1992, focused on building a PDA device named Star7 which had a graphical interface and a smart agent called &#8220;Duke&#8221; to assist the user. In November of that year, the Green Project was spun off to become firstperson, a wholly owned subsidiary of Sun Microsystems, and the team relocated to Palo Alto, California. The firstperson team was interested in building highly interactive devices, and when Time Warner issued an RFP for a set-top box, firstperson changed their target and responded with a proposal for a set-top box platform. However, the cable industry felt that their platform gave too much control to the user and firstperson lost their bid to SGI. An additional deal with The 3DO Company for a set-top box also failed to materialize. Unable to generate interest within the TV industry, the company was rolled back into Sun.</p>
<h2>Java meets the Internet</h2>
<p>Java Web Start allows provisioning applications over the WebIn June and July 1994, after three days of brainstorming with John Gage, the Director of Science for Sun, Gosling, Joy, Naughton, Wayne Rosing, and Eric Schmidt, the team re-targeted the platform for the World Wide Web. They felt that with the advent of the first graphical web browser, Mosaic, the Internet was on its way to evolving into the same highly interactive medium that they had envisioned for cable TV. As a prototype, Naughton wrote a small browser, WebRunner (named after the movie Blade Runner), later renamed HotJava.</p>
<p>That year, the language was renamed Java after a trademark search revealed that Oak was used by Oak Technology. A load was released in 1994, but the first public release of Java and the HotJava browser was on May 23, 1995, announced by Gage at the SunWorld conference. His announcement was accompanied by a surprise announcement by Marc Andreessen, Executive Vice President of Netscape Communications Corporation, that Netscape browsers would be including Java support. On January 9, 1996, the JavaSoft group was formed by Sun Microsystems in order to develop the technology.</p>
<h3>This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article “Java (software platform)”.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.ansiko.com/2009/07/java-software-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET Framework</title>
		<link>http://www.ansiko.com/2009/06/net-framework/</link>
		<comments>http://www.ansiko.com/2009/06/net-framework/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 21:12:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Microsoft.NET Development]]></category>

		<guid isPermaLink="false">http://www.ansiko.com/?p=272</guid>
		<description><![CDATA[The Microsoft .NET Framework is a software framework that can be installed on computers running Microsoft Windows operating systems. It includes a large library of coded solutions to common programming problems and a virtual machine that manages the execution of programs written specifically for the framework. The .NET Framework is a Microsoft offering and is [...]]]></description>
			<content:encoded><![CDATA[<h3>The Microsoft .NET Framework is a software framework that can be installed on computers running Microsoft Windows operating systems. It includes a large library of coded solutions to common programming problems and a virtual machine that manages the execution of programs written specifically for the framework. The .NET Framework is a Microsoft offering and is intended to be used by most new applications created for the Windows platform.</h3>
<p>The framework&#8217;s Base Class Library provides a large range of features including user interface, data and data access, database connectivity, cryptography, web application development, numeric algorithms, and network communications. The class library is used by programmers, who combine it with their own code to produce applications.</p>
<p><span id="more-272"></span></p>
<p>Programs written for the .NET Framework execute in a software environment that manages the program&#8217;s runtime requirements. Also part of the .NET Framework, this runtime environment is known as the Common Language Runtime (CLR). The CLR provides the appearance of an application virtual machine so that programmers need not consider the capabilities of the specific CPU that will execute the program. The CLR also provides other important services such as security, memory management, and exception handling. The class library and the CLR together constitute the .NET Framework.</p>
<p>Version 3.0 of the .NET Framework is included with Windows Server 2008 and Windows Vista. The current version of the framework can also be installed on Windows XP and the Windows Server 2003 family of operating systems. A reduced version of the .NET Framework, the .NET Compact Framework, is also available on Windows Mobile platforms, including smartphones. Version 4.0 of the framework was released as a public Beta on 20 May 2009. Additionally, the .Net Framework includes the .Net Micro Framework targetted at severely resource constrained devices.</p>
<h3>This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article “.NET Framework”.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.ansiko.com/2009/06/net-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile Development</title>
		<link>http://www.ansiko.com/2009/05/mobile-development/</link>
		<comments>http://www.ansiko.com/2009/05/mobile-development/#comments</comments>
		<pubDate>Fri, 29 May 2009 21:26:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mobile Development]]></category>

		<guid isPermaLink="false">http://www.ansiko.com/?p=275</guid>
		<description><![CDATA[This page lists the known relative differences between the most popular mobile platform development options for handheld devices such as personal digital assistants, enterprise digital assistants or mobile phones.

Java ME
Ideal for a portable solution, if the Java ME platform provides the needed functionality. Good for vertical applications that must be portable. Device-specific libraries exist for [...]]]></description>
			<content:encoded><![CDATA[<h3>This page lists the known relative differences between the most popular mobile platform development options for handheld devices such as personal digital assistants, enterprise digital assistants or mobile phones.</h3>
<p><span id="more-275"></span></p>
<h2>Java ME</h2>
<p>Ideal for a portable solution, if the Java ME platform provides the needed functionality. Good for vertical applications that must be portable. Device-specific libraries exist for many devices and are commonly used for games, making them non-portable. Applications (including their data) cannot be larger than around 1 MB if they are to run on most phones. They must also be cryptographically signed in order to effectively use many APIs such as the filesystem access API. This is relatively expensive and is rarely done, even for commercial applications.</p>
<h2>Symbian</h2>
<p>Very powerful for general purpose development. Designed from the start for mobile devices, the Symbian platform is a real time, multi-tasking OS specifically architected to run well on resource-constrained systems, maximising performance and battery life whilst minimising memory usage. The Symbian Foundation maintains the code for the open source software platform based on Symbian OS and software assets contributed by Nokia, NTT DOCOMO, and Sony Ericsson, including the S60 and MOAP(S) user interfaces. Portions of the platform&#8217;s source code have already been moved to open source, under the Eclipse Public License. By mid-2010 this process will be complete, making the platform code available to all for free. Close to 300 million Symbian OS-based units have been shipped and Symbian holds more than a 50% market share globally.</p>
<h2>Android</h2>
<p>Recently announced by the Open Handset Alliance, whose 34 members include Google, HTC, Motorola, Qualcomm, and T-Mobile, Android is a new Linux-based platform. Although it has only 2 fielded implementations, its support by 34 major software, hardware and telecoms companies makes it likely that the pace of adoption will increase. The Linux kernel is used as a hardware abstraction layer (HAL). Application programming is exclusively done in Java. You need the Android specific Java SDK. Besides the Android Java Libraries it is possible to use normal Java IDEs.</p>
<h2>BlackBerry</h2>
<p>Supports push e-mail, mobile telephone, text messaging, internet faxing, web browsing and other wireless information services as well as a multi-touch interface. It has a built-in QWERTY keyboard, optimized for &#8220;thumbing&#8221;, the use of only the thumbs to type. The BlackBerry devices soon took a dominating position on the north-American smartphone market. Also important for BlackBerry are the BES (Black Berry Enterprise Server) and the Mobile Data System (BlackBerry MDS).</p>
<h2>iPhone OS</h2>
<p>The iPhone and iPod Touch SDK uses Objective C, based on the C programming language. Currently, is only available on Mac OS X 10.5 and is the only way to write an iPhone application. All applications must be cleared by Apple before being hosted on the AppStore, the sole distribution channel for iPhone and iPod touch applications. However, non-Apple approved applications can be released to jailbroken iPhones via Cydia or Installer.</p>
<h2>Lazarus</h2>
<p>Ideal for prototyping and quickly developing database powered applications. Also useful for porting Object Pascal software to mobiles. Can access the native APIs when translated headers are available.</p>
<h2>Python</h2>
<p>Ideal for initial prototyping and concept testing when functionality falls outside Java ME.</p>
<h2>.NET Compact Framework</h2>
<p>Ideal for deployment on Pocket PC / Windows Mobile devices. While primarily still limited to Microsoft Windows Mobile devices, it is now being extended to Android devices as well via Mono. There have also been discussions about extending Mono to other mobile platforms, but nothing has happened to date.</p>
<h2>BREW</h2>
<p>Ideal for deploying applications for deployment on CDMA-based networks (also supports GPRS/GSM models) with a deployed Brew Content Platform especially if OTA app deployment is desired. Little penetration in Europe.</p>
<h2>Pocket PC and Microsoft Smartphone</h2>
<p>Ideal for enterprise applications with an existing PC infrastructure and options for significant development investment. However not cross platform and limited to Microsoft devices.</p>
<h2>Palm OS</h2>
<p>Significant player with strong enterprise following in the important US market.</p>
<h2>Flash Lite</h2>
<p>Ideal for Graphics-heavy options with a market that can support the Flash Lite player.</p>
<h2>Microbrowser Based</h2>
<p>Ideal for lightweight functionality, a web-interface for an existing application with no latency concerns, or a widely varying platform base.</p>
<h3>This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article “Mobile development”.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.ansiko.com/2009/05/mobile-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP</title>
		<link>http://www.ansiko.com/2009/04/php/</link>
		<comments>http://www.ansiko.com/2009/04/php/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 21:42:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP/E-Commerce Development]]></category>

		<guid isPermaLink="false">http://www.ansiko.com/?p=289</guid>
		<description><![CDATA[PHP, or PHP: Hypertext Preprocessor, is a widely used, general-purpose scripting language that was originally designed for web development, to produce dynamic web pages. It can be embedded into HTML and generally runs on a web server, which needs to be configured to process PHP code and create web page content from it. It can [...]]]></description>
			<content:encoded><![CDATA[<h3>PHP, or PHP: Hypertext Preprocessor, is a widely used, general-purpose scripting language that was originally designed for web development, to produce dynamic web pages. It can be embedded into HTML and generally runs on a web server, which needs to be configured to process PHP code and create web page content from it. It can be deployed on most web servers and on almost every operating system and platform free of charge. PHP is installed on over 20 million websites and 1 million web servers.</h3>
<p>PHP was originally created by Rasmus Lerdorf in 1995 and has been in continuous development ever since. The main implementation of PHP is now produced by The PHP Group and serves as the de facto standard for PHP as there is no formal specification. PHP is free software released under the PHP License, which is incompatible with the GNU General Public License (GPL) because of restrictions on the use of the term PHP.</p>
<p>PHP has evolved to include a command line interface capability and can also be used in standalone graphical applications.</p>
<p><span id="more-289"></span></p>
<h2>Usage</h2>
<p>PHP is a general-purpose scripting language that is especially suited for web development. PHP generally runs on a web server. Any PHP code in a requested file is executed by the PHP runtime, usually to create dynamic web page content. It can also be used for command-line scripting and client-side GUI applications. PHP can be deployed on most web servers, many operating systems and platforms, and can be used with many relational database management systems. It is available free of charge, and the PHP Group provides the complete source code for users to build, customize and extend for their own use.</p>
<p>PHP primarily acts as a filter, taking input from a file or stream containing text and/or PHP instructions and outputs another stream of data; most commonly the output will be HTML. Since PHP 4, the PHP parser compiles input to produce bytecode for processing by the Zend Engine, giving improved performance over its interpreter predecessor.</p>
<p>Originally designed to create dynamic web pages, PHP now focuses mainly on server-side scripting, and it is similar to other server-side scripting languages that provide dynamic content from a web server to a client, such as Microsoft&#8217;s Active Server Pages, Sun Microsystems&#8217; JavaServer Pages, and mod perl. PHP has also attracted the development of many frameworks that provide building blocks and a design structure to promote rapid application development (RAD). Some of these include CakePHP, Symfony, CodeIgniter, and Zend Framework, offering features similar to other web application frameworks.</p>
<p>The LAMP and WAMP architectures have become popular in the web industry as a way of deploying web applications. PHP is commonly used as the P in this bundle alongside Linux, Apache and MySQL, although the P may also refer to Python or Perl.</p>
<p>As of April 2007, over 20 million Internet domains were hosted on servers with PHP installed, and mod_php was recorded as the most popular Apache module. Significant websites are written in PHP including the user-facing portion of Facebook, Wikipedia (MediaWiki), Yahoo!, MyYearbook, Digg, Joomla, WordPress, YouTube in its early stages, Drupal and Tagged.</p>
<h3>This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article “PHP”.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.ansiko.com/2009/04/php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Maintenance</title>
		<link>http://www.ansiko.com/2009/03/software-maintenance/</link>
		<comments>http://www.ansiko.com/2009/03/software-maintenance/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 20:25:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software Maintenance]]></category>

		<guid isPermaLink="false">http://www.ansiko.com/?p=135</guid>
		<description><![CDATA[Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment.
This international standard describes the 6 software maintenance processes as:

The implementation processes contains software preparation and transition activities, such as the conception and creation [...]]]></description>
			<content:encoded><![CDATA[<h3>Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment.</h3>
<p>This international standard describes the 6 software maintenance processes as:</p>
<ol>
<li>The implementation processes contains software preparation and transition activities, such as the conception and creation of the maintenance plan, the preparation for handling problems identified during development, and the follow-up on product configuration management.</li>
<li>The problem and modification analysis process, which is executed once the application has become the responsibility of the maintenance group. The maintenance programmer must analyze each request, confirm it (by reproducing the situation) and check its validity, investigate it and propose a solution, document the request and the solution proposal, and, finally, obtain all the required authorizations to apply the modifications.</li>
<li>The process considering the implementation of the modification itself.</li>
<li>The process acceptance of the modification, by checking it with the individual who submitted the request in order to make sure the modification provided a solution.</li>
<li>The migration process (platform migration, for example) is exceptional, and is not part of daily maintenance tasks. If the software must be ported to another platform without any change in functionality, this process will be used and a maintenance project team is likely to be assigned to this task.</li>
<li>Finally, the last maintenance process, also an event which does not occur on a daily basis, is the retirement of a piece of software.</li>
</ol>
<p><span id="more-135"></span></p>
<p>There are a number of processes, activities and practices that are unique to maintainers, for example:</p>
<ul>
<li>Transition: a controlled and coordinated sequence of activities during which a system is transferred progressively from the developer to the maintainer;</li>
<li>Service Level Agreements (SLAs) and specialized (domain-specific) maintenance contracts negotiated by maintainers;</li>
<li>Modification Request and Problem Report Help Desk: a problem-handling process used by maintainers to prioritize, documents and route the requests they receive;</li>
<li>Modification Request acceptance/rejection: modification request work over a certain size/effort/complexity may be rejected by maintainers and rerouted to a developer.</li>
</ul>
<p>A common perception of maintenance is that it is merely fixing bugs. However, studies and surveys over the years have indicated that the majority, over 80%, of the maintenance effort is used for non-corrective actions (Pigosky 1997). This perception is perpetuated by users submitting problem reports that in reality are functionality enhancements to the system.</p>
<p>Software maintenance and evolution of systems was first addressed by Meir M. Lehman in 1969. Over a period of twenty years, his research led to the formulation of eight Laws of Evolution (Lehman 1997). Key findings of his research include that maintenance is really evolutionary developments and that maintenance decisions are aided by understanding what happens to systems (and software) over time. Lehman demonstrated that systems continue to evolve over time. As they evolve, they grow more complex unless some action such as code refactoring is taken to reduce the complexity.</p>
<p>The key software maintenance issues are both managerial and technical. Key management issues are: alignment with customer priorities, staffing, which organization does maintenance, estimating costs. Key technical issues are: limited understanding, impact analysis, testing, maintainability measurement.</p>
<h3>This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article &#8220;Software maintenance&#8221;.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.ansiko.com/2009/03/software-maintenance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User Interface Design</title>
		<link>http://www.ansiko.com/2009/02/user-interface-design/</link>
		<comments>http://www.ansiko.com/2009/02/user-interface-design/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 21:49:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[User Interface Design]]></category>

		<guid isPermaLink="false">http://www.ansiko.com/?p=293</guid>
		<description><![CDATA[User interface design or user interface engineering is the design of computers, appliances, machines, mobile communication devices, software applications, and websites with the focus on the user&#8217;s experience and interaction. The goal of user interface design is to make the user&#8217;s interaction as simple and efficient as possible, in terms of accomplishing user goals—what is [...]]]></description>
			<content:encoded><![CDATA[<h3>User interface design or user interface engineering is the design of computers, appliances, machines, mobile communication devices, software applications, and websites with the focus on the user&#8217;s experience and interaction. The goal of user interface design is to make the user&#8217;s interaction as simple and efficient as possible, in terms of accomplishing user goals—what is often called user-centered design. Good user interface design facilitates finishing the task at hand without drawing unnecessary attention to itself.</h3>
<p>Graphic design may be utilized to apply a theme or style to the interface without compromising its usability. The design process must balance technical functionality and visual elements (e.g., mental model) to create a system that is not only operational but also usable and adaptable to changing user needs.</p>
<p>Interface design is involved in a wide range of projects from computer systems, to cars, to commercial planes; all of these projects involve much of the same basic human interaction yet also require some unique skills and knowledge. As a result, designers tend to specialize in certain types of projects and have skills centered around their expertise, whether that be software design, user research, web design, or industrial design.</p>
<p><span id="more-293"></span></p>
<h2>Processes</h2>
<p>There are several phases and processes in the user interface design, some of which are more demanded upon than others, depending on the project. (Note: for the remainder of this section, the word system is used to denote any project whether it is a web site, application, or device.)</p>
<ul>
<li><strong>Functionality requirements gathering</strong> – assembling a list of the functionality required of the system to accomplish the goals of the project and the potential needs of the users.</li>
<li><strong>User analysis</strong> – analysis of the potential users of the system either through discussion with people who work with the users and/or the potential users themselves. Typical questions involve:
<ul>
<li>What would the user want the system to do?</li>
<li>How would the system fit in with the user&#8217;s normal workflow or daily activities?</li>
<li>How technically savvy is the user and what similar systems does the user already use?</li>
<li>What interface look &amp; feel styles appeal to the user?</li>
</ul>
</li>
<li><strong>Information architecture</strong> – development of the process and/or information flow of the system (i.e. for phone tree systems, this would be an option tree flowchart and for web sites this would be a site flow that shows the hierarchy of the pages).</li>
<li><strong>Prototyping</strong> – development of wireframes, either in the form of paper prototypes or simple interactive screens. These prototypes are stripped of all look &amp; feel elements and most content in order to concentrate on the interface.</li>
<li><strong>Usability testing</strong> – testing of the prototypes on an actual user—often using a technique called talk aloud protocol where you ask the user to talk about their thoughts during the experience.</li>
<li><strong>Graphic Interface design</strong> – actual look &amp; feel design of the final graphical user interface (GUI). It may be based on the findings developed during the usability testing if usability is unpredictable, or based on communication objectives and styles that would appeal to the user. In rare cases, the graphics may drive the prototyping, depending on the importance of visual form versus function. If the interface requires multiple skins, there may be multiple interface designs for one control panel, functional feature or widget. This phase is often a collaborative effort between a graphic designer and a user interface designer, or handled by one who is proficient in both disciplines.</li>
</ul>
<p>User interface design requires a good understanding of user needs.</p>
<h3>This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article “User interface design”.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.ansiko.com/2009/02/user-interface-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
