Saturday, November 15, 2008

CSU Library Research Databases

  • EBSCOhost Research Databases: Menu of databases provided through EBSCO Publishing.
  • Business Source Complete (1886- some full text): Index, abstracts, and full text covering scholarly business journals on management, economics, finance, accounting, international business and much more.
  • Wall Street Journal (1984-): Contains full text articles from the Wall Street Journal from January 2, 1984 through today's issue. Browse issues, or search for terms in citation, abstract, or article text.
    • Use keyword search on:
      • your company
      • supply chain
      • logistics
      • quality
      • strategy
      • etc

Wednesday, October 29, 2008

VS 2008 Nested Master Page Support

Scott Guthrie has this to say about VS 2008 Nested Master Page Support:
"The good news is that VS 2008 fully supports nested master pages, and makes using them super easy. Going forward I recommend that almost all ASP.NET projects should advantage of this feature - since it can add tremendous flexibility to the UI of your projects."

Also mentions Open Source Templates.

Tips for Nested Master Pages and VS 2005 Design-Time

From Scott Guthrie. He has sample code to get around the problem of nested master pages not being editable in the visual designer. (Emphasis added.)
"One of the cool advanced features of the new Master Pages feature in ASP.NET 2.0 is the ability to nest them. For example, you could define a top-level master-page called “MainMaster.master” that defines a common logo header and footer, and defines a content-placeholder for the page called “content”. You could then define two sub-masters beneath it – one that provides a two-column layout model for the content (“TwoColumnMaster.master”), and one that provides a three-column layout model (“ThreeColumnMaster.master”). These two nested-master pages could then use the MainMaster.master file as the root master, and only adjust the layout within its content section (each would fill in the "content" placeholder and in turn add their own content-placeholders for sub-pages within it). The benefit of this approach is that if a designer ever changed the logo or top-level design of the site, they only have to update one file (MainMaster.master) and then have every page on the site automatically pick it up regardless of what master file they were based on.

"This nested model is pretty cool and powerful, and allows arbitrary levels of nesting. The only downside is that VS 2005 only supports nested master page editing in source-view, and doesn’t support it in the WYWSIWYG designer (note: obviously it does support editing them when the master-pages are not nested). "

Tuesday, October 28, 2008

Cool way to style HTML forms using CSS

Interesting article at Webmonkey. Uses things I've never heard of, including <fieldset> and <legend> tags, and using unordered lists and stylesheets to style the forms.

Saturday, October 25, 2008

CMS Ratings

This article publishes ratings of many different open source CMS systems.

Thursday, October 16, 2008

jQuery and ASP.NET AJAX UpdateRegion

When using jQuery with Microsoft ASP.NET AJAX UpdatePanel controls, you need code similar to this, in a script tag in the UpdatePanel. Otherwise events are fired multiple times, and event.preventDefault() does not work.

    // Necessary for update regions.
    Sys.Application.add_load(WireEvents);

    function WireEvents() {
// my jQuery "ready" event stuff goes here.
    }

Normally, of course, you would do the following:

    $(document).ready(function{} {
// my jQuery "ready" event stuff goes here.
    });

Tuesday, October 14, 2008

Google hosting javascript libraries

The AJAX Libraries API is a content distribution network and loading architecture for the most popular open source JavaScript libraries. By using the Google AJAX API Loader's google.load() method, your application has high speed, globaly available access to a growing list of the most popular JavaScript open source libraries including:

Wednesday, September 17, 2008

Applied Software Project Management - Test Plan and Test Cases

Applied Software Project Management - Test Plan and Test Cases: "The goal of test planning is to establish the list of tasks that, if performed, will identify all of the requirements that have not been met in the software. The main work product is the test plan. There are many standards that can be used for developing test plans. The following table shows the outline of a typical test plan. (This outline was adapted from IEEE 829, the most common standard for software test plans.)"

There's also this Wikipedia link, which gives an outline of the IEEE 829-1998 test plan outline: Test Plan

Thursday, September 04, 2008

Install multiple versions of IE on your PC | TredoSoft

Install multiple versions of IE on your PC TredoSoft: "It is not difficult to follow the instructions and get any version of IE running in standalone along side other versions. Most of you probably know of evolt's archive of Internet Explorer which has them readily packaged in ZIP files. Now suppose you want to download them all. An installer that would conveniently automate the whole process would be great. Thanks to this comment for the idea. "

Friday, August 22, 2008

Testing on Mobile Devices using Emulators « klauskomenda.com

Testing on Mobile Devices using Emulators « klauskomenda.com -- Has a list of emulators with photos of the emulators.

Mobile Web Developer’s Guide Part I

Mobile Web Developer’s Guide Part I
-- excellent guide to designing mobile web apps! Includes how to think of page flow, how to think about the options available to a mobile user, the market segment breakdown to phone types (in 2007), the choice of WAP, WXHTML, etc., and recommendations and best practices.

Mobile Emulators | dev.mobi

Mobile Emulators | dev.mobi: "The following emulators are very usful for testing mobile applications without incurring data charges.
The dotMobi one is pretty cool!

Gloger_TototaScrum-170706.pdf (application/pdf Object)

Toyota Way mapped to Scrum (pdf)

CodeProject: 100% Reflective Class Diagram Creation Tool. Free source code and programming help

CodeProject: 100% Reflective Class Diagram Creation Tool. Free source code and programming help

Simple graph drawing algorithms too!!!

Thursday, July 31, 2008

Microsoft Virtual Labs

TechNet Virtual Labs: "Quickly evaluate and test Microsoft's newest server products through a series of guided, hands-on labs you can complete in 90 minutes or less. You can use TechNet Virtual Labs online immediately, free. Start by selecting the lab you're interested in from the list below."

Also this link, which appears to be more inclusive: http://www.microsoft.com/events/vlabs/default.mspx

They only work in Internet Explorer.

Tuesday, July 22, 2008

Migration: Convert A Java Web Application To ASP.NET Using JLCA

Migration: Convert A Java Web Application To ASP.NET Using JLCA: "The JLCA is a tool used to convert a Java application into a C# application. The tool has shipped with Visual Studio® since Visual Studio .NET 2003. Currently in version 3.0, the JLCA is included with Visual Studio 2005 and is also available as a free download from the JLCA home page.

Version 3.0 includes enhancements to convert Java artifacts, such as Servlets and Java Server Pages (JSPs), as well as rich-client applications that use Swing or the Abstract Windowing Toolkit (AWT). In practice, the JLCA provides a very good place to start a conversion, but it will not successfully complete the entire process. So don’t expect this to be completely hands-free—you will still need to do some manual resolution of converted items after using the tool."

Monday, July 07, 2008

How safe is instant messaging? A security and privacy survey | The Iconoclast - politics, law, and technology - CNET News.com

How safe is instant messaging? A security and privacy survey | The Iconoclast - politics, law, and technology - CNET News.com: "The number of interested parties eager to listen in on your online conversations, including what you type through instant messaging, has never been higher.

It's trivial to monitor unencrypted wireless networks and snatch IM passwords as they flow through the ether. Broadband providers and their business partners are enthusiastically peeking into their customers' conversations. A bipartisan majority in Congress has handed the FBI and shadowy government agencies greater surveillance authority than ever before."

Humanist → Why Make Erlang a Functional Language?

I like this page. It gives great rationales, and therefore insightful descriptions, of the core Erlang features.

Humanist → Why Make Erlang a Functional Language?: "I’ve heard the argument many times. People “don’t like Erlang’s syntax so [they] don’t like Erlang.” I, for instance, didn’t understand the block terminator syntax when I was first learning Erlang, so I asked Yariv Sadan about it:"

Here's the accompanying reddit discussion: http://www.reddit.com/r/erlang/info/6p74v/comments/

Wednesday, June 25, 2008

robert zubek / blog :: Commentary on “A History of Erlang”

Very good summation of an Erlang program -- helps me to visualize it.

robert zubek / blog :: Commentary on “A History of Erlang”: "At a certain level, I always knew that Erlang was designed for programming telephone exchanges. But this paper really conveys the feel for what that means: huge collections of loosely coupled finite-state machines, all running in parallel, doing little bits of protocol validation here and there, but mostly staying dormant."

Sunday, June 15, 2008

Relying on getters and setters is mostly wrong, here's why and what to do instead

"Relying on getters and setters is mostly wrong, here's why and what to do instead" (Reddit)
"Mike Feathers has posted an exploration of some ideas about and misconceptions of TDD. I wish that more people were familiar this story that he mentions:
John Nolan, the CTO of a startup named Connextra [...] gave his developers a challenge: write OO code with no getters. Whenever possible, tell another object to do something rather than ask. In the process of doing this, they noticed that their code became supple and easy to change.
That's right: no getters. Well, Steve Freeman was amongst those developers and the rest is history. I think that there's actually a little bit missing from Michael's telling. I'll get to it at the end."

But then, some guy thought this whole idea sucked.

Wednesday, May 14, 2008

Monday, May 05, 2008

How to Choose a Data Synchronization Technology – Offline & Collaboration

To quote from Microsoft's article:

Here at Microsoft there are a number of synchronization technologies that support offline and collaboration data solutions. The key technologies include:

  • Microsoft Sync Framework Core Runtime
  • Sync Services for ADO.NET
  • Merge Replication

Why does Microsoft offer multiple sync solutions? Well, we believe it is virtually impossible to create a single solution that will fit everyone's needs. For example, IT administrators may look for more of a packaged solution that is easy to install and administer. ISVs and developers may be interested in a more embeddable and customizable solution. Ultimately, multiple synchronization solutions give you more choices at the cost of adding increased confusion. Hopefully this summary will help narrow down the choice for you.

The synchronization technologies can be broken down by flexibility and the amount of code required. In general, more code is required to get a greater level of synchronization flexibility.

Thursday, April 24, 2008

Perfecting OO's Small Classes and Short Methods

"In The ThoughtWorks Anthology, a new book from the Pragmatic Programmers, there is a fascinating essay called “Object Calisthenics” by Jeff Bay. It’s a detailed exercise for perfecting the writing of the small routines that demonstrate characterize good OO implementations. If you have developers who need to improve their ability to write OO routines, I suggest you have a look-see at this essay. I will try to summarize Bay’s approach here.

He suggests writing a 1000-line program with the constraints listed below. These constraints are intended to be excessively restrictive, so as to force developers out of the procedural groove. I guarantee if you apply this technique, their code will move markedly towards object orientation. The restrictions (which should be mercilessly enforced in this exercise) are:"

Git and SourceSafe

Procedure for merging from POS-safe. (I documented elsewhere how to do the daily merge.)
  1. Diff-tree from master to the desired merge point.
  2. Check out the files marked as "M" or "D"
  3. Merge desired merge point into master.
  4. Check in the files marked as "M" or "D"
  5. Add the files marked as "A".
Specific commands are here:
  1. git diff-tree master POS-safe --name-status -r | tee files.txt
  2. ./Python/VSSHelper.py -o -d files.txt
  3. git merge POS-safe
  4. ./Python/VSSHelper.py -i -d files.txt -c "VSS check-in comment."
  5. Manually add files to SourceSafe. This should be easy in Visual Studio. If not, use the VSS client.

Thursday, April 17, 2008

MSAGL: Microsoft Automatic Graph Layout (formerly known as GLEE)

"MSAGL: Microsoft Automatic Graph Layout

MSAGL is a .NET tool for graph layout and viewing. It was developed in Microsoft Research by Lev Nachmanson. MSAGL is built on the principle of the Sugiyama scheme; it produces so called layered, or hierarchical layouts. This kind of a layout naturally applies to graphs with some flow of information. The graph could represent a control flow graph of a program, a state machine, a C++ class hierarchy, etc."

This was formerly known as GLEE:

"GLEE: Graph Layout Engine
GLEE: Graph Layout Execution Engine Tool purpose GLEE is a .NET tool for graph layout and viewing. It has been developed in Microsoft Research by Lev Nachmanson
http://research.microsoft.com/users/levnach/GLEEWebPage.htm"

Wednesday, April 16, 2008

Terminal Services Group Policy (how to set timeouts for remote sessions)

How to configure remote desktop (terminal services) to prevent idle users from using up the precious connections.

It's so freaking NON-obvious how to get to the Group Policy Object Editor.

Run this:
C:\WINDOWS\system32\mmc.exe C:\WINDOWS\system32\gpedit.msc

Wednesday, March 26, 2008

Sorting for Humans : Natural Sort Order

How to solve the following problem when comparing or sorting strings:
1.1
1.10
1.11
1.2
etc.

1.2 should come *before* 1.10, etc., but in a naive sort it does not.

See also the C# code he cites: http://www.interact-sw.co.uk/iangblog/2007/12/13/natural-sorting

Subversion Authentication With a Windows Domain

Really quite easy, according to a colleague.

Monday, March 17, 2008

Technology Review: Blogs: Ed Boyden's blog: How to Think

Technology Review: Blogs: Ed Boyden's blog: How to Think: "When I applied for my faculty job at the MIT Media Lab, I had to write a teaching statement. One of the things I proposed was to teach a class called 'How to Think,' which would focus on how to be creative, thoughtful, and powerful in a world where problems are extremely complex, targets are continuously moving, and our brains often seem like nodes of enormous networks that constantly reconfigure. In the process of thinking about this, I composed 10 rules, which I sometimes share with students. I've listed them here, followed by some practical advice on implementation."

Wednesday, March 05, 2008

Tactics for Reducing the Subjective Experience of Down Time

"Time indicators

The formulae below all depend on use of a time indicator. The following choices of time indicators are listed from most to least desirable.

1. Estimated and remaining-time indicator. Place this either in a modal dialog or in the status bar at the bottom of the window.
2. "The system is alive" indicator. When it is impractical to offer the actual times, show an animated object that will let users know the system has not frozen. For longer waits, choose the rolling barber pole often found in status bars or other large animated object. For shorter waits (less than 10 seconds), you may use, instead, an animated "wait" mouse pointer, such as a spinning ball or animated hour glass.
3. "I hear and understand" indicator. When the expected wait is of short enough duration (less than 2 seconds) that displaying elapsed time, etc., is meaningless, display the hour glass."

Wednesday, February 20, 2008

How-To: vmware-tools hgfs module on Ubuntu Gutsy Gibbon (7.10)

Arg. Doesn't work out of the box, disallowing you to use shared directories. Luckily this guy provided a way to fix it!

Tuesday, February 19, 2008

Intercepting method calls in C#, an approach to Aspect-Oriented Software Development

Cool! Roy Osherove used this to develop XtUnit, an NUnit addin which implements database rollbacks, described here. He uses System.Transactions.TransactionScope, which is a .NET facility for creating transactable components. Tres cool, no?

Monday, February 04, 2008

Tuesday, January 15, 2008

Signs of a Bad Boss (seen by me in the wild)

A certain someone at a certain company fit this to a T.

Bosses are supposed to ask themselves these questions:

1. Have you ever publicly criticized an employee?

2. Do you take credit for your employees’ work?

3. Do your employees fear you?

4. Do you expect employees to do what you tell them without question?

5. Do you believe employees should know what to do without you telling them or providing guidelines?

6. Are you a yeller?

7. Do you demean employees as a form of punishment?

8. Do you play favorites?

9. Do you hate delegating?

10. Do you check everyone’s work?

Friday, January 11, 2008

How to find files that are different between two git trees (working with git and, *gulp*, SourceSafe)

I do this a lot in my project. I change a bunch of files, and since I'm working with SourceSafe, I need to know which files to check out of SourceSafe so that I can replace them with the changed versions.

Use this command:
git diff-tree -r --name-status branch1 branch2
where branch1 is the branch I'm going to check into SourceSafe and branch2 is the upstream branch.

Example:
/c/Yellowstone.master
$ git diff-tree -r --name-status master POS-safe
M Databases/OpenBook/Alter Scripts/THE ONLY 2.2 ALTER SCRIPT YOU NEED.sql
M OpenBookSolution/HotL/DirectBillPaymentForm.cs
M OpenBookSolution/HotL/EditReservationForm.cs
M OpenBookSolution/HotL/NonGraphicalReserveForm.cs
M OpenBookSolution/HotL/OpenBook.cs
M OpenBookSolution/HotL/ReportForms/ReportSelectorForm.cs
M OpenBookSolution/HotL/SelectDirectBillAccountForm.cs
A OpenBookSolution/HotLOnly.sln
D OpenBookSolution/HotLOnly/HotLOnly.sln
M OpenBookSolution/Yellowstone.OpenBook.BusinessEntities/MonetariesBusinessEntity.cs

/c/Yellowstone.master
$
The basic procedure is:
  1. hack hack hack
  2. Get my tree in good shape, usually by rebasing my branch onto the SourceSafe tracking branch.*
  3. Run the diff-tree command above to find changed files.
  4. Check out those files. If there are any warnings from SourceSafe about the files being different (and not just writable), then do the following:
    1. Get latest from SourceSafe into the SourceSafe tracking branch (typically "master") in my project.
    2. Commit.
    3. Go back to step 2 above.
  5. Merge development branch into master. Sometimes I do this step a commit or three at a time instead of an en masse merge of the branch all at once.
  6. Check changed files back into SourceSafe.
*I realize that rebasing my development branch onto "master" probably isn't the wisest thing in the world, as it loses information -- specifically, the fact that I had branched the code. It was an interesting experiment, though. Perhaps I'll go back to merging again. Although the fact that we're using SourceSafe, which doesn't have the concept of a branch, probably means that what I'm doing isn't all that un-kosher.

The flavor of git I use is msysgit.

Linus clarifies "Central Repository" issue on git in a way palatable to managers

Linus was previously rather dogmatic about having no "official" version of a project. But here he's not quite so religious and explains how you can effectively satisfy those who would like a central repository. The distinction, he says, is social, not technical:
I certainly agree that almost any project will want a "central" repository
in the sense that you want to have one canonical default source base that people think of as the "primary" source base.

But that should not be a *technical* distinction, it should be a *social* one, if you see what I mean. The reason? Quite often, certain groups would know that there is a primary archive, but for various reasons would want to ignore that knowledge: the reasons can be any of ....

ExtJS javascript library

Tres cool!
"Ext (pronounced "extent"[citation needed]) is an open-source JavaScript library, for building richly interactive web applications using techniques such as AJAX, DHTML and DOM scripting.

Originally built as an extension of YUI, Ext can now also extend jQuery and Prototype. As of version 1.1, Ext can run stand-alone without relying on any of those external libraries, though they remain an option for integration.

Ext version 2.0 can now use many different base libraries (adapters) like YUI, jQuery, Prototype or it can work Stand-alone"

Tuesday, January 08, 2008

PyPy "dot" graph viewer (Python)

Referred to from this site: http://morepypy.blogspot.com/2008/01/visualizing-python-tokenizer.html:
"For debugging purposes I implemented a visualization tool for DFAs using PyPy's pygame-based graph viewer. The graph viewer is able to visualize interactively any graph given in the graph-description language of Graphviz. Looking at the tokenizing DFA for Python is rather instructive, both for understanding how tokenizing works and (maybe) for understanding the Python language. To try it, download the dot file of the DFA and run from a pypy checkout:
$ python pypy/bin/dotviewer.py tokenizer.dot
The following is a screenshot of the graphviewer: "

Monday, January 07, 2008

TCL: Creating Temporary Files

From the page:
"Tcl doesn't have a built-in command to create a temporary file and there are no built-in variables for temp directories, so you have to do a little work.

....

I had some luck with the following procedure on a UNIX box. Maybe, somebody can check if it works for windows.

 proc tempfile {prefix suffix} {
set chars "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
set nrand_chars 10
set maxtries 10
set access [list RDWR CREAT EXCL TRUNC]
set permission 0600
set channel ""
set checked_dir_writable 0
set mypid [pid]
for {set i 0} {$i < $maxtries} {incr i} {
set newname $prefix
for {set j 0} {$j < $nrand_chars} {incr j} {
append newname [string index $chars \
[expr ([clock clicks] ^ $mypid) % 62]]
}
append newname $suffix
if {[file exists $newname]} {
after 1
} else {
if {[catch {open $newname $access $permission} channel]} {
if {!$checked_dir_writable} {
set dirname [file dirname $newname]
if {![file writable $dirname]} {
error "Directory $dirname is not writable"
}
set checked_dir_writable 1
}
} else {
# Success
return [list $newname $channel]
}
}
}
if {[string compare $channel ""]} {
error "Failed to open a temporary file: $chanel"
} else {
error "Failed to find an unused temporary file name"
}
}

Igor Volobouev"

Thursday, December 27, 2007

sysobjects and Object Types in SQL Server

Object type. Can be one of these object types:

C = CHECK constraint
D = Default or DEFAULT constraint
F = FOREIGN KEY constraint
L = Log
FN = Scalar function
IF = Inlined table-function
P = Stored procedure
PK = PRIMARY KEY constraint (type is K)
RF = Replication filter stored procedure
S = System table
TF = Table function
TR = Trigger
U = User table
UQ = UNIQUE constraint (type is K)
V = View
X = Extended stored procedure

Sunday, December 23, 2007

Slashdot English

"Re:English anyone?? (Score:5, Funny)

by flyingfsck (986395) on Sunday December 23, @02:58PM (#21799764)
Slashdot Engrish is to be informating and not to be laughful at."

Wednesday, December 19, 2007

Open Source XML Diff Written in Java

From http://www.manageability.org/blog/stuff/open-source-xml-diff-in-java:

"Jon Udell has a column about "Structured Change Detection" where he mentions some XML diff tools that exist. The tools that he mentioned are proprietary implementations, so I was curious if I could find some open source ones. Well fortunately, I've found a whole bunch of them:

  1. VMTools - The toolkit contains tools for automatically generating differences between two XML documents. The difference document generated is optimized for minimal size. Supports mark-up style documents in addition to data documents.
  2. 3DM - The 3DM tool is a tool for performing 3-way merging and differencing of XML files. Unlike line-based tools, such as diff and diff3, 3DM is aware of the structure of the processed XML documents. 3DM is not limited to update/insert/delete operations, it also handles moves and copies of entire subtrees. 3DM is not reliant on edit histories; the only input needed are the XML files.
  3. diffxml - Standard UNIX tools exist for comparing (diff) and patching (patch) files, which operate on a line by line basis using well-studied methods for computing the longest common subsequence (LCS). This project contains XML diff and patch utilities. Also contains an implementation of a Delta Update Language or DUL.
  4. diffmk - Converts the documents into two lists of nodes (text and/or element nodes) and attempts to find the longest common subsequence of nodes. Phrased another way, it finds the smallest number of additions and deletions to each list that are required to make the two lists the same.
  5. XMLUnit - XMLUnit for Java provides two JUnit extension classes, XMLAssert and XMLTestCase, and a set of supporting classes (e.g. Diff, DetailedDiff ) that allow assertions to be made about the differences between two pieces of XML. XMLUnit for Java can also treat HTML content (even badly-formed HTML) as valid XML to allow these assertions to be made about the content of web pages too.
  6. OpenSHORE XML Merger - ool to insert XML tags from differnt sources into one or more text files. The Java program reads a very simple file format (*.xmlm files) with one XML command per line. XMLM sorts these commands, removes duplicates, ensures correct tag structure and generate XML files from listed files.
  7. XOperator - XOperator is a scriptable command-line tool and library to compare, merge and synchronize XML documents, a framework to formulate and evaluate algebraic expressions on XML trees and a framework to express object-oriented inheritance (and more) in pure XML.
  8. JXyDiff - JXyDiff is a based on XyDiff. It was originally developed at INRIA. It employs a novel Change Model tailored to XML data. It is a tree oriented algorithm that is fast and can detect if a node has been moved or updated.
  9. DiffX - DiffX is an open source Java API for comparing XML documents by analyzing the sequence of XML events. When processing XML data for comparison it more interesting to know that a word in the text of chapter X, paragraph Y has been changed rather than knowing that line Z is different. DiffX can ignorethe order of the attributes and white space for indentation or namespace prefixes.
  10. XMLPatch - XMLPatch, developed at Nokia, is a framework utilizing XML Path language (XPath) selectors for the use in applying a set of patches to a document. The framework includes a simple xml-diff utility.
  11. XMerge - The XMerge SDK provides a framework for converting documents between different formats using conversion plugins to read and write each format. In addition to format conversion, the XMerge SDK provides a framework for merging changes in one document format into an original document. XMerge provides plugins that are designed to support the OpenOffice.org XML file format. The framework is able to support "chaining" of conversions, also known as an "Any-to-Any" conversion, eg. convert from a Palm document to a PocketPC document through the intermediate OpenOffice.org XML file format."

Tuesday, December 18, 2007

"Could not load file or assembly or one of its dependencies. Access is denied" when compiling .NET assembly

Compiling with a reference to a third-party, licensed control. (UltraGrid-something-something.) Encountered the error: "Could not load file or assembly or one of its dependencies. Access is denied"

The problem was that the directories in which the source files existed had weird permissions. (I think the root cause was using a cygwin version of git to create the subdirectories.) I changed the permissions using the "Advanced" button of the Security tab. When done properly, the "Inherited From" column showed "C:\" as where the privileges were inherited from. The broken version had the "inherited from" as inheriting from nothing.

I believe I had to check the "Inherit" box to get this to work properly, and then click the "Remove" button in the Advanced view to remove the permission entries which did not inherit from C:\.

Correct permissions look like this:

Friday, December 14, 2007

Case sensitivity in bash

Case sensitivity in bash: How to turn off case sensitivity in the bash shell.

And, "to turn off the annoying beep each time you make a typo on a Unix terminal (Linux, cygwin etc.), just add the line
    set bell-style none
to the file .inputrc under your home directory."

Friday, November 16, 2007

EasyVMX!: Virtual Machine Creator

EasyVMX!: Virtual Machine Creator: "EasyVMX! is the simple and failsafe way to create complete virtual machines for VMware Player on the web. You can install any Windows, Linux, BSD or Solaris, and test LiveCDs in a safe environment."

Tuesday, November 13, 2007

Danger! Lousy Employer Ahead

Danger! Lousy Employer Ahead: "Danger! Lousy Employer Ahead If a potential employer wants proof of your previous salary and gives vague answers to specific questions, bolt for the exit"

Wednesday, October 24, 2007

How Bush wrecked conservatism | Salon.com

How Bush wrecked conservatism | Salon.com: "In the age of Bush, even the conservatives' much-vaunted moral clarity does not always bear close inspection. A Pew poll taken in March found that only 18 percent of self-described conservative Republicans believed that torture was never justified. Who was it who said, 'Do not repay anyone evil for evil, but take thought for what is noble in the sight of all ... Do not be overcome by evil, but overcome evil with good'? It must be one of those damn liberals.*

*Romans 12:17, 21"

Tuesday, October 23, 2007

15 Answers to Creationist Nonsense: Scientific American

15 Answers to Creationist Nonsense: Scientific American: "Opponents of evolution want to make a place for creationism by tearing down real science, but their arguments don't hold up"

Wednesday, October 17, 2007

Occasionally Connected Systems Architecture: Concurrency

Occasionally Connected Systems Architecture: Concurrency: "The problem of concurrency is a familiar one in the development of multi-user systems. Most of the time, optimistic locking is preferred because it results in better throughput. However, pessimistic locking has its place as well for those cases where only one user should be allowed to work on the data. Both of these solutions break down once users start working offline and try to synchronize their updates with the server later."

Thursday, October 04, 2007

How Toyota and Linux Keep Collaboration Simple - HBS Working Knowledge

How Toyota and Linux Keep Collaboration Simple - HBS Working Knowledge: "The Toyota and Linux communities illustrate time-tested techniques for collaboration under pressure: Share knowledge widely, frequently, and in small increments, and use universally available tools to do it. From Harvard Business Review."

Lean Manufacturing Blog, Kaizen Articles and Advice | Gemba Panta Rei

Lean Manufacturing Blog, Kaizen Articles and Advice | Gemba Panta Rei:

Nine Rules for Fighting Endless Meetings

I've heard that at Toyota the meetings are 60 minutes long, with 50 minutes of actual meeting time and 10 minutes to get to the next meeting. The use of the standardize A3 size one-page format to communicate the progress on PDCA problem solving keeps meetings on time. This is truly impressive, but we won't all get there in one leap.

Here are nine rules for fighting endless meetings:

#1 Start on time. You don't arrive 15 minutes late for a school examination. You don't arrive 15 minutes late for your flight. If you do, you don't fly. You don't arrive 15 minutes late for a job interview. Yet once we pass the test, make the flight and get the job, we think nothing of making others wait for meetings at work. Why?

#2 Have clear objectives. Meetings will be more productive when you start with an agenda that answers the questions: Why am I at this meeting? Who requires that I be here? When does this meeting end? How will we know if the meeting is successful?

#3 Be prepared. Review the agenda or other background information ahead of time. Know where the meeting will be held and how long it takes to get to and from that meeting place so you can be on time.

#4 Be engaged. This starts with turning off your cell phones or blackberries. Ideally, put them all on the table where they are visible to all. Make reaching to answer them is a visible offense. Pay $1 towards charity if you reach for your phone, unless it's an emergency. As long as meetings are kept short, you can get back to people who call you in a reasonable amount of time. Stand up rather than sit, it will keep you more aware.

#5 Communicate visually. Humans process more than 80% of information through their sense of sight. Psychologists say most of communication happens through body language, then tone of voice and a smaller portion through the actual content of speech. Give and read visual cues. Use images to tell a story and anchor your communication, rather than talking on and on about something without structure.

#6 Solve problems. If everything is going well, why meet? Ideally meetings should help solve problems. If there is a clear objective and a problem to solve, the meeting can end either when the problem is solved or everyone knows what to do to start solving the problem. Problem solving is engaging, and in that is what we are all here to do.

#7 Practice genchi gembutsu. Whenever possible hold the meetings at the location where the particular problem or issue being discussed has occurred. This is more visual, engaging, and improves direct access to the facts. This speeds up problem resolution by taking away opportunities for conjecture and blurring of the actual condition.

#8 End on time. You need to get to the next meeting on time.

#9 Avoid the Three Evils of Meetings as taught by Takeshi Kawabe, former executive of Showa Manufacturing Co. and student of Taiichi Ohno:

1. Meet but don’t discus
2. Discuss but don’t decide
3. Decide but don’t do

These nine rules will develop the behaviors to support more effective meetings.

By Jon Miller - March 15, 2007 5:21 PM

Friday, September 14, 2007

This was useful when I was looking for the key to view the next error in Visual Studio 2005 C# profile (Ctrl-Alt-F12, by the way):

[PDF]

Microsoft Visual C# Default Keybindings

File Format: PDF/Adobe Acrobat - View as HTML
shortcuts, warnings, and error. messages. ... Notes: These key bindings are only available through the Visual C# Development. Settings. ...
download.microsoft.com/download/e/7/9/e79cce22-b196-4b9f-9ea7-b1a21f5342e9/VCSharp_2005_color.pdf - Similar pages - Note this
[PDF]

Microsoft Visual Basic Default Keybindings

File Format: PDF/Adobe Acrobat - View as HTML
keyboard shortcuts and detailed descriptions, see ... for Visual Basic 2005 is a free application that you can download to. help do this. ...
download.microsoft.com/download/d/6/5/d65efda0-cf25-4720-8013-b3080586c5bb/VB_2005_color.pdf - Similar pages - Note this

Xona.com - Visual Studio .NET Keyboard Shortcuts Macro

Xona.com - Visual Studio .NET Keyboard Shortcuts Macro: "This article describes how to create and run a macro, from within Visual Studio .NET, which produces an HTML table showing all of your current keyboard mappings (shortcuts). It is useful for finding key bindings, and provide a much easier way to merely browse through them, rather than using Visual Studio's ridiculously small browse window (which shows 4 and a half listings at once)."

Wednesday, September 12, 2007

Re: Inner workings of RDA - MSDN Forums

Re: Inner workings of RDA - MSDN Forums:

"These 7 columns are used for tracking inserts and updates in the table. The tracking is required to identify the data that has changed for synchronization with the data in SQL Server. These are system columns and used only for replication of data. The description of the columns is as given below:

Col Name

Type

Description

__sysIG

INTEGER

The local generation at which the row has been inserted.

__sysCG

BIGINT

The generation of the change

__sysCD

DATETIME

The time and date the change occurred.

__sysP1

VARBINARY

Custom Property

__sysMC

VARBINARY

The bitmap of the changed columns

__sysMCS

VARBINARY

The bitmap of the changed columns, saved for change forwarding between sync partners.

__sysSR

VARBINARY

Server Reference

Apart from the 7 systems columns that are added to each SQL Mobile table which has data replicating with SQL Server, there are 3 systems tables - __sysTrackedObjects, __sysRowTrack, __sysDeletedRows. The systems tables are used as following:

__sysTrackedObjects : Holds information about various tracking related objects, such as sync partners, tracked tables, tracked columns, properties etc.

__sysRowTrack : Contains change information about rows and columns currently, it only contains information about rows deleted from user tables.

__sysDeletedRows : Contains temporary information about deleted rows. This information is merged into the __sysRowTrack table upon beginning of a sync

The __sysDeletedRows table holds the information about the deleted rows

Thanks

Ambrish"

Friday, August 31, 2007

The Joel Test: 12 Steps to Better Code - Joel on Software

The Joel Test: 12 Steps to Better Code - Joel on Software: "Have you ever heard of SEMA? It's a fairly esoteric system for measuring how good a software team is. No, wait! Don't follow that link! It will take you about six years just to understand that stuff. So I've come up with my own, highly irresponsible, sloppy test to rate the quality of a software team. The great part about it is that it takes about 3 minutes. With all the time you save, you can go to medical school.

The Joel Test
1. Do you use source control?
2. Can you make a build in one step?
3. Do you make daily builds?
4. Do you have a bug database?
5. Do you fix bugs before writing new code?
6. Do you have an up-to-date schedule?
7. Do you have a spec?
8. Do programmers have quiet working conditions?
9. Do you use the best tools money can buy?
10. Do you have testers?
11. Do new candidates write code during their interview?
12. Do you do hallway usability testing?"

Thursday, August 30, 2007

Patrick Labatut's personal page - FAQ

Patrick Labatut's personal page - FAQ: "How do I disable the internal PC speaker under Windows XP ? Go into the 'Device Manager', enable the 'Show hidden devices' option in the 'View' menu. Then open 'Non-Plug and Play devices' and disable the 'Beep' device."

Tuesday, August 28, 2007

Diceware Passphrase Home Page: "This page offers a better way to create a strong, yet easy to remember passphrase for use with encryption and security programs. Weak passwords and passphrases are one of the most common flaws in computer security. Take a few minutes and learn how to do it right. The information presented here can be used by anyone. No background in cryptography or mathematics is required. Just follow the simple steps below."

Here's the word list, and a PDF version of the word list.

Here's a list of easy-to-type words, i.e. that alternate between left and right keys on the keyboard: http://flamebox.narod.ru/lrwords.txt. It's mirrored here: http://brink.st/config/files/docs/lrwords.txt

Here's a password tester to test the results: http://www.securepassword.info/index.php

PasswordSafe is a good password generator.

Thursday, August 23, 2007

Enterprise Library problem solved!

I was unable to create custom handlers in the Enterprise Library. The key is this. Note in particular the code in bold and italic.

The key is the constructor. It requires a signature of (NameValueCollection ignore).
using System;
using System.Collections.Specialized;
using System.IO;
using System.Text;
using System.Diagnostics;
using System.Windows.Forms;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.ExceptionHandling;
using Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration;

namespace CustomExceptionHandling
{
[Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationElementType(
typeof(Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.CustomHandlerData))]
public class MyCustomExceptionHandler : IExceptionHandler
{
public MyCustomExceptionHandler(NameValueCollection ignore) { }

#region IExceptionHandler Members
//...
#endregion
}
}

Tuesday, August 21, 2007

How to: Launch the Debugger Automatically

How to: Launch the Debugger Automatically:

"Sometimes, you may need to debug the startup code for an application that is launched by another process. Examples include services and custom setup actions. In these scenarios, you can have the debugger launch and automatically attach when your application starts.

To setup an application to launch the debugger automatically

  1. Start the Registry Editor (regedit).

  2. In the Registry Editor, open the HKEY_LOCAL_MACHINE folder.

  3. Navigate to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\currentversion\image file execution options.

  4. In the Image File Execution Options folder, locate the name of the application you want to debug, such as myapp.exe. If you cannot find the application you want to debug:

    1. Right-click the Image File Execution Options folder, and on the shortcut menu, click New Key.

    2. Right-click the new key, and on the shortcut menu, click Rename.

    3. Edit the key name to the name of your application; myapp.exe, in this example.

  5. Right-click the myapp.exe folder, and on the shortcut menu, click New String Value.

  6. Right-click the new string value, and on the shortcut menu, click Rename.

  7. Change the name to debugger.

  8. Right-click the new string value, and on the shortcut menu, click Modify.

    The Edit String dialog box appears.

  9. In the Value data box, type vsjitdebugger.exe.

  10. Click OK.

  11. From the Registry menu, click Exit.

  12. The directory containing vsjitdebugger.exe must be in your system path. To add it to the system path, follow these steps:

    1. Open the Control Panel in Classic view, and double-click System.

    2. In System Properties, click the Advanced tab.

    3. On the Advanced tab, click Environment Variables.

    4. In the Environment Variables dialog box, under System variables, select Path, then click the Edit button.

    5. In the Edit System Variable dialog box, add the directory to Variable value. Use a semicolon to separate it from other entries in the list.

    6. Click OK to close the Edit System Variable dialog box.

    7. Click OK to close the Environment Variables dialog box.

    8. Click OK to close the System Properties dialog box.

    Now, use any method to start your application. Visual Studio will start and load the application."

Thursday, August 16, 2007

If the Freakonomics guys and Malcolm Gladwell hosted This American Life... - (37signals)

If the Freakonomics guys and Malcolm Gladwell hosted This American Life... - (37signals):

radio lab"Radio Lab (iTunes podcast link) is what you’d get if you put Freakonomics, Malcolm Gladwell, and This American Life in a blender.

"Each episode of the folksy science show is “a patchwork of people, sounds, stories and experiences centered around One Big Idea.” The banter between hosts Jad Abumrad & Robert Krulwich can be slightly grating at times, but, overall, they do a great job of boiling down complex subjects and keeping things interesting. The way they use sound is intriguing too."

Tuesday, July 24, 2007

.NET Security Blog : What Happens When My Application Throws An Unhandled Exception

.NET Security Blog : What Happens When My Application Throws An Unhandled Exception: "What Happens When My Application Throws An Unhandled Exception

There are several different behaviors that can occur when a managed application throws an unhandled exception. The two most common are to bring up an error dialog box, or to pop up the Visual Studio Just In Time Debugger dialog box.

The first behavior is the default when you install the CLR, but don't install Visual Studio. Installing VS modifies the default to pop up the select-a-debugger dialog. How does the CLR figure out what behavior to use? It checks a registry key, located at HKLM\Software\Microsoft\.NetFramework\DbgJITDebugLaunchSetting. The value of this key lets the CLR know what to do when it encounters an unhandled exception."

Andrew Coates ::: MSFT : Learning Online with Virtual Labs - Microsoft Visual Studio Team System Virtual Labs

Andrew Coates ::: MSFT : Learning Online with Virtual Labs - Microsoft Visual Studio Team System Virtual Labs: "Learning Online with Virtual Labs - Microsoft Visual Studio Team System Virtual Labs

Today, Microsoft Visual Studio Team System Virtual Labs (from the MSDN Suite of Virtual Labs)

What's new in Visual Studio Team System
Virtual Lab Express is the fastest and easiest way to test drive Microsoft products and the Virtual Lab environment. These are 30-minute hands-on overviews of some of your favorite Microsoft products and developer tools. Try them out online now - no need to download full trial versions or dedicate test machines.
VSTS Virtual Labs

* Express: What’s New in Visual Studio Team System
* Visual Studio Team Edition for Software Testers New!
* Visual Studio Team Edition for Software Testers - Tips and Tricks for ASP.NET
* Microsoft Visual Studio Team System Project Manager-Focused Scenarios
* Visual Studio Team System Reports
* Change Management with Team Foundation Server
* Writing Secure Native Code with Visual C++ and Visual Studio Team System
* Writing Secure Managed Code with Visual Studio Team System

Connected Systems Virtual Labs

* Architecting Connected Systems: XML Inside of SQL Server"

Welcome to the MSDN Virtual Labs

Welcome to the MSDN Virtual Labs: "Welcome to the MSDN Virtual Labs! Quickly evaluate or learn how to build great applications for Windows and the Web through a series of guided, hands-on labs which can be completed in 90 minutes or less. The best part is, the MSDN Virtual Labs don’t require any installation and are available to you immediately for FREE. Start by selecting the lab you’re interested in from the list below."

Sunday, July 15, 2007

Film Techniques of Alfred Hitchcock - suspense, camera angles, style, editing, basics

Film Techniques of Alfred Hitchcock - suspense, camera angles, style, editing, basics: "How to turn your boring movie into a Hitchcock thriller...

Borgus.com - We've put together a list of the most significant film techniques that were used by Alfred Hitchcock. This information comes out of many books and interviews from the man himself and his been simplified for your consideration.

This page is mostly for filmmakers who are sad and depressed because their movie is so average that nobody will watch it. Stop crying and pay attention. What is written here will save your career (at least until tomorrow morning.) However there is no cure for a bad producer - there may be no help for you!"

Smashing The Clock

Smashing The Clock: "Smashing The Clock
No schedules. No mandatory meetings. Inside Best Buy's radical reshaping of the workplace

One afternoon last year, Chap Achen, who oversees online orders at Best Buy Co. (BBY ), shut down his computer, stood up from his desk, and announced that he was leaving for the day. It was around 2 p.m., and most of Achen's staff were slumped over their keyboards, deep in a post-lunch, LCD-lit trance. 'See you tomorrow,' said Achen. 'I'm going to a matinee.'"

Friday, July 13, 2007

SequenceViz :: generate sequence diagrams from .NET assembly file - Nauman Leghari's Blog

This sequence diagram tool is excellent. I think the resources used in constructing it might be very useful, or at least interesting.

SequenceViz :: generate sequence diagrams from .NET assembly file - Nauman Leghari's Blog: "The following tools are used in making SequenceViz.

Cecil for reading IL by Jb Evain
Excellent PHTree control from CodeProject by Peter Chen
GNU Plot utilities - Win32 Port (There is a treasure in there waiting to be utilized)
PIC File macros for Sequence Diagrams from UMLGraph by Diomidis D. Spinellis (blog)
Log4Net for logging"

Wednesday, July 11, 2007

Occasionally Connected Systems Architecture

Occasionally Connected Systems Architecture: "By employing the publish/subscribe pattern between clients and an application server, as well as durable subscriptions when clients get connected they get pushed only the updates since the last time they were connected. This pattern improves scalability in that it prevents the scenario of many client connecting and performing costly queries against the database at the same time. Another difference between this (messaging-based) pattern and the more common database-level synchronization is that it maintains the discrete units-of-work (pattern) that were performed. While this isn’t very important for updates being pushed from the server to the client, it is absolutely critical for changes the client wants to send the server. These are the relevant architectural characteristics:

· “Automatic or semi-automatic push of cached data to the server (two-tier) or data service (n-tier) when connected to the network”

· “A process to enable the client to resolve data update and deletion concurrency conflicts; alternatively, to notify the client of the action taken by a business rule”

· “A process to enable the client to resolve insert and other conflicts with multiple rows of child tables, such as order or medication line items”"

Thursday, July 05, 2007

Dr. Dobb's | Survey Says...Agile Has Crossed the Chasm | July 2, 2007

Dr. Dobb's | Survey Says...Agile Has Crossed the Chasm | July 2, 2007: "When the Agile Manifesto was published in 2001, it gave name to a collection of methodologies that had been growing in popularity for several years. These methods, many of which are now in common usage worldwide, had strange names such as Scrum, Pinball, Extreme Programming (XP), and Dynamic System Development Method (DSDM). My 2007 Agile adoption survey (see sidebar) shows that agile techniques have been successfully adopted within a majority of organizations and often at scale. So now, six years later, I think that it's clear that Agile has successfully crossed Moore's technology-adoption chasm."

Saturday, June 30, 2007

Manage It!

Manage It!: "Your project can't fail. That's a lot of pressure on you, and yet you don't want to buy into any one specific process, methodology, or lifecycle.

Your project is different. It doesn't fit into those neat descriptions.

Manage It! will show you how to beg, borrow, and steal from the best methodologies to fit your particular project. It will help you find what works best for you and not for some mythological project that doesn't even exist."

Dr. Dobb's | Pragmatic Software Testing | June 28, 2007

Dr. Dobb's | Pragmatic Software Testing | June 28, 2007: "There are a number of philosophies that drive testers these days. Do you test based upon a catalog of risks, automated everything in unit tests, employ a model? In the risk-based camp, few are authors are more influential or prolific as Rex Black. In his new book, Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional, Black explains his approach to risk-based testing and the techniques needed to accomplish it."

Friday, June 29, 2007

Coding Horror: Supporting Open Source Projects in the Microsoft Ecosystem

Coding Horror: Supporting Open Source Projects in the Microsoft Ecosystem: "In my company's commercial application we depend upon DotNetNuke, Nant, log4net, NUnit and other open source tools. Those open source projects help support us. In fact, without DNN, we would probably be out of business because our developments costs would be too high. In turn, my company helps support Microsoft through the purchase of licenses and MSDN subscriptions. Yet Microsoft does not complete the circle by financially supporting any of those open source projects."

Wednesday, June 27, 2007

Two Fixes for Bad Backs - TIME

Two Fixes for Bad Backs - TIME: "In your own hands exercises to stretch and strengthen, plus rest and anti-inflammatories may fix a bad back, without having to go under the knife."

An Earth Without People -- [ environment ]: Scientific American

An Earth Without People -- [ environment ]: Scientific American: "It’s a common fantasy to imagine that you’re the last person left alive on earth. But what if all human beings were suddenly whisked off the planet? That premise is the starting point for The World without Us, a new book by science writer Alan Weisman, an associate professor of journalism at the University of Arizona. In this extended thought experiment, Weisman does not specify exactly what finishes off Homo sapiens; instead he simply assumes the abrupt disappearance of our species and projects the sequence of events that would most likely occur in the years, decades and centuries afterward."

Tuesday, June 12, 2007

How to Write a Software Specification

How to Write a Software Specification: "This document provides a format or checklist for writing a technical specification, particularly for computer software, although the format may be suitable for any number of similar uses.

The material presented here can be of help to both the software contractor and his or her client. It is not technical, but is sufficiently precise to aid a common understanding between client and contractor.

The specification is divided into two parts.

* Part I - Concepts and requirements
* Part II - Methods and details of implementation"

Painless Functional Specifications - Part 2: What's a Spec? - Joel on Software

Painless Functional Specifications - Part 2: What's a Spec? - Joel on Software: "This series of articles is about functional specifications, not technical specifications. People get these mixed up. I don't know if there's any standard terminology, but here's what I mean when I use these terms.

1. A functional specification describes how a product will work entirely from the user's perspective. It doesn't care how the thing is implemented. It talks about features. It specifies screens, menus, dialogs, and so on.
2. A technical specification describes the internal implementation of the program. It talks about data structures, relational database models, choice of programming languages and tools, algorithms, etc."

Painless Functional Specifications - Part 1: Why Bother? - Joel on Software

Painless Functional Specifications - Part 1: Why Bother? - Joel on Software: "The most important function of a spec is to design the program. Even if you are working on code all by yourself, and you write a spec solely for your own benefit, the act of writing the spec -- describing how the program works in minute detail -- will force you to actually design the program."

Painless Software Schedules - Joel on Software

Painless Software Schedules - Joel on Software: "Use Microsoft Excel. Don't use anything fancy like Microsoft Project. The trouble with Microsoft Project is that it assumes that you want to spend a lot of time worrying about dependencies. A dependency is when you have two tasks, one of which must be completed before the next one can begin. I've found that with software, the dependencies are so obvious that it's just not worth the effort to formally keep track of them."

Wednesday, June 06, 2007

Kanban in Action

Kanban in Action: "Earlier when I described my approach to managing and leading software engineering at Corbis, I mentioned that I was introducing a kanban system for our sustaining engineering activity. Since we introduced it, we've released new versions of our IT systems and business application software twice per month. However, sustaining doesn't run on a traditional agile two week iteration (or sprint) type system. It uses a kanban system to pipeline change requests (CRs). When a CR is complete it sits in the Release Ready state until a scheduled release happens on every second Wednesday."

InfoQ: Incremental Software Development without Iterations

InfoQ: Incremental Software Development without Iterations: "David Anderson described how his team is using a kanban system for their sustaining engineering (maintenance and bug fixing) activities. Iterations have been dropped although software is still released every two weeks. Work is scheduled, monitored, and run via a 'kanban board' and daily stand-up meetings. "

Monday, June 04, 2007

Códice Software: Linus Torvalds on GIT and SCM

Códice Software: Linus Torvalds on GIT and SCM: "I just finished watching the speech Linus Torvalds gave some days ago at Google, basically talking about GIT and Source Control Management. He has really strong opinions but I think the video is really worth watching.

To be honest I was very shocked by some of the statements he made, like the following:
  • Subversion has been the most pointless project ever started. Well, I'm not a big Subversion fan either, but I find it a bit rude.
  • Subversion used to say CVS done right: with that slogan there is nowhere
    you can go. There is no way to do cvs right.
    No comments.
  • If you like using cvs, you should be in some kind of mental institution or
    somewhere else.
    Again I think he is playing the showman role...
  • Get rid of perforce, it is sad, but it is so, so true.... No comments."

Dr. Dobb's | Dynamic Programming In Action | June 2, 2007

Dr. Dobb's Dynamic Programming In Action June 2, 2007: "A problem-solving technique a LISP programmer learns is divide-and-conquerA problem-solving technique a LISP programmer learns is divide-and-conquer"

Sunday, June 03, 2007

Dr. Dobb's | The Power of LISP for C Programmers | June 3, 2007

Dr. Dobb's The Power of LISP for C Programmers June 3, 2007: "The two best-known LISP properties are symbolic processing and list processing. Both concepts can be developed in other languages with a set of generic functions or procedures that operate on appropriate data structures and by developing a proper mental attitude concerning the abstraction.
In this article, I address generic list-processing procedures in C. The same concepts can be adapted for other high-level languages and assembly language. "

Friday, June 01, 2007

Network Connections folder empty

Network Connections folder empty: This problem afflicted my machine. Following is a fix:

"Fix
Start, Run. cmd.exe

regsvr32 netshell.dll
regsvr32 netcfgx.dll
regsvr32 netman.dll

Hitting enter after each one. That should do it.
The dynamic libraries are hashed, likely due to some 'Free' spyware search or crap program.
Enjoy!"