posts - 293 , comments - 411 , trackbacks - 0

My Links

News

View Steve Michelotti's profile on LinkedIn

Twitter












Tag Cloud

Archives

Post Categories

My Online Presence

Programming

There are 42 entries for the tag Programming
Start Here!™ Learn Microsoft® Visual C#® 2010 by John Paul Mueller; O'Reilly Media
I recently accepted to do a review of “The Learn Microsoft Visual C# book 2010” by John Paul Mueller. I was in two minds on whether I really wanted to read this book – in it’s description it says it is targeting fundamentals of modern programming with Visual C#, but I wasn’t sure how fundamental it would be and since I have been working with C# for a while now, I wasn’t sure if it would be worth my while. After going through a few of the chapters of the book I would say this really targets very basic ......

Posted On Monday, January 2, 2012 3:26 PM | Comments (0) |

C# soon to dethrone C++ as the third most popular language in the world
Every now and then I go to Tiobe to see their ratings on the popularity of programming languages. Usually there is nothing exciting out there, just a few small moves of languages so I was interested to see in December Tiobe had a headline of C++ about to be dethroned by C# Looking at the stats, sure enough, according to Tiobe C# is on the verge of taking the number 3 spot. It will be interesting to see what happens when Windows 8 hits the market with what seemed to be a revival of C++ during Microsoft’s ......

Posted On Wednesday, December 28, 2011 11:18 AM | Comments (6) |

Dependency Injection Introduction
I recently was going over a great book called “Dependency Injection in .Net” by Mark Seeman. So far I have really enjoyed the book and would recommend anyone looking to get into DI to give it a read. Today I thought I would blog about the first example Mark gives in his book to illustrate some of the benefits that DI provides. The ones he lists are Late binding Extensibility Parallel Development Maintainability Testability To illustrate some of these benefits he gives a HelloWorld example using DI ......

Posted On Monday, November 21, 2011 7:24 AM | Comments (0) |

Knowing your tools and Keyboard shortcuts in your IDE
I recently have had the humbling experience of pair programming with several developers where I was just astounded at the speed at which they were able to get code generated. One thing I noticed is that most of their coding was done with the keyboard with very little use of the mouse – everything was shortcut based. When it was my turn to take over the wheel I found myself extremely slow compared to them, partly because I was not familiar with their keyboard and layout, but the majority of the slowness ......

Posted On Wednesday, October 26, 2011 6:03 PM | Comments (2) |

TechEd Africa 2011 – MVVM Programming - Slides & Code Snippets

 

Here are the slides and code samples for MVVM Programming Introduction given at TechEd Africa 2011

Posted On Saturday, October 22, 2011 4:10 PM | Comments (0) |

TechEd Africa 2011 - Async Talk - Slides & Code Snippets
For those that attended my session on the complexities of asynchronous programming in WPF & Silverlight, find below the latest slide deck and code samples for download ......

Posted On Saturday, October 22, 2011 4:09 PM | Comments (0) |

TechEd 2011 - Why Clifford got it wrong…
In the closing keynote at TechEd Africa 2011, Clifford de Wit (Microsoft South Africa) made improvements on his previous years attempt to geekily give away a prize, but unfortunately still got it wrong… here’s why. At Teched 2010 Clifford gave away an amazing prize of a wheel barrow full of tech goodies – if my memory serves me right, it included a laptop, xbox, kinect as well as a whole bunch of other fun stuff – a geeks delight. Unfortunately he was given some flack on how he decided to pick the ......

Posted On Thursday, October 20, 2011 8:44 PM | Comments (5) |

7 tips for people new to presenting at technical conferences
Today TechEd Africa 2011 ended. It was a great conference and the first time I have ever had the opportunity to present an hour long topic – I had the joy of presenting two sessions at this conference, one session based on a topic which I should have been able to cover easily and one with a topic that I battled with and felt totally out of my depth. In retrospect, there are a few bits of advice that I would like to give other people that are thinking of presenting at a conference like this for the ......

Posted On Thursday, October 20, 2011 6:04 PM | Comments (1) |

Simplifying Asynchronous Programming in C#
I have dabbled in async programming in the past but never put any real effort into understanding how things worked. With the new async features in .Net 5 I thought I would give it a look. Here is a quick example of one of the features you can expect in the new framework and how it can make our life easier. The best way to illustrate this is to make a simple WPF application as follows… In the past If we had the following small WPF application with just one window / form… The XAML code for the window ......

Posted On Tuesday, October 11, 2011 7:30 AM | Comments (5) |

Casing when coding
One of the first developer jobs I had was programming in VB6 for a small business down the road. Up to that point I had been casually coding at school but this was my first exposure to “professional” development. To get the job I had to do a weeks worth of work and then get it reviewed by the boss. I thought I did a pretty good job until I got his review back and he criticized everything – in particular he ripped apart my naming conventions (or lack of them). In memory of this event I thought I would ......

Posted On Wednesday, September 7, 2011 6:25 PM | Comments (2) |

Programming Windows Phone 7 by Charles Petzold
I recently acquired a Samsung Omni 7 with the Windows Phone 7 OS installed. With this device I have a new found desire to learn Windows Phone 7 programming and embarked on the endeavour by reading “Programming Windows Phone 7” by Charles Petzold (ISBN 978-0-7356-4335-2). I really enjoyed going through the book. While the one I was reading had a few spelling mistakes in it (not that I am one to point any fingers) I am sure they had been rectified before it went to print (I was reading the free ebook). ......

Posted On Friday, July 15, 2011 12:51 PM | Comments (0) |

Sending emails with VB6 & MAPIMessages returns Unspecified Failure has Occurred (Runtime error ‘32002’:)
So, a morning of bashing my head an a new found appreciation for .Net… Today I had to do some legacy app programming in vb6… The issue we were trying to resolve was that we had an application sending emails via the MAPIMessages library. Everything worked fine in Windows XP, but if the user ran the same program in Windows 7 you would get a Runtime error ‘32002’. After a fair amount of searching on the internet I got several conflicting reasons as to why this was “crashing”. To save those other poor ......

Posted On Tuesday, May 31, 2011 12:48 PM | Comments (8) |

Playing with Pointers
Ever since I began programming in c++ I have gotten confused with how pointers work. I understand why they are there and why they can be useful, but in my managed world I really don’t like touching them… That being said, tomorrow I am going to be tested on pointers and so I thought I would brush up.. here is a bit of sample code on some basic uses… #include <iostream> using namespace std; int main(int argc, char *argv[]) { int x = 5; int *y = &x; int *z = y; cout << "x value : " << ......

Posted On Friday, May 20, 2011 2:03 AM | Comments (0) |

Basic Design Patterns
I have been doing a rushed brush up on my contemporary concepts programming course – only to encounter more design patterns… so as revision I have listed some details below… Today I am going to briefly cover 5 design patterns… namely: Composite Pattern Observer Pattern Serializer Pattern Monostate Pattern Command Pattern What are Design Patterns? (see wiki) In programming we come across problems that are very similar, and certain approaches to solving these problems could be applied time and time ......

Posted On Thursday, May 19, 2011 4:37 PM | Comments (3) |

Mimicking websites request for screen scraping…
Introduction I don’t do web programming… I have been programming client applications for years and consider myself a WPF/Silverlight developer. The web thing always seemed a bit scary in its stateless environment with limited functionality and cross browser headaches. That was until recently when apparently HTML5 was going to kill Silverlight and I eventually decided that I would need to get educated and up to date. Since that decision I have re-accustomed myself with HTML, CSS & JavaScript. ......

Posted On Monday, May 9, 2011 7:52 PM | Comments (0) |

The DOS DEBUG Environment
Today I thought I would go back in time and have a look at the DEBUG command that has been available since the beginning of dawn in DOS, MS-DOS and Microsoft Windows. up to today I always knew it was there, but had no clue on how to use it so for those that are interested this might be a great geek party trick to pull out when you want the awe of the younger generation and want to show them what “real” programming is about. But wait, you will have to do it relatively quickly as it seems like DEBUG ......

Posted On Tuesday, February 15, 2011 8:49 AM | Comments (1) |

Getting Started with NASM
Today I got to play with NASM. This is an assembler and disassembler that can be used to write 16-bit, 32-bit & 64-bit programs. Let me say upfront that the last time I looked at assembly code at any depth was when I was studying Computer Science in Pietermaritzburg – ten years ago – and we never ever got to touch any real assembly code so a lot of what I am looking at today is very new to me. The first thing I did was download NASM compiler. This turned out to be a bit more complicated than ......

Posted On Saturday, February 12, 2011 4:39 PM | Comments (0) |

Browser Based F# Interactive

 

So I love this example that I saw in one of my daily programming newsletters – F# interactive in the browser – no need for VS.

Check it out here…

Posted On Friday, January 7, 2011 11:49 AM | Comments (0) |

Where have I been for the last month?
So, I have been pretty quiet for the last month or so. True, it has been holiday time and I went to Cape Town for a stunning week of sunshine and blue skies, but the second I got back home I spent the remainder of my holiday on my pc viewing tutorials on www.tekpub.com Craig Shoemaker, who I got in contact with because of his podcast, sent me a 1 month free subscription to the site and it has been really appreciated. I have done a lot of WPF programming in the past, but not any asp.net stuff and ......

Posted On Monday, January 3, 2011 4:17 PM | Comments (1) |

Great Surprise – MSDN Ultimate
So, I attended the Microsoft Community Evening. The attendance was better than I was expecting for December and we had our first Programming Languages Meeting where Gary did a great presentation on an intro to Ruby. The best surprize of the evening happened when I was about to leave, Robert MacLean asked me how we did our MS licensing – the fact being that we were about to reach the end of our empower license with Microsoft and that I had no idea how we were going to afford upgrading it early next ......

Posted On Tuesday, December 14, 2010 8:37 PM | Comments (0) |

TechEd South Africa
So it has been a great few days at TechEd South Africa. There were a few things that stood out. First of all, I couldn’t help but be inspired by Tim Huckaby’s presentations. While they were not technically deep, they gave me a sense of something to strive for. There were a few times during his presentation that I found myself saying in my mind - “Man, we can do that stuff, if only we had the budget”. Well, I guess that isn’t an excuse and so I feel like the bar has been raised from a UI point. Other ......

Posted On Tuesday, October 19, 2010 9:35 PM | Comments (0) |

More QT4 (Assignment 3 Question 1)
So, the last few days I have been finishing my summaries of my Programming Contemporary Concepts course. While it has been interesting being exposed to a new programming language, I found the actual course a bit framework specific, and not to contemporary at all. Needless to say, in the quest for the qualification I am going to put this aside and slog along. Question 1 of Assignment 3 asks us to write a template Queue<T> class and client code to test it. I will be attempting it in QT4 using ......

Posted On Saturday, September 25, 2010 7:22 PM | Comments (0) |

Object Oriented Analysis UNISA Studies - Chap 17
Any ramblings and blog posts associated with the UNISA ICT 2622 tag should be considered study notes for my lectures… Objectives of Chapter 17 Explain the foundations for the adaptive development methodologies List and describe the features of the Unified Process system development methodology List and describe the features of Agile Modelling Compare and contrast the features of Extreme Programming and Scrum development Explain the importance of Model-Driven Architecture on enterprise-level development ......

Posted On Tuesday, September 21, 2010 7:54 AM | Comments (1) |

Object Oriented Analysis UNISA Studies - Chap 16
Any ramblings and blog posts associated with the UNISA ICT 2622 tag should be considered study notes for my lectures… Objectives of Chapter 16 Describe implementation and support activities Choose an appropriate approach to program development Describe various types of software tests and explain how and why each is used List various approaches to data conversion and system installation and describe the advantages and disadvantages of each Describe different types of documentation and the processes ......

Posted On Monday, September 20, 2010 8:54 AM | Comments (0) |

Object Oriented Analysis UNISA Studies - Chap 14
Any ramblings and blog posts associated with the UNISA ICT 2622 tag should be considered study notes for my lectures... Objectives of Chapter 14 Describe the difference between user interfaces and system interfaces. Explain why the user interface is the system to the users Discuss the importance of the three principles of user-centred design Describe the historical development of the field of human-computer interaction (HCI) Describe the three metaphors of human-computer interaction Discuss how visibility ......

Posted On Saturday, September 18, 2010 10:25 AM | Comments (0) |

Object Oriented Analysis UNISA Studies - Chap 13
Any ramblings and blog posts associated with the UNISA ICT 2622 tag should be considered study notes for my lectures... Objectives of Chapter 13 Describe the differences and similarities between relational and object-oriented database management systems Design relational database schema based on an entity-relationship diagram Design an object database schema based on a class diagram Describe the different architectural models for distributed databases Key Words & Definitions database (DB) – an ......

Posted On Wednesday, September 15, 2010 7:06 AM | Comments (0) |

Object Oriented Analysis UNISA Studies - Chap 11
Any ramblings and blog posts associated with the UNISA ICT 2622 tag should be considered study notes for my lectures... Objectives of Chapter 11 Explain the purpose and objectives of object-oriented design Develop package diagrams and component diagrams Develop design class diagrams Use CRC cards to define class responsibilities and collaborations Explain the fundamental principles of object-oriented design Key Words & Definitions instantiation – creation of an object based on the template provided ......

Posted On Monday, August 23, 2010 8:45 AM | Comments (1) |

Object Oriented Analysis UNISA Studies - Chap 8
Any ramblings and blog posts associated with the UNISA ICT 2622 tag should be considered study notes for my lectures... Objectives of Chapter 8 Prioritize the system requirements based on the desired scope and level of automation for the new system Describe the strategic decisions that integrate the application deployment environment and the design approach for the new system Determine alternative approaches for system implementation Evaluate and select an implementation approach based on the needs ......

Posted On Thursday, August 19, 2010 7:45 PM | Comments (0) |

Structured System Analysis & Design UNISA Studies – Chap 6
Any ramblings and blog posts associated with the UNISA ICT 2621 tag should be considered study notes for my lectures... Objectives of Chapter 6 Explain how the traditional approach and the object oriented approach differ when modelling the details of a use case. List the components of a traditional system and the symbols representing them on a data flow diagram. Describe how data flow diagrams can show the system at various levels of abstraction Develop data flow diagrams, data element definitions, ......

Posted On Friday, August 13, 2010 9:02 AM | Comments (0) |

Structured System Analysis & Design UNISA Studies – Chap 4
Any ramblings and blog posts associated with the UNISA ICT 2621 tag should be considered study notes for my lectures... Objectives of Chapter 4 Describe the activities of system analysis. Explain the difference between functional and non-functional system requirements. Describe three types of models and reasons for creating models Identify and understand the different types of users who will be involved in investigating system requirements Determine the kind of information that is required to model ......

Posted On Monday, August 9, 2010 10:32 AM | Comments (0) |

Structured Systems Analysis & Design UNISA studies – Chap 2
Any ramblings and blog posts associated with the UNISA ICT 2621 tag should be considered study notes for my lectures... Objectives of Chapter 2 Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to the SDLC in place of the more predictive traditional SDLC Explain the differences between a model, a tool, a technique, and a methodology Describe the two overall approaches used to develop information systems: the traditional ......

Posted On Saturday, August 7, 2010 12:36 PM | Comments (0) |

F# – 5 Best practices for F# (Practice 3)
In line with Daniel Mohl’s presentation, the third best practice for F# is Tail Recursive Functions. I must admit, while I did go over recursion several years ago, I never heard (or possibly ignored) any mention of tail recursive functions… so what exactly is a tail recursive function? I posed the question on Stack Overflow and got some great examples and responses… Possibly the best explanation came from a post done by Chris Smith entitled Understanding Tail Recursion. Basically, non tail recursive ......

Posted On Monday, July 19, 2010 7:37 PM | Comments (1) |

Programming Contemporary Concepts UNISA studies – Chap 3
Any ramblings and blog posts associated with the UNISA COS 2144 tag should be considered study notes for my lectures... This chapter introduces the QT development environment, including the compiler, linker, make, and qmake. It includes a first example using Qt, and introduces iterators and lists. The chapter itself was fairly short – it mainly covered a basic equivalent to “hello world” and how to build projects. One section that I did find interesting was the section on the #include #Includes – ......

Posted On Saturday, July 17, 2010 5:35 PM | Comments (0) |

Programming Contemporary Concepts UNISA studies begin – Chap 1
Today I thought I would start the second semester of my UNISA studies, and after some psyching up I eventually pulled out the study guidelines and made a study schedule. By chance my Contemporary Concepts course is due first, thus this post. Any ramblings and blog posts associated with the UNISA COS 2144 tag should be considered study notes for my lectures... Chapter 1 Chapter 1 consists of 14 subsections, 9 of which are language applicable, and the other 5 possibly ramblings to fill material. The ......

Posted On Saturday, July 3, 2010 5:11 PM | Comments (0) |

ACM South Africa

 

Today I stumbled across the ACM international collegiate programming contest for South Africa website. It looked like it had some interesting programming problems so it may be a useful reference of anyone wishing to pit their luck against university level CS problems.

Posted On Saturday, July 3, 2010 3:14 PM | Comments (0) |

5 ways to stop code thrashing…
A few days ago I was programming on a personal project and hit a roadblock. I was applying the MVVM pattern and for some reason my view model was not updating the view when the state changed??? I had applied this pattern many times before and had never had this problem. It just didn’t make sense. So what did I do… I did what anyone would have done in my situation and looked to pass the blame to someone or something else. I tried to blame one of the inherited base classes, but it looked fine, then ......

Posted On Wednesday, June 16, 2010 3:40 PM | Comments (0) |

F# Objects – Integrating with the other .Net Languages – Part 1
In the next few blog posts I am going to explore objects in F#. Up to now, my dabbling in F# has really been a few liners and while I haven’t reached the point where F# is my language of preference – I am already seeing the benefits of the language when solving certain types of programming problems. For me I believe that the F# language will be used in a silo like architecture and that the real benefit of having F# under your belt is so that you can solve problems that F# lends itself towards and ......

Posted On Thursday, April 29, 2010 6:49 AM | Comments (2) |

International Radio Operators Alphabet in F# & Silverlight – Part 1
So I have been delving into F# more and more and thought the best way to learn the language is to write something useful. I have been meaning to get some more Silverlight knowledge (up to now I have mainly been doing WPF) so I came up with a really simple project that I can actually use at work. Simply put – I often get support calls from clients wanting new activation codes. One of our main app’s was written in VB6 and had its own “security” where it would require about a 45 character sequence for ......

Posted On Thursday, April 22, 2010 9:36 AM | Comments (2) |

Podcasting vs Stack Overflow vs Geekswithblogs
For a few years now I have been looking for effective ways to be involved in the “community”. While there are a few community programming events in my area (Johannesberg), there isn’t too much face to face stuff – which has caused me to turn to the internet. My internet attempts have been varied – at first I took the passive approach of listening to tech podcasts. This was great for a while, but soon the content became semi-repetitive and a little boring. It seemed that the podcasts I was listening ......

Posted On Tuesday, March 30, 2010 5:49 PM | Comments (1) |

Sorting Algorithms
General Every time I go back to university I find myself wading through sorting algorithms and their implementation in C++. Up to now I haven’t really appreciated their true value. However as I discovered this last week with Dictionaries in C# – having a knowledge of some basic programming principles can greatly improve the performance of a system and make one think twice about how to tackle a problem. I’m going to cover briefly in this post the following: Selection Sort Insertion Sort Shellsort ......

Posted On Saturday, March 20, 2010 7:16 AM | Comments (0) |

F# – Converting your C# brain to the F# way
My brain still thinks in C#!!! I have been looking at F# and trying to figure out the basics of it, but all the time in the back of my mind I am going – what is the C# equivalent to this or that… It’s frustrating because I almost want a F# to C# dictionary the whole time – and simply translate my C# code to F# – which would negate the main motivation for learning F# – as I want learn functional programming - if I was simply doing C# code in a F# syntax I would be gaining nothing! So I am experiencing ......

Posted On Tuesday, March 9, 2010 7:10 AM | Comments (7) |

Pointers in C++
This is a basic review of Pointers in c++ There are 3 main categories of data types in c++, Simple Structured Pointer A one liner to describe a pointer is a variable whose content is a memory address - thus its name “pointer”. In essence a pointer “points” to another location in memory. Declaring a Pointer (Specifying Variable Name & Size) In the most simple case, a pointer “points” to where another variable value is stored in memory. In programming terms, if you were to think about memory as ......

Posted On Monday, February 15, 2010 9:37 PM | Comments (0) |

Powered by: