Search
Feeds

Category: Technical Articles

Aug 14 2008

Flex: Calling Methods of the Parent From a Custom Component

The other day I was working on an event management for a client. It's a very basic app: a few different "views" to handle the administration of the application. Each view was built using a custom component. I was refactoring code and adding enhancements when I noticed something interesting in all of them. Every component had a reference to the parent application and was calling methods directly. This immediately fired off some big warnings in my mind. What happens if we want to use the component in a different application or the parent application changes? Then we would need to go in and modify every component to be able to work with the parent application. With a larger application this can be time-consuming and expensive to do.

Read more...

1 comments - Posted by Jeff Anderson at 5:00 PM - Categories: Technical Articles | Adobe Flex

Aug 10 2008

Getting Mylyn working with VisualSVN 1.5.2 and Trac 0.11

Recently we moved our Subversion system to VisualSVN Server. The primary purpose for doing this was to provide easier maintenance of our SVN repositories. So far we are really liking the system and the ability to easily manage our version control.

Using Trac was is also a requirement for us. It is a valuable tool for us in managing bugs, issues and tasks. The folks at VisualSVN have made this integration easy with a tutorial and easy install package you can find here. In all, it took about an hour to setup and configure VisualSVN Server with Trac. Moving our repository to VisualSVN Server proved a bit more work. Since we had a single repository for all of our projects we decided that in the process we would also split our repository into a seperate repository for each client. This would allow us to archive more easily, as well as provide a seperate Trac for each client we work with. I followed the instructions on the 2 Tablespoons blog which made the entire thing a simple process, albeit a bit time consuming. If you are doing this on Windows platform keep in mind that the "cat" command can be replaced with "type".


Lastly, and the reason for this post, is we wanted to get Mylyn up and running in our environment. Mylyn is a great plugin for Eclipse that allows you to manage tasks in Trac via your Eclipse IDE. I did a fair bit of research on the tool and found a lot of good feedback, and something we needed desperately in our shop. Unfortunately, it's not as easy to get up and running on VisualSVN Server for a couple of reasons:

Mylyn does not work with Trac 0.11 out of the box. You need to add the XMLRPC components. Stephen Moretti provides a great blog post on how to get around this on his blog.


Due to the way VisualSVN Server is setup, the above method did not work very well. I received errors from the easy_install process and could not continue. Not to be discouraged, I searched around for an easier method. After a bit of toying around, I realized Trac has a built-in plugin instaler in the admin. All it requires is a Python egg to be uploaded and it handles the rest!

You can find out more about the XMLRPC plugin on the Trac Plugin site. I simply downloaded the zipped source and unzipped it on the server. From there, I followed the instructions on the page for installation, which creates an egg:

# python setup.py bdist_egg
# cp dist/*.egg C:\directory\you\copied\XMLRCP\source\to

Once this is complete, you will find a file named TracXMLRPC-1.0.0-py2.5.egg in your {source directory}\trunk\dist folder (where you unzipped the source of the xmlrpc plugin).

Log into Trac, navigate to the admin page, choose the Plugins link and use the Install Plugin form to upload the egg you created. Once the file has uploaded and installed you will now see a plugin in your list named tracxmlrpc 1.0.0. Expand this plugin and check off the following:

  • XMLRPCSystem
  • All the component with ".ticket" in the module name
  • XMLRPCWeb

Restart VisualSVN Server and you should be good to go!

In the past few days of using Mylyn we have found a much higher level of productivity and we are also finding it much easier to distinguish what change orders are. We have given a couple of our more technical clients direct access to Trac to enter issues into the system and they love it. If you're not using SVN/Trac/Mylyn I definitely recommend spending the time to get setup and learn it. The payoffs are well worth it.

0 comments - Posted by TJ Downes at 5:39 PM - Categories: Technical Articles | Cool Stuff

Oct 2 2007

Taking Your Website to the Next Level

The Internet, as a business platform, has spread faster than any other medium. The ability to reach a global or targeted audience has become relatively inexpensive (compared to traditional methods of marketing) and easy. Just about every company can benefit in some way from having an Internet presence.

You have your website. It's really well designed and you receive glowing comments on how nice it looks.  It has the typical contact information, some information about your organization's services/mission and maybe news about your organization. But really, is your website working for you?

When we collaborate with clients on building a new website a focus is not just how well the site looks, but also on how well the site serves your organization. Think about your current business processes, how you work with your clients, members or vendors. What processes do you do manually that can be done automatically over the Internet? What type of communications do you have with your clients, and how much time do these communications consume? Is there a way to streamline these processes that will free up valuable staff time for something else?

Often our experience is that streamlining processes such as event registrations, data collection or report generation can alleviate some of the tediousness of a staff member's daily duties, giving them more time to focus on the part of their job they like to do. In turn, this can lead to enhanced employee productivity. The end result offers considerable benefits:

  • Tedious tasks normally handled by humans are now completely automated
  • Removes the element of human error from the process
  • Interactions with members, clients and vendors happen faster, providing a sense of better service
  • Faster and more efficient collection of data
  • Reports and metrics are more easily generated
  • Attracting new clients or members based upon tools or features available to them
  • Increased productivity

With such a high number of benefits it is easy to understand how building these applications quickly pay off.

So how do you start?

We generally recommend that you have an idea of all those business processes that you perform in your day-to-day business which involve interaction with your members, clients, vendors or even remote offices. Also take a note of existing processes which happen via your website but require a significant amount of manual intervention to complete. Once you have documented these things talk to an application development consultant about what could be automated, or better automated. Generally, a good web application developer can identify aspects of your business processes which can be enhanced with a web application.

One last thing to note is that developing a long-term relationship with your consultant is important. The more they know and understand about your business and industry the more recommendations they can make which will improve your business.

0 comments - Posted by TJ Downes at 8:23 AM - Categories: Technical Articles

Aug 12 2007

Adobe Flex for Web Applications

In a few of our articles we have discussed Rich Internet Applications and Adobe Flex. In this post we will get more in-depth with Flex and give you a better idea of what Flex is, how it works, and why we feel it is an excellent solution to build your web applications.

Simply put, Flex allows developers to create applications that offer a rich user interface and a host of multimedia capabilities on the Adobe Flash platform. Most internet users are used to Flash as the pretty intro movies to websites, or flashy sites that offer smooth animations and sound. For example, if you have Flash installed and browse to Adobe's website homepage you will notice a very nicely done header with clean animations, video, audio or a combination of all three. This is an example of using the Flash platform to create rich multimedia experiences that run on any operating system and browser supported by Flash. Since Flash is installed on over 90% of desktop computers worldwide it has become a widely accepted format for delivering content.

Now, leveraging the Flash platform, developers can also build applications which allow us to create very user friendly interfaces that are fast and visually appealing. Additionally, displaying multimedia assets such as video and audio are quick and easy and the developer no longer has to worry about plugins and platform support.

A good example of this are the backend tools we built for the Roxie Cinema. The Roxie Cinema had a need to have a tool to manage the data which published movie information and showtimes to the site.


Additionally, they wanted to be able to publish multimedia assets such as audio, video and images without the worry of plugin support. As part of the requirement editors had to be able to preview these assets after uploading them. Utilizing Flex and Flash we would build an integrated solution without the need for expensive third-party tools and develop these tools quickly and at a relatively low cost to the client. The result has been a tool that allows management of all the website data via a single attractive user interface that is very responsive.

Additionally Flex easily integrates with many back-end technologies including ColdFusion, PHP, Java and .NET. Because of this it has become rapidly adopted by developers of many disciplines.

One of the most exciting capabilities of the Flex platform is the ability to push data to the user with LiveCycle Data Services. A good example of this might be an application which allows remote users to collaborate in real time on a document.

Let's say Kyle and Stan are working on a document that outlines a fundraiser event for Kenny's family, who's home was destroyed by Mecha-Streisand. Kyle has been grounded by his parents and is not allowed to leave the house, but he can access the internet. Using his super-secret password he gains access to Stan's website and loads the fundraiser document into his web browser. As he works on the document Stan will see Kyle's changes in real time. Stan notices that Kyle has a few typographical errors and decides to edit Kyle's work. While he is editing Kyle's document is updated in real time to reflect the changes. This can occur because the server realizes that the document has been changed and pushes those changes to all users who are working on that document.

There are many applications that this can prove invaluable for, such as providing real-time updates to news and information widgets without the need to refresh the page, or providing timed requests to the server. Real-time collaboration between you and your clients and vendors becomes an affordable and realistic application, even through your website.

Hopefully we have perked your interested in Flex. If you would like more information about Flex please give us a shout. If you are interested in seeing some Flex applications in use take a look at the showcase examples on Flex.org or contact us for a demo of applications we have developed.

0 comments - Posted by TJ Downes at 9:39 AM - Categories: Technical Articles | Cool Stuff

May 10 2007

Why Use ColdFusion?

This month we are going to focus on ColdFusion. There seems to be a lot of confusion about ColdFusion, what it does, and how it can actually save your organization time and, most importantly, money.

ColdFusion is a web application server. What does that mean? Simply put, ColdFusion allows you to dynamically publish information to and from a database or other source to make your site or applications interact in real-time with your organization's data. This can include something as simple as a contact form on your website or something as complex as a Customer Relationship Management system.

Many people argue against ColdFusion because it is not free. They argue that PHP, ASP, .NET and JAVA are all free and therefore are much lower cost than ColdFusion. True, the initial cost of ColdFusion, $1299 for Standard and $5999 for Enterprise, is not something to cough at. So why should you choose ColdFusion over any of the other previously mentioned languages?

For starters, ColdFusion has a very easy syntax, allowing entry-level developers to start making basic applications very quickly. It also allows more advanced developers to code their applications in record time because ColdFusion includes many of the tools developers often have to hand-code or integrate manually. ColdFusion code runs on many platforms, and very few changes ever need to be made in the source code to move an application from Windows to Linux to Solaris. 

ColdFusion is also based on the Java platform, giving it the power of Java as well as access to the underlying Java platform and custom objects written by your own staff or third parties. For instance, you may have existing Java objects which run your business rules. ColdFusion developers can leverage these existing objects in their ColdFusion apps with very little effort, rather than rewriting them entirely for their own applications.

ColdFusion has a slew of built in tools which enhance it's capabilities including XML processing, easy file uploading, Flash integration, ability to quickly and easily consume web services, PDF integration and publishing, charting tools, SMS and other gateway integration. There is a huge list of these features available on Adobe's website.

ColdFusion also integrates with many Rich Internet Application technologies very easily. Flex (a Flash-based application development platform) and ColdFusion work together seamlessly to provide some of the fastest development cycles for large scale applications we have seen, with some awesome user interfaces. AJAX and ColdFusion work well together, allowing websites to be updated in real-time without the need for slow page refreshes.

Recently, with the acquisition of ColdFusion by Adobe, many of Adobe's Enterprise level products, such as LiveCycle and Acrobat, now integrate seamlessly with ColdFusion and allow ColdFusion developers to leverage these tools to provide solutions which have been difficult to accomplish without extensive Java development. With the release of ColdFusion 8 in mid-2007, developers will see even more integration to Adobe's products, making development of document management systems, presentation and comunication tools faster than ever before possible.

If you would like to learn more about ColdFusion please contact Sanative for a free one hour demonstration of the product and how it can solve problems which exist in your organization.

0 comments - Posted by TJ Downes at 6:34 PM - Categories: Technical Articles | Cool Stuff

Mar 9 2007

Rich Internet Applications: What are they and how can they help your business?

Web 2.0, AJAX, RSS, Podcasting, mashups, RIA.... in the past couple of years these terms have become prevalent when conversation about the web comes up. These terms mean very little to the layman and are often more confusing than they are descriptive. Developers understand them but they often leave others confused or misunderstood about what they actually mean. In this article we will focus on what Rich Internet Applications (RIAs) actually are and help you to understand why RIAs are important to your custom software solutions.

Quoted from Wikipedia
: "Rich Internet applications (RIA) are web applications that have the features and functionality of traditional desktop applications. RIAs typically transfer the processing necessary for the user interface to the web client but keep the bulk of the data (i.e maintaining the state of the program, the data etc) back on the application server".

In layman's terms this means that applications you run from a web browser will work just like standard desktop applications but can be run from anywhere in the world using a browser. Unlike the traditional desktop application, RIA's are generally downloaded to the client each time the user launches the application. This allows you to easily upgrade your application without costly rollouts to client machines.

Two of the most common technologies used to develop RIAs are AJAX and Adobe's Flex. We will be discussing the pros and cons of each, very briefly.

AJAX
 AJAX is based upon a mature technology called Javascript. It allows your web browser to make requests to the web server without actually reloading your web page. This is important to applications as it enhances the overall performance and makes a traditional web page seem more like an application than a web page. AJAX "packages", known as libraries, consist of a code base prebuilt to allow faster development of your RIAs. Generally these AJAX libraries consist of many "widgets". These widgets are designed to allow you many of the features of a desktop application without the time consuming coding process. Some common widgets include:
  •  the ability to allow your browser to drag and drop items on the page
  • special effects, such as fading, dissolving, swiping, etc. This is great for adding special effects to photos or any item on the page.
  • tabs - creates tabs so you can navigate your applications easier
  • grids - much like Excel spreadsheets
The downside to using AJAX for web applications is browser compatibility. An AJAX-based application running on Internet Explorer 7/Windows XP may function differently on a Safari 2.0/Mac OS X computer. This can often result in extended development cycles to iron out differences in platforms.

Flex
Aobe's Flex product is based upon the wildly successful Flash platform. Flex is free, allowing it to compete with the AJAX platform. Flex also offers Flex Data Services. While not free, Flex Data Services allows organizations to develop applications which push data to the end-user. What this means is that while a user is working in the Flex application data can be updated in real time. As a user changes data all others using the system will see these changes reflected on their screen. It also allows real-time collaboration within your projects between users anywhere in the world.

Flex development is fast, allowing common user interface elements to be visually placed and quickly edited. It integrates with many development languages and has built-in integration with Adobe's ColdFusion product. This allows Flex to replace existing applications very quickly and easily at a relatively low cost when compared to traditional desktop application development.

Additionally, Flex provides the benefit of working exactly the same on any browser and computer which is Flash enabled.

The downside to Flex is that it does require the Flash plugin. However, since Flash is installed on 95%+ computers in the world, this becomes less of an issue, especially for applications where the audience is controlled (internal applications and databases).

Apollo
Apollo is the codename for a new product by Adobe. The Apollo product will allow both AJAX and Flex projects to run as desktop applications, without the need for a web browser. This is important to application developers and IT decision makers as it allows web applications to be launched from the desktop and interact with that user's desktop. This includes access the end user's file system, something which has not been possible from the web until now (at least without using Java or ActiveX, two very expensive and inconvenient technologies).

Summary
Regardless of which RIA technology you choose you will find significantly lowered development costs and total portability of your applications. It is not uncommon for many non-profits or small business to have remote offices, making traditional desktop applications expensive to run remotely. Often this requires use of a thin client solution such as Terminal Server, in combination with VPN solutions. These solutions in turn require more IT staff to maintain and operate.

Upgrading RIAs will be less time consuming and as a result save your company substantially. Integration with third party sources and tools also becomes a much less tedious task due to the very nature of the Internet.

If you are interested in hearing more about RIAs, or would like to see some demos of RIAs, please give us a shout!

0 comments - Posted by TJ Downes at 7:32 AM - Categories: Technical Articles