Monthly Archives: January 2010

Stop Using IE6

You claim your company has too many mission-critical intranet apps that depend on IE6 peculiarities, or that it’s just too expensive to upgrade users to another browser. Well the rest of the world is tired of having to deal with your broken and insecure infrastructure. Upgrade now.

Browser statistics are not totally consistent, but are sad no matter which ones you look at. Somewhere between about 10 and 20 percent of Internet users are saddled with the miserable Internet Explorer 6 browser that was first released in August, 2001.

Although it’s had nearly a decade of security patches applied to its now-weathered surface, IE6 doesn’t have any more features or web standards compliance than it did when it shipped in 2001. Those of you who are using IE6, think about that for a moment. Nearly any corporate worker turns to their browser dozens of times a day, doing work that’s important to the company. Is there any other tool they have that hasn’t been updated since 2001? If you don’t see a problem with that, let’s take away your BlackBerry or iPhone and replace it with a Motorola V200 Personal Communicator. After all, that baby was state of the art in 2001. If it did the job then, it’s fine for 2010, right?

Of course that’s crazy. Mobile devices have made incredible progress in the past nine years, and they have features we couldn’t have dreamed of back then. Browsers have made the same progress, too, and by using IE6 you’re holding back your users and your company. Worst of all you’re holding back the industry. Until IE6 usage drops below something like 5 percent of all users, web developers will be forced to accommodate it. That limits the features that developers can put into web-based products, and increases development time as they try to deal with a browser that should have died years ago.

Don’t care which browser you upgrade to when you drop IE6. Stay with Microsoft and use IE8, or switch to Firefox, Chrome, or Opera if you’d like. Just make the switch, now. Only then can our long Internet nightmare can finally be over.

Developing for the iPhone – what you need to know

Many IT companies say the future is mobile. This is not going to be true till the data rates become affordable, but perhaps the large touch screen of the iPhone is a taste of things to come.

Its quite excited to learn about developing for this new platform and see what we can create. Will we be able to use my existing web development and programming skills, or will we need to learn a new set of skills. This is what we’ve learnt so far about what we’ll need to know.

There are two options when developing for the iPhone (or iPod touch): Develop a web application or develop a native iPhone application. There are pros and cons for both, and both require a completely different set of skills. Until recently you could only develop web applications, but Apple has recently released a beta of the iPhone SDK building up towards the planned opening of the iPhone App Store.

Developing a web based iPhone application

If you’re a web developer, then this is going to be the easiest and possibly best option. You can use your existing web development skills and you can host your application on your current server.

Using an iPod touch we can test websites on the iPhone. They’re the same except the iPod touch doesn’t have all the applications the iPhone does (most notably, and understandably the phone application). However, we’ve discovered that we don’t even need an iPod touch. The iPhone Software Development Kit (SDK) includes an iPhone simulator. You will need a Mac though to run the SDK.

If you have an existing web application, it will probably already work on the iPhone, unless it uses Flash or a few other non-supported technologies. There are several things you could do to make it work better on an iPhone, some of these things will be helpful for other mobile devices.

You can add an iPhone, or small screen specific style sheet. This will allow you to lay things out better for the available screen size. You may also wish to take advantage of some Safari and iPhone specific CSS. For example there’s CSS support for simple animation and transitions.

You may wish to detect that the browser is on an iPhone and serve them a specialised version. Facebook is an excellent example of this and creates an experience that is very similar to using a native iPhone application.

You can make use of iPhone JavaScript handlers that respond to touch gestures. The touch interface is one of the things that makes the iPhone shine, so it’d be great to take advantage of this in your web apps.

There are also some custom meta tags which allow you to control the screen area and whether the user can zoom. You can also add custom links that will launch other iPhone applications. You can even store data in a client side SQLite database, which is apparently part of the HTML 5 spec.

There’s a lot you can do and that just scratches the surface. Using and building upon you existing HTML, CSS and JavaScript knowledge you could make something very exciting.

Now that all sounds great, but there are limitations with an iPhone web app. Firstly it’s not going to work when the user is offline, and it’s going to be slow when their connection is slow. You’re also not going to be able to access all of the features of the device such as its location awareness, orientation awareness or be able to access things like the address book. If you want to make use of all the power and all the features then you’re going to have to make a fully native iPhone application.

Developing a native iPhone application

If you’ve previously developed software for Apple Macs then you’re probably going to find you can quite easily turn those skills to iPhone development. If you haven’t then there’s a lot your going to need to learn. It’s aimed at software developers, rather than web developers and the skills needed are very different.

Before you begin there are a few things you will need. You’ll need a Mac, you’ll need to download the iPhone Software Development Kit (SDK) and it’d help for testing if you had a iPhone or an iPod touch (this last bit isn’t essential as there is a simulator).

The SDK includes all the tools you’ll need to develop iPhone applications. These tools include an interface designer, a code editor, profiling tools and an iPhone simulator. They’re completely free, but there is an option to join the iPhone Developer Program. This costs $99. As far as we can tell, you need to join this if you wish to share your applications with anyone. Otherwise you can only install your programs on one designated test iPhone. We’ve also read in forums that the Developer Program is so popular that Apple are putting everyone on a waiting list. We thought we’d wait till we created a program worth sharing before I joined the program. There’s a lot to learn before we can even think about doing this.

If you’ve not done Mac development before, the first you’ll need to learn is the programming language Objective C. Knowing PHP and JavaScript, probably isn’t going to help you that much, although it’d be a start. It’s most similar to C and C++, although knowing something like Java, Ruby on Rails, or ASP.NET would also be helpful. Although I’ve used C++ in the past and currently use ASP.NET, I’ve found Objective C too different to be able to pick up from code samples. I’m currently reading Apple’s reference guide to it and I’ve been reccommended the book Programming in Objective C.

You’ll also need a good understanding of object orientated programming. If you’ve used Ruby on Rails, you’ll be pleased to know that they seem to make heavy use of the Model View Controller architecture that Rails is built on.

All the actual fun stuff seems to be contained in the various frameworks that provide the iPhone functions and features that your application can use. I’ve not had time to explore this fully as learning Objective C has slowed me down a bit. These frameworks seem to be the Foundation Framework, UIKit and the Cocoa Touch Framework. You’ll need to understand the basics of these frameworks so you can start making use of the functions they provide.

Once you’ve got your head round Objective C you can start looking through all the code examples they’ve got. It’s probably a good way to start understanding how all the framework features work.

Why You Need A SaaS Strategy

Business technology leaders find themselves in something of a cloud computing deluge, showered by vendor marketing, new services, and even CEO questions about their “cloud strategy.” Much of the exuberance centers on the kind of computing-by-the-hour service that Amazon.com and others sell but most enterprises are only starting to ponder.

Amid the lofty aspirations, few have noticed just how powerful and grounded a force software as a service has become. The impact that SaaS will have on IT organizations is profound, and as business technology leaders, we need to ensure that our companies are ready for it.

While SaaS shifts software deployment and maintenance burdens to the service provider, freeing up resources for other projects, IT is at the mercy of the provider for availability, data security, regulatory compliance, and other key issues. Outages will halt business, and poor response times will hamper productivity. SaaS apps aren’t just a nice-to-have. As per a survey, Three-fourths of companies using SaaS consider application services extremely or critically important to their organizations. About one-third describe their SaaS apps as mission critical.

Despite that importance, too many IT leaders treat SaaS ad hoc. Of those using SaaS, 59% say it’s a tactical point solution, and only 32% consider it part of their long-term strategy. CIOs will get the most from SaaS by making it part of an overall enterprise architecture. We’ll spell out nine key areas an effective SaaS strategy must address.

Why is SaaS on such a roll? Surprisingly, the No. 1 reason is speed to implementation–37% of SaaS users cite it as a major driver. As companies come out of the recession, with pent-up demand for new capability and often smaller IT staffs, this factor could become even more important. Speed is followed by capital expense savings, cited by 28% of survey respondents, and operational expense savings, cited by 25%.

SaaS isn’t universal. But among the 47% of our respondents who use it, SaaS has moved far beyond sales force automation and CRM. Human resources, Web presence, e-mail, service desk, collaboration, financial, and backup apps all are used by a fourth or more of SaaS customers. At my firm, Fusion PPT, a boutique federal consulting firm with staff working mostly at client sites, we use SaaS for 100% of our business server applications. From invoice, billing, and time sheets to sales pipeline management to e-mail, we don’t own a single server or software license.

We went with SaaS for the main reasons the survey respondents are: quick setup and reduced capital costs. But another benefit, which will be increasingly powerful, is employee demand for mobility. SaaS will force IT organizations to make more apps securely accessible outside their corporate environment, be it remote offices, on the road, via a smartphone, or from a home PC. The demand for remote access may outpace IT’s ability to deliver apps on a variety of platforms. For browser-based SaaS apps, mobile access is the name of the game.

For the half of survey respondents that haven’t moved to SaaS, security’s one of the biggest barriers: 39% cite it as a major obstacle. However, only slightly fewer cite the fact that they still don’t know much about SaaS. Perhaps the fervor over cloud computing is overshadowing the education about simple software as a service. Data ownership is also a big obstacle, with 31% citing it as a reason they’re not using SaaS. In speaking with SaaS vendors, they say security, privacy, and portability are the three objections they hear most. Portability will likely be one of the biggest worries this year, as companies pour more data into these apps and, having gained some SaaS experience and seen the growing number of choices, start switching providers.

9 Keys To SaaS Strategy

SaaS strategy is getting short shrift–perhaps because it’s often being forced on IT. Among SaaS users, only 37% say the IT organization is the primary driver to use it; 54% say another C-level exec or line of business is behind it.

SaaS should be on the table any time a new IT-driven capability is brought into the company, and IT should have a clear framework for evaluating and operating it. In developing that SaaS strategy, teams should address these nine key areas.

Data interoperability challenge for cloud computing

Interoperability has not been a huge focus around the quickly emerging cloud computing space. Other than “we support interoperability” statements from the larger cloud computing providers, there is not a detailed plan to be seen. I’ve brought it up several times at cloud user group meetings, with clients, and at vendor briefings, and I often feel like I’m the kid in class who reminds the teacher to assign homework.

Data interoperability is not that hard. You’re dealing with a few key concepts, such as semantic interoperability, or the way that data is defined and stored on one cloud versus another. Also, you need to consider the notions of transformation and translation, so the data appears native when it arrives at the target cloud, or clouds, from the source cloud (or clouds). Don’t forget to add data governance and data security to the mix; you’ll need those as well.

There has been some talk of concepts such as the Intercloud, or a data exchange system running between major cloud computing providers. Also, a few cloud standards organizations, such as the Open Cloud Consortium, are looking to drive some interoperability standards, including a group working on standards and interoperability for “large data clouds.”

So how do we get down the path to data interoperability for the clouds? Don’t create yet another standards organization to look at this by committee. They take too long, and this is something that’s needed in 2010 to drive cloud computing adoption. Instead, the larger cloud computing providers should focus on this behind the scenes and create a working standard enabling technology to solve the data interoperability problem. If the larger providers are all on the same page, believe me, the smaller providers will quickly follow.

Genuitec introduces MyEclipse IDE for the Spring Framework

Genuitec will introduce on Tuesday a version of its MyEclipse IDE for use with the popular open source Spring Framework for Java development, sans the backing of the major developer of the framework itself, SpringSource.

Also in the Spring vein Tuesday, SpringSource is discontinuing dm Server, a Java application server based on modular OSGi technology, as a commercial product. SpringSource is looking to farm out continued development of dm Server to the Eclipse Foundation.

Genuitec, for its part, is offering its $199-per-year MyEclipse for Spring IDE at the end of this month. Based on a collaboration between Genuitec and Skyway Software, MyEclipse for Spring offers MyEclipse functionality as well as scaffolding technology allowing access to editors for rapid creation of applications, Genuitec said. Application scaffolding generates large portions of the application using best practices, said Todd Williams, Genuitec vice president of technology.

The MVC (Model View Controller) scaffolding generates Spring MVC CRUD (Create Read Update Delete) applications from database tables, plain old Java objects and Java Persistence Architecture entities.

Currently, Spring developers can use the Genuitec MyEclipse Pro IDE for code-level development. “What’s new [with the Spring-centered IDE] is a level above [Pro] that enables you to create entire tiers or connected tiers of the application,” Williams said.

Spring technologies supported include “everything from their database persistence layer through their services layer through [Spring] Web Flow,” which is Spring GUI technology, Williams said.

But Adam Fitzgerald, director of developer relations at SpringSource, was dismissive of the Genuitec product. He instead endorsed the free SpringSource Tool Suite as a mechanism for building Spring applications.

“I would recommend going with the tool that comes [from] the company that created Spring,” Fitzgerald said. “[The suite] really is the most cutting-edge way to build Spring apps.”

Also featured in the MyEclipse for Spring are project bootstrapping, for building Spring configuration files and adding Java libraries and Web resources. Enhanced development editors offeri simplified configuration of services, controllers and Spring Web Flow.

Meanwhile, SpringSource Tuesday will detail plans to hand off development of dm Server to Eclipse, but with SpringSource still participating in development and offering support subscriptions. The project under Eclipse jurisdiction would be called Virgo; the formal switchover to Eclipse is expected to take a couple of months, Fitzgerald said.

In explaining the move, Fitzgerald cited difficulties in getting mass adoption of OSGi at the enterprise level, even though OSGi offers greater control of system dependencies and modularization of application components.

“Certainly, dm Server was not as successfully adopted [as] something like [Apache] Tomcat or [SpringSource] tc Server,” but there have been successful use cases, said Fitzgerald.

The move to Eclipse means project hosting, home pages, forums, and downloads will be at Eclipse.org. Licensing will change from a largely GPL license to Eclipse Public License.

The combination of the license change and community hosting at Eclipse.org opens the code base to a much broader set of users and developers, according to SpringSource. “We think this is an opportunity for opening up dm Server to really push OSGi to the forefront of enterprise Java development and make it more than just a tool for cutting edge companies,” Fitzgerald said.

SpringSource Tuesday is unveiling dm Server 2.0; the planned 2.1 follow-up release would be developed by Eclipse. The Eclipse nickname for the project is Virgo.

Version 2.0 of dm Server features changes to how modules are provisioned; modules can be built across local and remote repositories. SpringSource debuted dm Server in Fall 2008.

Store Any File on Google Docs

In a few weeks, Google plans to allow Google Docs users to upload and store any type of file, up to 250 MB in size.

“No, this is not GDrive,” said Google product manager Vijay Bangaru in a phone interview, who characterized the announcement as an extension of Google Docs.

The existence of GDrive has been rumored since at least 2006.

A year ago, Brian E. Ussery, director of search engine optimization at Search Discovery, spotted a reference to GDrive in a JavaScript localization file associated with Google Pack, Google’s free software bundle. The file, which has since been altered to remove any reference to GDrive, described GDrive thus: “GDrive provides reliable storage for all of your files, including photos, music and documents. … GDrive allows you to access your files from anywhere, anytime, and from any device — be it from your desktop, Web browser, or cellular phone.”

The ability to upload, share, access, and search any file of 250 MB or less isn’t quite the ultimate cloud storage solution — graphics professionals, for example, often use much larger files — but it’s a significant expansion of the utility of Google Docs for making modestly-sized files more easily accessible online and for collaboration.

Instead of sending five attachments out, there’s a folder that you always go to. “In terms of consumers, it replaces all those times you e-mail a document to yourself.”

And there’s more to it for business users. Using the Google Documents List Data API, Google Apps administrators can manage permissions for all their users and monitors files shared outside their domain. They can also create applications that can handle batch uploading, updating, and deletion of files stored in Google Docs.

Three Google partners have already build such applications for Google Apps Premiere Edition users: Memeo Connect, a desktop client for migrating files into Google Docs, accessing them locally or in the cloud, working offline on Google Docs files, and file synchronization; Syncplicity, which provides automated file back-up, management, and sync services; and the Manymoon online project management app.

Being able to store any file does not mean any file will be viewable in one’s browser. Google product manage Anil Sabharwal said that Google has focused on making Office files, PDFs, and image formats viewable through Google Docs and that additional formats will be added over time.

All users get 1 GB of free storage and more storage can be purchased by both consumers and enterprises.

For consumers, the price for extra storage is for $0.25 per GB per year. Consumers who purchased extra storage for Gmail (currently includes 7+ GB free) and Picasa (includes 1 GB free) can now use their paid storage allotment with Google Docs.

For business users, extra storage cost more due to Google’s service level commitment: $3.50 per GB per year or 3.00 per GB per year in the EU.

The new storage capabilities in Google Docs will be enabled in the next few weeks. Once that happens, users will see a notification message upon signing in to their Google Docs account.

A great Flash Encryption tool – Flashincrypt

If you’ve spent many hours creating some cool or innovative Flash project. Like it or not, all the images, sound, and ActionScript code you created can easily be “ripped” or copied out of your Flash movie.

If you have worked really hard, it hurts to see someone steal your work. Programs such as Action Script Viewer (ASV), SWF Scanner and SWF Decompiler MX 2005 are utilities that can save you day when you loose the FLA for a file, but they can also be used for looking into other peoples programming.

Many developers want to find some good ways to protect their work. Unfortunately there are no methods built into Flash to prevent such programs from showing your source to the world, and there is not any third party tools can really protect your work before Flashincrypt releases.

Preventing someone from accessing your file is ultimately the best way to stop them reading your code, but it’s often not practical when you wish to show your work to the world.

Flashincrypt is a professional program that can help you to protect your flash work quickly and easily. It can prevent flash decompiler tools from extracting actionscript and resources. It can add protection to the .swf file. It does not add the normal protection like Flash 5 or Flash MX. It use DMM(dynamic memory modify) technology and Actionscript obfuscation technology in this product. So it can be effective on the most popular tools on the market to decompile Flash.

For most user who use flash decompiler tools, they do not like to steal picture resources, sound resources and shape resources, because it is so obvious to be caught. They like to steal “actionscript”. Because there are hidden passwords. Because there are scripts that block the normal playing of this movie. Because there are functions they can modify and use with less risk of being caught. Obfuscation is the process of hiding something, in this case your Actionscript code. Flashincrypt hides your coding logic and re-usability by scrambling your function, argument and variable names so that it isn’t human readable but still readable by the Flash Player. Flashincrypt can make some decompiler tools crash. Some decompiler tool can open the protected file, maybe they can extract some sound resources or shape resources, but they can not read action script correctly. In fact, for most other decompiler, when the script fails to match patterns, the decompiler crashes.