This is just a spot to keep miscellaneous links. It also shows you what a geek I am.
Tuesday, August 04, 2009
10 best practices for successful project management | 10 Things | TechRepublic.com
Friday, July 31, 2009
How to display an assembly in the "Add Reference" dialog box
This issue is not resolved if you install your assembly to the global assembly cache, because the Add Reference dialog box is path-based and does not enumerate the components from the global assembly cache."
Use Case/Project Management Stuff
- Structure use cases with goals.
- Non-functional requirements can be attached to goals.
- Goals have levels - high, low, overarching, short-term detailed, etc.
- Include Stakeholders and Interests - helps separate the wheat from the chaff
- Levels:
- Brief - 2-4 sentences, for instance in a spreadsheet cell
- Casual - a few paragraphs
- Fully dressed - long template, include stakeholders, minimum guarantees, postconditions, business rules, performance constraints, etc.
- Alternative behaviors are more important than the main scenario!! For instance, they reveal subtle requirements.
- Do not use UI elements!
- His resources, templates, etc.
- Name
- Version
- Goal - very important
- Summary
- Actors
- Precondition
- Triggers
- Basic course of events
- Alternative paths -
- Postconditions
- Business Rules
- Notes
- Author and Date
Wednesday, July 29, 2009
Shrinking ViewState when using dynamic controls in ASP.NET
- Instantiate the Controls
- Set its values
- Add it either directly or in-directly to the Page object
"The reason is that when your dynamically created Controls are being added to the page object then its complete lifecycle will execute which means that among other things the ViewState 'IsDirty' flag will be set to TRUE. When the ViewState IsDirty flag is set to true, then all properties you modify afterwards will have its values stored in the ViewState object. If you however set those properties BEFORE adding the Control to the Page object then the ViewState will not be dirty for those properties and values."
Scott Hanselman's Computer Zen - Scott Hanselman's 2007 Ultimate Developer and Power Users Tool List for Windows
Monday, July 13, 2009
dave^2 = -1: An introduction to the SOLID principles of OO design
dave^2 = -1: An introduction to the SOLID principles of OO design: "I would be very hard pressed to go passed [sic] Robert 'Uncle Bob' Martin's SOLID principles as the single most useful tool for helping me with OO design. Some people seem to have a natural talent for OO design and thinking, and have an innate understanding of these principles without requiring the SOLID formalism. I, on the other hand, find them indispensable.
"Unfortunately the names used in the somewhat-cryptic 'acronym of acronyms'[1] don't exactly lend themselves to being easily learned (Bob Martin and Scott discussed how this came about on a Hanselminutes episode on SOLID, which is well worth a listen). I thought I'd post my interpretation of the principles as a refresher for myself, and as an introduction for anyone trying the learn the terminology."
Wednesday, July 08, 2009
Visual WebGUI: Web UI Development - RIA Platform / Framework
Web UI Development - RIA Platform / Framework: "Developing new Rich Internet Applications (RIA) has never been so fast and simple due to Visual WebGui's drag & drop, near zero coding Development Experience. The rapid web development well suited for building small applications UI in a matter of hours as well as very complex and large applications in a very short time. Visual WebGui allows you to use your existing .NET skills and development patterns since it is based on proven desktop & web technologies. It simplifies web development by flattening the development process into a single layer and empowers front-end design with an intuitive visual WYSIWYG Form designer which lets you use any WinForms, ASP.net and Silverlight controls."
Wednesday, July 01, 2009
Microsoft StyleCop : Introducing StyleCop on Legacy Projects
Tuesday, June 23, 2009
Peter Van Roy: Programming Paradigms for Dummies
This chapter gives an introduction to all the main programming paradigms, their underlying concepts, and the relationships between them. We give a broad view to help programmers choose the right concepts they need to solve the problems at hand. We give a taxonomy of almost 30 useful programming paradigms and how they are related. Most of them differ only in one or a few concepts, but this can make a world of difference in programming. We explain briefly how programming paradigms influence language design, and we show two sweet spots: dual-paradigm languages and a definitive language. We introduce the main concepts of programming languages: records, closures, independence (concurrency), and named state. We explain the main principles of data abstraction and how it lets us organize large programs. Finally, we conclude by focusing on concurrency, which is widely considered the hardest concept to program with. We present four little-known but important paradigms that greatly simplify concurrent programming with respect to mainstream languages: declarative concurrency (both eager and lazy), functional reactive programming, discrete synchronous programming, and constraint programming. These paradigms have no race conditions and can be used in cases where no other paradigm works. We explain why for multi-core processors and we give several examples from computer music, which often uses these paradigms.The concurrency stuff looks interesting.
Monday, June 22, 2009
24 JavaScript Best Practices for Beginners - Nettuts+
Thursday, June 11, 2009
Steve Smith and SOLID
[6/22/09 update: here's the link to his presentation.
And a link to Uncle Bob.]
Saturday, June 06, 2009
Rio by Vice Magazine
Ask any self-respecting carnivore what to eat in Rio, and they’ll tell you about the rodizios. A rodizio is more than just a meal, it’s an elaborate battle of wits between you and the doe-eyed service staff, as they waft meat under your nose. You indicate your desire to stick or twist with a doublesided card; green meaning “feed me” and red meaning “get away from me, peasant.” Also, when in Rio, don’t forget to find a juice bar, and ask for an açai smoothie. It might look like something Barney the Dinosaur would leave in the toilet, but the Amazonian berries served with ice eradicate all traces of a hangover you got from drinking too much Brahma beer in approximately 30 seconds.
For a true carioca sleeping experience, head in search of the notorious love motels. Paid by the hour, motels are as ubiquitous and well-frequented as churches, with each one even given an individual star rating for their level of service. For a dollar or two per hour, you get your bog-standard plastic sheets and herpes on tap, but if you want to quite literally splash out, the five-star deluxe motels have heart-shaped water beds, sex harnesses, a hot-tub fit for a futebol team and gimp-suits on room service.
Forget hanging out, spend as much time and money as you can buying as much cheap tat as you can get. It’s best to avoid the enormous identikit shopping malls, and take to the streets if you want some weird stuff. Also, look out for the dudes selling racks of bootleg funk carioca CDs. The thrift shops of Lapa are the place to go for the Bonde Do Role look. You can also put together a nice collection of vintage Playboys, which, if you’re lucky, will have had just one careful owner.
In the south zone, there’s a small handful of underground clubs, such as Moo, Dama De Ferro and Fosfobox where you can join an invariably tattooed and bisexual crowd in watching big name DJs or, if you’re really lucky, Madoninha. She’s a blonde dwarf who sings literally translated renditions of Madge classics, such as “Como uma virgem. Oh!” If you want to learn more about “ginga”, the fluidity and movement of Brazil, watch the short film Movimento at brahma.com
Thursday, June 04, 2009
Quality Circles and Communication -- brief synopses
Very important point regarding the essence of Kaizen (emphasis added):
Much of the success of Kaizen came about because the system encouraged many small-scale suggestions that were cheap and quick to implement. They also came from shop-floor employees - who had a detailed appreciation of the benefit each change might make to the process concerned. By implementing many small improvements, the overall effect was substantial.
Their communication link has the following important point on communication, which point may have been missing from the communication team project charter:
Co-ordination of departments, teams and groups - e.g. making sure that marketing, production and administration know what each other is doing, when and why
Tuesday, May 19, 2009
Tuesday, May 12, 2009
Multiple IE Versions revisited
Sunday, April 26, 2009
Using Script# with ASP.NET
- Follow instructions here on wiring up the control, specifically the parts about implementing IScriptControl, and overriding OnPreRender() and Render(). However you *must* make one crucial change, or else you'll break ALL javascript on the page.
- You must change this line as follows:
Before:
var descriptor = new ScriptControlDescriptor("namespace.class", this.ClientID);After: var descriptor = new ScriptControlDescriptor("namespace.class", someOtherControl.ClientID);The problem is that user controls do not, per se, have an associated HTML control, so it's necessary to place the control's contents inside a Panel. If you do try to create a descriptor using "this", the un-handled error resulting from the $create() call on the client will cause all page-initialization-related Javascript that runs after that point to fail, thus breaking the page in a big way.
Tuesday, April 07, 2009
GWT Designer, ScriptSharp, Ext JS
- GWT, of course. Now 1.6 is in beta.
- GWT Designer -- $99 purchase, or $59/year.
- Script# - a .NET answer to GWT. Not many widgets, but works with Ext JS (!) via the extsharp project. Was on Codeplex, but removed. Speculation is that MS will integrate it into Visual Studio at some point. Here's a good video/powerpoint presentation on getting started. Helps to navigate your way around the bugs.
Monday, March 30, 2009
Asp.Net Session Timeout control
This is pretty cool. It truly is just something you drop onto the page and configure.
http://weblogs.asp.net/latishsehgal/archive/2008/08/29/asp-net-session-timeout-control.aspx
The blog post describes an important change, but he documents it rather poorly. The changes he describes must be made to the “Timeout.js” script.
Sunday, March 15, 2009
Saturday, March 07, 2009
NYTimes: Job Losses Hint at Vast Remaking of Economy
From The New York Times:
Job Losses Hint at Vast Remaking of Economy
By PETER S. GOODMAN and JACK HEALY
With unemployment at 8.1 percent, some economists believe that a wrenching restructuring is under way....
http://www.nytimes.com/2009/03/07/business/economy/07jobs.html
Thursday, March 05, 2009
Building Composite Data Bound Controls in ASP.NET
Monday, February 23, 2009
Wednesday, February 11, 2009
How to determine iPhone firmware version
"How do I find out what firmware version my iPhone is?
You don't actually need to know this in order to unlock your iPhone with us, as our software works with all current iPhone firmware versions, but to check yours - simply dial *3001#12345#* then press the call button, compare your Modem version to the table below to find out your firmware version:
1. 04.04.05_G - OTB 1.1.4 iPhone
2. 04.03.13_G - OTB 1.1.3 iPhone
3. 04.02.13_G - OTB 1.1.2 iPhone
4. 04.01.13_G - OTB 1.1.1 iPhone"
Monday, February 09, 2009
ASP.NET AJAX partial update does not work with xhtmlConformance tag in web.config
I converted a .NET 1.1 application to .NET 2.0. The web.config had this section:
<system.web>
...
<xhtmlConformance mode="Legacy"/>
...
</system.web>
When I removed the xhtmlConformance tag, it began working again.
Tuesday, January 27, 2009
Temporal Data Techniques in SQL
Monday, January 19, 2009
Microsoft Naming Conventions
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]For example,
Microsoft.WindowsMobile.DirectX."
Sunday, January 18, 2009
Economy Made Few Gains in Bush Years
"President Bush has presided over the weakest eight-year span for the U.S. economy in decades, according to an analysis of key data, and economists across the ideological spectrum increasingly view his two terms as a time of little progress on the nation's thorniest fiscal challenges."
And yet there are those who will worship Dubya until the day they die. How can you take seriously any supposedly religious person who believes that Dubya was sent by God? Maybe he was sent by God to punish us for something -- like to punish us for voting Republican.
Friday, January 09, 2009
Developing a use case document, looking for guides or software to help
Thursday, January 01, 2009
Goodbye Tangled Cables, Wrap the iPod Earphone Cord Neatly
Friday, December 19, 2008
My first WSCF web service project. Contract first, code later.
"So far using WSCF for building the web service is quite a success. But I did not use it for building the consuming client. My main problem was that every roundtrip of the contracts requires deploying (plain copy) the generated wsdl and the accompanying schema's to the client code. Instead I created just a server project which included the contract schema's. One clean and independent project. As all info needed by a consumer of the service is in the wsdl all the consuming client application needs is a reference to the wsdl. Which is exactly what add web reference in VS does. Having updated the service all I need to do in the client project is Update Web Reference. However, the proxy generated by WCSF does offer some nice extra's. It returns the data (when the option in the wizard is set) as a collection, the VS web reference just sees an plain array. I also have to set the service endpoint (the URL with it's location) by hand. The latter is something I'll have to do anyhow, as it will be read from a config file. And I can live with the arrays as a trade off for a cleaner development process. This is a point where WSCF could be improved."
Monday, December 15, 2008
LINQ support on .NET 2.0
I'm working in a shop with ancient servers which run only .NET 2.0, so this is a wonderful thing to know about. Woo hoo!
Here's what he has to say:
- "Create a new console application
- Keep only System and System.Core as referenced assemblies
- Set Copy Local to true for System.Core, because it does not exist in .NET 2.0
- Use a LINQ query in the Main method. For example the one below.
- Build
- Copy all the bin output to a machine where only .NET 2.0 is installed
- Run"
[Update Apr 2 2009: This didn't work for me because our server was using .NET 2.0 without SP1. Instead, I used the excellent LINQBridge.]
Sunday, December 07, 2008
Gizmodo's 20 Essential iPhone Apps
Tuesday, November 25, 2008
Cool Bennett Adelson talk by Steve Smith
November 11th, 2008
Monday, November 24, 2008
Google Advice for writing testable code
Warning Signs
- new keyword in a constructor or at field declaration
- Static method calls in a constructor or at field declaration
- Anything more than field assignment in constructors
- Object not fully initialized after the constructor finishes (watch out forinitialize methods)
- Control flow (conditional or looping logic) in a constructor
- Code does complex object graph construction inside a constructor rather than using a factory or builder
- Adding or using an initialization block
Flaw #2: Digging into Collaborators
Warning Signs
- Objects are passed in but never used directly (only used to get access to other objects)
- Law of Demeter violation: method call chain walks an object graph with more than one dot (.)
- Suspicious names: context, environment, principal, container, or manager
Flaw #3: Brittle Global State & Singletons
Warning Signs
- Adding or using singletons
- Adding or using static fields or static methods
- Adding or using static initialization blocks
- Adding or using registries
- Adding or using service locators
Warning Signs
- Summing up what the class does includes the word “and”
- Class would be challenging for new team members to read and quickly “get it”
- Class has fields that are only used in some methods
- Class has static methods that only operate on parameters"
LINQ Reference Documentation
"The LINQ documentation created by Microsoft is available both inside Visual Studio, and for free via the MSDN library found on the WEB. Here are some important pages from that documentation that can help you navigate through the online reference material that Microsoft has prepared for LINQ developers:
· The Root MSDN Library Page: http://msdn.microsoft.com/en-us/library/default.aspx
· .NET Development: http://msdn.microsoft.com/en-us/library/aa139615.aspx
· .NET Framework 3.5: http://msdn.microsoft.com/en-us/library/w0x726c2.aspx
· System.Linq: http://msdn.microsoft.com/en-us/library/system.linq.aspx
· System.Data.Linq: http://msdn.microsoft.com/en-us/library/system.data.linq.aspx
· System.Xml.Linq: http://msdn.microsoft.com/en-us/library/system.xml.linq.aspx
· Code Generation: http://msdn.microsoft.com/en-us/library/bb399400.aspx
· More on Joins: http://msdn.microsoft.com/en-us/library/bb311040.aspx
· For more information on the operators, see the section of the online help called “The .NET Standard Query Operators.” It is written by Anders Hejlsberg and Mads Torgersen. The URL is http://msdn.microsoft.com/en-us/library/bb394939.aspx
I would not suggest using these references materials as a primary means of learning LINQ. However, if you have a book or other guide to LINQ development, then this reference material can be a useful addendum to that text. If you understand in a general way how LINQ works, but need answers to detailed questions, the links provided here may sometimes help you find answers."
Saturday, November 22, 2008
Money-Saving Meal Plans at Whole Foods
Wednesday, November 19, 2008
How To: Use Impersonation and Delegation in ASP.NET 2.0
And this link: Encrypting configuration files using protected configuration, to avoid the dreaded "The RSA key container could not be opened" error. It tells you to encrypt using this command:
aspnet_regiis -pa "NetFrameworkConfigurationKey" "ASPNET"So, for example, to encrypt user identity (in one line):
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pa "NetFrameworkConfigurationKey" "ASPNET" -pef system.web/identity C:\Inetpub\wwwroot\SimpleEmailWebService
// From http://msdn.microsoft.com/en-us/library/ms998351.aspx
public class NativeWindowsSecurity
{
// Declare signatures for Win32 LogonUser and CloseHandle APIs
[DllImport("advapi32.dll", SetLastError = true)]
public static extern bool LogonUser(
string principal,
string authority,
string password,
LogonSessionType logonType,
LogonProvider logonProvider,
out IntPtr token);
[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool CloseHandle(IntPtr handle);
public enum LogonSessionType : uint
{
Interactive = 2,
Network,
Batch,
Service,
NetworkCleartext = 8,
NewCredentials
}
public enum LogonProvider : uint
{
Default = 0, // default for platform (use this!)
WinNT35, // sends smoke signals to authority
WinNT40, // uses NTLM
WinNT50 // negotiates Kerb or NTLM
}
}
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
Friday, October 31, 2008
Wednesday, October 29, 2008
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
"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
Saturday, October 25, 2008
Thursday, October 16, 2008
jQuery and ASP.NET AJAX UpdateRegion
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
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
Tuesday, September 02, 2008
Friday, August 22, 2008
Testing on Mobile Devices using Emulators « klauskomenda.com
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
- dotMobi Online Emulator - mTLD has an online emulator that you can use to quickly see what your site will look like on a common phone
- Nokia Browser Simulator - this simulator simulates a generic Nokia phone and WAP gateway
- Openwave Phone Simulator - Openwave's browser simulator
- Opera Mini Simulator - simulates Opera's popular J2ME browser
- BlackBerry Simulator - multiple different BlackBerry simulators
- Yospace SmartPhone Emulator - a versatile emulator that can display multiple phone instances at the same time"
Thursday, July 31, 2008
Microsoft Virtual Labs
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
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
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?
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”
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
"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
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
- Diff-tree from master to the desired merge point.
- Check out the files marked as "M" or "D"
- Merge desired merge point into master.
- Check in the files marked as "M" or "D"
- Add the files marked as "A".
- git diff-tree master POS-safe --name-status -r | tee files.txt
- ./Python/VSSHelper.py -o -d files.txt
- git merge POS-safe
- ./Python/VSSHelper.py -i -d files.txt -c "VSS check-in comment."
- 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."
"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)
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
Tuesday, April 01, 2008
Wednesday, March 26, 2008
Sorting for Humans : Natural Sort Order
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
Tuesday, March 25, 2008
Git stuff - Git.Net and "Why DVCS Matters to you today"
Application for Google Summer of Code 2008, Mono Project - Git.Net. Fantastic idea!
Saturday, March 22, 2008
Monday, March 17, 2008
Technology Review: Blogs: Ed Boyden's blog: How to Think
Wednesday, March 05, 2008
Tactics for Reducing the Subjective Experience of Down Time
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."
Sunday, February 24, 2008
Wednesday, February 20, 2008
How-To: vmware-tools hgfs module on Ubuntu Gutsy Gibbon (7.10)
Tuesday, February 19, 2008
Intercepting method calls in C#, an approach to Aspect-Oriented Software Development
Tuesday, February 12, 2008
Community Pricing for goods (books, specifically)
http://radar.oreilly.com/archives/2008/02/community_pricing_for_books.html
Monday, February 04, 2008
Thursday, January 24, 2008
Tuesday, January 15, 2008
Signs of a Bad Boss (seen by me in the wild)
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)
Use this command:
git diff-tree -r --name-status branch1 branch2where branch1 is the branch I'm going to check into SourceSafe and branch2 is the upstream branch.
Example:
The basic procedure is:/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
$
- hack hack hack
- Get my tree in good shape, usually by rebasing my branch onto the SourceSafe tracking branch.*
- Run the diff-tree command above to find changed files.
- Check out those files. If there are any warnings from SourceSafe about the files being different (and not just writable), then do the following:
- Get latest from SourceSafe into the SourceSafe tracking branch (typically "master") in my project.
- Commit.
- Go back to step 2 above.
- 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.
- Check changed files back into SourceSafe.
The flavor of git I use is msysgit.
Linus clarifies "Central Repository" issue on git in a way palatable to managers
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
"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)
"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.dotThe following is a screenshot of the graphviewer:"
Monday, January 07, 2008
TCL: Creating Temporary Files
"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
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
Wednesday, December 19, 2007
Open Source XML Diff Written 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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
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
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 noneto the file .inputrc under your home directory."
Friday, November 16, 2007
EasyVMX!: Virtual Machine Creator
Tuesday, November 13, 2007
Danger! Lousy Employer Ahead
Wednesday, October 24, 2007
How Bush wrecked conservatism | Salon.com
*Romans 12:17, 21"







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