Feb
10
SEO Thoughts
February 10, 2010 | Leave a Comment
SEO, or Search Engine Optimization, must be a pre-occupation of quite a few webmasters and it is probably something that might even, from time to time, keep them awake at night.
SEO, for the uninitiated, is the process by which websites are configured and designed in order to be “attractive” to search-engines, such as Google or Bing, or more specifically to the search-engine spiders which routinely look at web-sites and take note of the site’s content, links, title etc in order to decide the ranking of the aforesaid website.
It goes without saying that the ranking awarded by Google or Bing or anyone else is very important in determining whether users of the vast universe of the internet actually find the website or not. After all, there are millions of websites out there, what makes yours so compelling?
However, there is more to SEO than search-engines and that is the actual design of the website. How it is laid out? What colours are used? Is it visually appealing and attractive or does it resemble an abstract piece of modern art with no discernable function or indeed form?
Webmasters are constantly, so I read, striving to make their site better, more usable, more attractive etc in the hopes of increasing the number of visitors who find the site and more importantly, the number of return visitors.
Which brings me to me. I modified the layout of my web site, www.ordersofbattle.com (sorry, shameless plug there!) a few months ago and I noticed that the number of page impressions in Adsense started to increase quite nicely, as did the monthly income.
Bingo! I thought, I am on the road to internet glory!!Â
Not so fast, Trigger!
What was in fact happening was that Adsense was counting each page two or three times because I had adsense ads in inline frames, so to Google they were separate pages.
No wonder my figures went up!!
It took me some time to notice because the ads still seemed pretty relevant. This was because they were using the other content in the frames to drive the ads.
It finally dawned on me what I had done, so I modified the site to use DIVs instead of FRAMES. I also took the opportunity to add a nice graphic as a banner, add a site Title, sign up to the Google Affiliate Network and add some nice colourful ads for various things such as books and I also signed up with Amazon.com as an Associate and added some book ads that were relevant (Military History since you ask).
I then updated the web server and sat back waiting for the money to flow in to my coffers.
Cue, disappointment!
No money flowed into my coffers, my adsense clicks declined massively as did my page impressions!!
What had I done?
I re-arranged things a few times and things recovered a bit but not much. Hardly anyone clicked on my affiliates, no one bought any books and my adsense clicks stayed on the low side.
This became an object lesson in how to screw up a good thing and go backwards. Obviously my visitors were voting with their feet. Either that, or somehow nobody wanted to look at my site in February!!
Time to do research!!
Well, after a bit of digging, I discovered that Affiliates and Adsense may not be ideal partners on the same website. People click on the affiliates rather than adsense; perhaps all the ads were putting people off as my site was obviously far too serious to have all these ads ruining it.
So, now I have removed all the affiliate ads and re-arranged the site and I will put another version live to see if anything improves.
It just goes to show that webmasters must be very careful in what they change. Change things slowly bit by bit rather than wholesale and think very carefully of the possible downside as well as the potential upside before doing anything!!
Here endeth the lesson for today!Â
Jan
28
SMTP Servers and other thoughts
January 28, 2010 | Leave a Comment
Well a month has passed since my last post here and I am still at home waiting to find my next contract assignment, but strangely enough I have not been sat idle in front of the television.
In between working the phones trying to sort out resumes and interviews; I have been doing a lot of programming, and also a fair bit of web design; something I have not done for quite a while and something which to be frank is not my strong suite.
My wife asked me to build her a web site for a particular project she has been working on and I found some software that could be customised that was written in PHP and MySQL. Customising it involved finding and modifying a suitable “skin” which is something I did a few years back for my Wordpress sites.
Having adopted the “try it and see” method of css editing, I was getting very frustrated at my lack of progress when I smartened up and tried to see if I could find a specialised CSS Editor to save the hassle of doing it in Notepad.Â
Fortunately for me, I found a demo copy of Stylizer which was just the ticket as it allows the user to modify the CSS elements of a website on the fly and immediately see the results then and there. It was so good that I fully intend to purchase the professional version Stylizer Ultimate.
Another problem I had to tackle was email. The site needed to be able to send out emails to members. In the past, I have had absolutely zero success at configuring SMTP; which I am sure says a lot about my technical abilities!
Once again, the gods of Open Source smiled upon me because I found a really good Open Source SMTP Server for Windows called hMailServer which did the trick. After a day or so of searching Google for hints, wrestling with my ISP, my Domain provider and my own internal Server settings, I finally got it all working!
So, who says old dogs can’t learn new tricks?
Dec
24
Back on the Market - and other topics
December 24, 2009 | Leave a Comment
Well I am now finished with my contract in Ottawa so that means it’s back looking for a new contract and who knows where that will be.
Once again, I apologise for not updating this blog for a while. In Ottawa, I was very busy going to the National Archives almost every night during the week and as it was open until 11 pm that did not leave much time for anything else.
I do not regret it, IÂ took over 27,000 photos of material from 117 boxes of war diaries and analysing that material will be both interesting and time consuming. War Diaries are primary source material and are extremely valuable contentwise, although you have to wade through a lot of trivia to build a full history of the unit concerned.
There are over 300 boxes of war diaries on Canadian infantry battalions so I have a long way to go, but I probably have enough material for at least the first volume of a series of books on units of the Canadian Army in the Second World War that I would like, one day, to write.
In the meantime, some of the material will go onto the http://www.ordersofbattle.com website.
Things have been quiet on the .NET Framework development front, I am working on a set of generic index and record edit forms to handle data from many different tables. At run time, the form sets up the appropriate controls for the table concerned, so adding functionality for a new table is a snap, you just add a constructor for the table concerned and add code to handle the different events.
I have already written something similar for the various unit and person tables, such as Unit History, Appointments, Unit Notes etc. I am now trying to write code for all the other tables such as Unit, Person, Rank, Role, Award etc.Â
I am also working on creating a new colour scheme for the ordersofbattle.com website as I feel it is time for a change. I hope to finish this and get it published before New Year.
Obviously, as it is Christmas, I have obligations to fulfill, meals to cook and eat etc so that cuts into my development time.
Ta ta for now
Dec
24
Happy Christmas!!
December 24, 2009 | Leave a Comment
Wishing all my visitors a very happy Christmas and New Year!
Sep
14
Siebel Development Tips # 1
September 14, 2009 | Leave a Comment
I thought I would start to share useful programming/database solutions and fixes that I come across in both my professional and personal programming existences.
This is both to share my experience with others and to provide me with a scrap book of code that I can re-use in the future.
Personally, I develop in .NET, VB.NET, C#, SQL Server, T-SQL, ADO, LINQ etc and I write about this here on a regular basis.
Professionally, I do both Siebel EAI development and UI configuration in Siebel Tools. Siebel is a CRM Product that was developed by Siebel Systems and is now (like so many technologies) part of the Larry Ellison stable.
EAI stands for Enterprise Application Integration and involves writing Siebel Business Services, Workflows, Integration Objects, Data Maps etc with a goal of enabling Siebel systems to exchange messages and data with other non-Siebel systems, both internal and external to the client. Data can be exchanged via Web Services, Queueing Systems such as MQ or MSMQ, Files via FTP, and/or via HTTP.
The main difference between developing for Siebel as opposed to writing .NET is that in Siebel one does not have any access to the inner workings of the product as it’s functionality is enclosed in C++ Classes. All one can do is “tinker” around the edges using Siebel Tools. The closest one can get to “proper” programming in Siebel is to write new Business Services in eScript or to modify Business Components or Applets in eScript.
However, nowadays it is generally not regarded as good practise to modify Applets and Business Components with eScript unless absolutely necessary. In some sites, the use of any eScript at all is not allowed.Â
My personal belief is that eScript has its place but should be used carefully and only when necessary. Sometimes, however, use of eScript is the best solution.
Having said all that, here is your first Siebel tip which I discovered on Friday.
In Siebel Workflow, there is no function for a carriage return line feed so if you want to populate a text field and format the contents so that they appear on separate lines, there is no simple way to do it.
When faced with this in the past, my response has been to write some eScript in a Business Service to return the CRLF escape sequences to the calling routine. The workflow can then call your business service to populate a process property with the CRLF characters and it can then use that process property as and when required.
My current client has a strong policy against eScript except where absolutely necessary so I was please to discover that there exists a “vanilla” Business Service in Siebel 8 which returns CRLF as a return argument.
This Business Service is called  SSSE Address Parser (eScript) and it has one method GetCRLF.
That solved my problem!!
Sep
11
Orders of Battle Development Progress
September 11, 2009 | Leave a Comment
Well, things have been chugging along on the development front for Orders of Battle.
I have now completed the rewrite of the windows client and the middle tier to use LINQ and developed a new LINQ for Entities DLL to replace the old data tier that relied on stored procedures. I have also modified my web site to use LINQ and am busy fixing all the problems so that I can deploy it to the web server very soon.
I have written several Windows Services which manage the flow of data from my client machine to my server databases which use LINQ to query the client database in order to generate outgoing messages, write those messages to file, pass the files up to the server, and update the two databases on the server in turn.
In some cases, I have more than one copy of the same windows service running on a specific machine as they are geared to different databases, which is a little tricky but works OK.
So, all that is left is the completion of the web site and its deployment to my web server.
So, where does that leave us?
Well, that means that I am finally in a situation where I can easily add new screens and pages to both the windows client and the website without (hopefully) having to write major amounts of code at the back end.
There are also other areas of development I want to look at: for example, improving the theme of the website to make it look more professional, using a different database for my client database, building a Wiki to manage my research, implementing reports, implementing some sort of analytics, building a Windows CE client etc etc.
I am also quite interested in learning some other .NET languages such as IronPythor or IronRuby, writing a new implementation of the website to use MVC perhaps.
These are all areas where the website provides me with the opportunity to learn and implement new technologies which is one way of keeping my mind in gear!
¼/p>
Aug
25
.NET 4 Revealed
August 25, 2009 | Leave a Comment
As someone who is pretty new to Visual Studio 2008 and .NET 3.5, I have not spared a lot of thought for the upcoming .NET 4 which will be part of Visual Studio 2010 which has already appeared in Beta 1 form.
For that reason, this article in Redmond Developer News is very timely and informative. You can find it here. It provides a broad overview of all the new and improved technologies that will be part of the new Framework.
Aug
10
Back to work!!
August 10, 2009 | Leave a Comment
Well, it has been a long three months off, but I am now busy once again on a new contract in Ottawa which I started 3 weeks ago.
The job market has been obviously pretty slow over the summer and the number of “phantom” requirements I had to chase was quite high which was pretty frustrating.
I kept myself pretty busy and it was really nice to have a break, but calling agents and sifting through jobserve every day does not really constitute a holiday!
Rates have come down a lot and I hope that they will start to recover once we get into September as I am not going to be able to retire on my current rate!!
Ottawa is a very nice city and I can go home every weekend which is good. However, it is difficult to find furnished apartments here for periods less than a year as everyone wants to rent for at least a year. Even if my contract was for a year, I would not want to sign a lease for that long as contractors are always the first to get the axe should any budgetary issues arise at a client!
Jul
4
Database Server change
July 4, 2009 | Leave a Comment
The MySQL database that runs this web log as well as the databases that I use for ordersofbattle.com and my version control database used by Vault are all now running on my new database server that is running on a Mini-ITX system powered by the Intel Atom CPU.
The only exception so far is my Order of Battle Weblog database which is still running on my old database server because for some reason, I get a HTTP 500 Error when I try and point the Web Server to the new database machine intstead of the old machine (which works fine).
My new web server is running IIS 7 and the logging functionality is much better in that version of IIS than it was in IIS 6, but for some reason I have not yet been able to figure out what the problem is. All I have to do is change the database name in the appropriate PHP file and it gives a 500 Error.
So, until I resolve this, I cannot upgrade my old database server to Windows 2008 and reconfigure it for its new role in life as a Sharepoint Server and back up database and web server.
Hopefully I will be able to sort this out soon.
One nice thing about the Atom CPU is that the one I have has two dual cores so a total of four CPUs instead of two. So, when you view Task Manager in Windows, you see four graphs rather than two which is a bit incongruous in such a small motherboard!
Jul
4
Thoughts on Motherboard Failure
July 4, 2009 | Leave a Comment
In my last post, I alluded to the Hard Disk and Motherboard crash which took down my webserver which this blog ran on.
Not only did a year old hard drive crash, but surprisingly the motherboard (a VIA VB7001) stopped working while I was trying to figure out what happened.
I have now rebuilt the machine with an Intel ATOM Motherboard and a new hard disk and it is now functioning as my database server instead of my web server.
However, I now have a suspicion of what caused the motherboard to crash. It basically failed when I tried to boot a BARTPE CD via an external DVD Reader that took its power from the computer rather than a direct power source. I had previusly used the external drive with my small laptop with no problems, but I had never used it with a Mini-ITX board.
That was probably a bad idea!
The VB7001 motherboard worked OK, it just failed to boot because the Hard Disk had failed. Once I plugged in the external drive however to try and boot BARTPE then nothing at all happened. There were no messages on the screen, no RAM check - nothing!
So, the moral of the story is ….
Be very very wary about plugging in USB devices that take their power from the motherboard into a Mini-ITX motherboard!!

