Tweets that start with a name, do not work the way you think they do
I was put onto this interesting feature of Twitter by Scott Hanselman, where needs repeating. When you use Twitter to send a tweet all of your followers will get it, unless when you start the tweet with a name (called an @ reply). For example:
The above tweet would have been seen by everyone who follows me!
This second tweet starts with William Branders name, so only people who follow BOTH of us will see it. In other words, it is only that group in the middle of the following Venn chart which will see that tweet!
So how can you send a tweet starting with someone's name & have all of your followers see it? Start the tweet with a dot, like in the example below.
A final important to note about starting a tweet with a name, those tweets are still public. Even though your followers don't automatically see them, they could just browse to the Twitter website and find them their. If you want a tweet that is private, you a direct message
Game development in South Africa and dealing with the Film and Publications Board
If you walk into any store to buy a game or movie you will find a little blue triangle sticker which contains the age restriction from the Film and Publications Board who review and rate content.
Since I created a game recently I decided to see what the process is for classification of a game is and learnt some very interesting things for developers.
Put simply only games/films that are sold or hired require to be classified – so if you are developing a game/films that will be available for FREE then you do not require classification! Below is the email from the head of the classification unit confirming that!
GREAT NEWS for hobbyist developers!
If you do plan to sell your game then you need to complete the forms on the website (game submission form), provide a disc with screenshots and videos of your game, a game synopsis and pay the registration fee (currently R1 508.64) and then wait for the classification.
Microsoft have confirmed & I have tested that the forced requirement for the FPB certification in the marketplace no longer exists. You can submit a certification but you are not forced to. Only downside at the moment is Window Phone 7 – when you submit a game for the South African market regardless of price they require the certification which is incorrect. I have submitted a request to Microsoft for details on this and will update you as soon as I have any information.
Community night in September 2011 - IMPORTANT INFO
Community Night, the best way to meet, mingle and learn (if you don’t know about it – read here) happens on the second Tuesday of the month… except in September due to an event at the venue on the Tuesday which can’t be moved.
So for September it will take place the Monday before, in other words Monday the 12th September. Please help get the word out to the various user groups and communities!
See you there!
Codename: Roslyn - the next generation of the C# & VB.NET compilers
This past weekend I had the opportunity to present at a fantastic event, Dev4Devs which is a free event where anyone can present on anything (software developer related) for 20min. It is a lot of fun, because of the variety of talks, the variety of people (some new speakers and some experiences speakers) and the HORRID 20min timeline.
This time I presented on a topic I am very interested in, Codename: Roslyn which is the next version of the C# & VB.NET compilers which are fully managed code (C# one written in C# and the VB.NET one written in VB.NET).
Since there is no public bits available I made use of the compiler from Project Mono – which has had similar things (the REPL environment and hosted compiler) for years.
As with all presentations here (or at the end of the post) are my slides, demo notes, demo files and other info!
During my research and prep, I found a bunch of interesting posts and information about it so here is the info I found. I’ve bolded the ones I think are especially interesting.
- http://stackoverflow.com/questions/4222524/what-would-you-do-with-compiler-as-a-service
- http://codebetter.com/patricksmacchia/2010/05/31/c-5-and-meta-programming/
- http://research.microsoft.com/en-us/events/fs2011
- http://social.msdn.microsoft.com/Forums/en-US/async/thread/03a51936-b4fd-4814-9161-46544eda63cf/
- http://blogs.msdn.com/b/ericlippert/archive/2010/12/16/hiring-for-roslyn.aspx
- http://blog.functionalfun.net/2008/10/dynamic-future-of-c-40.html
- http://channel9.msdn.com/Shows/Checking-In-with-Erik-Meijer/Checking-In-Eric-Lippert-On-Compiler-Evolution-Designing-C-and-Blogging
- http://castroller.com/Podcasts/NetRocks/2230612-Eric%20Lippert%20Talks%20About%20Project%20Roslyn
- http://channel9.msdn.com/Shows/Going+Deep/Anders-Hejlsberg-Questions-and-Answers
- http://blogs.msdn.com/b/lisa/archive/2011/03/29/teched-middle-east-2011.aspx
- http://www.mono-project.com/CsharpRepl
Image from Ezu
South African ID Number Tools for Windows Phone 7
16 November 2011: This application has had a major update, see the details in this post
Following the same idea as my AA Rate WP7 app, another very popular spreadsheet I built is one that verifies South African ID Numbers so I also decided to build a Windows Phone 7 app to do that.
This does a little more than the spreadsheet could, so it has lots of info about what in an ID number does not verify which is very useful.
In addition it includes a awesome new feature a South African ID Number GENERATOR! With this you put in a few required details, hit a button and BOOM! An ID number that will validate.
Important to remember that validation of a number doesn’t mean it actually exists, just the math works. So please don’t use this for anything except interest or development!
(btw screenshots are from 1.1, which is soon to be out – so if you download and it looks different then give it a day or two)
AA Rates Calculator For Windows Phone 7
16 November 2011: This application has had a major update, see the details in this post
One of the most popular posts on my website is the AA Rate calculation spreadsheet I built in 2008. The goal of the spreadsheet is you provide the details about your vehicle and it tells you what the AA Rate for your vehicle is. So I decided to rebuild this for Windows Phone 7!
This was a lot of fun because it has some complex issues (matrixes of values) which had to be solved, so that tickled my developer brain.
This also allowed me the opportunity to update the calculations since they change every so often which is important for you!
An interesting thing that I learnt with this release is that the official/documented calculations is NOT equal to what the AA online calculator does. So there is an option now called “quirks mode” which runs it equal to the online calculator where if you turn it off, it runs it using the documented mode!
Kicker - My first WP7 app
Update: This application has been retired - it was my first game (ever) and my first WP7 app and so it was for my son and for my own learning and experimentation. My son has moved on to Angry Birds, I have more impressive apps and as a game, well it wasn't going anywhere. With all that I have retired it away.
Kicker, is my first WP7 application and is a simple time waster. I don’t want to use the term game, because there is no challenges. Touch the screen and unless you are unlucky, you score a goal.
This was written mainly for my young son, who had a game like this on my old Nokia 5800 and he loved it so really just porting it across.
You can get it online RIGHT NOW!!
Nugget: Little compiler optimisation
Found this little C# compiler optimisation which is really cool. Here is start code
int y = 0; int x = 10; if (x * 0 == 0) { y = 123; } Console.WriteLine(y);
If you know a bit of math, anything multiplied by 0 always equals 0 (line 4). So the compiler optimises that out and then because x is never used that is also optimised out and you end up with
int y = 0; if (0 == 0) { y = 123; } Console.WriteLine(y);So very smart

Are you using the .NET name correctly & other interesting brand info
Not talking about the technology but various identifiers in the .NET world are often abused. I know this is SUPER pedantic of me, but it is something I come across watching lots of presentations. Getting this right shows a level of polish and knowledge, and getting it wrong shows that either you not paying attention, don’t know what you are talking about or just don’t care.
So here are some brand/naming problems I see:
- .NET – I often see people use .net or .Net, the correct capitalisation is ALL caps. There is NO excuse for this one, just do it right.
- .NET Framework 4 – With .NET 4, the marketing people dropped the .0 like we had with 2.0 or 3.5, so stop saying four-oh, it’s just 4.
- Windows Phone 7 – It is Windows Phone 7, not Windows Mobile 7 (no such product) or Windows 7 Phone.
- Microsoft Visual C♯ 2010 – I make this one often and call it C♯ 4, it is actually Microsoft Visual C♯ 2010.
- Should you use ♯ or # with C♯ – either is acceptable. However Microsoft recommends the “Music Sharp Sign” for marketing material.
- Microsoft Visual Studio 2010 Ultimate – That is the full product name. The issue I see often is people putting .NET in there, ala Microsoft Visual Studio .NET 2010. There is NO .NET in the name. There was a release in 2002 called Visual Studio .NET, but that was a specific release and is not the product name.
- Microsoft SharePoint Server 2010 – A lot of people are using the term MOSS to describe SharePoint Server. It is not MOSS in 2010. In 2007 it was Microsoft Office SharePoint Server, but the Office part was dropped for the 2010 release and the MOSS acronym along with it.
- Microsoft SharePoint 2010 Foundation – Like MOSS above people love to use WSS for SharePoint Foundation. It’s not called that in 2010…. there isn’t even a W in the whole name now.
- Microsoft Visual Studio 2010 Documentation – There is a very bad habit (I do it too) to call this MSDN. MSDN is not the help that is install on your machine with Visual Studio! MSDN is a website Microsoft runs for developers which has help on it and also a subscription service where you can get Microsoft software legally and cheap for development purposes. So while it is two things on the Internet, it is NOT on your machine.
- MacLean – Thought I would just throw this one in, it’s my surname. It has a ‘a’ in the second position and a capital L. It is not Mclean, McLean, Maclean or ‘Hey you, stop kicking my dog…’
Community night in August
Important Notice for August 2011
Community night is normally the second Tuesday of the month, however since that is a public holiday it has been moved to Monday the 15th of August!
What is community night?
For those who do not know this is a FREE event that happens monthly where a variety of user groups get together at Microsoft's offices. User groups are not influenced by Microsoft, they just use the facilities. User groups that are there on a regular basis:
- Information Worker: Technical focused SharePoint & Office
- Business User Workshops: User group that looks at the issues that face power users in enterprises. This month the understanding where a portal ends and CRM begins.
- Game Dev: One of the biggest with plenty of game developers & artists getting together.
- JavaScript: For all you JS fixes
- Mobi: My good friend Rudi Grobler hosts this group focused on mobile (iPhone, Android, Symbian and Windows Phone)
- UX: For those who understand there is more than 16 colours
- Architecture: For architects of any IT systems!
- Languages: For developers who are interested in learning the pros & cons of other languages.
- SQL: The fantastic Gail Shaw runs the best SQL user group anywhere!
There is also FREE beer, cool drinks & pizza!
Where is Microsoft’s offices?
Microsoft Bryanston Office
3012 William Nicol Drive
Bryanston
2191 Johannesburg
South Africa
Click here for map and more details.
Times?
Various user groups starts at different times. I think the first UG kicks off at 16:00 and it can run to 21:00.
However depends if you attend multiple UG, stay for passage conversation, etc…
So up to you, I have nights where I arrived after 17:30 and other times left at 18:00, no pressure!