X-Setup is perhaps the most comprehensive Windows tweaking utility. I always end up spending half a day enabling all the hidden advanced settings using this thing. Fortunately it provides Recording mode and creation of a REG file. This is really cool because now with just a click I can make any XP/2003 machine more geekier and end lots of “default” annoyances. If you are interested you too can use my final REG file.
I like to preserve logs of my browser history. Apart from recalling useful webpages I’d discovered, it helps to build kind of “journal” reflecting problems I was facing, things I was in to, things I was shopping and so on. An ability to look back and see what you were up to in any point of time is really important, not just useful. Unfortunately there is no easy way to export history from IE or Firefox, let alone query that data in an useful way.
I never liked being forced to use DataView just to speed up my searches. Why not DataTable.Select() have an overload to generate internal indexes and do some smart things? But anyway, most people searching DataSet eventually would realizes that performance really sucks and they have no choice but to use DataViews, sometime whole bunch of it prepared for all sorts of queries you want to fire. Here are two things you should watch out (MSDN docs aren’t clear about this):
If you need to store certain data in file, most of the time you will obviously think about storing it as XML file. Then soon you start drawing XML schemas and think about generating XSDs… Well, stop! You might be making same mistake as many other people. The better idea is to design XML schema which is loadable in DataSet rather then just XMLDocument. This has tremendous advantages then your custom schema:
If you installed .Net Framework 2.0 Beta and suddenly VS2K3.Net refuses to attach to your existing 1.1 apps with a very cool error message “Unable to attach to process”, don’t get panic! Looks like side-by-side promise of Framework versions doesn’t work in some rare cases (which somehow I always get in to). Unfortunately you can’t uninstall 2.0 (even though it gets installed in separate folder, core DLLs such as mscorlib.dll is already replaced by 2.
I read about Bayesian probability first on Paul Graham’ milestone article on spam two years ago. Amazingly, his Bayesian based algorithm did the same thing that a sophisticated AI algorithm will do, i.e. to precisely identify spam emails (success rate: 995 out of 1000) just like humans do it with their image recognition, natural language processing capabilities and yet unparalleled intelligence. That got me interested and Bayesian probabilities got added in my things to learn.
This Task Manager for Windows rocks. Besides doing everything that you ever wanted from a thing called Task Manager (even showing open files for every process), it has one of the sweetest option that your application should provide: Replace Windows native [equivalent thing]! I just keep wishing if there had been free and with-source Calculators and Explorers and everything else Windows that I can just replace with a click like this and move on rather then waiting for a decade on Microsoft to improve their age old featureless apps.
This innocent little puzzle formed from some of the recent code I was writing. Lets see if it gets you!
object p = 2; object q = p; p = 4; System.Diagnostics.Debug.WriteLine("Answer is " + q.ToString()); Meanwhile I’m having fun asking it to my colleagues 😉
This is an advanced progress dialog which can be shared among method calls which can call each other recursively. Each method call gets a portion of the total progress so we can see some continuous progress instead of only top level method progress.
This is implemented by singleton version of TaskProgress using static public member which each method can use without being aware of other methods. This component keeps tracks of call recursion in a Stack and allocates progress bar range to each of the calls.
The Fifth HOPE conference featuring talks, workshops, movies and other events from several well known hackers including Steve Wozniak, Cult of Dead Cow, John Draper and so on is already started at NYC today (July 9, 2004). I’d read lot about many of these people dedicated to pure hacking in early years in the book Hackers and now its a chance to actually hear them! The conference has 70+ talks which itself is pretty long list even to browse through.
NotepadX is a powerful program to let you to keep your notes in hierarchically organized categories. Also it not just allows you to create rich text/ plain text notes but also the notes which are like Worksheet or a treeview! It also supports encrypted secured notes so you can save your passwords and sensitive information safely. You can also create read-only notes and pass it around. The Edit-In-Word allows you to use Word for rich text formatting in case my basic editor didn’t fit your needs.
Just watched MSDN TV’s new episode on Managed Code. The topic is pretty trivial for me but what’s exciting is to see one person talking and seating there. I remember my years as a rebellious programmer when followers were few and swimming opposite the popular currents wasn’t easy. In all-Unix all-C++ organization I’d heavily pushed for tools and style I believed in - even if it meant taking over entire responsibility and work load on me.
My blog was previously hosted on Blogger.com and boy, that thing sucked. So my mission was to host my blog on my own site with an ASP.Net engine that I can customize and extend as I like. So DasBlog came along but there weren’t any tools around to fetch my blog entries from Blogger.com and put in to dasBlog. Sure I didn’t want to loose my previous entries, so I made my own conversion tool that does this export from blogger.
This is the place I put any scripts, configurations worth saving. Some of the may be here from pure historical reasons so be careful in using them.
copynewfiles.bat This little batch file is just ROBOCOPY command line that I end up using too often. I’ve went through every command option to figure
out if it should get in to this file. My main use of it is incremental copy of large folders for quick and dirty backups.
This is my private library to build ASP.Net websites with one goal in mind: build it fast! I’ve already exploited it in building 3 of the websites (including this one) and one of them was literally built overnight! So well, it proves the point. This is still evolving code and there is not much documentation right now but you can contact me for assistance. Here’s what this library contains:
Seven years ago, a candidate appearing for his first job interview right after school was put up with cold stare and a question: “So, what you know in C?”. The candidate kept his reply short with similar cold stare: “everything”. While candidate got the job very next day, the reply was unusual for interviewers because C was notorious for being deceptively complex language and it was believed that only few knew it’s real innards.
This is complete rewrite of WizAddIn and much more organized code but less tested. However you get nice document on how to use it and a test demo program too.
Warning: This program was written circa Jul 2002. It is currently considered obsolete. There are no plans to update it and no support is provided. WizAddIn is now archived at Github
This is an add-in for Microsoft Visual Basic 6.0. It does following of things: \ 1. Adds/removes line numbers from projects in a group. Unlike other add-ins, this one has been thoroughly tested on live complex projects for more then a year and has lots of code to workaround VB IDE object model bugs. It also does smart numbering (for example it won’t number trivial assignment statements in Property Get).
I believe websites should give away their source code if you’d created it just for fun and it wasn’t for money. So yes, here’s the source code of this whole website itself! Points of interests: SiteData.mdb contains most of the data in relational format which you can query, lots of examples of user controls that I use as templates in DataGrid rows and it is a good example of how my SyFastPage framework actually gets used.