The Death of Zembly

Friday, November 20, 2009 by Matt Warman

Recently, I have been talking about the virtues of Zembly to allow application development people to deploy their Java, JavaFX, and PHP applications to social networking sites like Facebook. Well, the Zembly team has notified everyone that the service will be shut down at the end of the month. I am guessing that this is the first round of “baggage” to be cut from the Sun/Oracle merger. On the surface it makes sense, since it is not a widely known framework, and canning the people will save them money. As a Java developer, I find the situation to be very difficult. Facebook is primarily a PHP site, with lots of Flash added in, and any avenue to move other frameworks to fight Flash is a good one. Can I still perform Facebook application development? Yes, but it is poorly documented, and the documentation on Facebook is PHP biased. It was nice to use a framework to do the heavy lifting because I don't have to worry about the plumbing, just the creative aspects. This is not important when writing an accounting application, but is very important in game application development.

Goodbye Zembly, we hardly knew ye.

IBM, Java, and the Community

Thursday, November 5, 2009 by Matt Warman

I recently read an article about the state of the IBM “i” and the amount of complaining by IBM application development and business partner folk. I know several RPG application development folk, and it sounds familiar. That made me think about my Java Application development and career. Are there things to complain about, and uncertainty about the future? Yes, but there are 2 reasons why the Java community is in a better place; the business model and the community. Before the IBMers call for a holy war, I said COMMUNITY! I am not talking about the strengths or weaknesses of the hardware or software. The business model for IBM is that they make the hardware and software, and partner for the sales and service. I think that is a viable model until IBM competes in the sales and services with their partners. If a lead is brought in by a small partner, they are awarded by giving the business to someone bigger. This sets up a confrontational relationship between IBM, the big partners, and the little partners. IBM can also decide whether or not you are worthy to be a partner. Why does this affect the software application development team? Because most consulting firm are selling SERVICES not HARDWARE. If they are not seeing business because of political fighting, they don't have to sell it. There are viable options on other platforms, where interference does not happen. IBM never fostered a community, they created a hierarchy with themselves as the head.

Certainly Sun has done some things that made myself and others unhappy. Besides, complaining, we actively pushed to remove barriers in our path. We do have an open source Java. Is there a IBM community that can work with RPG to make it work for them? I also think its about scale and timing. It's not like IBM software developers have their own AS/400 at their home. It's easy for me to create and use nearly any kind of application at my home in Cincinnati, and pretty cheaply. It makes it fun to tell non-technical people about my application development. Nobody but accountants want to hear about accounting programs. Java, and newer languages have grown up with the Internet. I have friends from all over the globe that have similar interests. If I have a problem, I can go online to a forum, friend, or web page to find what I need. I can read and write blogs to voice my opinion (like now). These things are not ingrained in the Legacy community, and in fact, have been actively campaigned against. It is my belief that any software, hardware, or service will die when there is no vocal community to support it.

My Learning Recipe

Friday, October 30, 2009 by Matt Warman

As a consultant and application development person, I have to learn new things all the time. Take for example, my work with JavaFX. The language does have some familiar aspects, but there is a lot new there too. How do you go about learning something new? I have come up with some guidelines that I use in learning new things (in this case a language):

  • Read as much about it as you can first. No one wants to wade through tomes of technical information, but that is where you learn. I try to get a feel for what problem the new thing is trying to solve first.
  • Understand the core elements. Whether it's a programming language, a car, or a philosophical construct, knowing how it works is the first step. I know it's time to go to the next step when I have some ideas on how to use the item, and I start formulating a project.
  • Examine and breakdown examples, if you can. You would be surprised at how many application development people think they're “smart enough” to figure out how things work just by following a few examples. I don't know about you, but I don't figure out a complex things just from a few simple “Hello World” examples. That being said, seeing how things works is the quickest to way get a basic understanding. Couple that with knowledge you acquired by reading the manual, and you get the “why” of how it's put together.
  • Create your own knowledge base. I like to Google more than most people, but things do need to get done. I will create a separate folder to contain links to examples, other application development team members' blogs, white papers and other documentation. If you can, create a “how-to” WIKI. Having a centrally located repository makes it simple to answer questions.
  • Create a test project. I do this especially for languages. I create a test project where I can test specific “how do I?” questions. It keeps you from removing code, adding unnecessary functions, and commenting and uncommenting code in your main project. Figure it out in its own project first, then transfer the code and knowledge to your main project. It is always good to revisit it after a period inactivity.
  • Write or teach what you learned. As application development people, we tend to get blinders on when doing something. Having a different set eyes, or different questions being asked makes you examine what you actually know.

     

So there's my “Secret Sauce” for learning. You still have to come up with ideas on how to utilize you knowledge though.

Working with Magento

Wednesday, October 21, 2009 by Matt Warman

People outside of Cincinnati may be shocked to know that I work with languages OUTSIDE of Java! I don't know any application development person, especially one who does web application development who doesn't use several languages. I have recently been working on Magento. What is that you say? Magento is an Open Source PHP ECommerce application based on the Zend Framework. You don't need to download Zend, just the Magento PHP files. We actually have Magento internally setup with a LAMP package, but I already have MySQL and Apache on my local machine, so I thought I'd tackle and individual install. The verdict? Well after a couple of small hiccups (don't use the Windows install for PHP, just unzip, and localhost needs to be a virtual host), setup was a breeze!  Fortunately, STAR BASE, Inc. has enough experience to over come these issues.  Magento is easy to customize products and catalogs, and would be a good choice for organizations to create their own ECommerce site. Magento is easy enough to implement without an IT Consultant, but an experienced consultant can save you time and frustration.


Get The Timezone Updater

Wednesday, October 7, 2009 by Matt Warman
For those of us Java application development team members that have to worry about localization, Sun has released the latest update to the Time Zone updater. The Timezone updater has the latest adjustments to daylight savings from around the globe. A form needs to be filled out, but is otherwise free. You can find it here. The download is has a jar file and readme file. Just follow the instructions to update your JDK and JRE to the latest Timezone information.

Using Zembly

Wednesday, September 30, 2009 by Matt Warman
I am working in the Cincinnati office writing an application using Zembly. Zembly makes it easy to write applications because the authorization/infrastructre piece is handled for you. As any application development person will tell you, connecting to a new or different system can take up time needed for solving the problem. Especially for systems that you don't control. I always make sure I can connect to a system before even writing the application. Zembly takes care of this for you by using a keychain metaphor. For example, once you have set up development for your application. you can store your application public/private keys in the Zembly keychain. Your application development team can go through Zembly to connect directly to your application. Without Zembly, you have to lookup and pass session keys. While not difficult, finding the right calls isn't apparent. This is especially the case for Web Services. I can use Zembly to call Web Services from Flikr, Google, Amazon and others. Once I setup the keys, the authorization piece is abstracted leaving your application development team to solve the problem, and having time to add additional features. You can use the Zembly service by downloading the z4cl jars from Zembly, or using the integrated jars in NetBeans. Netbeans not only has the jars, but allows you to search for and filter Web Services. Once found, you can drag and drop the service into your application, and replace the default information as needed. Your application development team can be much more productive using Zembly, giving them time solve and enhance the problem at hand.

NetBeans, Zembly, and Facebook

Friday, September 18, 2009 by Matt Warman
No, this isn’t a Cincinnati law firm, it’s my latest project. While at JavaOne this year, I took a lab on using Zembly. The lab was very interesting, and somewhat chaotic, but they gave me a book on Zembly. For those application development guys who don’t know, Zembly is a framework that allows developers to deploy their applications to social networks like Facebook, twitter, or Orkut.  I brought this idea up to my boss, who was interested in what we could do. I decided to create a simple questionnaire on our IT Wellness Check service. I know you can create simple questionnaires in Facebook, but I wanted a more polished look than black text on a white background. I wrote the app in JavaFX, because of the gradients and effects that are available to me.  Netbeans not only has JavaFx application development, it also has the facebook API integrated. I did check on the Internet that I can use JavaFX with Zembly, and you can. Once complete, I brought up the Zembly site.  I created a widget in Zembly, and after a couple of missteps, I got my questionnaire working in Zembly. On to the Facebook integration! Zembly makes all of the particulars of integration painless, but there are scant details on the web. Fortunately, I had my book from JavaOne, and there were step by step details on integration. I now have an application on Facebook! Don’t look for it yet, because the application itself was just a test. Once polished, we will have it out there. I am going to finish phase one of JFretsFX, and put that out on Facebook too.

Kenai Me!

Friday, September 11, 2009 by Matt Warman
I have not one, but two JavaFX Kenai projects found here and here. First, I have to say Kenai is very useful. It is integrated into NetBeans (my IDE of choice), which means that all I have to do is create a new a project and call the “share it on Kenai” link.  The process allows you to change the name of your project, and set the licensing (CDDL, GPL etc). Kenai itself is pretty cool too. It’s not your father’s forge. First off, anytime anyone commits a change a message gets sent out. That may not be earth shattering to you, but if there is more than one person in the code that is huge. I don’t have to guess who changed what. Since my email is tied to my phone, I find out almost immediately! You can do things other places offer like a forum, and mailing list, but the clean execution is nice. It is easy to find on the main page, and any responses in the forum go to my phone! The social networking aspect is something that I want to use. I live in Cincinnati, but I have friends all over the world. If someone helps me out on a project, I can chat with them through Kenai. The price is the best part my application development friends, free. When you sign up to Kenai, you get five free projects slots. I don’t know what happens after five though. I encourage all application development people to put their passion projects on Kenai.

Back To the Future!

Thursday, September 3, 2009 by Matt Warman

 

This is my last week at my Cincinnati client. My previous posts have been about reviewing the present. This post deals with my future. I am been in the development stages of a new application framework called History Slider. Basically, it allows you to move through time on a fixed map, and show information about that time period. For example, you could have a map of Cincinnati and Dayton, and graphically display the urban sprawl of these two cities. Stop anywhere on the slider and select either UI element, and you can find out the population of the city, it’s suburbs, and any other information you would like to use. I call it a framework because the maps and data can change, but the displaying of data through the UI will not. I even have plans for integration with Google Earth. If you are interested (especially if you are an application Development person), go here. This is an open source framework that is being written in JavaFX. A proof of concept test class is out there now.


It’s More Than Code!

Thursday, August 27, 2009 by Matt Warman

As I wind down from my client in Cincinnati, I have been reflecting on the job of technical consultants. In my previous posts, I have reviewed my knowledge and understanding of code. But there’s more to my job, and really all application development members’ jobs than code knowledge. A technical consultant needs to know the internal political climate, the processes in place, and the personnel. The client may be risk averse to technology change, or open source software. It could be a corporate edict, or it could be that your client doesn’t know the benefits of the new technology. The processes may be flawed, but are flawed for a reason. A good consult needs to work within the existing process, move that process to a better one if needed. People are always initially wary of technical consultants, because they fear that they will be replaced. Conversely, technical consultants are keenly aware that they are replaceable, and that they should be replaced, if they have done their job right. A good technical consultant knows the trends, but also knows to read people. Which ones need assurance that their job is not in danger, which ones should focus more on their job, and which ones are ready to pick up new ideas. A good technical consultant has confidence in his abilities, but isn’t afraid to learn new ideas from others. I consider an assignment a success if I have left my client in better shape than when I arrived. I am many things, including an application development person, but my job is more than code.
 

Never Stop Learning

Friday, August 21, 2009 by Matt Warman

I am finishing up with my client in Cincinnati. I am trying to clean up code from the vendor, when an interesting error occurred. That’s when I decided to poke around and look at some place for better coding practices. As any Java software development person knows, "Effective Java" is about the best book there is on Java. It’s a must have book. On The web, I have found this site that has some great coding practices. Technology, and specifically Java, is a fast moving animal. What was valid 5 years ago, may not apply, or even exist, now. Searching the Internet is great for information, but you have to be careful too. I try to avoid any article written before 2006, unless it directly applies to the subject matter. Take string concatenation for example, common wisdom says to not use the "+" for concatenation. Use a StringBuilder object. If you are on 1.4.2, you don’t have that object, you have StringBuffer. Well performance wise, which works best, and what kind of performance hit do you get? The only real way to tell is to write your own test class, and call JavaP. JavaP allows you to see the byte code operations. Sometimes you may have only a few operations which would be unnoticed by your users. If repeated often enough though, you could have a real performance problem.
I have noticed that many application development people, and really all people, find a fact that they have read, and use it in their daily job. Facts, like technology change, and the best way to know is to prove it yourself. I have come to write little test classes to work out code I haven’t done before. That way I can understand just what is going on before I introduce it into my application. I have been applying that same concept to accepted performance practices. Profiling applications is also a great way to "see" what your code is doing. The best thing for application development members to do is never assume anyting works as planned, and never stop learning.

Chuck Norris IS The Ultimate Developer

Wednesday, August 12, 2009 by Matt Warman
I am just getting back to the swing of things in Cincinnati after a week of vacation in Florida. Instead of really difficult tech stuff, I am treating you application development folk (and others too) with a great link of Chuck Norris "programmer" jokes. This will give me a week of getting unburied from work stuff, and I promise I write something techie next week.
for those who don't do links, here is a small list of "hacker" jokes that was in one of the comments:

Reasons hacking is easy for Chuck Norris
1. Chuck Norris can overflow your stack just by looking at it.
2. To Chuck Norris, everything contains a vulnerability.
3. Malicious File Execution. Nuff said.
4. Chuck Norris doesn’t need sudo, he just types “Chuck Norris” before his commands.
5. Two words: Brute Force.
 

Never Assume Anything

Friday, July 31, 2009 by Matt Warman

My client in Cincinnati is having issues with one of their Java based web applications. The application is throwing an out of memory error. One of the vendor's application development personnel traced it back to a local byte array object. He said "it can’t be the problem because it is created in a method. I don't have to null the object because it is garbage collected". In Java, you are taught that any variables created in a method call persist only for the life of that method call. When the method has completed, all objects are out of scope, so they are to be garbage collected. Java uses implicit object creation and destruction, so the application developer can focus on the problem. Like any rule though, there are exceptions. If your local variable is referencing an external object, and that reference is still live, your local object still persists in memory. Since the method has been garbage collected, the object will stay in memory and not be freed until you restart the server. The best example of this is creating a database connection object. If you don’t call the close method and null it, the object will persist until the JVM is shut down. This called a stale connection. Even though you may have created the connection in a method, the object doesn’t get collected. Look at the following code:

package test;
public class MemTest
{
    private final int dataSize = (int) (Runtime.getRuntime().maxMemory() * 0.9);

 public byte[] func()
 {
    byte[] data = new byte[dataSize];
    System.out.println("func: byte array created in func");
    System.out.println("func: Total Mem=" + Runtime.getRuntime().totalMemory()
               + " Free Mem=" + Runtime.getRuntime().freeMemory());
    return data;
 }

 public static void test()
 {
    MemTest jmp = new MemTest();
    System.out.println("Max Mem=" + Runtime.getRuntime().maxMemory()
              + " dataSize=" + jmp.dataSize);
    System.out.println("Total Mem=" + Runtime.getRuntime().totalMemory()
              + " Free Mem=" + Runtime.getRuntime().freeMemory());
     byte[] data1 = jmp.func();
     System.out.println("byte array returned in jmp.func, size=" + data1.length);
     System.out.println("Total Mem=" + Runtime.getRuntime().totalMemory()
                + " Free Mem=" + Runtime.getRuntime().freeMemory());
      jmp = null; // this does not do anything as data1 still has a reference to the byte[] returned from jump.func()
//   data1 = null; // if data1 is not set to null here to remove to the reference to the byte[], data2=jump2.func() will hit OutOfMemory exception
      MemTest jmp2 = new MemTest();
      byte[] data2 = jmp2.func();
      System.out.println("byte array returned in jmp2.func, size=" + data2.length);
      System.out.println("Total Mem=" + Runtime.getRuntime().totalMemory()
            + " Free Mem=" + Runtime.getRuntime().freeMemory());
 }

 public static void main(String[] args)
 {
    System.out.println("--test1--");
    test();
    System.out.println("--test2--");
    test();
    System.out.println("--test3--");
    test();
    System.out.println("--test4--");
    test();
 }
}

If you run this code, it will throw an out of memory exception. Uncomment the data1= null statement and run again. This application is the 1.4 JDK, and the newer JDKs are doing a better job at handling this situation. I also know that there are 2 things to remember in application development, don’t assume anything, and rules were meant to broken. I still have some testing to do, but I am sure my Cincinnati client will be happy.


Not a Rock Star, But Rock Star Worthy

Tuesday, July 21, 2009 by Matt Warman

I presented at this year’s JavaOne, and I recently got my results. I presented last year too, and I received my first JavaOne rock star award. Many of my Cincinnati application development colleagues wanted to know if I did it again, and the answer is technically no, but still a good show. JavaOne rock stars are awarded for technical presentations. My presentation was considered a panel discussion, so not eligible for awards. Our panel received a score of 4.68 out of 5.00 by our peers. I personally recieved a nice note for JFrets. Over 90% found our talk useful. The top 25% of talks began at 4.20, so clearly our presenters would have had the rock star status.
I am working on a new project called History Slider, that if in a demo state, I will give a talk on next year. So you may see the JavaOne rock star status by my name once again.

What’s new at JavaOne Part 3 - The Sun Cloud and The End?

Tuesday, July 14, 2009 by Matt Warman

This is the last of a three part series; part one is here and part two is here. Many application development guys are wondering, what is the Cloud, and what is the Sun Cloud? Think of Cloud computing as a virtualized data center. In part one I talked about VirtualBox, which allows you to virtualize network components and resources. Think of VirtualBox working on the atomic level, taking small resources to create a virtualized network. Now Cloud computing takes all of the virtualized networks and utilizes them as resources in a virtualized data center. The Sun Cloud is a set of APIs to let you manage networks and storage areas as resources. You can cluster or categorize networks in any way you wish. You can manage user access to the resources, not unlike application development teams utilize in web applications.
What does all this mean to application development and management? It means that you can create a single network and copy or clone it. For example, you can create a single network instance with servers, storage areas databases, and clone the entire network for each region you manage. That means all networks are managed in one spot, and all regions are setup exactly the same. No application compatibility issues. You can, of course, add or remove components, but they are all have the same infrastructure. You can upgrade the virtual network, and pass the changes to the other regions. The electricity saved by running virtualized datacenters would be significant. You can connect to your partners’ virtualized networks to access their data. For application development teams, that would change how we design applications if we have access to external data and applications.

This was my fifth JavaOne conference. Since it is always at the Moscone center, I know pretty much every nook and cranny of JavaOne. Although smaller this year, I thought this was the best one yet. The people there were truly happy to be there, and combined with takeover news and a bad global economy, a bigger sense of cooperation. I would highly recommend coming to one if they still have one. Nobody, not even James Gosling (I was in a group of 20 who had a 45 minute meeting with him) knows if there will be one next year. The reason you come to JavaOne is not the presentations (they are great!), but the people. Meeting and befriending people who created your favorite blog, book, or technology is the reason to come. I remember meeting Craig McClanahan (co-creator of struts) in 2004, and saying "that’s Craig freaking McClanahan!" Last year, I was honored a share a picture of beer with him, Jarda Tulach (inventor of NetBeans), and Geertjan Wielenga (JavaLobby blogger extraordinaire). Application development people get to "network" with the best and brightest architects, technical press, and business owners. This year I got hang with the JUG leaders, NetBeans Dream Teamers, and the JavaFX guys. I wrote, and helped edit a YouTube video "pushing Java", and met more of my fellow Java music software developers. I literally have friends from all over the world (yes Cincinnati too), and I am considered an honorary Brazilian because of JavaOne. Larry Ellison, if you are reading this, please don’t stop JavaOne!

What’s new at JavaOne 2009 – Part 2 JavaFX, JavaFX Designer, and The Java Store

Thursday, July 9, 2009 by Matt Warman

Part one discussed Open Solaris. Part Two is all about what is new with JavaFx and the Java Store.

I have talked about, and been impressed with JavaFX since its debut at JavaOne 2007. It was a key part of my presentation to Cincinnati area application development members that year. For those application development people who don’t know what JavaFx is, I blogged about it here. So what’s new really with it? The JavaFx in 2007 was JavaFX script. JavaFX was limited in where you could run the script. In January, JavaFX released its first runtime, and now JavaFX 1.2 is out. You can have graphic designers create media for your application using JavaFX production and easily import them into JavaFx. The JavaFx language can now be run on the desktop, web page or mobile device. JavaFx has been integrated with the new version of web start, but more on that later. New widgets have been created, and third-party widgets are being created at JavaFx widgets. There still are issues, though. Some swing like widgets like menus and tables have not been completely done. You can create a wrapper around Swing components, but it’s not the same as a native widget. Integration with NetBeans 6.7 isn’t there because of the new designer isn’t ready, but an update is scheduled at the end of July The reason I think application development teams should use JavaFX, is that the same code can run in multiple areas. I can now create a desktop application and have it run on the web and mobile devices without having to rewrite my code.

The JavaFX designer will help in a wider adoption rate of JavaFX for the things it can do. A big part of JavaFx is making animation simple to create. With the timer piece of designer, it’s a breeze. In the demo here, (starts 10:25 in) you can take an image, give it a starting point, and pick intermediate points and the times and the designer creates all of timings for you. You can bind media and widgets to data or events. For example you can drop a video and some buttons on the scene. You then drag a link from a button to the media, and all available actions popup (play, pause, etc.). Select the action in the popup and it’s done. Application development guys can create a media player in minutes. You can open different windows with different screen sizes, and all of the children inherit their changes from the parent. You can edit each screen though, and those changes are kept for that window.

What is the Java Store, and why do I need it? The Java store is a warehouse for free, and for fee Java applications. Right now, everything is for free while the community decides the best way to charge (or not) for applications. If you need an application quickly, you can check the store without having to do extensive searching, or worse, recreating the wheel. The cool thing about the store is its use of the new Web Start technology. Users can preview the application before keeping the application. If you decide to keep the application, just drag it to your desktop. It’s just that easy.

What’s new at JavaOne 2009 Part One – Open Solaris and VirtualBox

Thursday, July 2, 2009 by Matt Warman

This is my third year at trying to boil down 4 days of experiences into an abbreviated post or presentation for application development teams and management of the Cincinnati and Dayton areas.
As mentioned previously, the major topics were Cloud computing and JavaFX, but a new item that I am impressed with is Open Solaris. Version 2009.06 was released at CommunityOne. I am not a Sun representative and I have not been a Solaris user, but there are some great features that I think are cool. Before I get into the new features, let me give you some background. Solaris was Sun's proprietary OS that has a reputation as a fast, enterprise operating system, using ZFS as their file system. Sun open sourced Solaris a couple of years ago. Application development teams who use Solaris will tell you about the worthiness of DTrace, a system debugging tool. It is the one thing that Linux engineers really want to integrate.
There is not a lot of Solaris usage in Cincinnati, and I don’t have a dedicated box for Solaris, so I never used it, but that may change. Like Linux, you can get a "live" version on a disc to try out. I am currently playing with VirtualBox, a open source virtualizer. Unlike VMware, both the player and recorder are free. To tell you how cool it is, I was running an Ubuntu VM on a live Solaris session with Windows as the host OS!
The other reason for my excitement is project Crossbow. Project Crossbow is a networking virtualization project aimed for usage in the cloud. Before my application development friends tune out due to buzzword overkill, let me explain. Project Crossbow can virtualize your entire network including your NICs and switches. The really cool part is that they have a cool GUI that allows you to drag and drop your network pieces. You need a firewall? Drop it into your network. It’s already configured and ready to use. Need another server? Just drop it in and connect it to your network. Since the network is virtualized, you can create your own network from virtualized pieces from any VM. That’s where the cloud comes in. Virtual networks and hardware can be added or removed at any time, if they were not virtualized by you. You could connect to your partner’s network, and if anything changes on their end, the changes would be reflected in their VM. I would strongly urge application development people who dislike/don't understand networking to use project Crossbow, and for free virtualization, use VirtualBox.

Come On In, We’re Open

Monday, June 22, 2009 by Matt Warman

The Cincinnati market is known for being conservative when it comes to using software. Most application development people I know would say that big software, from the big firms, either three lettered companies, or their name ending in “soft”, are the only code found in shops. There is the occasional open source item here and there, but usually in smaller shops. Why is that? Well, some firms don’t create their custom application development, they just enhance out of the box software. They need a vendor to yell at and fix things when it breaks, because their staff can’t fix the code, or don’t have access to it. For many firms, it is better to pay a vendor for support than to maintain it themselves. As long as you can point to somebody, it’s ok. Some firms actively fear that open source means that everyone will have their intellectual property somehow. They fail to realize that it is the same proprietary code that everyone uses too. Since, you have the source code, you can see if there is a backdoor coded in the application, something you can’t do with proprietary code.

With these fears aside, many firms, even in Cincinnati, are looking to use open source solutions for their issues. Certainly many are using the free (as in beer) code to save costs. I hope though that some firms will see how this free (as in liberty) also helps their business. It’s a tough call whether to purchase a pre-made business process package (I am looking at you SAP), or to roll your own. I think the best of both worlds would be to use an open source application, and to enhance it. It is a popular misconception that you MUST contribute code, or that you can’t change the code. You can create your own code for use; you can’t sell the application with YOUR enhancements as YOUR NEW application. There is some legal wrangling, yes, but the bottom line is that you have application development teams, so use them. Your best business plan is to use your process as a competitive advantage, not to shoehorn your process into software that all of your competitors use. I think the goal is to beat them, not join them.
The best thing to do is to give your application development team a couple of old boxes to play with, and let them do some research on applications that can save your money, and are flexible enough to work with your processes. You may end up with an inexpensive system, and get that application that outperforms your competitors.

Am I There Yet?

Tuesday, June 16, 2009 by Matt Warman

Coming back to Cincinnati is the hardest part of JavaOne. On a physical level, my body just got acclimated to west coast time, and now I am subjecting it back to east coast time. It’s more than just sleep, its food too. Instead of eating breakfast at 8:00 am, I am having it at 11:00 am. It takes me until Wednesday until I feel like I am in the right time zone. On an application development level, it’s a mixed bag. I have the emails and duties that I left for a week, and now I need to complete 2 weeks worth of work in one week. I also forgot that I was presenting a JavaScript lunch and learn. On the plus side, I do feel motivated to work on my JFrets project, and continue on my new project called history slider. It’s amazing how a TODO list goes from avoidable task to an application development imperative after meeting with your peers. I have some new contacts and great ideas for new enhancements after presenting again. Last week seemed like both 2 days and 2 months, and sleeping as often as I could, I think I am back to normal.

And So It Ends..

Monday, June 8, 2009 by Matt Warman

I was hoping to post more last week on JavaOne, but it was a busy week. First, let me get my application development friends up speed. The general theme at this year's conference was Clouds and JavaFX. There were many talks on what Clouds were, how to deploy them, and the new tools available to utilize them. Sun is promoting their Cloud, but there were plenty of talks on Amazon's EC2. JavaFX was also a big player this year. There were talks on creating and utilizing JavaFX, but the most of the focus was on the upcoming tools, importing of graphics, and deployment of JavaFX. Tor Norbye is working on an excellent visual tool for JavaFX that should ship by the end of this year. Think of dragging and dropping widgets and just wiring them up. If any application development team members are interested, materials will be posted on Java's Software Developers Network (SDN) site.
Personally, it was probably my favorite J1. I meet a lot of new people from the Java User Group (JUG) and JUG-USA, the JavaFX team, and members of the NetBeans Dream Team. Sven Raimers, a Dream Team member, and his team won a Duke's choice award for his work on satellite tracking and data collection. I was fortunate enough to be in a small group of application development team members to meet and have a Q&A with James Gosling. I wrote the text for a Java video called "Pushing Java". It is up on Youtube, so check it out. I did present this year as part of the "Making Music With The java Programming Language". I also had a "Java Rockstar" interview here. I met many great people, and made some new friendships.