RSS

Category Archives: Technology

This is all about the tech and what is happening.

Is Windows 7 Phone… Dead?

Scary

The shock, the horror... not really!

From what I can tell the answer (wait for it) is… Yes!

If Microsoft continues to proceed with the preview of Windows 8, and makes no major changes to the approach it is taking with the proposed new OS, it does not appear to have room for either Silverlight or Zune APIs, which pretty much kills the application building approach suggested and supported by Microsoft for that mobile device.

Another little interesting tidbit was what I got in my inbox from XBox Live today:

XBox and Zune

Does this mean Zune is not far behind?

So add it up… Silverlight appears to be dead in Windows 8, and maybe Zune APIs is now dead, and you pretty much just killed Microsoft Windows 7 Phone.  That is even more curious as to Zune now being part of it.  Will Microsoft now push that the Zune desktop application be on Metro GUI?  Furthermore, Metro will not run on Windows XP and you can see how Microsoft appears to be pushing the issue that Windows 8 is the future of all things Microsoft, and it also appears in my mind, the end of XP, Vista, Win7, and especially Windows Phone 7.

Mike

More to come…

 
6 Comments

Posted by on October 7, 2011 in Opinion, Technology

 

Tags: , , , , , ,

Warning – It is all about to change – Windows 8

Here is my new opinion piece on the preview of Windows 8.

Please check out the 15 minute video presentation on SlideShare here:

Feedback is always welcome and expected, so let me know what you think.
Mike
More to come…
 
7 Comments

Posted by on September 28, 2011 in Opinion, Technology

 

Tags: , , ,

Question: When is it time to rewrite?

I don’t know how many of you have read the following post:  Things You Should Never Do, Part I, by Joel Spolsky, but if you have not, you should.  He raises some very interesting points about making the mistake that we as developers often take part in, “we have to scrap this thing and get a new one… it is old, it does not work, and it needs to be rewritten.”  I’m sure we have all either said or if you have developed for more than 2 days, you have heard someone say something to that effect.

I must say, I agree with his article, a lot!  However, this leads me to a question; “when is it time to rewrite?”  Couple this question with my last article on “Future Proof,” and I fear that I may be becoming “the old guy in the room.”  Since I’ve already (in my mind) proved beyond a shadow of a doubt that there is no such thing as “Future Proof” and I have to say I agree with Joel’s points in his post… I also have to say that on many projects that I’ve been on, I too have stated, “this thing is unbelievable and needs to be rewritten.”  I will give you an example of a product I was working on for a startup in CA and how not making the move to a new approach seriously wasted lots of money, resources, and time.

The product that we were building would be considered collaboration software today, but it was a virtual meeting software product, kind of like WebEx or GoToMeeting.  The team that I had assembled had some great ideas of where a product like that needed to go and we thought we would be able to do it.  However, when I came into the organization the current “selling” product was based on a very old technology that the investors had purchased from another country, we had NO developers from the original code and the product code was to do virtual classroom with avatars for higher learning institutions.

In a time before I joined, the original developers changed the product to be a more simple “meeting” software but only they really understood the underlying code and structure.  To make matters even worse, I found out that we did not get all of the code and that the underlying engine had not been compiled since 1998 and it was 2006.  By the way, that was the first thing that I had to fix and it was because we were shipping a product on it (it was originally compiled for Windows NT).  The story goes on from there, but as you can imagine, everything we touched, tried to add, or even fixed, broke other pieces of the code and to make matters even more exciting we had no testing code.  Wow, writing this really makes me cringe.

Now also keep in mind that the investors wanted to take advantage of the investment in a “killer piece of code, which could do anything.”  Being a startup, we had plans for a new platform to handle what we knew we needed for the next generation of collaboration software, however we were stilled tied to the “shipping” product to help offset the investment.  By the way, I did do my concept of Software Archeology to try to better understand the code and have a better approach and it did help, but it did not give the team enough underlying knowledge to build a great system using the old technology.

So this leads to my top 3 things that kind of balance Joel’s thinking a little.

¨     Knowledge;  The underlying platform is unknown to the team and it is not possible to quickly get an understanding of the technology through normal methods and the team does not have the killer skills for that technology.

  • Could we have gotten the knowledge?  IMO, no.  The code was too convoluted and cryptic to be picked up, plus the software was being used as something it was not designed to be used for in the first place.

¨     Out and out technology limitation;  This one is more difficult, as the tech being used on any existing product is always limited or needs replaced to fix limitations.

  • What do you mean?  This may be something like a 32-bit implementation and it needs to be a 64-bit implementation or you are on the iOS and you need to be on Android.  Now if you are using a good development language and environment, then moving to 64-bit does not require a complete rewrite… hmm, I wonder what product I may be thinking of… anybody?

¨     Direction change;  This was much more evident when a majority of companies and programmers moved to Java from something else.  This usually causes a new product to be written in the new language or direction.

  • Can’t you wrap the existing?  Maybe, but in most cases the developers will make the case that having a limited number of things to support is a good thing and that the whole reason for moving to a new platform or direction is because it will give an advantage and wrapping the old tech will be more of the same.

Do you use a set of questions or criteria to figure out what you have and how to go forward?  Do you have strict guidelines that you have used that helps with this question?

Let me know you thoughts.

Mike

More to come…

 
3 Comments

Posted by on September 16, 2011 in Opinion, Technology

 

Future Proof… what is it, and or, does it exist?

Look into the crystal ball of tech

In one of my prior posts (http://wp.me/p1IX3y-I) I wanted to try the latest and greatest JDK from Oracle, 7.0 using JBuilder 2006Enterprise.  What made it interesting is that JBuilder 2006 was written with JDK 1.5 (5.0) and was released back in 2005.

One of the discussions that I was part of at one of my old companies was the idea or concept behind “future proof frameworks.”  The conversation would be related to IDEs and Java and it would work something like the following:

Tech person:  We need to move from established IDE/platform (proprietary) because the current one (internal) is way behind.

Me:  Behind, how?

Tech person:  It does not support this or that, or its framework is old.  Only the new platform (open source) will be future proof and not have the issues that the current one has.

Me:  Those issues could be resolved with a little more investment or a change in priority of what needs to happen next.

Tech person:  We spend too much money on the underlying framework.  If we move to the new framework, we won’t have that investment?

Me:  You mean we won’t have the investment in the older framework but we will still have the investment to modify the plug-ins when the framework is updated or modified… so it is the same thing, just one is working on the established in-house framework and one is investment in the new framework.

Tech person:  No, the new framework is future proof, you won’t have those types of things, and those people now working on the original stuff can be put on to new features and plug-ins to help add more functionality.

See you don’t understand future proof.  Since the new framework will have that approach, the needed continual investment into making the underlying framework work, will not be needed.

Me:  It’s the same thing; we will have to put money into the framework interfaces to support our plug-ins and any other plug-ins we include.  Because we have to ensure that any plug-ins from the wild will not interfere with our in-house created plug-ins.  So, we will still have to make changes if any plug-in interference is found.

Tech person:  Again, you don’t understand.  Since the new platform is future proof and the plug-ins are based on that platform, they are also future proof, so the amount of overhead or work will be very minimal because the plug-ins are again, future proof.

Needless to say, this type of conversation went on, and on, and on, and on… and I never won the argument.  However, I was somewhat vindicated that the new framework, which was supposed to be future proof, turned out to be like every other program in history.  It would need adjustments as time went on and the amount of resources to build, maintain, and deliver the product ended up being around the same cost, if not a little more.

After doing my little experiment with JBuilder 2006, I had to smile to myself, as JBuilder was able to handle most of the new Java without any changes.  Were there issues?  Heck yeah, but the fact that the product could still do most of the functionality it was originally designed to do was a great “tip of the hat” to the great engineers and quality assurance people who created and delivered that product.

In a more recent issue,Delphimay be too future proof!  During my time at Borland/Inprise/Borland/CodeGear/Embarcadero, we would have customers still using older versions of Delphi and C++Builder, they would not move.  The product was still producing working code and they understood the limitations of these old products very well, and did not want to change.

Now Vista and Windows 7 are starting to make these customers move to the newer products because the underlying OS is starting to change how it handles things.  Keep in mind thatDelphi5 was released in August 1995, so that was a great product that was very future proof, in a sense.  Most of these developers were still using the older Windows OS(s) and the need was not that pressing.

For me, the great thing about computers and software are that they don’t stand still, they are always evolving, and so they support the future when the future comes.  Having an application or product work in the future when things are different is fine, but most likely that product is not going to support the future, it is only going to work in the future… a much different thing when I think of future proof.  

I mean, I was happy that the JDK worked in JBuilder 2006, but JBuilder did not know of the changes in Java and how to best support those features.  As I stated, things like the latest Tomcat 7.0.19 was outside the realm of JBuilder 2006, 6 years ago, and there would have been no way for JBuilder to support the web changes defined by the later specifications of Servlets, JSPs, and the like.  So, while it again worked… it was a hollow victory in the sense that additional work would need to be done to make it truly support the Java of today.  But, that would be true for any product that was written before the latest and greatest updates were released.

So what are your thoughts on the concept of future proof?  Is there such a thing?

Mike

More to come…

 
6 Comments

Posted by on August 12, 2011 in Opinion, Technology

 

Tags: , , ,

Blast from the past – Future Proof – The concept?

It had been a while since I had used JBuilder 2006Enterprise, so I wanted to do a little test since the Java JDK 7.0 was just released.  Now over the years I heard people talk about how “future proof” the Eclipse framework/platform was or would be.  This was always something that bothered me, what is future proof?

So I loaded up JBuilder 2006Enterpriseand let me first say, wow, what a great coming home.  Don’t get me wrong, I don’t mind Eclipse based Java IDEs, but wow again, it was focused, fast, and had all the tools at my fingertips and could just get the job done.

The first thing I wanted to do was to see if any JDKs, except for the base JDK that was shipped in the product, worked.  I clicked the Tools|Configure|JDK’s menu item.

Configure JDKs

Configure JDKs

As you can see, the only JDK known by the IDE is JDK 1.5.0_03-b07.  So the first test I wanted to do was add JDK 6.0 update 26 and see if I could get it to load and use the JDK for a project I built.

So I clicked the New… button and started the wizard.

New JDK Wizard

New JDK Wizard

I then pointed the IDE to the JDK 1.6.0_26 and clicked the OK button.  It returned to the wizard with the needed information filled in.

New JDK Wizard

New JDK Wizard

I then clicked the OK button to continue.  This returned a newly added JDK 1.6 to my IDE.

JDK added

JDK added

Now it was time to do a couple of quick tests on the JDK and the IDE, and see if it could handle the new JDK or if the IDE, which is written in 100% Java was NOT “future proof” and would be in today’s terms an Epic Fail!

First, I wanted a simple Command-line Java program, using the wizards, I created a simple project, pointed to the newly added 6.0 JDK and wrote one line of code; System.out.println(“hello world!”); hit the run button, and it worked like a champ!

Second, I created a Swing application using the wizard, added a couple of extra lines, added some additional buttons with code, and BAM, worked again like a champ!

I then made some changes to my startup JBuilder.config file and added InterClient.jar (InterBase 2009 and XE) to the system and created a quick CRUD application using dbSwing components, and BAM, worked like a champ!

IDE running CRUD application using JDK 6.0x

IDE running CRUD application using JDK 6.0x

Here is the running Application:

Ugly quick CRUD application

Ugly quick CRUD application

I know, ugly, but that was not the reason for writing the code!  The test was to see if JDK 6.0 would work with a product that was written with JDK 5.0 (1.5.x) and work well.  The answer so far is yes, and the debugger is great as well.  All of the normal features work well.

Now I tried to do a quick Tomcat web-application with a Servlet and another with a JSP using the latest Tomcat 7.0.19.  This has not worked as of yet, but I’ve only spent maybe 20 minutes on the setup… plus, the web-applications are much more different now and that area of Java has changed significantly, so it may be the fact that JBuilder 2006 released in 2005 can’t handle the web side well, but I will have to play a little longer on that if I want to see if it works.

Now what about the newly released JDK 7.0, the first Java JDK from Oracle?  This is not a review of the JDK, as there are a lot of things and writings on JDK 7.0.  This is more of an attempt to see if I can get it to work in JBuilder 2006Enterprisereleased in 2005 written in JDK 5.0.

Added JDK 7.0x to the JBuilder 2006 Enterprise IDE

Added JDK 7.0x to the JBuilder 2006 Enterprise IDE

I Added the JDK with no issues.

I then tried the same programs as before to see how the old JBuilder handled them.

Added New Runtime Configuration to the JDK 7.0 project

Added New Runtime Configuration to the JDK 7.0 project

I setup the configuration to run the Application… well can’t have everything:

First compile attempt: FAIL!

First compile attempt: FAIL!

Most likely I know where the error is:

Using the old Borland Make based on JDK 1.4 compiler

Using the old Borland Make based on JDK 1.4 compiler

Pointing to the JDKs internal compiler, using 7.0's compiler

Pointing to the JDKs internal compiler, using 7.0's compiler

The internal compiler needs to be changed as it was using the Borland Make based on the JDK 1.4 compiler found in JBuilder 8!!!  Changed that to the Project javac compiler and pressed the OK button.

Hit the run button and had the following happen:

Now it works...

Now it works...

Printed Hello World just like I thought it would.

While it worked, there are still issues...

While it worked, there are still issues...

While it does work and I can get things to compile, the code editor is a little out of whack.  The debugger is not working at this point, but that could be for a variety of reasons.  I may have to investigate this a little more.  The Swing Application does work, but again I have some issues with the editor and compiler working correctly but this could be a low-level configuration that I’ve not fixed or DON’T REMEMBER!

Generated Swing application using JDK 7.0 and 7.0's Swing

Generated Swing application using JDK 7.0 and 7.0's Swing

However, as you can see, there are issues with the Swing Designer, which again could be a configuration issue or something to do with the changes in JDK 7.0.

Swing designer issues

Swing designer issues

However, the fact that I got JDK 7 to load, compile, and execute a simple Java application, and a simple Java 7 Swing application, is a fairly strong comment on the fact that JBuilder 2006 while not perfect.  I also wanted to see if I could get the CRUD application working.  Since the Swing designer was broken, I loaded the CRUD application I created with JDK 6.0 and just changed the JDK settings.

Setting the projects JDK from JDK 6.0 to JDK 7.0

Setting the projects JDK from JDK 6.0 to JDK 7.0

I then also needed to change the compiler as I did before:

Setting the internal compiler to JDK 7.x

Setting the internal compiler to JDK 7.x

I pressed the OK button, did a Save All and hit the Run button.

Running simple CRUD application using JDK 7.x

Running simple CRUD application using JDK 7.x

Well, as you can see the CRUD application ran with no issues, the application is still ugly, but it works, and with NO coding changes.  Just to verify the JDK being used, check the red box, it shows the command-line used (another great feature) of JBuilder 2006Enterprise.

I was also able to get other things to work really well, check out the UML visualization tab using JDK 7.0 as the base JDK.

Using some of the advanced tools like UML Visualization

Using some of the advanced tools like UML Visualization

While this does not change the above limitations so far, the fact that JBuilder is working, using, and displaying things from JDK7 does show that JBuilder 2006 is fairly future proof!

 
6 Comments

Posted by on August 9, 2011 in How-To, Opinion, Technology

 

Tags: , , ,

Apple getting too big?

I have created the following poll:

What sparked this question?  Well, a few things, the first being that Apple is pushing to have companies stop doing in-app purchases from their application.

The big players on this are… as an example, Amazon.  I go to the Amazon account, I want to purchase a book (here is a great one for example:  Great Book Here – Version Control) and I purchase it through my Amazon app on the Apple iPhone.  Thus, eliminating Apple’s cut of the book sale, because I go directly to Amazon store with the Amazon app.

For more background on that take a look at the following article:  ZDNet Story on the subject!

Stay with me for a minute – isn’t this sort-of the same thing that “evil” Microsoft was taken to court over for embedded browser technology in to the OS and Microsoft said it would be hard to remove or separate the tech?

Apple is basically claiming that because the iPhone app was purchased through the AppStore that Apple has inherent rights to all purchases through that App?  Meaning if I’m the auto dealer and I create an app to sell cars on the iPhone through an app, then Apple would get a cut of that sale?  Really?  Apple is saying you go through us, we get a cut.

Microsoft said the browser technology was “now” (1995, seems like yesterday) part of the OS, so we as Microsoft have to include it in the OS and since it is part of the OS it is Free to use.  This approach basically stopped other commercial (non-free) browsers.  What is worse?

Two large tech giants crafting the story to fit their bottom line desires.  Apple trying to get something for nothing and diminish the competition like Amazon and Barns & Noble, while Microsoft was trying to kill competition (Netscape at the time) by giving away the technology for Free and kill competition – which by the way, worked.

They both either use/used their power to rewrite the ground-rules of the game midstream.

The interesting side note is that most companies will now create a webapp instead of the native iPhone app and go directly to their site, thus bypassing Apple all together by using the web.  Thus, Apple’s push could lower user-experience because of the 3rd party webapps and drive more people back to the Apple and the Apple AppStore, thus eliminating the 3rd party competition and raising money again for Apple’s bottom-line.

Second Apple news that gives them this power is that a new survey has just been released that states 35% of Americans will purchase the iPhone 5!  <Article is here>

This gives Apple incredible power, more than they have already.  Will we watch the next big tech giant become the hated business villain (defined as the DOJ preparing hearings and cases against the companies)?  It has happened every decade:

  • IBM – 80s’
  • Microsoft – 90s’
  • Google – 00s’
  • Apple – 10′

Vote in the poll and we will see where people stand today.

Mike

More to come…

 
3 Comments

Posted by on August 1, 2011 in Opinion, Technology

 

Tags: , , ,