Archives
-
New blogging tools
I just read on - .NET Blog - Chris Frazier Style - about a new release of PostXING and a new aggregator plug-in which allows you to blog about items in your aggregator via a right-click action. The plug-in is called BlogThisUsingPostXINGPlugin and requires the latest version of PostXING to work.
-
My New Year's Resolutions for 2005
- Drink more water
- Excercise more consistently
-
Introduction to C# Anonymous Methods
Bookmark to read this later:
-
Webcast - How InfoPath supports ADO.NET DataSet's
I just finished watching a WebCast about support for ADO.NET DataSet's in InfoPath:
Hagen Green - MSDN Webcast: Database Connectivity in InfoPath Through ADO.NET -
InfoPath book
Ordered myself some reading material for those long flights between Canberra and Adelaide today:
-
InfoPath NEWBIE mistake #1
OK, so I've made my first major InfoPath blunder. Being a javascript afficionado I decided that I'd create my InfoPath forms using javascript as the codebehind model as opposed to using the new, .NET model which comes with the Infopath 2003 Toolkit for Visual Studio.Net.
-
New tool for assisting with access namespaced xml elements
Using InfoPath lately has really made me sharpen up my knowledge of working with Xml such as querying it with XPath. Prior to the last week or so, all of the Xml that I've queried has been non-namespaced. Adding namespaces to Xml documents and nodes means that you need to set some attributes on the underlying namespace manager of the XmlDocument when you need to query it using XPath. In C# this would look similar to this:
-
The benefits of fully trusted InfoPath forms
-
Canberra Geek Dinner #1 - The Canberra scene
As mentioned by Mitch the other day we had a Geek dinner in Canberra the other night. It had been my intention to start these up in Adelaide next year but, now that I'm a Canberra'n it looks as though we'll have to have them here instead :-)
-
ProjectDistributor - features in the next release
ProjectDistributor has been "open source" for a couple of weeks now and, in that time I've received a few e-mails highlighting bugs and also mentioning new features which should get added. I've rolled all of those requests into the code base so, you'll see that stuff in the next release.
-
skmFAQ's
Scott Mitchell has created a new open source application for managing FAQ's which is worth checking out:
-
Cypress Hill
Just noticed that Cypress Hill are visiting Canberra on Wednesday night... woohoo!
-
Finally building real things with InfoPath
-
ProjectDistributor source code now available...
I've just uploaded the source code for ProjectDistributor and it's available via the site:
-
Tips for effective communication
Communication is a really inefficient activity and that's because it takes a lot of effort to do it well. This can also be exacerbated when in an environment with mixed cultures where participants may find the "listening" part of communicating a greater burden. Additionally, there are environmental modifiers that can affect the likelihood of having good communication such as: noisy environment, people who are tired or irritated, unsuitable venue, unsuitable timing, etc. Here's some tips that I have for increasing the likelihood of having a successful session of communication&
-
Debugging classic ASP
Today I had to help a client debug a classic ASP application using VS.NET. I hadn't done this before and while looking for a solution I came across this excellent whitepaper for debugging client and server-side scripts:
-
A quick catch-up...
I've been with Readify since the beginning of last week working in Canberra on some consulting assignments.
-
Problems with CF2002 and Visual inheritance in a Wizard prototype
This week I was able to use Justin's excellent WinForms Wizard in some prototypes for handing state transition in a UI:
-
IM alias list - November 2004
People that know me know that I tend to change my IM name from time-to-time. Here's a listing of the names that I used in November:
-
Poetry: Unravelling layers
Read this great piece of prose by English poet Jonathon Swift today which reminded me of the almost endless possibilities for drilling down into layers of complexity...
-
IE2OneNote Powertoy
Last week Will behooved me to check out the IE2OneNote powertoy. Today I needed to save some pages for quick, offline viewing so I thought that I'd give it a whirl. It's very useful. It installs as a button on the main IE toolbar and scrapes the page into a new top level category named WebClippings. All of the styles and images are perfectly preserved.
-
Some great tools to check out
During the week I was introduced to Serena Yeoh by William Luu. Serena's tagline is: I'm a little ant working in a big-big colony.
-
Creating knowledge from information
Over the next few months I intend to do some intensive blog'ging on the topic of using tools such as InfoPath, Office 2003, Sharepoint and the Information Bridge Framework and how you can wire them together to create smart applications which add value to existing information systems.
-
A couple of Windows Services resources
I've had a couple of Windows Services snippets that I've been meaning to "rip-to-blog" for a while now...
-
Some ideas about User Groups for 2005
I've been thinking about ways to increase the visibility of UG's in 2005 with the idea that, through increased visibility we will be able to increase membership numbers. Much of this comes from my exposure to both the Adelaide and Brisbane UG's. I thought that I'd take this opportunity to jot down some of my thoughts.
-
More InfoPath learning
Worked through some more InfoPath suff this morning:
-
InfoPath SDK Documentation and more
A rich source of goodness for any aspiring InfoPath guru:
-
Falling in love with Office 2003
I had a big SOA with Office 2003 day today,
-
Can't read, working (Office, Smartphone, Avalon)
Some links to things that I saw today which caught my attention:
-
Best Practices Analyzer Tool for Microsoft SQL Server 2000
Not terribly sure why I only just came across this:
-
Restricted access to Hotmail
Today when I attempted to connect to my Hotmail account through Outlook and Outlook Express I received the following exception message:
Task 'Hotmail: Folder:Inbox Synchronizing headers.' reported error (0x800CCCF6) :
'The server responded 'Payment Required'. ' -
WebMessenger enhancements
I noticed some nice useability improvements in webmessenger today, at first glance I noticed:
-
Your company has moved Mt Fuji eh? Tell me something interesting about that.
I've been meaning to blog some thoughts about how to manage the interview process from the point-of-view of the employee. I think that it's an important topic because, when I've read other people's writings about it in the past I think that they tackle it from all the wrong angles. I think that too many people will tell you how to play up to an interviewer but not how to extract useful information from them.
-
Canberra User Group meeting tonight
On the topic of User Groups, I just noticed that my future "home" User Group are meeting tonight: http://www.cbrdev.net/Default.aspx
-
Evangelism Rhythms, "know the score"
Yesterday Dave Glover - from the Microsoft Developer Platform Group - gave a special lunchtime presentation in Adelaide titled: "What is new in VS 2005 and ASP.NET". This presentation will serve as a forerunner to the Whidbey "ASCEND" day in January.
-
Member boards at UserGroup meetings; photo's, stories, etc.
One of the major problems that I find at User Group meetings is that it can be difficult to meet new people. An example of this is that, prior to our last User Group meeting I had some e-mail correspondence with a fellow developer who was planning on attending; we both agreed that we should meet up at the meeting. Once you are at the meeting though, it becomes very difficult to shout-out for the person with whom you wish to meet. I noticed that sentiment is kind of echoed in this blog entry:
-
One book; One CD
I'll have some time in the coming months to fill in some of my weaker areas in .NET. Remoting, WSE and Compact Framework are the 3 that could use with a refresher. Of course, whenever you are about to "go dark" you must take some good tunes with you so... I finally got around to purchasing a couple of things that I've been after for a while today :-)
-
One of my new vows...
I've steered away from Visio - apart from designing databases - in the past because I've not had the time to work out how to create something of use with it. Last week I ordered a Visio book because I've decided that I need to find new ways of communicating plans and ideas with other team members.
-
COM+ registration and permission errors
If you are using EnterpriseServices (COM+) from a web application you need to make sure that you manually register your components with COM+ when deploying your app.
-
ProjectDistributor now lives - standalone!
Switched over to a standalone domain with dedicated hosting provided by WebHost4Life. The new Url is:
-
And then there's Bad OneNote etiquette...
Note to self... when next sharing a session with Mitch, don't share my BIO page:
-
Etiquette in a OneNote collaboration session
I teamed up with Mitch and Thomas tonight to share a bit of a OneNote collaboration session. Mitch and I actually had a session to start with and found that it is an awesome way to share ideas in an interactive and spontaneous way.. OneNote has a strength in allowing you to spawn new threads at will. Mitch decided to start a protocol to facilitate a richer experience and we continued that on when we joined Thomas's session. Here's some notes that we made, I'm sure that we'll develop more as we continue to use this awesome tool.
-
How to study for an MS certification exam
Today the question was asked about techniques used when studying for MS certification exams. I've passed a few of them so, here's my secret ;-)
-
Load testing Christmas cards
Wow! It must nearly be Christmas again... I just received my first Christmas card:
-
Highlight of the weekend - learning about OneNote
Anybody that knows me can tell you that I'm the original Notepad Warrior; just about everything I do or think about goes through Notepad at one time or another: architecture thoughts, blog entries, code, details about my various websites, diary journal entries, etc. This is about to change because I've discovered OneNote!
-
OpenSource - checklist
Came across this link today while Googl'ing for information about OpenSource licensing:
-
Justin discusses "peering" technology
http://weblogs.asp.net/justin_rogers/archive/2004/11/06/253224.aspx
-
Poem: To A Friend Whose Work Has Come To Nothing
As seen on George Reilley's blog...
-
Adelaide .NET UserGroup meeting next week
Details here: http://www.adnug.com/notices.htm
-
MsdnConnection site of the month
Hey, Frank just noticed that ProjectDistributor got named site of the month on the new MsdnConnection program... cool!
-
Fixed my SqlServer/Enterprise Manager issues
Lately SqlServer has been giving me some little headaches...
-
Some golden rules to adhere by when thinking about features
When we started doing a spec for ProjectDistributor Justin and I had some long chats about what features we wanted in and how they would be implemented. In fact, there were dozens of features that we discussed and, as we progressed we found that we needed a better methodology for quickly deciding whether features would be winners or losers. Additionally, we needed a better way to describe new features to one another so that we didn't waste cycles trying to understand what the other person was trying to say.
-
Managing XML schema collections in SQL Server 2005
Kent Tegels keeps us entertained while walking us through working with schema collections in SQL Server 2005
-
Blogging Portals - useability and finding stuff
Tonight I was feeling really crappy about MS Project. I was thinking about all the ways that I'd just love to get the box and squash|crush|kill|destroy it... {some mental karma excercises}... ok, better now.
-
ELMAH installed on PD
This morning (at approximately 3am :) I installed ELMAH on the ProjectDistributor application. ELMAH is an HttpModule and an HttpHandler which combine to capture and provide global reporting of exceptions which are occurring in your web applications. The whole excercise took me a mere 10 minutes to:
-
Response Output Filters
I just finished reading Dino Esposito's excellent article from the September Msdn Magazine titled: Design Smarter Tracing for ASP.NET Pages
-
Back in work; Excitement++
What a day... Today I accepted a position as a .NET Consultant and Trainer with Readify. Readify is one of Australia's best branded consultancies and does work with some of the country's leading businesses and agencies. This role not only gives me an excellent opportunity to work on large projects and gain hands on experience with emerging technologies but also has me working with some of Australia's most respected .NET consultants. The team members are listed here: http://www.readify.net/staff/default.aspx
-
ProjectDistributor - project feedback now working again
There I was, so happy with myself. ProjectDistributor was ticking along nicely and I was oblivious to the fact that I - being the bonehead that I am - had totally broken the Contact forms which are attached to the individual Projects. It obviously broke late last week when I turned ViewState off for most of the pages.
-
Community Culture
There's a Bedouin proverb which goes like this:
-
Decision making, it's not always a case of right and wrong
The other day I mentioned that I was on the cusp of an important decision regarding my career and implied - via my favourite piece of poetry - that there were 2 distinct paths that I could take. After asking some colleagues for advice I was pointed towards a wonderful parable titled "Buridan's ass":
-
First post with PostXING
I downloaded and installed PostXING today:
-
An elevator pitch for SOA
OK, so you are talking with a client and a couple of their developers when they client turns to you and says: "We've heard a bit about SOA, what is it exactly?". You've got 3 minutes... GO!
-
You don't need to have a deathmarch
When creating project plans make sure that you define some interim milestones for the development phase. Interim milestones allow the development team to see measurable progress and provide key stakeholders with visibility about the progress of the project. Interim deliverables are also used to keep bottlenecks to a minimum and to reduce complexity when it comes to things such as testing and regression testing.
-
The Road Not Taken
The Road Not Taken has long been my favourite piece of poetry because of its darkness and its deep sense of nostalgia. I read it whenever my life reaches an important juncture as I search for meaning and answers to unanswerable questions...
-
ProjectDistributor - online storage for tools and code snippets
ProjectDistributor is now pretty stable and nearly feature complete for iteration 1. This application was created as a place to store small or trivial pieces of code. Either code which was expensive to create - such as a prototype - or code which will be useful again in the future - such as a macro, server control or stored procedure.
-
New Web Widget: Hierarchy Wizard
Just posted a prototype for new reuseable Wizard Framework on ProjectDistributor:
-
The Colonel Kurtz Project
Patricks Cooney, theorizes over a new project management orthodoxy...http://www.patrickcooney.com/weblog.aspx?i=61
-
Taskpath
At an interview the other day I was asked to describe what type of person I am. After a brief pause for thought I replied that I'm a task-oriented person. It's true; I am. I'm sure that that's why I love projects so much - you jump on a project, execute a series of tasks and then you are at the end.
-
Some books for reviewing code and develoment activity
-
Resource: Tips for creating successful architecture
A nice list to review next time you are in planning and wondering: "Will this succeed?" :-)
-
The jobfront
Got back from holidays on the weekend and straight back onto looking for some work. I had a couple of interviews with companies this week which I've had pretty mixed feelings about. On the one hand there was some interesting work available (using different platforms, languages and databases).
-
Project Distributor - new features uploaded.
http://markitup.aspxconnection.com/
There are 2 cool new features that weren't present previously.
1) When you create an account (option available via the Login page) you have the ability to add "Bookmarks" and categorize them. Bookmarks are intended to be a store of all your favourite online tools and widgets. You can bookmark both internal and external projects. When you view an internal project and you are signed in, you will see a "Add to Bookmarks" link. To add external bookmarks and categories, go to your user profile page and add them from there.
2) You can now mark Groups/Projects/Releases as "private" and they will only be available to members of your Group. This is a great option if you have a Group which you've made public but you might have a certain project that you only want to be visible to yourself (such as a special Sql script or something).
You can start with the Bookmarks immediately by going to the site and creating a User account. To get setup with a Group (which allows you to upload your own projects), create a User account and send me an e-mail requesting a Group.
-
Hallmarks of a great developer
I got forwarded this link today:
-
Cleaning my desk...
This is my last week here at work and, while cleaning my desk I found this quote:
-
Free Web Hosting and Ferris Buellers Day Off
Because I will soon be looking for work I've decided to take this week off to do some "creative dreaming" about my future. What I've found is that there is a whole other world out there waiting to be tapped. In this week I've visited museums, art galleries and libraries in search of inspiration. I spent a lunchtime just hanging out in a cafeteria at a local university and I've enjoyed bus and train rides to places that I've never visited before. What a week... it's been great just letting my mind run free.
-
RegexLib Testing Tool - The new Details Grid
The other day I blog'ged about the new Options panel and today I'd like to announce another part of the expanded testing tools - the Details Grid:
-
RegexLib Testing Tool - The new Options Panel
Yesterday Justin blog'ged about the new features that are included in the new testing tool on RegexLib.com:
-
New Regex Tester
Currently I'm in the middle of replacing the testing tool on RegexLib.com. You can play with the changes that I've made so far at:
-
Re-focus
As of October I'll be a self-employed guy again. I'm going to spend my time working on my long-standing business - Forest Lake Web Services.
-
Maths... getting there slowly
I've been following Justin's Math series on his blog with great interest. Maths is one of the things that I blog'ged about earlier this year, stating that it was my intention to understand it:
-
Linking morsels of informational data... sometimes learning is like a tantalizing treasure hunt
Since encouraging Justin to blog about applications of mathematics in everyday, real world problem solving I've been an avidly following his teachings on that matter. Justin is certainly a smart guy and also has a knack for using the raw power of maths and logic in some really interesting ways. Justin's recent articles have provided me with a tangible link between maths theory and the practicle usage of some simple mathematical methods.
-
New tools in the fight against comment spam
ScottW has just uploaded a new version of .Text which has some major new features. The cooleast new features relate to management of comments and tools to help remove comment spam.
-
Some UG questions about installing Whidbey
Because we've got our Adelaide .NET User Group (ADNUG) Whidbey Install-fest this week, I thought that I'd bookmark this list of Q&A's:
-
Global themes not in ASP.NET Beta1
I noticed this last week but it came up again on a recent thread... the global Theme styles which had been in the ASP.NET V2 alpha's have disappeared in Beta 1.
-
Lots of reading going on
-
How to use the ASP Page Framework
I had a couple of e-mail requests asking me how to use the Classic ASP Page Framework which I discussed in my last blog entry so I thought that I'd make a couple of notes in an attempt to try an clear things up a bit. First, the code for the Framework can be found here:
-
Classic ASP Page Framework
The other day I asked a question on a list about the perf. Implications of using VBScript classes in classic ASP applications. After participating in that thread I was reminded that, a while back I actually wrote an object oriented, event-driven classic ASP Page model which mimics some of the services which are built into the ASP.NET pages - such as Authentication, Users/Identities and Page properties. The page automagically serializes it's state (which could be abstracted by implementing a Provider model). The model also contained an in-built AuthenticationProvider which handles re-directs when secured resources are requested.
-
Certification and a new RegexLib.com feature
Last week I finally sat the 310 exam (Services: Remoting, Windows Services, Web Services and Enterprise Services). It's the first exam that I geniunely thought that I could fail. Thankfully I passed it with relative ease due - I suspect - to some late night cramming. I'm now an MCAD and I only have the “Defining Requirements” exam to go until I'm MCSD!
-
Justin's PokerDemo is up
As Justin blogged earlier, the code for his PokerDemo is now online:
-
Essential Community Services Templates
Got some quality time with Whidbey on the weekend and came across some of the new enterprise template stuff - man these things have incredible designer integration.
-
Manual Express Downloads are now live
This is great news!!!
-
Generics Whitepaper for VB 2005
Just saw a reference to a new Msdn article on Generics in VB on Duncan MacKenzie's and Paul Vick's blog:
-
WebCasts : Building end-to-end applications with C# Express
I noticed that Dan Fernandez just blogged about an upcoming series of chats which revolve around creating applications using Visual C# Express 2005. Get all the details here:
-
ASP.NET 2.0 Quickstarts
Just noticed that the ASP.NET 2.0 Quickstarts are live:
-
Writing Use Cases
I'm thinking that with all of the new tools which will soon be arriving in my favourite IDE that it might be a good time to learn more about writing Use Case statements.
-
Logged my first bug in the Product Feedback Center
This morning while I was messing around in VWD I noticed that the VB Comment feature had not been implemented. This is where the Product Feedback Center is cool; I logged in and wrote up a defect against the product :-)
-
Visual Web Developer Express Edition FAQ
Visual Web Developer Express (VWD) is a lightweight tool for building ASP.NET applications and WebServices.
-
Planning the Whidbey sessions for Adelaide User Group
Looks like everything is in readiness for our Whidbey developer sessions. During the July meeting I'll hopefully be announcing how we will be running the Whidbey sessions at the User Group.
-
Lately I've had fun building different kinds of features
I've been fortunate enough to get to play with some interesting technologies of late due to some different types of features that I've been required to deliver. We've got a WinForms client which is a front-end to a BI application and lately we've had to implement:
-
GMail: If you think it's about space - think again!
I've been using GMail for about a week now and I can say this: it's a sweet app. It's the best online e-mail tool I've ever used. It rocks. It manages my mail much better than my FREE Hotmail account has.
-
Asynchronous Callbacks
I was playing with the new Asynchronous Callbacks in Whidbey today... very nice! Basically, what they allow you to do is to, effectively, call server-side code from the client-side without invoking a Page postback.
-
New SmartPhone
Thanks to Chuck I managed to grab myself a new smartphone today...
-
Whidbey Bloggers
I intend to use this post to maintain a listing of Whidbey bloggers. If you believe that you are blogging useful Whidbey content give me a ping and I'll add you to the list:
-
Official Whidbey Resources
I only just noticed that there is a dedicated area on Msdn which discusses ASP.NET V2 stuff:
-
New Whidbey Category
I'm creating a new category named “Whidbey” where I will list Resources, Whidbey Bloggers and Other Useful Whidbey Stuff that I come across.
-
Being a good BlogSpam citizen
I was lamenting to ScottW about my lethargy in removing BlogSpam. Scott did 2 things to turn my attitude. First he mentioned some new anti-spam features which will be included in soon-to-be-released versions of the product. Secondly, he pointed me to this article:
-
Effective Collaboration... let me count the ways
Interesting... today I saw the word "collaborated" mentioned in 2 blog articles which were only about 7 items apart on the main feed.
-
Adelaide .NET User Group
I've added a category to my blog where I'll be adding content regarding the Adelaide .NET User Group. The website for the user group is: http://www.adnug.com/ and we meet every 2nd Wednesday of the month.
-
Windows XP Service Pack 2 Release Candidate 2
Did you know that Windows XP Service Pack 2 is now RC2?
-
Re-useable harness for tray-based applications
Today I started writing a new little hobby application / productivity tool which I'm planning to implement as tray application. The first thing that I did was to crack open the code from Duncan's 3rd Coding For Fun article titled: "Checking My Email"
-
Helping User Group Members with Whidbey
Last night I had dinner with a couple of MS Developer evangalists and three of our local user group members. During dinner we discussed some of the possibilities for Whidbey-related group meetings and how we might ensure that we remove barriers of entry and get the maximum number of our members playing with the publicly available bits.
-
Some quality developer time
My previous 3 weeks has re-installed the feeling that building computer applications is a great thing to do. Some quick reminders for myself:
-
Blog years are not the same as dog years
A week or so ago Justin and both I blogged about some categorization features which we felt were missing from our current blog community. Today Justin posted another larger article which drills in a bit further on the feature-set which is provided by our current free community and others have been discussing features too. Heck, Weblogs.asp.net has even had a paragraph on its home page touting new features which are as yet un-named. All of this got me thinking and I thought that I'd pump my thoughts out while they are fresh in my mind...
-
Dynamically running an Assembly in a separate process (with your tail between your legs)
I'm currently building an application updater tool which needs to receive an arbitrary list of assemblies, calculate which one is the bootstrapper and exectute it. I had it in my head that I would need to create an AppDomain and then use reflection to load and Invoke the entry point of the bootstrap application - so I spent until the wee hours trying to get all kinds of Reflective incantations to work. I could get Assembly.Load to work quite simply:
-
ASP.NET Whidbey docs online
http://whidbey.msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_aspnetcon/html/e8601952-642e-4479-8b6f-6a1b2a58401d.asp
-
Building Msi's is NOT a no-brainer
Having spent the greater part of last week writing a complex .msi installer I was heartened to see a nice listing of Msi tasks which are non-trivial to implement pop-up today:
-
Faster than the speed of light (that's pretty quick you know!)
Justin just blog'ged about a new physics book which (apparently) explains cool stuff about the speed of light and other topics which go whooooooshing over the top of my head:
-
A primitive, generic DataLayer using Generics
I've only just starting dabbling with Generics and although I can see how cool they are I can also see that it will take some time to get used to them. To me it seems that although I know what they are I'm not sure that I always use it when I should - or how I should for that matter!
-
Community Blogs should be categorized
I was thinking about blogging this morning and how easy it is for me to find something which I've blog'ged about previously because I categorize all of my posts. So, if I want to find that snippet which talks about nested matching then all I need to do is to click on my Regex category and scan the list. Then I started thinking about how difficult it is to find content which other people have written and also how useful it might be if community blogs exposed content in higher level categories.
-
Unloading Assemblies from an appDomain and IsolatedStorage paths.
Here's links to a couple of interesting articles which I've seen today:
-
Now using the IssueTracker starter kit
I've recently taken on the development of the ASPAlliance.com site along with RegexLib.com and a few other smaller sites on the side; this has led to a large TODO: list. I've been keeping track of my TODO's on various medium - primarily in OutlookExpress. This morning I had a brainwave... why not use the IssueTracker starter kit!
-
Change the hover style on the ContextMenu
Today I had a request regarding the ContextMenu. The person wanted to know how to change the text appearance when the user moves their mouse over a menu item. Each MenuItem item is rendered inside a DIV as text, here is the code for emitting a MenuItem:
-
Msdn Connection kit arrival...
I read Frank's post today - http://weblogs.asp.net/frankarr/archive/2004/05/24/140951.aspx - and when I got home I discovered that my package has already arrived! As Frank said... Woohoo! :-)
-
Mark's take on why Maths can be good for you and how you might start...
Mark posted a nice article titled: "Maths Beginnings" which encapsulates and builds on some of the stuff which he and I were tossing around in e-mails the other day:
-
Justin's language processor series : Reuseable Lexer and TokenEnumerator
Yesterday I mentioned the series of articles which Justin has been writing on language processing. This series has really opened my eyes to a few techniques which will improve several of my parsing techniques and provide me with the ability to produce high-performance language parsers in a shorter period of time.
-
Short on time but here's some important parsing stuff...
There's a pile of stuff sitting on my desk at the moment which absolutely *must* get blogged - RedGate software, creating detailed architecture documentation, music, maths and language processing... alas time is short and life is juicy!
-
Maths - Set Theory looks interesting
Following on from my post the other day regarding Maths, I've had a couple of revelations...
-
Learning Maths - where to start???
I sent some correspondance to an online friend the other day whom I know is a dabbler in many intellectual pursuits. I wrote to him because I've started to get interested in learning mathematics - I have to admit that I'm a dummy at maths. I'm quite good with numbers and simple creative numerical analysis but, when it comes to some of those "math sciences" I have no idea. What I wanted to know is... Is Mathematics similar to computer programming languages?
-
Request.ApplicationPath - may cause unexpected results when using in pages at root level...
One of the first .NET tricks I learnt was from IBuySpy; they showed me how I could sneakily use
Request.ApplicationPath
so that my sites could seamlessly work when I'm developing against different domains (such as Localhost in development). To perform the "trick" you simply prepend <%= Request.ApplicationPath %> to the beginning of any paths in your pages, such as: -
NullReferenceException = LoadFromFile( ... ) ;
The other day I was trying to fix a problem on a website. The problem was that, whenever I tried to load a file from the filesystem, I received a NullReferenceException being thrown from "GdipLoadImageFromFile"!
-
ReThrowing exceptions
Here's some good pointers for re-throwing exceptions:
-
ViewState size, File Upload Memory Leak, Enums passed as Args and CancelEventArgs
A bookmark of interesting posts which I've seen in the past couple of days...
-
System.Configuration.Provider.ProviderBase
The provider pattern is a new "specification" which is appearing in Whidbey and is all about giving flexibility and choice by not locking users into a limited set of choices or implementations. You can read Rob Howard's article about it here:
-
A Whidbey fix (configuration) and a Whidbey feature (data expressions)
Here's a link to a couple of useful Whidbey Web Developer posts...
-
Life Perf
I was reading a blog, newsgroup or forum post the other day which referred to something about improving the performance of an application by making the database reads chunkier and less chatty. What they were talking about was that there is a certain amount of overhead which can be reduced by slurping out a bit more data if it can save you some number of additional connects and reads; there's obviously a pretty fine line between trading off marshaling more data versus acquiring additional resources and it would mainly be an issue in the most extreme of environments... which got me thinking...
-
Mixing Server and Client-side - is it hard to be elegant?
I had to write some functionality for a friend tonight based on the following request :
-
Books and Burgers
I've been really busy lately with some product releases at work and planning a new website for a new .NET technical website which Thomas Johansen and I are working on. I've also been thinking about how to do real time parsing - which has got me pretty stumped at the moment. All that has left me with precious little energy to devote to writing about anything code related so, my next couple of entries (starting with this) are likely to be less technical...
-
How to build a comma-separated list
Dave has an interesting little thread going about how to do build a comma-separated list and what you can do with that annoying, left-over ',':
-
Real Time Colorizing - Some initial thoughts
As Justin mentioned yesterday, I'm building a new parser. This parser is responsible for parsing and colorizing MarkUp and non-markup code; so it could therefore fully MarkUp an .aspx page which contained: Html, Xml, clientside script and serverside scripts within it.
-
A VB Language Bug or Feature?
Following on from post http://weblogs.asp.net/dneimke/archive/2004/04/22/117856.aspx ...
-
Null Terminator character
A zero Char is added to a char array to indicate its end point, this character is referred to as the "Null Terminator". This character is added to the end of each string to mark its ending boundary - the String classes in .NET do this automagically. So, declaring something like:
-
Me is always foolin' fa this stuff...
You are a GRAMMAR GOD!
If your mission in life is not already to
preserve the English tongue, it should be.
Congratulations and thank you!
How grammatically sound are you?
brought to you by Quizilla -
Generating Marked-up code snippets in my blog
In a recent comment - http://weblogs.asp.net/dneimke/archive/2004/04/09/110222.aspx#112468 - Brian asks how I do my colorization of code snippets in my blog.
-
Back from the Summit
I'm writing this from the Tom Bradley International Airport in L.A. where I have an 8 hour wait for my plane back to Melbourne, Australia...
-
Regex's in JScript.NET
I started reading JScript.NET Programming today:
-
Registration day
Tonight we had the registration for the Summit; it was great to meet up with many guys with whom I've e-mailed and IM'ed with for the past 2 or 3 years but never me in person.
-
Touchdown!
Just arrived in Seattle after ~23 hours of flights and connections - man that's a long time. I only managed about 2 hours of sleep between Melbourne and LA, but managed to sleep pretty much the whole 2.5 hours between LA and Seatac.
-
I need a high-quality web application
Imagine that I come up to you and ask you to build me an ASP.NET web application for my testing team and start listing off my requirements:
-
MVP Conference - just a couple of days to go
I'm flying out of Australia on Saturday morning and, arriving in Seattle 14 hours later - on Saturday morning :-) At this stage my plans are to just take it easy Saturday - maybe go out for a few beers and a movie in the city - before the madness hits on Sunday.
-
A tale about a victory involving ASP.NET and encapsulation
There are challenges in building cool, dynamic Web UI's
-
A great checklist for migrating to ASP V2
-
Maintaining monolithic regex expressions
[Cross posted on my regex blog - http://blogs.regexadvice.com/dneimke/archive/2004/03/31/877.aspx - please leave any comments there]
-
Dear Vashili,
In reply to your question (which has been posted via my blog nearly 15 times today). Yes, I do know how to Shutdown a computer through code. Learn how to use your resources better my friend!
-
Using BNF to create regex's
While reading the VB Language Spec today I decided to attempt to follow the grammar syntax for matching DateTime Literals:
http://msdn.microsoft.com/library/en-us/vbls7/html/vblrfvbspec2_4_6.asp?frame=true -
Quotes about Trees
He who plants a tree, plants a hope.
-- Lucy Larcom, Plant a Tree -
Expressing the grammar for my lexer
The other day I started blog'ging a series of entries regarding parsing text:
-
Terrarium : Some data about saving energy
As I mentioned in my last post, it's important to conserve energy in the Terrarium game. So, if you are moving - maybe looking for your next meal - and are not under any threat of attack, it is wise to meander along rather than sprint. Likewise, it is much better writing code which allows you to avoid being attacked as opposed to running away from a fight.
-
Getting ready for life in the Terrarium
I've been working on Herbert (my Terrarium Herbivore) this week and I've made some pretty good progress. When I started I just grabbed a Herbivore Skeleton and ran it - I actually introduced it into and environment chock-full of plant and no Carnivores just to observe how it acted of it's own accord. I noticed that, although they had no competition, my Herbert species would eventually become extinct after several hours due to poor ability to reproduce. In fact, I ran the game for 10 hours and 80 Herberts reduced to extinction after about 12 hours.
Chapter 10 of the Advanced Developer Documentation talks about the requirements for reproduction; they are:
- You must be Ready to grow. That is, your current State must be IsMature and the current GrowthWait must be zero.
- You must a have normal or greater energy level
- You must have room to grow - this could be up to 8px distance from any plant or creature.
So, from that, I was able to determine that the cause of my reproduction issues was that I never quite had enough room to reproduce because I was always parked up against a Plant feeding. So, I changed my original algorithm:
-
Me and the gang
This morning I asked one of my workmates to take my photo so that I could use it online and stuff - which, he did. Next thing this was circulating the office:
-
MSDN Connection - turn goals into points
I browsed Msdn Connection today and noticed that there is now a mention of the "points" which you can collect within the program.
-
Microsoft's anti-competitive behaviour
I think that people tend to focus on cash when they think of Microsoft - don't! Focus instead on how innovation and marketing of computers can give you more time to do the important things in your life such as spend time with your family, excercise or make better informed dietary decisions.
-
Getting started with Terrarium
Getting started with Terrarium development has been on my radar for a couple of years now but lately, Justin got me enthusiastic enough to actually download the bits and give it a try.
-
Parsing into Nodes
In my last blog entry I created a parser which loops through text and parses stuff:
-
Building a basic parser
Since going through the regex code in Rotor I've become very interested in how to build parsers. I started building my first parser last week and I can say that it's a truly fasciniating experience. It reminds me of flying on a flying-fox ride. When you hop on the flying-fox ride you hold on handle which zips along the length of the wire; during your journey you can scan the surrounds and take in many pleasurable sights. Parsers are really no different. A basic parser would look something like this:
-
Some books leave you with a little; some books leave you with a lot...
I finished reading Paul Vick's recent book - The Visual Basic .NET Programming Language - tonight and thought that I'd post my feelings about it.
-
Examples of validating input parameters in Rotor
As I've been blog'ging lately - I'm a Rotor convert! There are so many great examples on how to create tight code in the Rotor source that it really does pay to use it to improve your own coding techniques. This week I've been noticing the input checking patterns that developers of the Rotor source seem to have followed where inputs are always checked at the top of routines before any processing or handling of data is done. In general the pattern looks like this:
-
Conversions - Boolean, Integer and Byte.
There are many parts of "language" that, while I don't really understand the underlying rules, I just accept them in my life. Here's some conversions between Boolean, Int and Byte which, while they work, I don't fully understand the rules governing them:
-
More language esoterica - falling through a switch statement
Not that I'm much of a comp-sci guy but, I do like my language esoterica... earlier I posted about repeating structures in C# and it got me thinking about other language features - many of which are shared between VB and C# such as short-circuit evaluation and such. One language feature which I thought was pretty cool that C# didn't implement was switch-case fall-through. I'll bet that was a tough one to leave out! Here's an example of using fall-through behaviour to convert a number of Days, Hours, Minutes, or Seconds toMilliseconds:
-
Going loopy over control statements
While reading through some Rotor source I was reminded of the wonderful C# syntax for looping constructs, some of which included:
-
VB Programming Language
When I got home tonight my new book had arrived - hoping to have much of it “parsed” before heading to Redmond early next month:
-
Rotor resources
Recently Justin Rogers got me enthusiastic about Rotor source code and today I see that Joel has uploaded a list of places where Rotor is discussed:
-
Wanna use goto? You could break STUFF!
Today while writing a javascript version of a parser I was trying to work out how to implement a
goto
statement so that I could break out of an outer loop from an inner loop. You can either break or continue a labelled statement. The following snippet breaks a labelled statement. -
Some helpful Generics guidelines
Krzysztof Cwalina is a BCL team member who has just started blog'ging. His first post is an update to the design guidelines for Generics - a really useful document.
-
String::Split - unexpected behaviour?
After a comment which was left by Justin Rogers on a recent post of mine I decided to do a bit more testing to confirm the behaviour of String::Split. The documentation has this to say about it:
-
Coding Techniques and Programming Practices
I lost track of the whereabouts of this document for a while: Coding Techniques and Programming Practices
-
More timing, different types of tests
Yesterday I blog'ged about some various string splitting times. One thing which amazed me was how slow the VB Split Function was:
-
Timing Split; getting a handle on things.
Tonight I decided that, before I attempt to match the speed of Split, I'd better measure it out to see how fast it is. Here's the results of some simple tests...
-
WordWrap. Faster than Split?
At lunchtime today I was discussing my WordWrap component with a fellow developer which - of course - led us into discussions as to the merit of the task and also how "optimal" we could make the underlying "wrapping" algorithm. When I started talking about my current algorithm we discovered that I'm doing several
Split
's and then speculated as to what the faster algorithm might be. We decided that it would be good to benchmark our final wrapping algorithm against the time it takes to perform a singleSplit()
operation against the same input. It will be interesting to see how close we can get toSplit()
time. -
MarkItUp.Components.WordWrap
About 6 months ago I enabled comments on the RegexLib.com site. Basically users can leave comments against individual patterns (there's actually an Rss feed for them too: http://www.regexlib.com/RssComments.aspx). One of my requirements was that people should be able to leave code samples which would then render correctly (line-breaks, spaces, etc). Because I'm basically a lazy guy I implemented the quickest, dirtiest thing that I could think of... yep, you guessed it, the good old PRE tag :-)
-
Msdn Connection - some more details
Frank has just blog'ged some more info about the Msdn Connection program:
-
Enjoying a good reputation.
Yesterday I blogged about the MSDN Connection programme and mentioned that I thought that it would be a good thing to get involved in and today I thought that I might expand upon that a little - just so that I can't be accused of being a .NET shill! :-) But seriously, many people have asked in the past how it is that people become MVP's or ASPInsiders or whatever, and it got me thinking...
-
Msdn Connection - sounds good to me!
Frank is doing a great job of keeping us Aussie blog'gers posted as to what's happening on the developer scene. Recently he announced a new initiative:
-
How does the Speed of Light work again?
-
How to use FindStr
Following on from my post yesterday about FindStr.exe I noticed that kayodeok's Weblog have dug up the online link to FindStr documentation, here it is:
How to Use Findstr -
FindStr.exe an egrep-like tool
I've long thought of writing a little tool like grep (or egrep) which would allow me to quickly use regex to search for text within files. This weekend while reading an article about Standard I/O and Console Applications I discovered the Windows command-line tool FindStr.
-
Some new stuff I learnt about the Console
It's amazing how often related events seem to occur close to one another. Often I'll be working on a project and I'll need some code to do something I've never done before ( for example, writing an Ftp client ) and on the same day someone will post some cool code which does exactly what I need, or I'll stumble upon an article which does. It happened again this weekend.
-
TDD - not yet infected
One of my major goals for this year was to improve the quality and efficiency of executing projects and tasks. A significant part of this is intended to come about from the adoption of better practices... “habits“ if you like. I started the year by trying Pair Programming and this week I've started to pay attention to Test Driven Development (TDD) for the first time.
-
Seattle here I come...
I booked my flights for the April MVP Conference in Seattle. I'll be arriving in on Sat. 3rd and flying out the following Saturday afternoon - 10th. I'm looking forward to my first MVP conference and also to catch up with many of the guys and gals that I met last year when I was over there.
-
New ContextMenu release - includes a working demo
The latest build of ContextMenu is now available on GotDotNet.com via this link:
-
New ContextMenu tutorials
I've added a 2 ContextMenu tutorials to my website:
-
ContextMenu now supports Mozilla and Opera
I finished-off the changes required to make ContextMenu run in multiple-browsers and will be uploading the latest version of the control to GotDotNet tonight, so it should be available for download in 2-3 days - I'll blog a message when the new code is up and ready for download. So far I've tested it in:
- Internet Explorer 6
- Mozilla 0.7
- Opera 7.11
There's a demo page for ContextMenu which you can use to test the menu on your own browser; I'd appreciate any feedback via my contact form if you encounter bugs, etc.
-
Oh you old fox you!
heh... it's been a while since I did any cross-browser scripting so, today I settled in for a solid session of pedantry. Much was my surprise when I did a view-source on the first page I visited on the Mozilla site and found this comment for all to see:
-
Adding cross-browser support for ContextMenu
This weekend I have to get the ContextMenu working in Opera and Mozilla browsers. This shouldn't be too hard as I've stuck close to the spec. on everything and already have a browser sniffer built in to the js code. I've already taken the precautions of separating the 4 main XBrowser fragile parts out into their own logic units:
-
Lie Loudest
One of my favourite quotes is this:
-
ContextMenu - online tutorial added
I've added a brief online tutorial which shows off some of the features of ContextMenu, you can view it here:
-
ContextMenu tutorial
Ok, in this tutorial we are going to create a new Project which makes use of the ContextMenu control. The tutorial will cover the following things:
-
ASP.net Control Gallery - tons of free stuff
In all the time that I've been using the ASP.net website I never really understood what the tab for "Control Gallery" was all about. I'd just kinda assumed that it must be a place where really smart people insert totally cool controls for others to download and enjoy. Turns out that it's not like that at all because they've accepted my new ContextMenu server control as a download :-) My control is now listed here:
-
Webmonkey, RIP: 1996 – 2004
I just needed to blog this so that I have a bookmark reference to it.
-
4K today!
My GotDotNet User Samples cracked the 4,000 download mark today!
-
Changing the metrics categories
OK, one day into it and I'm already making changes. My new categories for recording development time are:
-
What my metrics will and will not tell me.
So, today I started out on my path to statistical verification. My first job was to grab a small, pocket-sized notebook to keep track of my daily entries. The notebook will be kept in my pocket at work so that I can easily make entries as they are required. The idea of using paper - as opposed to some sort of technological wizardry - was forwarded by Darrell Norton who seems to be a fountain of useful information when it comes to process improvement ideas and the like... thanks Darrell!
-
ContextMenu is now live
The ASP.NET ContextMenu server control is now available from GotDotNet:
-
Measuring development activities should be easy - not hard.
Yesterday's discussion on "developer metrics" seemed to be a bit of a curve-ball and I received some mixed feedback. I think that one thing which threw people was when I mentioned the deadly phrase: "Counting Lines of Code" { insert sinister sound effect }. It's a bad metric and should be removed from my original posting unless (of course) you have a tool which is sophisticated enough to provide a reliable and meaningful count of lines (i.e.: working lines, raw lines, checked-in lines etc.) -- and I don't! And nor do any of the programmers that I know, so I'm gunna chuck that measurement out (for now).
-
ContextMenu - code complete!
I finished off some of the rough edges of
ContextMenu
tonight and have to say that I am quite impressed with the result. Although, I have to say that this will be the last control that I build using VB until Whidbey; the sad part of this story is that after spending 5 or 6 hours working on it I am unable to get VBCommenter to successfully emit Xml based on my code comments. -
Lies, damned lies and statistics
The other day whilst reading some of ^Z's entries it struck me that he uses metrics to mark many of his important observations. This is a hallmark of many of my trusted sources of information. For example Mark has been keeping a log-book of his jogging; he can now look back through the statistics that he's been keeping and use them to check his jogging patterns. I think that this is important because - as I've mentioned previously - it's often easier to plan for where you are going if you know where you're coming from.
-
Eyes up and to the front
In a post yesterday I used the term "eyes-down approach" in the context of developer behaviour, and today I thought that I might expand upon that a little. This is term that I use for times when there is so much activity and energy being used "implementing" that there is precious little focus given to planning and observing/testing the implementation. I'll demonstrate using an allegory... Imagine that you are given the task of sailing away to a Pacific Island in a sturdy boat. Once you set sail it might be easy to get highly motivated by the task of cleaning ropes, rigging up sails, preparing meals, etc that you forget to check some important things such as: what direction your compass indicates that you are travelling in, what direction your map tells you that you should be heading in, what the weather around you is doing, and the relative skillsets/strengths of your crew - you wouldn't want to entrust the meal preparation to the guy who is renowned for bringing upon bouts of food poisoning! Yet, armed with a good plan, the right tools and an understanding of the tasks which need to be done to get the job done safely, you might find yourself in for a pleasant time of viewing sunsets and quiet introspection.
-
Factoring in performance
I just finished reading an excellent piece by Paul Vick relating to the performance of code. I think that this is especially relevant now that I'm starting to write components and working on larger applications.
-
Only making Good mistakes helps :-)
After my last blog entry about the risks relating to juggling to much uncertaintly I stumbled upon ^Z's 1999 entry about making “Good Mistakes“. I think that there's something profound in there - for me especially! Thanks for that Mark :-)
-
Always try one new thing but not two.
I've got a software related creed that I've managed to adhere to for several years now and, in my opinion it has been largely responsible for keeping me out of harms way; it's a simple creed and it goes something like this:
-
ContextMenu - exposing and handling events
The ContextMenu is now code complete and I'm running through the code adding the appropriate Xml comment sections for when I produce the .chm file for the assembly. My aim is to have a Comment, Remark and Sample for each public member within the assembly.
-
ContextMenu - how the styles work (for now)
One other thing that I've not mentioned about the ContextMenu server control is how the styles are handled. Presently, and for the initial release of the control there will be classnames hard-coded into the control itself; they are:
-
ContextMenu - now working in browser.
I finally got all of the rendering logic finished and spent this morning working "in the client" on some positional bugs. Basically, I had the menu working fine until the user selected a menu which was at a position greater the 1 window height down the page. In other words, if the page was tall enough to require a scrollbar down the side, the positioning of the menu was screwy when you had to scroll down. I've fixed that though with a nice little hack :-) Basically, I wire-up a delegate to handle the mousedown event on the document like so:
-
Another minor alteration to my stylesheet
I mentioned the other day how I had made a change to my global css styles. Today I've hard-coded a width for PRE's and set the overflow:auto to prevent my code samples forcing the page wider. Now when I add wide snippets they should appear with scrollbars. The new definition is:
-
ContextMenu - working in the designer
I've now got the ContextMenu to emit all of the Javascript into the page as part of it's rendering process which is the first part of what I said needed to be done from yesterday. Here is the code in the ContextMenu class which is responsible for doing that:
-
New Msdn style
I travelled by http://msdn.microsoft.com/ today and noticed that the styles have changed. The site now has a much “lighter” feel to it; much more of a “stylesheet look” than an “images look” - if that makes sense :-)
-
Context Menu - building the classes
Well, it's been a great week inside the software dream ;-) as I've had the chance to work on something out of pure enjoyment - an ASP.NET Context Menu Server Control. I've been blogging my progress as I've had to tackle each part of the problem and, it's gone something like this:
-
ASP.NET Cookies reference
After following a link on a post by DinoE regarding DataGrid's - duh! :) - I found this useful link pertaining to cookies in Msdn:
-
ContextMenu - more planning and a proof of concept
One of the requirements for my ContextMenu control is to have a declarative syntax like this:
-
Some new styles for my code samples
Today I've altered my Css styles the PRE elements that are used to display code snippets on both my regex blog and my asp blog. The new style definition is:
-
(D?)Html + Css : Now it's slants!
It's amazing what some of the creative folk can do with a couple of pieces of string:
-
ContextMenu - interface definition + features
OK, so I've spent a bit more time thinking about how I want the interface for my Context menu to feel and, after quite a bit of poking around to learn about how others have designed controls with a fimiliar structure I have settled on this:
-
Published nomenclature of Australian bloggers
Frank Arrigo is calling for .NET'tin Aussies to leave their details so that he can compile published nomenclature of Australian bloggers, great idea! Go here to be included:
-
BUG FIX - Personalization - Error when attempting to remove multiple values
I fixed and uploaded a bug in the Personalization assembly today. The fixed assembly has been uploaded as version 1.0.1.0.
-
MarkItUp.WebControls.ContextMenu : Making a start
A couple of days ago I discussed a string buffering technique that I'm using for a client-side context menu widget. In one of the comments on that post I mentioned that I'd blog about my progress in turning it into a useable ASP.NET ContextMenu Server Control. So here goes...
-
Consume a .NET Assembly from a classic ASP page.
Whenever I think that I'm getting to the bottom of .NET, there's, well: there's always something to remind me...
-
Minimize string creation in dhtml widgets
I wrote a component tonight which allows me to easily bind client-side pop-up menu's to objects on a web page. A single menu is basically a Html TABLE with a collection of child menu-items represented by DIV's. Because there is a high liklehood of menu's being created over and over again I decided that I would take steps to minimize the amount of string building by “caching” the html for the menu and each menu-item the first time that it is generated. I liked it so much that I thought I'd blog it :-) Here is the GetHtml method for the menu which caches it's chunk of Html in the array variable named _stringIntern_ the first time that it is generated and pulls it from there on subsequent rendering operations. The same logic is followed for each menu-item.
-
Productivity and Efficiency - being more productive
Good to see that Mark has blog'ged about some of the productivity based ideas that came up during a recent e-mail session that we shared. Hopefully I'll have time to construct some of the ideas that I had about this topic into a well written post sometime soon :-)
-
Personalization (ASP.NET) - a new GotDotNet User Sample
UPDATE: Useful HttpCookie faq: http://www.cookiecentral.com/faq/ regarding limits on sizes of cookies etc.
-
Display an ASP.NET DataGrid in Microsoft Excel
I was putting the finishing touches on a web application tonight when I discovered something really cool...
-
MarkUp component
I've uploaded the initial release of the MarkUp component on the GotDotNet workspace. The workspace can be found here:
-
RssFeed - a server control to display rss feeds
The other night I gave a talk to my local VB User Group about blogging and some of the technologies that have sprung up to support it such as Rss, Opml, Aggregators and Blogging apps (such as .Text). I also mentioned how it is amazing that there are so many free (many with full source code) tools that you can grab to quickly implement a blogging solution. One of the tools that I forgot to mention was the rssFeed control which was the brainchild of Scott Mitchell and now lives in its own GotDotNet workspace.
-
RegexLib.com minor site alterations
Last night I added a couple of new features to the RegexLib.com site:
-
2 Notables - Rss + Rss and Outlook (Both come with source)
First, Duncan mentioned about RssConnect; I've been looking at this app for a week or so now and I loved some of the UI "bits":
-
One fine day
This morning I woke up extra early in preparation for doing a final build of an application that I've worked on for several months. So, while I checked my e-mail over a bowl of pre-ride cereal, I noticed one piece of mail notifying me that I've achieved MVP status within the ASP.NET community. What can I say? What an achievement, thanks for the recognition :D
-
Defensive coding practices - check inputs
Something which, although I knew a bit about through my scant knowledge of using the Command line, had never really dawned up me. I created 2 files called "File.txt" and put them into the following locations:
-
A simple Business Rules Manager
I read a seriously cool article today on Msdn about creating a "Rules Manager". In it, Rockford Lhotka demonstrates how to create a central controller for validation rules. The rules manager allows you to create rules at all sorts of levels and helps to abstract the task of managing validation away from individual Forms so that the validation logic is all in one place. As an example of this, imagine creating a "Human" class and assigning some rules such as:
-
Mark-up tool - new workspace
I've created a new workspace to work on and improve the mark-up tool that I wrote about in a recent article for Msdn.
-
DataTable and Relational Operators
It's always interesting to see people doing whacky ADO.NET stuff and today I saw a few interesting things along those lines...
-
Getting a better handle on Windows Media Player
I decided a few weeks back that I'd go through my Windows Media Player - Media Library and update the ratings and album/track info for each of the items. It's useful because then you have more options about what music you can listen to. So, now when I open the "Music Category" dropdown in the top-right hand corner of my player I can choose from some of the following options:
-
The carrot or the stick - what motivates me?
As part of my 2004 goals series I'm looking at ways to improve software construction and delivery and one of the main themes that I'll be trying to answer is: how to motivate yourself and others.
-
Pair(ed) Programming - my hopes and expectations
Well, I've started and nearly completed my first project for '04, a project that I architected and had sign-off for late last year. This was one of the best development experience that I've ever had with regard to the following:
-
Software Construction - Goals for '04
I've seen many a New Years resolution blogged over the past week: promises, hopes, dreams and even pure speculation; so, I thought that I might lay down my own vision for the year.
-
Abbreviations and Acronyms - pick the difference
Today I read an interesting article about the use of abbr and acronym tags. The article also provided a nifty piece of client-side script to ensure that those tags display as well in IE as they do in Mozilla and Opera.
-
Some useful keyboard shortcuts - Regions
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1033/vsintro7/html/vxtskOutliningCode.htm