When the iPad came to Canada i immediately purchased one. Being a developer and small business owner I wanted to understand the the appeal and determine if there was some form of business opportunity to be had. Since then I have used the device mostly for reading blogs and PDF books.
Since I have very little time during the day I have started to think about the blogging capabilities of the device. I am usually using it at night when the rest of the family are watching tv. This post is the first post written on the iPad using the word press application and so far I am generally happy about the simplified posting capability. My typing ability seems good though I miss the tactile feedback I get from a normal keyboard. But whole in whole it seems like a viable way to get some of my thoughts posted.
Hopefully with this new found method for getting words out there I will be
Posting more often.
Category: Uncategorized
It Gets worse before it Gets Better
As is the Season and many are getting sick I have been hit with a pretty bad sinus infection. I have none of the external symptoms but do have the constant feeling like I got punched in the face. Its not a pleasant thing and something that I need to slug though. Being a small business owner it seems that its hard to take the time to rest and recoup properly. Couple the sickness with a new desire to get in shape ( a constant battle ) I have taken any of the comfort foods out of my diet. No more coffee, pop’s or sweets of any kind. I find when i feel ill I migrate back to eating, however this time I have stayed the course and I am sure when this is all said and done I will be much happier.
Now being sick I did what most do, visit my family Dr. He prescribed be some drugs that I have to take for 10 days. During the conversation he listed out some of the side effects and the frequency that they occur. When I had the prescription filled the pharmacist also listed out some of the side effects and their frequency.
It seems while taking this drugs I happen to be in the group of 1 in 10 that get them so its been an uncomfortable recovery so far.
Where is all this sickness talk going, well I was thinking about how ironic it is to get better sometimes we need to get worse. This matches up well when it comes to managing legacy development projects where you are getting the code as a tangled mess.
During the process of fixing defects, and micro re-architecture the actual product can be come more unstable. However, with further iterations and a more disciplined approach the application can be be managed back into health.
In my experience I have found that many an application needs such care. A large portion have been written in such a way or with tools that did not promote good architectural design, or lead to maintainability or future extensibility.
I am very happy that we as a developer community have tools now that allow us to shape and morph the legacy code into a more elegant design. Removing redundancies, adding logging, cleaning up resources, and refactoring to patterns are all tasks when taking on a legacy development project.
I have to say I do like re-architecture work. It allows me to take a important system for a business and make it better in the long run.
The power of the Web
I have been working on an update of an integration engine that our company has built for a company in Denmark and currently focused on adding Office capabilities (Outlook, Excel …). Work has been going exceptionally well on the core infrastructure and I wrote the outlook connector during stops and plane trips back from Vegas on Saturday. Part of integrating with Office is the COM interop interfaces you have to use. Since the engine is supposed to be generic I wanted to write as little property access code as possible and determined that Reflection would be my best bet for the simplest code to do what is required.
So I rolled up my sleeves and worked away with PropertyInfo to get and set the object properties. To my dismay I was unable to get access to the underlying properties and no amount of casting or whining would work. Unfortunately I did not have internet access to see if anyone had gone to this dark place before me so I did what so many others have done before, Kludged a solution that worked but took way too many lines of code to implement and made me a little sick, but it worked and allowed me to prove out my design.
Well, I just got back to the engine now (3:25 am) and after looking at the code and knowing that it was not the right way to go I “Bing’d” Reflection of a COM object and lo and behold a post by Rick Strahl back in 2004 had the answer to my question.
Thanks Rick, you made my tummy happy and I can now feel more confident that I indeed have implemented the solution in a more elegant way.
Sage SalesLogix 7.5.3 is now available
Hey all you Sage SalesLogix users, guess what. The Sage SalesLogix team has release 7.5.3 update last week. Now is a great time to upgrade to the latest version of fixes and enhancements. We will be doing some upgrades this week and are looking forward to moving customers to the new version.
My Busy mind drop-kicked my desire for Sleep
As happens from time to time my capability to sleep is greatly effected by my active mind. Sometimes I think it a curse that I am very incapable of clearing out all though and just letting go for even 6 or more hours a night. I therefore find myself back in the office pounding away at the keyboard getting caught up from a week away on a family trip to Las Vegas.
With my Tim Hortons coffee in hand and ready to prepare for the days meetings (start in 7 hours) I decided to pause and get a blog written with some of the thoughts that have been churning in my head.
So lets begin the brain dump!
Recently Microsoft announced LightSwitch a rapid application development platform based on the Visual Studio development tool and some of their latest technology stack components (Silverlight, ADO.net Entity Framework ..). The tool is supposed to target non programmers to create line of business applications. My initial thoughts was that MS was watering down and trying to commoditize the development community where companies we have to work harder to justify their worth in the development of great solutions. I believe that if it had come from an other vendor this would not have been such a questionable thought as the introduction of a tool such as this would have to compete on a fair and even playing field with the rest of the ecosystem. Microsoft introducing the tool muddy the water and made the decision making process slightly more difficult, or so I thought.
I think more so for me is that through the years I have had many of the same ideas that Microsoft is putting into play now and I failed to act on those decisions for one reason or another.
I was believing that LightSwitch was a technology disrupter at least in the MS development space but I am somewhat less inclined to believe that after spending the evening with the tool.
The fact is the tool is very similar (in my opinion) to other tools in the market (Access for example) when it comes to the generation of a application skeleton. I know that many squash the comparison, but the fact is even though it is sitting the new MS stack, the target audience it is the same, the experience for creating your shell is simpler (it seems). Less properties, less options and the UI is a forced one where you have to download/purchase new skins to get a look and feel that is unique.
Its a nice sandbox and I was able to get in and do enough work to see search and add/edit of a simple entity fairly quickly.
For basic CRUD applications LightSwitch could be a good thing. I can see several places where we at BITtelligent can use it to augment our process to give the customer some extra value add especially around administration processes however I cannot see it being the everyday tool for a development house.
Some of the things I liked from LightSwitch;
1. Easy to get in and start a project
2. Simple Data model development
3. Utilizes Silverlight, ADO.net
Some of the things I do not like
1. Seemed like the designers were MDI based
On a data model screen, click add a new View and the data model screen seemed to disappear
2. No control on how the UI is composed.
The framework composes the screen based on the controls you select. Every tool that I have worked with allow for precise layout and going back to a tool that does not seems outdated
3. Easy for non-programmer to get complex errors.
For example I can easily add in one of my button’s action event :
MessageBox.Show(“Hello World”);
When invoked this gives a cross thread error. In a non-programmer tool to see such an advanced error (threading) seems to be problematic and still displays the need for good debugging skills which the target audience may or may not have.
4. Constraints.
So this is the big one, since its a sandboxed environment options are limited to what the framework and tooling exposes. Generally all applications will look the same and to truly get a customized look or feel you will either need to obtain skins which I suspect will be a purchase from a 3rd party vendor like Infragistics, DevExpress or that free skins will be made available through the kindness of the community, or alternatively learn how to extend the product to create your own look and feel that I suspect is not targeted at the non-programmer.
Also their is quite the limitation of properties/settings. This could be either a good thing or a bad thing depending on the business need at hand but I have to believe that even MS cannot predict the usage scenarios of all the possible consumers.
5. Reporting, Distribution
I did not see anything in the box to address these items but I suspect if there is nothing there now, MS will address in the future.
Final thoughts
So from a competitive play against the current visual studio product, and the enterprise developers/consultants that work with the toolset it does feel like a threat to me. It lacks the breath/depth that so many applications required and to get the penultimate solution there will be so much more work that the non-developer will not be able to do.
However for small MS based consulting companies having knowledge and skills for utilizing SwitchLight might open up some new opportunities to add value to their current and new customers.
Here at BITtelligent Peter, Cory and Myself will be actively looking at the new toolsets (LightSwitch, MVC3/Razor, WP7) and thinking of ways to make ourselves more available to a broader group of customers and their needs.
SQL 2008 Removal Dialog
Make Sure you Apply your Patches
I work with SalesLogix and support development on the Web Platform. With the introduction of 7.5.2 Sage started to introduce their fixes as web rollups, which consolidated several HF’s into one cohesive package. Each rollup builds upon the last and brings enhancements to the platform in areas such as speed and stability. Like windows, or Mac or any other critical platform/application SalesLogix benefits from this from these patches being applied. The problem with patches within SalesLogix is there is the possibility that some Business Partner intervention is required, and probably recommended to ensure that the patch was applied correctly and that any of the customizations that have been created have not been overwritten or if required re-tweaked to work with any of the new changes. Given that this level of support is required you may very well hesitant on getting the patches applied but in the long run the costs on not applying the patches may outweigh the cost and effort of keeping them up to date.
Here are some of my recommendations to help mitigate the patch risk and keep things running as efficiently as possible.
1. Have your BP/Development partner have a backup of your latest VFS and a test\development database to work off of
2. Do not share Production with Testing/Development environments
3. Have your BP apply the patches after determining the impact areas and making the required changes. Note this bodes well with #1 if you have advanced customizations as the partner is more prone to have a toolset to solve any integrations issues more effectively instead in a Test/Production Environment.
4. Work off of project Backups. Even though the partner will be working against the bundles supplied by Sage you should expect a full project backup. This will ensure that you get everything that is working and only have to apply one or 2 things to production (.sxb possibly)
Depending on the scope of the HF the effort from the Business Partner will change however by following the steps outline you will be assured that the rollup can be installed and applied into product with a lower risk and a shorter window of downtime.
Currently there are 5 rollups available for 7.5.2. Are you up to date?
– Mark
Exciting Times indeed
This week marks the next milestone in the journey we are taking at BITtelligent Software. and this post marks the official announcement that we have a moved into a corporate office space. While we were more then capable of delivering on our customers projects in the home office that we had set up in we felt it was now time to move out and provide another level of credibility behind the business. Its been a hard week in both completing the move as well as continuing to deliver to our customers but we got through it unscathed.
I would also like to officially welcome Peter Wallace and Cory Fowler to the team. If you don’t know Peter yet he comes to us from Sage Mobile where his role was Software Architect. Peter brings a calm and balanced approach to software development and is always thinking of the critical path and ensuring that the software has the needed infrastructure for the enterprise environment.
Cory is a younger developer with a passion for community. He regularly blogs and is an advocate for Microsoft’s Azure platform. Cory has presented at many events and is always keen to discuss current technologies. Focused on web and Silverlight, and a flair for JQuery, Cory nicely augments the team with desired skills.
Both offer experience and skills that will benefit our customers in the months and years to come.
Over the next little while we will introduce web site revamp (so overdue) to reflect the new place and identify our core competencies. Though we have grown we will continue to hold true to our value system and work diligently with our customers to provide the right services and approaches tailored to each individual’s needs. If your in need of some custom development, or your a Sage SalesLogix business partner looking to augment your development team from time to time or on an ongoing basis please do consider us at BITtelligent. We are always open and willing to discuss ongoing opportunities and partnerships.
It is my hope that now that the team is filling out I will be able to spend some more time on the blogs and we each of our customers ensuring that we continue to meet and as possible exceed the needs in both skill and delivery.
Thanks to all of our customers, and partners, without your support we would not be here. We are looking forward to working with you all for years to come.
With gratitude
Mark
SalesLogix .net Extension issue
I was doing some work on a product today that uses .net extensions in SalesLogix. A problem was reported that one of the dependent assembly interfaces could not be located. I jumped on a gotomeeting to confirm that all of the assemblies were being registered from the correct location and had the right version numbers. Confusingly the assemblies looked correct but when registered one of the assemblies did not have the right version number. I decide to search the machine for other instances of the assembly and found that there were versions located in the program files\SalesLogix directory that had the suspicious version number. Once we deleted these rogue assemblies the extension manager resolved the child assemblies correctly. So if you have a problem with your assembly versions not matching up look in your saleslogix folder to see if an old version exists there.
The Apple iPad .. A little of Meh!
Ok, so I have had my iPad for a little over a month now and have used it often. During this time I have been able to formulate my thoughts on it and come to the conclusion that its a OK device, but not revolutionary or magical as the commercial would try to make you think. The fact of it is its no more then a enlarged iPod touch. Features and functionality that we have been use to for several years now. The device is optimized for reading IMHO and that is pretty much what I use it for. When I break it down to what I like about the platform it really is only the blog/pdf reading capabilities and even at that I still like paper books (I know a hold out) as I find with the iPad I shift back from portrait to landscape quite often or pinching to expand/reduce enough to break my reading flow. However what I do not like about the platform seem to be far greater.
1. I feel like i am getting absolutely screwed for my 3G access with Rogers.
2. When I want to download an application that is greater then 20mb it will not do so (even though I have lots of bandwidth) without either tethering or connecting to a wifi network. Both of those options may not be available when I want to get the piece of software I purchased.
3. Most of the applications that are available ‘Are the Suck’. Lets be honest here if they want to report 250,000 apps on the store they should also report 248000 pieces of shit also up there.
4. You have to pay for that crap application to actually verify that you paid for an absolutely craptastic application. Most do not give enough detail or allow some trialware to make sure that you are happy with your purchase.
5. Games that want to reach in my pocket and scoop out the last available cents. Last night I downloaded an update to a game that I had purchased. On starting the game I get a you should by the game at .99 cents now as its going up to 1.99 in a week. No option to go to no thanks, and continue. Either purchase or go to their website.
6. Suffice it to say I do not believe the iPad in itself is a great game platform. Do not get me wrong, there are some great things that can be done however for me the platform is not only the game but the interaction with the game. 2 things turn me off 1) the size of it is too big to hold for long durations of time while twisting, turning or tilting that the novelty just wears off. 2) as playing goes on the screen becomes more sticky/difficult to do fluid motions. Fingers get moist and eventually dragging becomes encumbered ensuring that I am not having the most optimal playing experience.
So I will continue to use my iPad for reading when I do not have a book available but otherwise I will be discontinuing my 3G service with Rogers come the end of this month. I will also stop purchasing applications from the store until there is a better way to confirm that what I order is what I really want.