<?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>LinkTogether™ Official Blog</title>
	<atom:link href="http://blog.linktogether.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.linktogether.com</link>
	<description>Find Out What's Going On With LinkTogether</description>
	<lastBuildDate>Tue, 18 Aug 2009 13:45:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Azure SQL Data Services</title>
		<link>http://blog.linktogether.com/2009/08/18/azure-sql-data-services/</link>
		<comments>http://blog.linktogether.com/2009/08/18/azure-sql-data-services/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 13:45:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LinkTogether Blog]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[azure services]]></category>
		<category><![CDATA[Big Table]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[cloud services]]></category>
		<category><![CDATA[relational database]]></category>
		<category><![CDATA[simpleDB]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[SQL Azure Services]]></category>

		<guid isPermaLink="false">http://blog.linktogether.com/?p=401</guid>
		<description><![CDATA[In a previous blog entry, I provided an overview of Microsoft’s Azure Services (http://azure.com) but now I’d like to take a more in-depth look at what Microsoft is now calling SQL Azure Services (http://www.microsoft.com/azure/sql.mspx) which itself is based on the, you guessed it, SQL Azure database.  From the outset, it is important to note that [...]]]></description>
			<content:encoded><![CDATA[<p>In a previous blog entry, I provided an overview of Microsoft’s Azure Services (<a href="http://azure.com" target="_blank">http://azure.com</a>) but now I’d like to take a more in-depth look at what Microsoft is now calling SQL Azure Services (<a href="http://www.microsoft.com/azure/sql.mspx" target="_blank">http://www.microsoft.com/azure/sql.mspx</a>) which itself is based on the, you guessed it, SQL Azure database.  From the outset, it is important to note that SQL Azure is a true cloud-based SQL database, which clearly differentiates it from other data storage options such as Google’s Big Table (partially accessible as part of Google App Engine &#8211; <a href="http://code.google.com/appengine/" target="_blank">http://code.google.com/appengine/</a>)  or Amazon’s SimpleDB (<a href="http://aws.amazon.com/simpledb/" target="_blank">http://aws.amazon.com/simpledb/</a>).  Both SimpleDB and Big Table are essentially infinitely scalable hash tables that allow data to be stored and retrieved using key values.  So, if you’re building a cloud application using either of those technologies, or something similar and you need to store a person’s address, payment information, and order history, you might store all of that using a single key value and a large XML document, as opposed to normalizing out that data into many relational tables, as is traditionally done using relational database technology.  This may or may not match your requirements; it certainly makes field-level querying and advanced reporting much more challenging.  Just as importantly, if you’re interested in porting an existing app “to the cloud”, as they say, there’s a very good chance that that app is based on a relational database, possibly even Microsoft SQL Server.  In that case, nothing short of a partial rewrite is going to allow that application to port to the cloud – the more drastic the data storage architecture change, the bigger the rewrite.</p>
<p>Microsoft is betting that enough developers will demand cloud access to traditional SQL/relational databases that their original plans for Azure Data Services have been modified to now fully support traditional programmatic access to the database using familiar APIs such as ADO.NET and ODBC.  Additionally, SQL scripts can be run against a SQL Azure database using SQLCMD or SQL Query Analyzer (commonly used tools by SQL Server developers and DBAs) and traditional SQL Server management tools such as SQL Management Studio are supported.  The SQL Azure database itself supports a full complement of relational database functionality, including tables, views, indexes, roles, stored procedures, triggers, and functions as well as transactions, temp tables, and a subset of the existing SQL Server functions, procedures, and system views.</p>
<p>SQL Azure is free for use during the current Community Technology Preview (CTP) phase and Microsoft will soon announce formal pricing once it is ready for production use.  As with most cloud services, SQL Azure will be priced based on resource utilization which will according to Microsoft include:</p>
<ul>
<li>CPU time, measured in CPU-hours</li>
<li>Bandwidth for ingress/egress from the data center, measured in GBs</li>
<li>Storage, measured in GBs</li>
<li>Transactions, measured as requests likes Gets &amp; Puts</li>
</ul>
<p>Microsoft has announced that the product will be released during the second half of 2009 so stay tuned to Azure.com for more details.  Until then, you’re free to download the SDK and get started building apps on SQL Azure today.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linktogether.com/2009/08/18/azure-sql-data-services/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Azure Services Overview</title>
		<link>http://blog.linktogether.com/2009/08/07/azure-services-overview/</link>
		<comments>http://blog.linktogether.com/2009/08/07/azure-services-overview/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 16:39:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LinkTogether Blog]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[azure services]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[hyper-V-Server]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://blog.linktogether.com/?p=371</guid>
		<description><![CDATA[Two movements are afoot that are rapidly changing the face of web hosting, enterprise applications, and corporate IT environments.  These two movements, virtualization and cloud computing, might appear at first glance to be completely unrelated technologies.  However, both technology movements allow the traditional relationship of application software and hardware to be turned on its head.  [...]]]></description>
			<content:encoded><![CDATA[<p>Two movements are afoot that are rapidly changing the face of web hosting, enterprise applications, and corporate IT environments.  These two movements, virtualization and cloud computing, might appear at first glance to be completely unrelated technologies.  However, both technology movements allow the traditional relationship of application software and hardware to be turned on its head.  Virtualization supports optimal utilization of hardware resources by multiple host operating system environments (which don’t even have to be running the same operating system!) while cloud computing allow the notion of underlying hardware – and hardware limitations &#8211; to be completely abstracted from an application.  Making sure they won’t be left behind by these dual technological tidal waves, Microsoft has invested heavily in both over the past few years and has recently launched “production-grade” products for virtualization (Hyper-V Server &#8211; <a href="http://www.microsoft.com/hyper-v-server/" target="_blank">http://www.microsoft.com/hyper-v-server/</a>) and cloud computing (The Azure Services Platform &#8211; <a href="http://www.microsoft.com/azure/" target="_blank">http://www.microsoft.com/azure/</a>).</p>
<p>In this post, I’ll provide a quick overview of the Azure Services Platform, saving an overview of Hyper-V (and competing virtualization products from VMware and Parallels) for another blog entry.  In order to get your mind set right, it’s important to understand what Azure is – and what it is not – and who it competes with.  In terms of competition, cloud services are interesting in that they offer a bit of “Back To The Future” in terms of standardization and vendor lock-in.  After most of the past 15-20 years was spent in a drive towards open standards and elimination of proprietary vendor lock-in, open source software, standards supported by the W3C, and platforms such as Java Enterprise Edition lulled many of us into thinking that the “platform wars” might be a thing of the past.  With cloud computing, however, each set of APIs offered by each major vendor is entirely proprietary, even down to the architecture you can build your application on and the features that you can offer your end users, using cloud services.  By “major vendor”, I mean the big guys…Google, Amazon, Yahoo, IBM, and Microsoft, among others.  Microsoft’s Azure Services will feel very familiar to developers who are currently working with Microsoft’s .NET platform.  Witness the following set of features that Microsoft currently lists among the core capabilities:</p>
<ul>
<li>Ability to run Microsoft ASP.NET Web applications or .NET code in the cloud</li>
<li>Service hosting environment that includes Internet Information Services 7.0 and Microsoft .NET Framework 3.5 SP1</li>
<li>Security supported by flexible Code Access Security policies</li>
<li>Small runtime API that supports logging and local scratch storage</li>
<li>Web portal that helps you deploy, scale, and upgrade your services quickly and easily</li>
<li>FastCGI, a protocol for interfacing applications to web servers, which will allow customers to deploy and run web applications written with non-Microsoft programming languages such as PHP (Developers will be responsible for including the relevant runtime libraries for these languages when deploying applications.)</li>
<li>.NET Full Trust to allow usage of additional .NET features such as Windows Communication Foundation (WCF).</li>
<li>From Full Trust .NET, developers can call into unmanaged DLLs</li>
</ul>
<p>FastCGI does, as they say, support PHP, Perl, or other development platforms but it’s hard to imagine a died-in-the-wool PHP/MySQL development team choosing to host their app on Azure.  Azure Services include the following:  Windows Azure (whose capabilities are listed above), .NET Services (which includes a Service Bus implementation), SQL Azure (which is a cloud-based form of Microsoft’s SQL Server DBMS), Live Services (which includes Identity, Directory, Search, and Geospatial services), Sharepoint Services, and Dynamics CRM Services.  Pricing for all of these services is essentially consumption-based, allowing a highly scalable application to be deployed at a fraction of the cost that a corresponding hosted app might cost, assuming of course that the application itself is built to scale and has no inherent bottlenecks and that your app has enough traffic to require a need for such scalability.  In an upcoming blog entry, I’ll take a deeper look at Azure SQL Services since the DBMS has become the primary building block of virtually all web applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linktogether.com/2009/08/07/azure-services-overview/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Chris Anderson to Keynote GrowSmartBiz Conference</title>
		<link>http://blog.linktogether.com/2009/07/30/chris-anderson-to-keynote-growsmartbiz-conference/</link>
		<comments>http://blog.linktogether.com/2009/07/30/chris-anderson-to-keynote-growsmartbiz-conference/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 17:29:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LinkTogether Blog]]></category>
		<category><![CDATA[chris anderson]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[growsmartbiz conference]]></category>
		<category><![CDATA[growsmartbusiness]]></category>
		<category><![CDATA[network solutions]]></category>
		<category><![CDATA[SBSI]]></category>
		<category><![CDATA[Small Business Success Index]]></category>
		<category><![CDATA[washington dc]]></category>

		<guid isPermaLink="false">http://blog.linktogether.com/?p=361</guid>
		<description><![CDATA[Network Solutions® is pleased to announce Wired Magazine Editor-in-Chief and Author of the books The Long Tail and Free Chris Anderson will be the keynote speaker for the GrowSmartBiz Conference.
“Chris Anderson is a well-renowned, engaging speaker and we are excited to have him join us at the GrowSmartBiz conference,” said Roy Dunbar, Chairman and CEO [...]]]></description>
			<content:encoded><![CDATA[<p>Network Solutions® is pleased to announce Wired Magazine Editor-in-Chief and Author of the books The Long Tail and Free <a href="http://www.longtail.com/" target="_blank">Chris Anderson</a> will be the keynote speaker for the <a href="http://guest.cvent.com/EVENTS/Info/Summary.aspx?e=41e08ae3-2ded-4c35-9c3a-67144406dfbe" target="_blank">GrowSmartBiz Conference</a>.</p>
<p>“Chris Anderson is a well-renowned, engaging speaker and we are excited to have him join us at the GrowSmartBiz conference,” said Roy Dunbar, Chairman and CEO of Network Solutions. “He has a tremendous background in technology and innovation, and truly understands the importance of small business, as well as the unique challenges small business owners face. This keynote – along with a well-established group of panelists – will ensure that attendees leave with executable strategies and tactics to grow their businesses.”</p>
<p>The GrowSmartBiz Conference will be held on September 29 at the Renaissance Hotel in Washington, D.C. The event is designed to help small businesses, from startups to well-established companies, successfully grow their enterprises and will include industry experts providing insight into key areas critical to small business growth and development.</p>
<p>Through keynote addresses, panel discussions and networking opportunities, attendees will leave the conference with:<br />
•    Insights into best practices of successful small businesses,<br />
•    Proven strategies for business growth despite the current economy,<br />
•    Executable, cost-effective ways to market and promote their businesses,<br />
•    Knowledge of what banks believe is the key to securing small business financing, and<br />
•    Actionable ideas for integrating and leveraging social media into existing marketing and communications efforts</p>
<p>Registration is open and all attendees who register before August 7 will receive $100 off their registration fee. For more information visit the <a href="http://guest.cvent.com/EVENTS/Info/Summary.aspx?e=41e08ae3-2ded-4c35-9c3a-67144406dfbe" target="_blank">GrowSmartBiz Conference site</a>. All attendees will receive Chris’ new book, Free, for free!</p>
<p>And, don’t forget to suggest and select a topic for one of the conference sessions! Visit <a href="http://growsmartbiz.ideascale.com/" target="_blank">http://growsmartbiz.ideascale.com/</a> for more details.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linktogether.com/2009/07/30/chris-anderson-to-keynote-growsmartbiz-conference/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BlackBerry Development Essentials</title>
		<link>http://blog.linktogether.com/2009/07/27/blackberry-development-essentials/</link>
		<comments>http://blog.linktogether.com/2009/07/27/blackberry-development-essentials/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 18:01:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LinkTogether Blog]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[blackberry browser]]></category>
		<category><![CDATA[blackberry developer's zone]]></category>
		<category><![CDATA[blackberry development]]></category>
		<category><![CDATA[MDS]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Rapid application development]]></category>
		<category><![CDATA[RIM]]></category>
		<category><![CDATA[smartphone]]></category>

		<guid isPermaLink="false">http://blog.linktogether.com/?p=358</guid>
		<description><![CDATA[In what seems like the blink of an eye – and after years of wireless industry analysts telling us this would happen &#8211; it seems the mobile device market has shifted rapidly away from standard mobile phone devices to “smartphone” devices equipped with full touch-screens and/or QWERTY keyboards, 3G wireless communications capabilities, GPS, 2 megapixel+ [...]]]></description>
			<content:encoded><![CDATA[<p>In what seems like the blink of an eye – and after years of wireless industry analysts telling us this would happen &#8211; it seems the mobile device market has shifted rapidly away from standard mobile phone devices to “smartphone” devices equipped with full touch-screens and/or QWERTY keyboards, 3G wireless communications capabilities, GPS, 2 megapixel+ cameras with video capture capabilities, and much more.  Clearly, the two market leaders at this point seem to be Research In Motion’s BlackBerry platform and the  Apple iPhone, both of which couldn’t be more different from a software development standpoint.  The iPhone requires development to be done on a MacOS computer, using the Apple iPhone SDK and Objective-C programming language, the output of which must be deployed and marketed through the Apple iTunes application store.  While it has obviously been wildly successful, it’s also obviously highly proprietary and targeted, at the end of the day, to commercial applications built for the general public at large.  The BlackBerry development options, meanwhile, are quite different and tend to cater to a more corporate/enterprise type of development crowd.</p>
<p>BlackBerry development options are perhaps a tad more confusing, primarily because they are more diverse and targeted at various types of applications and application developers.  Development options must first be broken down into two groups:  client-side and server-side.  Server-side development options include the ability for direct integration with the BlackBerry Enterprise Server product through the Administration or Transcoder APIs (<a href="http://na.BlackBerry.com/eng/deliverables/8891/Transcoder.pdf" target="_blank">http://na.BlackBerry.com/eng/deliverables/8891/Transcoder.pdf</a>) or for direct data synchronization between devices and server data stores using the Synchronization Server SDK (<a href="http://na.BlackBerry.com/eng/support/docs/subcategories/?userType=21&amp;category=BlackBerry+Java+Application+Development&amp;subCategory=Synchronization+Server+SDK" target="_blank">http://na.BlackBerry.com/eng/support/docs/subcategories/?userType=21&amp;category=BlackBerry+Java+Application+Development&amp;subCategory=Synchronization+Server+SDK</a>).</p>
<p>In terms of client development, BlackBerry developers have three primary options.  The first is the development of applications specifically designed for the BlackBerry browser itself, which could be as simple as development of a standard XHTML web application that uses basic functionality or as advanced as an AJAX-enabled web app that takes advantage of BlackBerry browser-specific capabilities such as data push and offline form queuing.  For those developers interested in development of richer client applications, there are two primary options:  Java application development and what RIM refers to as “Rapid” application development.  While obviously developing in Java can also be referred to as rapid application development, depending on the application complexity, what RIM means by “Rapid” (with a capital R) are apps developed using the BlackBerry MDS Studio and underlying MDS framework on devices that require the deployment and runtime utilization of a Blackberry Enterprise Server.  These apps will also only run on a Blackberry smartphone whereas Java apps built according to the pure J2ME spec could run on a Blackberry device or any other J2ME-equipped device.  Of course, the BlackBerry Java APIs include functionality that, if utilized, will lock your application into a Blackberry device anyways, but perhaps without the overhead of the Blackberry Enterprise Server requirement on the server-side.</p>
<p>To get started with BlackBerry development today, visit the BlackBerry Developer’s Zone at <a href="http://na.BlackBerry.com/eng/developers/" target="_blank">http://na.BlackBerry.com/eng/developers/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linktogether.com/2009/07/27/blackberry-development-essentials/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Rich Client Gets Richer With Silverlight</title>
		<link>http://blog.linktogether.com/2009/07/16/the-rich-client-gets-richer-with-silverlight/</link>
		<comments>http://blog.linktogether.com/2009/07/16/the-rich-client-gets-richer-with-silverlight/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 20:34:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LinkTogether Blog]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[mono project]]></category>
		<category><![CDATA[moonlight]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[windows presentation foundation]]></category>
		<category><![CDATA[wpf]]></category>
		<category><![CDATA[xaml]]></category>

		<guid isPermaLink="false">http://blog.linktogether.com/?p=354</guid>
		<description><![CDATA[Windows Presentation Foundation (WPF) is one of the cornerstones of the Microsoft .NET Framework 3.0, along with a couple of other W_F acronyms:  Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF).  It represents Microsoft’s next generation user interface framework and the future presentation layer of Microsoft Windows and many of Microsoft’s own products.  For [...]]]></description>
			<content:encoded><![CDATA[<p>Windows Presentation Foundation (WPF) is one of the cornerstones of the Microsoft .NET Framework 3.0, along with a couple of other W_F acronyms:  Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF).  It represents Microsoft’s next generation user interface framework and the future presentation layer of Microsoft Windows and many of Microsoft’s own products.  For those who haven’t worked with WPF before, screens can be built in an XML language known as XAML (Extensible Application Markup Language).  For example, Wikipedia (<a href="http://en.wikipedia.org/wiki/XAML" target="_blank">http://en.wikipedia.org/wiki/XAML</a>) provides the following example of the ubiquitous “Hello World” snippet:</p>
<p>&lt;Canvas xmlns=&#8221;http://schemas.microsoft.com/winfx/2006/xaml/presentation&#8221;&gt;<br />
&lt;TextBlock&gt;Hello World!&lt;/TextBlock&gt;<br />
&lt;/Canvas&gt;</p>
<p>To be clear, however, WPF is a heavyweight framework designed for development of line-of-business desktop applications and is not really streamlined for the Web (plus, it requires Windows).  Enter then, Silverlight (<a href="http://silverlight.net" target="_blank">http://silverlight.net</a>).  Silverlight is essentially a browser plugin that is very similar in concept to Adobe Flash in several key areas.  For starters, the download itself is very small, easy to install, and supported on multiple operating systems and web browsers.  Advanced applications that go beyond the capabilities of JavaScript/AJAX can be built in Silverlight, as with Flash, including sophisticated animations and extremely rich application UIs.  Silverlight also differs in a number of key areas, though, compared to Flash.  Flash is based on the proprietary ActionScript programming language which includes a very powerful class library that support server-side integration.  Silverlight, of course, is also based on proprietary languages such as XAML and C# but, while being proprietary, they are used on a daily basis by a large enough development community to be considered “standard” development tools.  Flash stands out above Silverlight primarily in its support in the design community (many of whom cut their teeth on other Adobe/Macromedia design tools…..not Visual Studio.NET) and its ability to run on Windows, Mac OS, and a number of Linux distributions and UNIX variants.  Microsoft did develop an open source version of Silverlight (named Moonlight &#8211; <a href="http://www.mono-project.com/Moonlight" target="_blank">http://www.mono-project.com/Moonlight</a>) that is now managed by the Mono Project team.  Moonlight tracks to Silverlight 1.0 where Silverlight is currently on the 2.0 release with a 3.0 release on the horizon.</p>
<p>If you’re looking to rapidly build a powerful Web UI using your existing .NET development skills, perhaps with back-end integration to existing WCF services you’ve already deployed, Silverlight should be at or near the top of your list of options.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linktogether.com/2009/07/16/the-rich-client-gets-richer-with-silverlight/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Go Offline with Google Gears</title>
		<link>http://blog.linktogether.com/2009/07/09/go-offline-with-google-gears/</link>
		<comments>http://blog.linktogether.com/2009/07/09/go-offline-with-google-gears/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 15:00:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LinkTogether Blog]]></category>
		<category><![CDATA[gears]]></category>
		<category><![CDATA[Geolocation API]]></category>
		<category><![CDATA[google gears]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile web applications]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://blog.linktogether.com/?p=351</guid>
		<description><![CDATA[As we’re all aware, Google has really been churning out the products over the past few years to the point that it seems hardly a week goes by without some potentially revolutionary new product or online service appearing out of thin air from the company and ready for use by millions of users.  In the [...]]]></description>
			<content:encoded><![CDATA[<p>As we’re all aware, Google has really been churning out the products over the past few years to the point that it seems hardly a week goes by without some potentially revolutionary new product or online service appearing out of thin air from the company and ready for use by millions of users.  In the past few weeks for example, major initiatives from Google including Wave (<a href="http://wave.google.com/" target="_blank">http://wave.google.com/</a>) and the Android Scripting Environment (<a href="http://google-opensource.blogspot.com/2009/06/introducing-android-scripting.html" target="_blank">http://google-opensource.blogspot.com/2009/06/introducing-android-scripting.html</a>) may rock the world….or maybe they won’t; sometimes the sheer volume of apps coming from the Google fire hose makes it hard to separate what’s great from what’s not.</p>
<p>One product that is actually interesting and is starting to show the signs of catching fire is the platform known as Google Gears (<a href="http://gears.google.com" target="_blank">http://gears.google.com</a>).  Google describes Gears as “an open source project that enables more powerful web applications, by adding new features to your web browser”.   I’ve been working with Gears for a few weeks and am excited about the project’s potential so, after first reading and thinking about that description, I thought that perhaps it is a bit underwhelming.  However, after reflecting on it, I suppose that the description pretty much sums up exactly what the product is:  an installation on your desktop computer, laptop, netbook, or mobile device that simply makes the browser on that device more powerful.  The three primary features mentioned by Google on the project’s home page are:</p>
<ol>
<li>Let web applications interact naturally with your desktop</li>
<li>Store data locally in a fully-searchable database</li>
<li>Run JavaScript in the background to improve performance</li>
</ol>
<p>The first item will be of interest to mobile developers (did I mention that Gears is currently supported on Android and Windows Mobile and there are rumblings that it will be on Blackberry in 2009?).  Gears includes a Geolocation API that allows a developer to determine a user’s current location in a device-agnostic fashion.  A single API can be used to retrieve the device’s location based on on-board GPS, cellular network positioning, or via your IP address (worst case).  A Database API supports direct integration with a SQLite database, again via JavaScript.   Additional APIs support automated retrieval of resources from the server that can be stored on a local cache on the device and the subsequently used as “offline” resources, allowing mobile applications to be built that can be run effectively with no network connection.</p>
<p>Gears most certainly doesn’t make building sophisticated mobile apps easy….there’s still quite a bit of design and architecture work to be put in to make a powerful yet user-friendly mobile application.   What’s key, though, is that it – for the first time – makes it possible to build cross-platform mobile web applications that can function equally well in online or offline mode.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linktogether.com/2009/07/09/go-offline-with-google-gears/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>High-End Java Scalability Using Terracotta</title>
		<link>http://blog.linktogether.com/2009/06/30/high-end-java-scalability-using-terracotta/</link>
		<comments>http://blog.linktogether.com/2009/06/30/high-end-java-scalability-using-terracotta/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 14:29:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LinkTogether Blog]]></category>
		<category><![CDATA[java applications]]></category>
		<category><![CDATA[network attached memory]]></category>
		<category><![CDATA[terracotta]]></category>
		<category><![CDATA[terracotta functions]]></category>
		<category><![CDATA[terracotta platform]]></category>
		<category><![CDATA[Terracotta Server Array]]></category>

		<guid isPermaLink="false">http://blog.linktogether.com/?p=347</guid>
		<description><![CDATA[The marketing tagline for the popular Terracotta platform (http://www.terracotta.org) pretty much sums up what this popular Network-Attached Memory system allows application developers to add into their apps.  The slogan is:  “Kill Your Database….Before You Kill Your Database”.  They are referring to the unnecessary load you may be placing on your application database through repetitive queries [...]]]></description>
			<content:encoded><![CDATA[<p>The marketing tagline for the popular Terracotta platform (<a href="http://www.terracotta.org" target="_blank">http://www.terracotta.org</a>) pretty much sums up what this popular Network-Attached Memory system allows application developers to add into their apps.  The slogan is:  “Kill Your Database….Before You Kill Your Database”.  They are referring to the unnecessary load you may be placing on your application database through repetitive queries of read-only or read-mostly data.  Terracotta functions as a distributed object cache for Java applications and includes plugins for a host of popular frameworks and APIs, including Hibernate, Lucene, Quartz, and Spring.  Terracotta supports distributed management of all applications objects in a server farm and, because it is a pure Java solution, it allows any serializable Java object to be stored natively into the distributed network-attached memory through a set of seamless API calls.</p>
<p>In fact, at its absolute simplest, no API calls whatsoever are needed&#8230;.check out their “Hello Clustered World” example to see this magic in action (<a href="http://www.terracotta.org/web/display/orgsite/Hello+Clustered+World" target="_blank">http://www.terracotta.org/web/display/orgsite/Hello+Clustered+World</a>).  In this example, a local variable in a class is used to store an integer value.  This member variable is registered inside an application XML file that is passed to the Terracotta runtime as it starts up.  Using reflection and other sophisticated capabilities, a running Terracotta Server Array is used to store the value of the member variable.  When a second application instance is started up and it retrieves the variable’s value, it does so using the Terracotta Server Array.  The effect of this is that all data is clustered across JVMs at runtime; as any data is updated, Terracotta handles reflection of those field-level changes across all instances in the cluster, as required.  This obviously has a number of uses in most applications, from data caching and clustered data storage, to distributed session management for fault-tolerant, highly available applications.  On the downside, however, it should be pointed out that Terracotta is a Java-only solution so if you’re building an application consisting of non-Java technologies (or as perhaps as part of a larger service-oriented architecture), it may not be a perfect fit.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linktogether.com/2009/06/30/high-end-java-scalability-using-terracotta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Should I Migrate My Site To ASP.NET MVC?</title>
		<link>http://blog.linktogether.com/2009/06/26/should-i-migrate-my-site-to-aspnet-mvc/</link>
		<comments>http://blog.linktogether.com/2009/06/26/should-i-migrate-my-site-to-aspnet-mvc/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 21:59:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LinkTogether Blog]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Model-View-Controller]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[reuse models]]></category>
		<category><![CDATA[reuse views]]></category>

		<guid isPermaLink="false">http://blog.linktogether.com/?p=345</guid>
		<description><![CDATA[I’ve been getting paid to write software since 1992 and at least half of that time has been spent developing for, or in the vicinity of, Microsoft technologies such as C/C++, Visual Basic, COM, DCOM, and .NET.  If there’s one thing about the company it’s that they routinely put out new technologies and toolkits from [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been getting paid to write software since 1992 and at least half of that time has been spent developing for, or in the vicinity of, Microsoft technologies such as C/C++, Visual Basic, COM, DCOM, and .NET.  If there’s one thing about the company it’s that they routinely put out new technologies and toolkits from well-intentioned teams within the company bent on carving out a niche for their technology or vision for the industry (ActiveX or Windows DNA, anyone?)   Consequently, it’s no surprise that many experienced developers tend to look at “offshoot” products from Microsoft with a somewhat skeptical eye.  Dozens, if not hundreds, of valuable, well though-out projects have been released upon the development community to mild or even great acclaim, only to suddenly or gradually be phased out a short while later, due to changing political winds or conditions within the company.</p>
<p>Against this backdrop, ASP.NET MVC (<a href="http://www.asp.net/mvc">http://www.asp.net/mvc</a>) is a recent release designed to provide ASP.NET developers with a true model-view-controller (MVC) implementation for use in their ASP.NET applications.  For the uninitiated, model-view-controller is the name of a pattern used to separate an application’s business logic (the model) from the presentation layer (the view), all managed by one or more controllers that act as traffic cops and handle the passing of data between the model and the view.  In contrast, standard ASP.NET Web Forms are more accurately referred to as a Model-View architecture, with the ASPX itself being the “View” and the ASPX code-behind file filling the role of the model.  The primary difference between ASP.NET and ASP.NET MVC is the introduction of a controller that dynamically routes application data from the client to the model to the view and back to the client.  This sort of architecture has several advantages including:</p>
<p>•    Cleaner separation of business logic from presentation code<br />
•    Ability to reuse views for multiple models or, conversely, the ability to reuse models for multiple views<br />
•    Better support for unit testing; usually done against controller actions (models)</p>
<p>While ASP.NET MVC certainly represents a “cleaner” step forward, as compared to the Web Forms model, and it will be an approach familiar to many Java developers used to working with Struts, PHP developers with Cake experience, and Ruby On Rails fans, the question remains:  should you migrate your existing ASP.NET site to ASP.NET MVC?  This is obviously not an easy question to answer in a vacuum without knowledge of the specific business environment in which you operate (could you afford to spend 1, 3, or even 6 months rewiring/rewriting an application that currently works just fine?).  A cost-benefit analysis would need to be performed to determine if the amount of time invested into the shift to ASP.NET MVC (i.e. the cost) will be returned to your team in the future (i.e. the benefit) based on improved maintenance, possibly faster development, and improved unit testing of the overall application.  In addition, there is a bit of a learning curve involved with the switch to an MVC implementation so ideally your team has at least a few members who’ve worked with alternative MVC frameworks, probably on other development platforms.  Fortunately, the ASP.NET MVC site includes a wealth of documentation and samples that go a long way to alleviating any immediate fears you may have.  Be sure to check those out and perhaps prototype out a few sample screens from your current application to get a feel for the complexity and the time that will be required to complete the shift before plunging in feet first.  Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linktogether.com/2009/06/26/should-i-migrate-my-site-to-aspnet-mvc/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Open Source Database Options</title>
		<link>http://blog.linktogether.com/2009/06/22/open-source-database-options/</link>
		<comments>http://blog.linktogether.com/2009/06/22/open-source-database-options/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 13:04:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LinkTogether Blog]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[DB2]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[Firebird]]></category>
		<category><![CDATA[Ingres]]></category>
		<category><![CDATA[IT professional]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Sun Microsystems]]></category>

		<guid isPermaLink="false">http://blog.linktogether.com/?p=333</guid>
		<description><![CDATA[Oracle’s recent purchase of Sun Microsystems did create some buzz among a group of IT professionals who haven’t had a lot to buzz about lately:  database developers and administrators.  The database product landscape is one that saw seismic upheaval in the 1980’s and 1990’s, only to have the weaker entrants shaken out and a protracted [...]]]></description>
			<content:encoded><![CDATA[<p>Oracle’s recent purchase of Sun Microsystems did create some buzz among a group of IT professionals who haven’t had a lot to buzz about lately:  database developers and administrators.  The database product landscape is one that saw seismic upheaval in the 1980’s and 1990’s, only to have the weaker entrants shaken out and a protracted cold war entered into by the industry’s three primary players:  Oracle, Microsoft SQL Server, and IBM DB2.  At some point in the past decade, however, a young upstart named MySQL appeared on the horizon, riding the open source wave onto millions of servers to the point that the term “LAMP” (Linux, Apache, MySQL, and PHP) became a standard deployment moniker for many default web server configurations.  The company behind MySQL (and its employees) were eventually acquired by Sun Microsystems and now all of those assets are owned lock, stock, and barrel by Oracle Corporation, developer of the venerable Oracle DBMS.  At the same time, MySQL is an open source database (feel free to download the source code yourself and contribute at <a href="http://www.mysql.org">http://www.mysql.org</a>).  It remains an open question as to what Oracle intends to do with MySQL….a quick Google search on “Will Oracle Kill MySQL?” leads to a wealth of articles that by turn state:</p>
<p>•    Yes, they will<br />
•    No, they won’t<br />
•    That is crazy talk<br />
•    They won’t but they should<br />
•    MySQL will kill itself</p>
<p>…and so on.  To summarize, no one knows for sure at this time but MySQL remains an extremely popular, low-cost option for small-to-medium sized websites that aren’t in high-availability options such as clustering, failover, mirroring, etc.  Yes, some of those capabilities are available for MySQL but they’re nowhere as mature as the options available from Oracle.</p>
<p>Of course, it should be noted that MySQL is not the only open source database available by any means.  Another extremely popular option is the PostgreSQL (<a href="http://www.postgresql.org">http://www.postgresql.org</a>), which touts itself as “The World’s Most Advanced Open Source Database”.  PostgreSQL has supported full stored procedure and trigger capabilities for several years, whereas MySQL added those features in the MySQL 5 release only relatively recently.  While PostgreSQL and MySQL represent the lion’s share of the installed open source DBMS products on medium-to-large scale websites, there are a number of other smaller projects that remain quite popular in lower tier environments, including SQLite (<a href="http://www.sqlite.org">http://www.sqlite.org</a>), Ingres (<a href="http://www.ingres.com">http://www.ingres.com</a>), and Firebird (<a href="http://www.firebirdsql.org">http://www.firebirdsql.org</a>).  Before choosing a database to use for your next project, check all of these options out and pick the one that best meets your needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linktogether.com/2009/06/22/open-source-database-options/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Inject A Little Flash Into Your Site</title>
		<link>http://blog.linktogether.com/2009/06/16/inject-a-little-flash-into-your-site/</link>
		<comments>http://blog.linktogether.com/2009/06/16/inject-a-little-flash-into-your-site/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 13:49:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LinkTogether Blog]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[authoring]]></category>
		<category><![CDATA[CS4]]></category>
		<category><![CDATA[develop]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.linktogether.com/?p=331</guid>
		<description><![CDATA[For some reason when I wrote the phrase “Inject A Little Flash Into Your Site”, the Annie Lennox/Al Green song “Put A Little Love In Your Heart” popped into my head (http://www.youtube.com/watch?v=YC2Q3FdpX6I).  If the same thing has now happened to you, I apologize in advance….not because there’s anything really wrong with the song (although I’m [...]]]></description>
			<content:encoded><![CDATA[<p>For some reason when I wrote the phrase “Inject A Little Flash Into Your Site”, the Annie Lennox/Al Green song “Put A Little Love In Your Heart” popped into my head (<a href="http://www.youtube.com/watch?v=YC2Q3FdpX6I">http://www.youtube.com/watch?v=YC2Q3FdpX6I</a>).  If the same thing has now happened to you, I apologize in advance….not because there’s anything really wrong with the song (although I’m not sure there’s much right) but because it has nothing to do with the topic of the day:  Adobe Flash.  Flash is the now near-ubiquitous multimedia platform originally developed by Macromedia and now developed and marketed by Adobe Systems.  Several years back, many sites shied away from client plugin technology such as Flash, Java applets, or Microsoft’s ActiveX but, for Flash at least, those days are long gone.  It’s difficult to surf the Web for more than a few minutes without coming across at least one site that uses Flash for embedded video, interactive advertising, online games, or even application delivery.  Despite its near-ubiquity, I’ve found that most developers are still somewhat unaware of Flash, from a software development standpoint so I thought I’d at least provide some pointers to get you started.</p>
<p>To begin with, Flash applications are built using the Adobe Flash CS4 (<a href="http://www.adobe.com/products/flash">http://www.adobe.com/products/flash</a>) authoring environment.  The fact that CS4 is referred to as an “authoring environment” and not an “integrated development environment”, or IDE, as are used by most other software development technologies should give you some clue that Flash development can be a bit different.  The original versions of Flash were built to generate animations and interactive presentations that were driven by user interaction.  Therefore, internals to Flash applications are often built around the concept of a “timeline” which is basically just what it sounds like:  a line of events that occur one after the other in order to traverse over the complete flow of the application.  In 2004, Adobe launched the ActionScript 2.0 language which has been followed by the ActionScript 3.0 language.  ActionScript is sort of a cross between Java and JavaScript, in terms of syntax and allows developers to build object-oriented applications using the core Flash object library, possibly extended by user-defined objects as well.</p>
<p>Recent enhancements around Flash include the upcoming release of a mobile Flash player for handheld devices and the announcement of the Flash AIR platform.  AIR (<a href="http://www.adobe.com/products/air">http://www.adobe.com/products/air</a>) marks Adobe’s foray into the world outside the browser by providing a cross-platform runtime environment that allows rich client applications to run on user’s desktops (effectively allowing Flash to compete with other technologies such as Java Standard Edition, JavaFX, Silverlight, and Microsoft .NET on the client).  To learn more about Flash development, visit <a href="http://www.adobe.com/devnet/flash">http://www.adobe.com/devnet/flash</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linktogether.com/2009/06/16/inject-a-little-flash-into-your-site/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
