October 30, 2003
@ 12:19 AM
Dino has this MSDN Magazine article about Avalon. The Longhorn application model is a whole new thing with a revamped storage system, natural search technology and emphasis on security. He also discusses XAML (XML based UI design format something like Mozilla XUL). This XML file will be like an input to the code like the resource files. Damn cool !
 

October 29, 2003
@ 04:35 AM
Great idea here. Instead of shuffling between Yahoo! Briefcase, FTP servers and file splitters, just use this to email your big files. When you email a file using a token, the Token software makes your computer a server. I am not sure how well it works across firewalls, but seems like a good idea altogether.

Joel Spolsky's post also announces this as something that we have always needed. The idea is so simple and its surprising that we have overlooked it for so long.

[Update: I guess good things always come at a price. Even though redeeming a token is free (you still need to download the Redeemer - this should be eliminated somehow to make it more usable), creating a token is not. The basic stuff costs $49 and setting up a Token Server is $1000]
 


Never noticed this before ... but quite useful list of tests in various MS technologies.
 

October 28, 2003
@ 04:23 AM

CodeSMART

To add all the Visual Studio features that Microsoft got

CodeSmith

Code generation

CodeWright

Text Editing

Desktop Sidebar

Provide you with instant access to some of your most important daily information

Dundas WebChart

The absolute best chart control I've seen

FogBUGZ

Bug-tracking

ieHttpHeaders

Show you the HTTP Headers IE are sending and receiving.

InstallShield and Wise

installer creation

MindManager

Brainstorming

Nant

build system

NDoc

documentation creation

NUnit

TDD fixtures and test harness

Reflector

Spelunking

RegexDesigner.NET

Regular Expressions

RoboHelp

End-user documentation

XMLSPY

XML editing

 


 

October 28, 2003
@ 02:38 AM
What the hell is this Lorem Ipsum that they use as text in all templates and document samples. Found this site through Don Box.
 

October 27, 2003
@ 11:15 PM
MS purchased FrontPage and its parent company Vermeer Technology for $130 million in early 1996 largely because the product was one of the first WYSIWYG Web page editors.

 

Scott Guthrie answers queries about web deployment in Whidbey. He has also attached a screenshot !!!
 

October 24, 2003
@ 12:14 AM

I keep forgetting the path to this schema folder all the time ...

C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Packages\schemas\xml

And this is about what you need to have in the schema. Found the following in the AdRotator example from MS.

<xsd:schema vs:ishtmlschema="false" vs:friendlyname="Ad Rotator Schedule File" xmlns:vs="http://schemas.microsoft.com/Visual-Studio-Intellisense" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/AspNet/AdRotator-Schedule-File"targetNamespace="http://schemas.microsoft.com/AspNet/AdRotator-Schedule-File“>

[Update: Actually the target namespace and the xmlns attribute for namespace is also not required. The vs: attributes and the xmlns:vs namespace should however be included]


 

October 23, 2003
@ 05:10 AM
Dr GUI very old post about humorous “Alice in Blibbetland” email from Microsoft.
 

October 23, 2003
@ 04:52 AM

Don Box on presentations and talks:

I don't know that I agree with him, but I do know that these rules have worked for me.
 
  1. Everything you know about network protocols applies. How do you know people got it? You need an ACK. What happens if you transmit too much data too fast? Buffer overflow. How do you ensure successful reception in the absence of ACKs? Forward error correction via redundant transmission.
  2. Preparation is a lifestyle. I never rehearse talks - I want to have a genuine experience when I talk and rehearsals always feel contrived. That said, I try to only speak on topics I'm focused on in my daily life, so hopefully I have tons of relevant data in L0 cache. I also try to avoid staying up late the night before - being rested is far more important than any benefits you may get from cramming the night before.
  3. Less is more. This applies on many fronts. Smaller/minimal code examples (preferably coded up on the fly) are preferable to opening up a huge sample app and highlighting 7 lines of code. Less content in PowerPoint is preferable to 200+ word slides (damn that auto-font-downsizing feature). At most, PowerPoint should give you visual cues as to the flow of the talk and give attendees visual reinforcement.  A little PowerPoint goes an awfully long way - don't let it ruin your talk.
  4. It's all about attention span management. It's your responsibility to keep attendees focused no matter what. There are countless tricks you can use to snap people back on track. My favorite example was a United Airlines flight back in 2000. The flight attendant decided she wanted people to pay attention to the safety lecture - so out of the loudspeaker came the following:

    Your seatbelts are useless [pause] unless they are buckled low and tight across your lap with your belongings stowed…

    The entire cabin snapped to attention. It was quite stunning and I now think of that experience every time I fly.
  5. Contrast is your friend. If you normally speak fast, occasionally slow it down. If you've had PPT in the foreground for 15 minutes, Alt-Tab to something else fast. If you've been sitting for 30 minutes - stand up and walk around.
  6. Just the facts ma'am…not! Facts are great. Concepts are much better. Your job is to convey concepts and/or demonstrate techniques - facts are at most a means to an end. Also, don't underestimate the importance of motivation - this is both the "why is this this way" as well as "why should you care."
  7. Selecting text looks like crap using the default settings for Windows. OK, this one may not sound very profound but you have no idea how important it is. By default, Windows displays selected text using white text on a black background. On most projection equipment, this means that when you highlight some text, what you just selected is virtually unreadable (which is the opposite of the effect you were hoping for).   To deal with this, I set the selected text colors to black text on a Cyan (light blue) background. That makes selection look much more like running a highlighter over the text.

 

Gates Mills article on News.com. Interesting excerpts follow

Gates Mills, Ohio, is an actual town--population 2,508. Some "Microsoft is evil" conspiracy theorists believe that in this town resides the software world's version of "The Truman Show."

For the first time in 12 years (gasp!), Gates shared a stage with an IBM executive

And feedback from the MS technical head for the demo


 

October 23, 2003
@ 04:01 AM

Hanselman links to by Phillip Greenspun:

"Our students this semester in 6.171, Software Engineering for Internet Applications have divided themselves into roughly three groups.  One third has chosen to use Microsoft .NET, building pages in C#/ASP.NET connecting to SQL Server.  One third has chosen to use scripting languages such as PHP connecting to PostgreSQL and sometimes Oracle.  The final third, which seems to be struggling the most, is using Java Server Pages (JSP) with Oracle on Linux.  JSP is fantastically simpler than "J2EE", which is the recommended-by-Sun way of building applications, but still it seems to be too complex for seniors and graduate students in the MIT computer science program , despite the fact that they all had at least one semester of Java experience in 6.170.

<snip/>But the programmers and managers using Java will feel good about themselves because they are using a tool that, in theory, has a lot of power for handling problems of tremendous complexity.  Just like the suburbanite who drives his SUV to the 7-11 on a paved road but feels good because in theory he could climb a 45-degree dirt slope." [Phillip Greenspun's Blog]


 

The test was definitely headed for a draw after NZ put together a mammoth total of 630/6 in the first innings. This included four centuries and consumed 2 and a half days of the test match. Their strategy was to put India under the pressure of avoiding a follow on and then try to win the match and series (India has lost only one series at home since 1987).

India responded well to the challenge with Sehwag scoring a quick century and other batsmen pitching in their valuable few runs. India looked very strong in their first inning at 203/1 when Sehwag and Dravid were batting at the close of Day 3. However Day 4 saw a couple of quick wickets and a uncharacterically slow half century from Tendulkar. India closed the day with Laxman batting at 86 and India at 390/6. The match looked headed for an easy draw.

However, morning of Day 5 saw the collapse of the Indian tail, putting us to bat again trailing the kiwis by 206 runs. Another collapse of the top order in second innings, and even an utter optimist like me thought that India would lose the match after all. Laxman came up with a fine knock of 62 runs in 183 balls and avoided an unfortunate defeat at home.

Wisden Match Reports


 

October 17, 2003
@ 11:12 PM

Been a little busy for the last 3 days ... haven't even been able to read a single blog !!! I know there are a few articles pending from my side:

  • Unicode, Encoding and Character Sets
  • Code Generators - A review
  • XP Themes (Visual Styles) in Windows Forms applications

I am sure I cant finish all three of them so fast, but will try to catch up with the schedule over the coming few weekends ...


 

Click here to go to the source

  1. Naming Conventions
  2. n-tier applications
    • Coupling: Pass control references to business logic
    • Cohesion: Highly Spcific Code
  3. Use inheritance for extensibility and maintainability: You should also invest the time in creating a component framework from which your classes can be built. This rich architecture will make your derived classes much more elegant
  4. Reduce resource usage: Reduce number of static controls on the form
  5. Have Auto-updateable applications: Have an application components Web Farm from which various forms and assemblies are downloaded.
  6. Variety of error handling techniques and logging
  7. Reduce number of calls between processes
  8. Testing: Can use Visual Studio Analyser

 

Been struggling with XP themes and how .net treats those controls. Realised that there is a Application.EnableVisualStyle( ) method that lets you use the XP style rendering of controls. But the FlatStyle property needs to be changed to System for those controls deriving from ButtonBase, GroupBox, or Label (for others its a default). After doing all this the application looked quite OK with the buttons looking like XP buttons, the tabbed windows changing colors to the XP theme, and the group box corners getting rounded.

If the System style is used, the appearance of the control is determined by the user's operating system and the following property values will be ignored: Control.BackgroundImage, ImageAlign, Image, ImageIndex, ImageList, and TextAlign. In addition, the Control.BackColor property will be ignored for button controls. If supported, users can change the appearance of controls by adjusting the appearance settings of their operating system.

CAUTION   Setting the FlatStyle property to FlatStyle.System is not advisable if you need to display an image on a control, display an image as a control's background, or perform precise text alignment.

However my application puts a group box inside a tab page. Therein lies the problem.

http://www.codeproject.com/csharp/dotnetvisualstyles.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformsflatstyleclasstopic.asp

http://msdn.microsoft.com/library/?url=/library/en-us/dnwinforms/html/xpthemeaddin_.asp?frame=true

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwxp/html/xptheming.asp

http://www.codeproject.com/cs/miscctrl/themedtabpage.asp

http://www.binarymission.co.uk/binarysmartbutton.aspx

http://www.dotnet247.com/247reference/msgs/10/53683.aspx

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconrenderingwindowsformscontrol.asp

http://www.codeproject.com/managedcpp/ManagedUxTheme.asp

http://www.infragistics.com/products/lookandfeel.asp?sec=5&cat=-1

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvssamp/html/vbcs_xpthemesupport.asp


 

October 16, 2003
@ 04:25 AM
btn  Button nico NotifyIcon
chk  CheckBox nud  NumericUpDown
clst CheckedListBox odlg OpenFileDialog
cdlg ColorDialog psd  PageSetupDialog
cbo  ComboBox pic  PictureBox
cmnu ContextMenu pdlg PrintDialog
crv  CrystalReportViewer pdoc PrintDocument
grd  DataGrid ppc  PrintPreviewControl
dtp  DateTimePicker ppd  PrintPreviewDialog
dud  DomainUpDown pbr  ProgressBar
erp  ErrorProvider opt  RadioButton
fdlg FontDialog rtf  RichTextBox
frm  Form sdlg SaveFileDialog
grp  GroupBox spl  Splitter
hlp  HelpProvider sbr  StatusBar
hsb  HScrollBar tab  TabControl
img  ImageList txt  TextBox
lbl  Label tmr  Timer
lnk  LinkLabel tbr  ToolBar
lst  ListBox ttp  ToolTip
lvw  ListView trk  TrackBar
mnu  MainMenu tvw  TreeView
cal  MonthCalendar vsb  VScrollBar

Source: Early and Adopter Weblog


 

Joel Spolsky had written this article in August 2000 about software cost estimates and schedules. Some interesting extracts.

[Spolsky] Testosterone-crazed game companies like to brag on their web sites that the next game will ship "when it's ready". Schedule? We don't need no stinkin' schedule! We're cool game coders! Most companies don't get that luxury. Ask Lotus. When they first shipped 123 version 3.0, it required an 80286 computer, which wasn't very common then. They delayed the product by 16 months while they worked to shoehorn it into the 640K memory limit of the 8086. By the time they were done, Microsoft had a 16 month lead in developing Excel, and, in a great karmic joke, the 8086 was obsolete anyway!

He refers to this story of the rise and fall of Netscape by one of Netscape's employees. Extracts from there.

[Zawinski] Why? Because the company stopped innovating. The company got big, and big companies just aren't creative. There exist counterexamples to this, but in general, great things are accomplished by small groups of people who are driven, who have unity of purpose. The more people involved, the slower and stupider their union is.

And there's another factor involved, which is that you can divide our industry into two kinds of people: those who want to go work for a company to make it successful, and those who want to go work for a successful company. Netscape's early success and rapid growth caused us to stop getting the former and start getting the latter.

Make a schedule

13 silver bullets about scheduling (Spolsky)

  1. Use MS Excel: (MS Project has too many dependencies)
  2. Keep it simple (column and task list based)
  3. Features consists of multiple taks
  4. Let the programmer make the schedule
  5. Pick finegrained tasks: As a rule of thumb, each task should be from 2 to 16 hours. If you have a 40 hour (one week) task on your schedule, you're not breaking it down enough. Time it in hours. Only then can it be considered as well defined.
  6. Keep track of original and current estimate for a task: Helps learn from mistakes
  7. Update everyday
  8. Put items for vacations: Then add the Remaining hours field to estimate time of shipping
  9. Add Debugging time: In principle, developers debug code as they write it. A programmer should never, ever work on new code if they could instead be fixing bugs. The bug count must stay as low as possible at all times
  10. Add Integration time: Invariably there will be repeated code and parts that need to be cleaned up for the system overall.
  11. Add a buffer to the schedule
  12. Dont let managers change the estimated time
  13. Features are like blocks of wood: You cant shrink features to accomodate them in the time you have. Either include them, or just leave them out for the next release.

 

October 15, 2003
@ 01:49 AM

~~~~~.~~~~~
~~~~~~~~~~~~
~~~~~~~~~~~~

 

A floating point !


 

October 14, 2003
@ 05:12 AM
CodeSmith rocks ! Cant say much here, check out for yourself. Will have details about my experiences once I have used it more.
 

October 14, 2003
@ 02:59 AM

Joel Spolsky explains how character encoding and Unicode can be used for language support. But still not clear enough to me.


 

Google and MapPoint have teamed up to research on a new search by location technology. Other projects running at the Google Labs. Wish they had more frequent updates and a feed for the Zeitgeist.
 

A resilient New Zealand managed to avoid follow on on Day 3 and put India to bat again. Indian batsmen performed well shutting the critics up again. Rahul Dravid made a quickfire 70+ runs and when Ganguly declared on Day 4 when India had a comrfortable lead of 369 runs. The match seemed headed for a draw with only 110 overs of play left for the match. India (Kumble) took some quick wickets in the morning on Day 5 but Astle and MacMillan stayed on till the end to deprive India of another deserved victory.

The main problem in the Indian bowling attack being the lapse in concentration and aggression towards the end of the opponents' innings. We have seen this earlier in the World Cup when we failed to wrap up matches even though the end of the match seemed very near.

Wisden links:
In control, but never in command
Favouring the leg side
McMillan and Astle save the Test


 

October 13, 2003
@ 10:44 PM
The Law of Leaky Abstractions explained by Joel Spolsky in the most real real-world examples. His example of TCP over IP demonstrates that even though TCP is supposed to completely hide IP and make sure that all transmission from one computer to another takes place reliably and the user is not even supposed to know about IP, sometimes the problems in IP leak through the abstraction and dont let TCP work. One of these situations being “your pet snake has chewed through the network cable leading to your computer”.
 

October 11, 2003
@ 03:42 AM

October 11, 2003
@ 03:15 AM
Eric Maino is going to hold this competition in February.
 

October 11, 2003
@ 02:51 AM

eweek.com has this interesting article on Ellison and his role in Oracle. The future of Oracle and why he is still not ready to name a second in command.

So Oracle's stakeholders—customers, partners, shareholders, and employees—are at the mercy of a nearing-sixty CEO who indulges in high-risk behavior and whose interest in his company is fitful. In late 2002, Ellison spent weeks at a time anchored off the coast of New Zealand, while the eighty-foot yacht that he paid for, Oracle, participated in the America's Cup trials. Early on in the trials, Ellison was a crew member, but the captain, Chris Dickson, yanked him for a more veteran sailor. Ironically, Ellison had elevated Dickson to captain to replace someone else. The Oracle head capitulated meekly to being thrown off the boat, conceding that the captain must prevail.


 

October 11, 2003
@ 02:47 AM

Colt Kwong posted this picture from Hong Kong's attempt to create a new Guiness Book Record with hundreds of people assembling PC's at the same time, same place.

Do I see Windows XP being installed on all those PC's ?? :)


 

       Ganguly declared the India innings after reaching his hundred
       New Zealand now have 19 overs to play till stumps on day 2

End of over 159 (3 runs) India 500/5
PJ Wiseman 21-0-80-0 - GMDC End
SC Ganguly 100* (211b 8x4 3x6) PA Patel 29* (24b 5x4)

 

End of over 148 (10 runs) India 438/4
DL Vettori 42-9-119-2 - Adani Pavilion End
R Dravid 214* (381b 26x4 1x6) SC Ganguly 75* (174b 8x4 1x6)

Match State: Tea - Day 2


       We will be back in 15 minutes for the final session
       Your commentator Siddhartha Vaidyanathan signing off