Kevin Trethewey

Software Developer, Technologist, Connoisseur of things that go 'bing'.

  • Home
  • Contact
  • Links
  • About

February 2004 - Posts

Warthog Launch

Friday, February 27, 2004 9:36 AM
Now is your chance to be better than Mr Gunnerson!!!!

If you value your productivity.

http://halo.bungie.org/misc/warthog_launch.html

 

I got to level 30

[Eric Gunnerson's C# Compendium]
Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | 8 comment(s)

Design Patterns

Thursday, February 26, 2004 4:14 PM

Reading an article on SOA (thanks Armand), i came across a very useful site on patterns...

data & object factory
Software Design Patterns Design patterns are recurring solutions to software design problems you find again and again in real-world application development. Design patterns are about design and interaction of objects, as well as providing a communication platform concerning elegant, reusable solutions to commonly encountered programming challenges.

The Gang of Four (GOF) patterns are generally considered the foundation for all other patterns. They are categorized in three groups: Creational, Structural, and Behavioral. Here you will find information on these patterns together with downloadable source code in C#.

To give you a head start, the source code is provided in two forms: structural and real-world. Structural code uses type names as defined in the pattern definition and UML diagrams. Real-world code provides real-world programming situations where you may use the patterns. < snip >


Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | with no comments

To Blog or not to Blog? What was the Question?

Wednesday, February 25, 2004 6:44 PM
Interesting dialog in the comments after this post from Chris Pratley...

Second Thoughts...

It's been two weeks since I last wrote an entry here. I've been pondering what it is that makes people write blogs. As I wrote in my first post, I am not naturally someone who feels an urge to communicate unless I am having a dialog with someone (answering a question, etc.). I started a blog to experiment with the medium and to try to understand it.

< snip >

[Chris Pratley's blog]


I related to this post, and to the comment below in particular with respect to how i am starting to feel about my own blog...

Feed: CommentFeed for "Second thoughts"
Title: re: Second thoughts Author: Kartik Agaram

< snip >

My personal perspective is to treat weblogs as an extension of journals. There are other reasons and roles for blogs, but they sound too much like work.

I've had to deal with this question several times in my life: why keep a journal? After several attempts (all but the last abortive) I have found the biggest reason to do so is this: I have a poor memory, and I change dramatically with time. A journal is my crutch against an otherwise perpetually foggy universe. The journal comes in handy when I think about a decision I made (often at work, sometimes not) and ask myself, "What was I *thinking*?" Hindsight is 20-20, and a journal keeps me from forgetting what it was like 'in the heat of the moment'. Write for yourself. If you are maintaining your weblog for others you will have trouble keeping it up. Don't force yourself to write everyday or anything. Some people write more frequently than others. That is ok. By definition you will write about what is important enough to you to be worth remembering. I have heard dissenting opinions on every one of these. Perhaps one needs to give up a few times before finding one's style. Once you do it's like a floodgate opens up within you. Referring to your journal becomes second nature. The degree of privacy one gives to one's journal is, of course, a personal matter.

< snip >
Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | 4 comment(s)

How do i protect my code from reverse engineering?

Wednesday, February 25, 2004 9:17 AM
Eric Gunnerson provokes an interesting discussion...(interesting comments made in response)...

One of the questions that comes up often - usually after somebody comes across one of the C# decompilers, such as RemoteSoft's Salamander or Lutz Roeder's Reflector - is “how do I keep somebody from reverse-engineering my assemblies and stealing my code?”.

While reverse engineering of code has been around for a long time, the combination of IL and rich metadata in systems such as Java and .NET make it easier. Reverse engineering optimized x86 code is harder, but it's still quite feasible, as many companies that used copy protection back in the 80s found out.

One way to think about securing your code is to consider how you secure your house or business. There are some possessions that are not protected, some that are secured with simple locks, some are put in safes, and some warrant a vault with a 24-hour guard. I think it depends upon how valuable a specific piece of software is, and that obviously is something you'll have to decide for yourself.

As for protection, there are a number of different schemes that customers have told me about.

  1. No protection. Some companies sell products that either ship with source code or have source code that can be bought separately, or have chosen not to protect certain parts of their application that have little IP.
  2. Some companies use the obfuscator that ships with VS 7.1 (a “Community Edition“ of PreEmptive Solution's Dotfuscator)
  3. Some companies use one of the commercial obfuscators out there. There's a list on the C# Developer Center on MSDN.
  4. Some companies write the sensitive parts of their code in C++, compile that to an unmanaged DLL, and then use interop to call into the unmanaged DLL.

I should also point out that there are some products that claim to use encryption-based approaches to prevent reverse-engineering, but I don't have any credentials to evaluate such schemes, so I won't venture an opinion.

If you know of any other schemes, please add them in the comments

[Eric Gunnerson's C# Compendium]
Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | with no comments

What exactly is a "Microsoft Evangelist"?

Tuesday, February 24, 2004 7:53 PM
Always sounded a bit to religious for my liking...here is an explanation from Al Lowe, a "Developer Evangelist" in the US...

Dictionary.com defines “evangelist” this way (there are three other definitions but they are very similar to this one):

“A bringer of the glad tidings of Church and his doctrines. Specially: (a) A missionary preacher sent forth to prepare the way for a resident pastor; an itinerant missionary preacher. (b) A writer of one of the four Gospels (With the definite article); as, the four evangelists, Matthew, Mark, Luke, and John. (c) A traveling preacher whose efforts are chiefly directed to arouse to immediate repentance.”

I work as a Developer Evangelist at Microsoft. Some people have a negative perception of the “evangelist“ piece of my title. I don't see it in a negative light at all. I mean, as a user of Microsoft development products, you want the ear of the Devleoper Evangelist as they have your best interests in mind. I take all of the feedback I get and go back to product teams, etc. to impress upon them the importance of the wants/needs of our customers.

Here are some of the activities that make up my job (there are many other things I do on a daily basis but this is a good snapshot):

*Presenting/Training .NET development topics for customers
*Working with User Groups to ensure they get adequate support from Microsoft
*Writing sample code for customers
*Working with local influentials such as MVPs and RD to ensure they have what they need to be great customer evangelists
*Organizing and managing local developer events such as DevDays
*The most important part of my job, IMHO, is to collect developer feedback on all things related to software development on the Microsoft platform.

Now, I do all of these things within the district that I work (covering the states of Michigan, Ohio, and Kentucky in the United States). There are Developer Evangelists all over the world but each geography works differently (i.e. the number and focus of Developer Evangelists in other parts of the world do not necessarily operate as I or my counterparts in the United States). I should also say that each Developer Evangelist and district has different needs so the percentage of time a Developer Evangelist spends on any given point I mentioned above is completely dependent on the environment and geography in which they work.

I love what I do and I consider myself very lucky. There is nothing better than making statements like those that I made in this post. It is a guarantee that when someone makes a statement that “X is the best”, the feedback will be very strong good and bad. The “good” feedback is nice as it tells us what to keep doing but it is not nearly as helpful as the “bad” feedback (of which that post generated a lot). If you have suggestions for things we can do to make the developer's life better (anything ranging from community involvement to product features) then feel free to contact me.

Update: I'm not a "glorified sales person" as one person commented (I removed the comment because the rest of it was completely in poor taste) because I cannot sell anything. Developer Evangelists at Microsoft do not have a sales quota or anything like it. If you wanted to buy something from me I'd have to find someone else. Now, I believe that some evangelists in the industry are glorified sales people. Before I came to Microsoft, I was an ASP.NET MVP (answering developer questions every day) and I worked as an Architect/Dev Lead on software development teams long enough to be more than a “glorified sales person“.

 

[Alex Lowe's .NET Blog]
Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | 6 comment(s)

The top 11 ....

Tuesday, February 24, 2004 11:01 AM

BBSpot Top 11 archive

Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | with no comments

Guess who found nemo?

Tuesday, February 24, 2004 8:00 AM
Guess who found nemo?
Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | 7 comment(s)

Live & Learn

Monday, February 23, 2004 4:27 PM
Finally! My latest C# project is complete - a few days late, mostly because of the Strategic Architect Forum, but also because I ran into a couple of "minor issues".

This was my first production code remoting app, it was also my first windows service - coming from a VB6 background, I have never had the luxury of using either of these options before.

So what did I learn?...Apart from the technologies themselves, which I have already studied last year, I learnt the following:

1)      When you run your application as a windows service, System.IO.Directory.GetCurrentDirectory() returns the windows\system32 folder, not the path you actual .exe resides in. Knowing this could have saved me a good few hours trying to figure out why my (*$$($**@(*ing tracing to text file no longer worked when I ran my project as a service...
2)      Rather than creating your application as a console app and then trying to retro-fit it into a windows service, rather start from the template windows service that is provided (assuming you are using VS2003) and then use a test strap console application that references your service in order to test. You will also need to add a reference to System.ServiceProcess in the console application in order to make this work.

Hope this helps someone save the hours I lost had I known the above before I started!

Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | 1 comment(s)

MS kb/support updates via kbAlertz.com

Monday, February 23, 2004 9:35 AM
I find this service quite useful in keeping tabs on specific technologies...

"Receive free email alerts every time Microsoft publishes NEW Support or Knowledge Base articles!"
kbAlertz.com is an e-mail notification system that scans the entire Microsoft Knowledge Base every night, and e-mails you when updates or additions are made to the technologies, you subscribe to. Since we scan the entire knowledge base, we also have a pretty good search system for you to use on the left menu.


kbAlertz

Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | with no comments

All good things come to an end...

Friday, February 20, 2004 2:05 PM
I don't know about you guys, but I am starting to find the efficacy of google searches to be getting poorer & poorer. It's ok for technical searches where you can, for example, add +"C#" to your searches and filter out a lot of the gunk. Try searching for something like 'camera' for example and you are bombarded with all sorts of rubbish.

It is with this in mind that I came across (thanks to a friend), the following website:

Mooter

It is still in beta, and it is very slow - but in my first couple of tests....google better watch out!

Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | 4 comment(s)

Tech-Speak

Wednesday, February 18, 2004 7:41 PM
During the Architect Forum I jotted down short list of words and acronyms that came up that I was either unfamiliar with, or wanted to investigate further. This is that list - just in case you come across these terms in future and don't recognise them...

UbiquityA ubiquitous facility will just work, on nearly any computer system of interest. Nothing special needs to be installed.
(Or, if something needs to be installed, it can be installed transparently and automatically.)
more
IdempotenceThe side-effects of n > 0 identical requests is the same as for a single request.
DSLDomain Specific Language
WSAWeb Service Architecture
EAIEnterprise Application Integration
B2BiBusiness to Business Integration
EDIElectronic Data Interchange
ATAtomic Transactions
BABusiness Activity
SD3Secure by: Design, Default, Deployment

Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | with no comments

w.bloggar v3.03

Wednesday, February 18, 2004 7:31 PM

This post...



Cool.

If you want to give it a bash and need help setting it up, let me know!

Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | with no comments

MS Strategic Architect Forum 2004

Tuesday, February 17, 2004 9:36 PM
The JHB leg of the roadshow finished today, and i must say it was very interesting. If you ever get the opportunity to attend a Rafal Lukawiecki presentation, do yourself a favour and grab it with both hands. I can't seem to find a link to a blog anywhere, so i don't think he keeps one, which is a pity. All the speakers were of an excellent standard, but Rafal was brilliant. Put it this way - i sat through his hour and fifteen minute presentation on security and cryptography and i didn't come close to falling asleep once. Nuff said.

I have also added Clemens Vasters to my 'mentor blogs' section - the guy is really switched on and his work with Arvindra Sehmi on the FABRIQ project looks like breaking some valuable new ground in the SOA (Service Orientated Architecture) space.

A lot of the presentation media from the forum is available here and the 'Journal' publication that i mentioned in my last post is available online here.


Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | 1 comment(s)

New South African Architect Portal

Monday, February 16, 2004 1:44 PM
A new architect portal went live today, in the same style as SA Developer.net, but specifically aimed at the architect community...

SA Architect.net


They are offering a free print copy of 'Journal' an MS publication aimed at software architects to the first 200 people to register, as well as some nice prizes for article submissions...

Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | 2 comment(s)

Project Management in the modern organisation

Thursday, February 12, 2004 2:37 PM
Tribal wisdom of North Dakota Indians, passed on from generation to
generation states that when you discover that you are riding a dead
horse, the best strategy is to dismount.

Modern organisations, however, employ far more sophisticated
strategies that include:

* Buy a stronger whip
* Change riders
* Visit other countries to see how others ride dead horses
* Lowering of standards so that dead horses can be included
* Reclassifying dead horses as "living impaired"
* Harnessing several dead horses together to increase speed
* Providing additional funding and/or training to increase the dead horse's performance
* Doing a productivity study to see if lighter riders would improve the dead horse's performance
* Rewrite the expected performance requirements for all horses
* Promoting the dead horse to management


(original author unknown)

Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!
by Kevin Trethewey | with no comments
More Posts Next page »
Go

Tags

  • .NET
  • Admin
  • ALT.NET
  • Community
  • Dotnet.org.za
  • eBooks
  • Fonts
  • Free Stuff
  • Fun Stuff
  • Google
  • Links
  • Microsoft
  • Personal OffTopic
  • Quotes
  • Red Five Labs
  • Robotics
  • Software Development
  • South Africa
  • SQL
  • Useful Advice
  • Utilities
  • Video
  • Virtual Post-It
  • Vista
  • VSTS Tips
  • WebDev
  • Wiki

Navigation

  • Home
  • Careers
  • Downloads
  • Support

Archives

  • May 2008 (1)
  • October 2007 (1)
  • July 2007 (1)
  • June 2007 (2)
  • May 2007 (1)
  • February 2007 (2)
  • January 2007 (2)
  • December 2006 (3)
  • November 2006 (9)
  • October 2006 (10)
  • September 2006 (3)
  • August 2006 (2)
  • July 2006 (6)
  • June 2006 (7)
  • May 2006 (9)
  • April 2006 (4)
  • March 2006 (14)
  • February 2006 (2)
  • January 2006 (5)
  • December 2005 (5)
  • November 2005 (7)
  • October 2005 (4)
  • September 2005 (10)
  • August 2005 (3)
  • July 2005 (5)
  • June 2005 (8)
  • May 2005 (11)
  • April 2005 (10)
  • March 2005 (7)
  • February 2005 (11)
  • January 2005 (12)
  • December 2004 (5)
  • November 2004 (2)
  • October 2004 (3)
  • September 2004 (10)
  • August 2004 (13)
  • July 2004 (6)
  • June 2004 (7)
  • May 2004 (24)
  • April 2004 (20)
  • March 2004 (21)
  • February 2004 (19)

Syndication

  • RSS
  • Atom
  • Comments RSS
Powered by Community Server (Commercial Edition), by Telligent Systems