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
This is just a spot to keep miscellaneous links. It also shows you what a geek I am.
Thursday, December 27, 2007
sysobjects and Object Types in SQL Server
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"
Tuesday, October 23, 2007
15 Answers to Creationist Nonsense: Scientific American
Wednesday, October 17, 2007
Occasionally Connected Systems Architecture: Concurrency
Thursday, October 04, 2007
How Toyota and Linux Keep Collaboration Simple - HBS Working Knowledge
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
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/ |
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
Wednesday, September 12, 2007
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
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
Tuesday, August 28, 2007
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
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
"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
-
Start the Registry Editor (regedit).
-
In the Registry Editor, open the HKEY_LOCAL_MACHINE folder.
-
Navigate to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\currentversion\image file execution options.
-
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:
-
Right-click the Image File Execution Options folder, and on the shortcut menu, click New Key.
-
Right-click the new key, and on the shortcut menu, click Rename.
-
Edit the key name to the name of your application; myapp.exe, in this example.
-
-
Right-click the myapp.exe folder, and on the shortcut menu, click New String Value.
-
Right-click the new string value, and on the shortcut menu, click Rename.
-
Change the name to debugger.
-
Right-click the new string value, and on the shortcut menu, click Modify.
The Edit String dialog box appears.
-
In the Value data box, type vsjitdebugger.exe.
-
Click OK.
-
From the Registry menu, click Exit.
-
The directory containing vsjitdebugger.exe must be in your system path. To add it to the system path, follow these steps:
-
Open the Control Panel in Classic view, and double-click System.
-
In System Properties, click the Advanced tab.
-
On the Advanced tab, click Environment Variables.
-
In the Environment Variables dialog box, under System variables, select Path, then click the Edit button.
-
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.
-
Click OK to close the Edit System Variable dialog box.
-
Click OK to close the Environment Variables dialog box.
-
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)
"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
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
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
Sunday, July 15, 2007
Film Techniques of Alfred Hitchcock - suspense, camera angles, style, editing, basics
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
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
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
· “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
Saturday, June 30, 2007
Manage It!
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
Friday, June 29, 2007
Coding Horror: Supporting Open Source Projects in the Microsoft Ecosystem
Wednesday, June 27, 2007
Two Fixes for Bad Backs - TIME
An Earth Without People -- [ environment ]: Scientific American
Tuesday, June 12, 2007
How to Write a Software Specification
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
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 Software Schedules - Joel on Software
Wednesday, June 06, 2007
Kanban in Action
InfoQ: Incremental Software Development without Iterations
Monday, June 04, 2007
Códice Software: Linus Torvalds on GIT and SCM
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
Sunday, June 03, 2007
Dr. Dobb's | The Power of LISP for C Programmers | June 3, 2007
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
"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!"
Wednesday, May 30, 2007
Thursday, April 19, 2007
Erlang
There's a lot of activity in the blogsphere; go to Google search and search for Erlang blogs. Also, here's some articles you might enjoy:
- http://yarivsblog.com/articles/2006/06/14/more-erlang/
- http://armstrongonsoftware.blogspot.com/2006/08/concurrency-is-easy.html
- http://www.process-one.net/en/blogs/article/web_20_shifting_from_get_fast_to_get_massive/
Web sites
Now go and look in this directory: http://www.erlang.org/doc/doc-5.5.3/pdf/. You'll find 50 odd PDF files here.
I've chosen a few of these for you to look at:
- asn1-1.4.4.12.pdf
- design_principles-5.5.3.pdf
- dialyzer-1.5.1.pdf
- efficiency_guide-5.5.3.pdf
- getting_started-5.5.3.pdf
- inets-4.7.8.pdf
- mnesia-4.3.3.pdf
- parsetools-1.4.1.pdf
- programming_examples-5.5.3.pdf
- reference_manual-5.5.3.pdf
- sasl-2.1.4.pdf
- snmp-4.8.4.pdf
- tutorial-5.5.3.pdf
Each one of these represents a book that is just waiting to be written :-)
Have a good read.
Copyright © 2007 Joe Armstrong"
Friday, April 13, 2007
Virtualization with coLinux
InfoQ: .NET Memory Leaks
While the Common Language Runtime (CLR) can unload whole App Domains, it cannot unload individual assemblies. Code generation relies on creating temporary assemblies. These assemblies are often loaded into the primary app domain, meaning that cannot be unloaded until the application exits.
For libraries like XML Serialization, this isn't much of a problem. Usually the serialization code for a given type is cached, which limits the application to one temporary assembly per type. But there are XMLSerializer overloads that don't use caching. If a developer uses one of these without providing some sort of application-level cache, memory can be slowly leaked as new instances of essentially the same code is loaded into memory. For more information specifically on XML, see .NET Memory Leak: XmlSerializing your way to a Memory Leak.
The potential problems are far worse for code that habitually rewrites itself at runtime such as those written in LISP. For that sort of language, either the code has to be run entirely interpreted, that is never being compiled to IL code, or placed in separate AppDomains that can be purged fr"
Monday, April 09, 2007
Re: ICMP Ping
contains port driver for ICMP ping (freebsd ping program was used as start).
best regards,
taavi
> I am trying to write a very simple network monitoring tool. Not trying
> to replace any of the commercial products/open source, but as a nice
> example to try and learn about erlang features (concurrency and
> Mnesia) in a real scenario."
Thursday, April 05, 2007
1. Proprietary - The code is mine! You can’t look at it. You can’t reverse engineer it. Mine Mine Mine!
2. GPL - You can do whatever you want with the code, but if you distribute the code or binaries, you must make your changes open via the GPL license.
3. New BSD - Use at your own risk. Do whatever the hell you want with the code, just keep the license intact, credit me, and never sue me if the software blows your foot off. The MIT license is a notable alternative to the New BSD and is very very similar.
4. Public Domain - Do whatever you want with the code. Period. No need to mention me ever again. You can forget I ever existed."
Wednesday, April 04, 2007
Steve Loughran reminding us of a Note on Distributed Computing. From the note...
We look at a number of distributed systems that have attempted to paper over the distinction between local and remote objects, and show that such systems fail to support basic requirements of robustness and reliability. These failures have been masked in the past by the small size of the distributed systems that have been built. In the enterprise-wide distributed systems foreseen in the near future, however, such a masking will be impossible.A favorite quote from elsewhere by Jim Waldo, one of the authors...
I've been known to claim that there are two kinds of reliable message systems. The first kind are those that come with an asterisk; following the asterisk leads you to the small print, where you find out when the messaging system can fail and so it is not, therefore, reliable. The second kind are those systems that simply lie – they are no more reliable, but they don't tell you that there are circumstances where they can fail.posted by Patrick Logan # 9:21 PM
Distributed Systems in Practice: The Human Body
Patrick has noticed the parallels as has Werner Vogels. There’s an awful lot of stuff to be learnt about building distributed systems from the human body including how control isn’t centralized, how reliability is achieved and how the ..."
Monday, April 02, 2007
The GMF project was born out of the frustration in creating graphical editors manually (especially in the context of using the Eclipse Modeling Framework). GMF allows you to effectively map (see Figure 5) your semantic (business logic) model to a notional (graphical) model. Once this mapping is complete using a few configuration files, GMF will generate a fully functional graphical editor for you.
Figure 5. GMF development flow
GMF development flow
If your use cases have you using the Eclipse Modeling Framework for your model, it is highly recommend that you use GMF instead of GEF directly. Read Chris Aniszczyk's 'Learn Eclipse GMF in 15 minutes' for more information (see Resources).
Zest
Zest is a lightweight visualization toolkit (see Figure 6) that provides a JFace-like wrapping on top of traditional GEF editors. Zest has been modeled after JFace, and all the Zest views conform to the same standards and conventions as existing Eclipse views (think label and content providers). This means that the providers, actions, and listeners used within existing applications can be leveraged within Zest. Also, Zest has reusable layouts that can be applied to your visualizations with ease.
Figure 6. Sample Zest Visualizations
Sample Zest Visualiz"
Monday, March 26, 2007
One formula (of many) for a successful blog is to create a 'learning blog'. A blog that shares what you know, to help others. Even--or especially--if that means giving away your 'secrets'. Teaching people to do what you do is one of the best ways we know to grow an audience--an audience of users you want to help."
Saturday, March 24, 2007
At Google, all code must be reviewed before you can check it in. This means that another engineer needs to look over your change and give it their approval. Traditionally we've done it via email and some wrapper scripts, but more recently people have been switching to Guido's fancy tool."
I've talked a lot lately about different VCSs.
I got some interesting comments in reply to my most recent post. One person took issue with my complaint that nobody really understood how to specify a revision to git format-patch, and proceeded to issue an incorrect suggestion. And a couple of people complained about my comments about bzr, which generally came down to the released version of bzr didn't have anything compelling and also didn't support tags.
So I went into #bzr, asked them what bzr has that git, Mercurial, and darcs don't. And gave bzr the benefit of the doubt that 0.15 will be out soon and will be stable. What I got back were these general items:
1. Renaming of directories (not in hg, git)
2. 2-way sync with Subversion (not in hg, darcs)
3. Checkouts (not in any others by default)
4. No server-side push requirement
Let's look at these in more detail."
Ask Reddit: What's Your Favorite Source Control Program, and Why ...
"But my home projects I switched to Darcs or Mercurial, because they are ... to me like the hip-geeks don't like svn much. Are they using Darcs? Bazaar? ... programming.reddit.com/info/apb7/comments - 36k - |
Should I take a look at revision control software other than ...
"Converts to/from Darcs, Subversion, Monotone, CVS, Bazaar, Mercurial and Git ... I'm in the process of writing my own svn -> darcs migration tool which can ...programming.reddit.com/info/15zzs/comments/c016020 - 69k -
[ More results from programming.reddit.com ] "
versioncontrol on SWiK.net
"Bazaar is a distributed version control system available under the GPL that aids ... "Darcs is a revision control system. Darcs is simple to learn and use, ...xml.swik.net/versioncontrol - 68k -
Friday, February 09, 2007
NetPing util
Jeff Key
January 24, 2003
Updated August 24, 2003
<24jan2003>I recently got myself into a situation where I was away from the office on the VPN and, changed a machine's IP address, rebooted it and realized I forgot to note the new address. Since the only access I had to the machine was via Remote Desktop over the VPN, I was in a sticky situation. Rather than ping all 255 addresses on our subnet to figure out what its new address was, I wrote this little util.
How times have changed!
Thanks to several good folks, Adam Cogan and Scott Hanselman in particular, NetPing has grown into quite a beast.
Here is the current feature set:
* Pings range of ip addresses.
* Two types of AddIns supported: Column and Action."
Tuesday, January 09, 2007
Sunday, January 07, 2007
The Joins Concurrency Library. Claudio Russo.
Comega extended C# 1.x with a simple, declarative and powerful model of concurrency - join patterns - applicable both to multithreaded applications and to the orchestration of asynchronous, event-based distributed applications. With Generics available in C# 2.0, we can now provide join patterns as a library rather than a language feature. The Joins library extends its clients with an embedded, type-safe and mostly declarative language for expressing synchronization patterns. The library has some advantages over Comega: it is language neutral, supporting other languages like Visual Basic; its join patterns are more dynamic, allowing solutions difficult to express with Comega; its code is easy to modify, fostering experimentation.
E Thesis: Robust Composition
Mark S. Miller's PhD thesis on Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control is now online.
When separately written programs are composed so that they may cooperate, they may instead destructively interfere in unanticipated ways. These hazards limit the scale and functionality of the software systems we can successfully compose. This dissertation presents a framework for enabling those interactions between components needed for the cooperation we intend, while minimizing the hazards of destructive interference.
Great progress on the composition problem has been made within the object paradigm, chiefly in the context of sequential, single-machine programming among benign components. We show how to extend this success to support robust composition of concurrent and potentially malicious components distributed over potentially malicious machines. We present E, a distributed, persistent, secure programming language, and CapDesk, a virus-safe desktop built in E, as embodiments of the techniques we explain.E rates as a (very) important language for anyone interested in ideas of messaging, distribution and security. The nice thing about a thesis (such as this one and Joe Armstrong's) is that it gives a nice historical account of the related work and influences.
Haskell vs. Erlang, Reloaded
Erlang and Haskell compared... Want to know the conclusion?
I was able to finish the Erlang version 10 times faster and with 1/2 the code. Even if I cut the 10-11 weeks spent on the Haskell version in half to account for the learning curve, I would still come out way ahead with Erlang.
Erlang tutorial
Seems like a nice tutorial.
Includes the expected chapters on concurrent programming and robustness, of course.
Joe Armstrong PhD thesis on Erlang.
And his blog: http://armstrongonsoftware.blogspot.com/
"Re:English anyone?? (Score:5, Funny)