Archives
-
[Tools] Some Reflector Add-Ins Links
Lutz Roeder's Reflector is a quintessential .NET developer's tool. Reflector supports an Add-Ins model and some useful Add-Ins have been developed. Here is the .NET Reflector Add-Ins Workspace Home, a Reflector Add-Ins List, and a Reflector Add-Ins Tutorial.
-
[Tools] TestDriven.NET
Speaking of useful Visual Studio.NET plugins, fans of Test Driven Development (TDD) may find the TestDriven.NET plugin (formerly known as NUnitAddin) worth having. According to the download page for the current version, you will find that it comes with some extras.
"MbUnit, QuickGraph, TestFu and Refly are now bundled in the TestDriven.NET installer. After installation, the files are located in c:\Program Files\TestDriven.NET\MbUnit"
-
[Tools] VS File Finder
I rate VS File Finder as a "must have" Visual Studio.NET plugin for .NET developers. It certainly is a "must have" for me!
-
[Agile Development] Fit and Fitnesse
Tools such as NUnit provide frameworks that make writing and managing unit tests relatively convenient. Unit testing is primarily a developer-driven process that helps software engineers to constantly ensure the integrity of their work. The success of automated unit testing and unit testing frameworks has spurred a move to Test Driven Development (TDD) as a new and agile method for creating high-quality software systems. But unit testing is only part of a holistic testing approach.
Recently, automated testing frameworks have appeared to address other testing needs. In particular, new frameworks have emerged to help with the generation and management of acceptance tests. Specifically, I want to highlight Fit, by Ward Cunningham and friends, and its arguably more modern offspring, Fitnesse, by Robert Martin and others. Fitnesse packages the power of Fit-based acceptance testing in a very convenient wiki server system. Fitnesse is available for Java, in mature form, and, although it is not quite ready for prime time, an experimental version exists for the Microsoft .NET Framework. Fitnesse is an Open Source project with a Fitnesse Source Forge site.
One advantage of Fit and Fitnesse for acceptance testing is that they use an approach that enables users and user representatives to write acceptance tests via a spreadsheet-like approach. This feature decouples the creation of acceptance test suites from dependence on developers. It also enables a mixture of documentation and testing that can result in testing documents that also provide considerable insight into how systems should work. Such test suites can really help when the time comes to produce formal documentation and training materials.
Fit and Fitnesse do not replace unit testing frameworks such as NUnit and they certainly do not eliminate the need for Test Driven Development. They work at the other end of the testing process and supplement the TDD approach.
Have fun with Fit and Fitnesse!
-
[Tools] Free Controls at MetaBuilder
Check out the free ASP.NET controls at MetaBuilders. Some of them look quite useful.
-
[Languages] Groovy: "a new agile dynamic language"
Groovy descends from Python, Ruby and Smalltalk and runs on the JVM. It implements closures and has a lot of other nice features, particularly if you want to produce or interact with standard Java bytecode.
-
[Tools] Four nice screen magnifiers and a screen saver
If, like me, you sometimes set your screen resolution so high that you can't quite read some of the smallest print and have a problem when you really need to read it accurately. In the real world, you'd go find a magnifying glass. In BitWorld, you need a screen magnifier.
Three utilities upon which I have come to depend are Virtual Magnifying Glass, Dragnifier, and Screen Loupe 2000. As you may deduce from its URL, Virtual Magnifying Glass is both free and Open Source. Dragnifier is free (but not Open Source). Screen Loupe 2000 is low-cost shareware. Screen Loupe 2000 was one of the first decent screen magnifiers I encountered and it was worth the shareware cost then (with Virtual Magnifying Glass and Dragnifier around now, though, I'm not too sure I would be quite so quick to pay for it). If you want to play with some .NET source code for a simple screen magnifier, you might like my fourth recommendation, Magnifier.NET.
Many other screen magnifiers are available. In fact. from your [Start] menu, check out [Programs|Accessories|Accessibility|Magnify] and you may discover you have the free Microsoft Magnify that is distributed in Windows XP (and some other versions of Windows). Microsoft Magnify tells you straight out, in a dialog box, that it doesn't quite cut it. If you want to dig deeper for other screen magnifiers, just type "screen magnifier" into Google (or be lazy and use this link).
This article is not a comprehensive exposition about screen magnifiers; it's really just a way to say "Thank you!" for four of the ones I have personally found most useful.
If you like magnifying effects, though, I just can't help but recommend one of my absolute favorite screen savers, Remco de Korte's Bubbloids! Endlessly fascinating!
-
[Tools] My Favorite Sticky Note Program: Stickies
After using it for quite a while, now, it is time to declare Stickies as my absolute favorite free sticky-note program. This is one light-weight utility that I would sorely miss, were it not available. This one does not hog my resources and pretty much stays out of my way when I do not need it. I find that I regularly use Stickies many times a day. Tom Revell is an absolutely cool guy for providing this well-done little helper to the larger community. Thanks!
-
[WebServices] ASN.1 and Fast Web Services
Abstract Syntax Notation One (ASN.1) offers some significant capabilities for producing Fast Web Services. Other interesting links on ASN.1 include What ASN.1 can offer to XML, the ASN.1 Homepage, and the ASN.1 Consortium. If you need more information than those, see this Google search.
-
[Software Architecture] Must read article: "The Secret Source of Google's Power"
Count me late to the party for not seeing "The Secret Source of Google's Power" before. There are enough interesting facts, ideas, and speculations in the article and its follow-up comments to keep you preoccupied for quite some time. This was a fascinating read. I think we need to think about the various potentials here -- along several dimensions. Certainly, as a software architect, I would feel like a kid in a candy store at Google! Lucky those guys!
-
[Java] Five-star Instructional Graphic Award: "Java Technology Concept Map"
I admit to being intrigued by the Java Technology Concept Map not only for its Java-oriented content but for its very innovative graphical presentation using Concept Map techniques. Concept Mapping derives from Mind Mapping, a technology I have personally used quite profitably for many years, not only for software design and development, but also for a lot of other things -- including general thinking. The Java Technology Concept Map, with its interesting graphical design and dynamic Flash presentation (you can also download a PDF version) shows just how far we have come from those original simple mind maps we used to draw on whatever scratch paper was handy! The designers of this instructional tool deserve an award, so CSharpener hereby bestows the "Five-star Instructional Graphic Award" upon them!
-
[.NET General] John Gough on "Vectors vs. Arrays"
Below, I present a very interesting post on "Vectors vs. Arrays" where John Gough describes some important details about what goes on under the covers of certain seemingly minor differences in array notation. John's post is contained in the archives of the DOTNET-LANGUAGE-DEVS email list on DISCUSS.MICROSOFT.COM but is only available, there, to list members. I think this post is of more general interest so am making it accessible here.
A lengthier explanation is available in John's book, Compiling for the .NET Common Language Runtime.
Among other things, John Gough is the creator of Gardens Point Component Pascal (gpcp), an Open Source compiler for an object-oriented dialect of Pascal that runs on the .NET Framework,
NOTE: The following contains quoted material.
Rod da Silva's Question: I was under the impression that there is a very real difference between
the CLR type int[][] and int[,]. However, I am finding out that the
both appear to be nothing more than instances of System.Array class.
That is, they both exhibit pass-by-reference semantics in that I can
pass either to a method and modify one of its elements, and the change
will persist when I return from the method. I was expecting int[][] to
have pass-by-value semantics.
Can someone please describe the difference between int[][] and int[,]?
Also is there any way to make int[][] have pass-by-value (i.e.;
valuetype) semantics?John Gough's Answer:
good question.
You are correct, both int[][] and int[,] are reference types.
I spend some time in my "Compiling for the .NET Common
Language Runtime" (Prentice Hall 2002) explaining what a
compiler has to do to get value semantics for its target
language.
The difference between the two types can be understood as
follows. One dimensional arrays of any type are a primitive
for the CLR. Thus int[] is a <<reference>> to an array of
int. The type int[][] is a reference to an array of
references to int. It is thus a "ragged array", and if you
want it to be normal two-D array then in CIL the initializer
must explicitly create each component int[] array to be the
same length. Of course in some languages the compiler may
hide this away from the programmer. Note that it follows
that creating an array, say int[8][8], will require a total
of nine(!) objects to be allocated.
The type int[,] is not a built-in type of the execution
engine, although the JIT does need to know about it.
Instead it is one of the possible forms of System.Array. In
brief, the memory allocated for such an array will be in one
glob, and requires just one object creation. The only
downside is that you cannot access the elements of such an
array using just the raw instruction set of the CLR. It is
necessary to call functions of System.Array and hope that
the JIT gets to be clever enough to inline the code.
Finally, how to get value semantics. Reading my book may
help you write a compiler to do the trick, but if you are
stuck with a language that does not do it for you then you
need to write a method for each type, such as
int[][] CopyOf(int[][] x) {
// allocate correctly sized collection of 1-D arrays
// now copy the elements, then return
}
So that instead of saying
SomeMethod(myArray);
you go
SomeMethod(CopyOf(myArray));
Hope this helps.
John Gough -
[Languages] Looking for a weekend project?
In this thread, you will read about several people who implemented tiny versions of some language in another, Python. The prize, though, is taken by Andrea Griffini, who implemented a toy Basic interpreter over a weekend just to have something to say in this little conversation.
-
[General] Exploratory Data Analysis (EDA)
I have long been fascinated by Exploratory Data Analysis (EDA), a very creative new statistical methodology that differs substantially from what most people know as statistics.
Most tools in the normal statistician's kit are intended to help analysts confirm the results of statistical experiments or to validate an hypothesis via statistical manipulation of pre-existing data. We can classify these approaches as "confirmatory statistical analysis." The "standard" confirmatory statistical techniques are only suitable if the problem under study meets the very specific requirements and assumptions upon which parametric statistical theory is based. Frequently, people -- including many professional statisticians who should know better -- blindly misuse the normal tools (e.g., mean and standard deviation) on data sets that do not come close to meeting the required conditions (such as having a normal distribution, etc.). Only rarely can standard parametric statistical methods be used effectively to perform initial explorations on unknown batches of numbers.
John W. Tukey, in his great classic text, Exploratory Data Analysis, gave us some cool tools for exploring data. Sometimes, you end up with a bunch of data and have absolutely no idea what might be "in there." Tukey's methods included some very interesting graphical techniques, such as "stem and leaf diagrams" and "box plots," that stand as excellent early modern data visualization examples. I must hasten to add that many of the EDA techniques are not only effective but fun to do. I strongly recommend EDA to absolutely anyone who must even occasionally attempt to find that elusive "something" in a batch of numbers.
I consider it one of the canonical examples of the unfairness of the universe that Tukey's text appears to be out of print and is now somewhat difficult to find. You can easily locate any number of derivative works but, IMNSHO, the true classics in any field should *never* be allowed to go out of print -- and Tukey's "orange book" certainly classifies as one of those. Find it in some library somewhere and just take a look at it and I think you will agree. Even the format and layout of this book is creative, special, and clear. But the techniques, themselves, are things of beauty, developed by that extremely rare type of statistician, one who actually tried to do real things with real numbers.
John W. Tukey died on July 26, 2000. He certainly deserves to be ranked as one of the most influential statisticians of the late 20th century. Oh, and by the way, you might be interested to know that it was John W. Tukey who first coined the term "software" in 1957.
The immediate motive for this post is that I just discovered two nice introductory sites about EDA that I had not previously seen: Exploratory Data Analysis and Data Visualization, by the unusual Dr. Alex Yu, Chong Ho (Alex), and the Exploratory Data Analysis section of the free online Engineering Statistics Handbook, provided by the Information Technology Laboratory (ITL) of NIST . These resources give excellent introductions and give the beginner a great starting point.
Enjoy!
-
[Security] Major Cryptographic Algorithms Broken by Quantum Bogodynamics
It is definitely not April Fools' Day, but the article Crypto researchers abuzz over flaws will probably make you think it is. As if all of the nasty viruses and worms and buffer overruns of late aren't enough, now MD4, MD5, HAVAL-128, RIPEMD, SHA-1, and other basic cryptographic algorithms currently in heavy production usage are under severe mathematical attack.
I think the only reasonable non-Occamian (Null-O) theory is that we must have recently experienced a serious rise in bogon flux density. It's obvious (TM) that bogons and psytons have started poking their holes not only through electronic equipment but also even through basic theories and abstractions of all types. Quantum bogodynamics has evolved into the abstract realm! Start boning up on your quantum compudynamics or we are surely lost. Hmmmmmm? Perhaps we're lost, anyway.
"Caveat everybody! She's gonna' blow!"
-
[.NET - General] Return of the .... STL!
Coming from a C++ background, it is interesting to see that the Standard Template Library (STL) has been reincarnated as STL.NET for VC++ 2005. Stanley B. Lippman provides a new STL.NET Primer that not only introduces the undead beast but also gives some rationale for its .NETification. Lippman's article is the beinning of a series on STL.NET. Evolving STL into STL.NET is a Good Thing (TM) but it is not enough.
When STL first came into existence, it quickly became an essential tool for C++ engineers, myself included. I also derive from a SmallTalk lineage, and have grown used to SmallTalk's powerful collection class libraries, so the STL collections (containers) were certainly welcome, limited as they were. Alexander Stepanov's approach to providing templated algorithms was quite revolutionary and represented a very creative contribution at the time. I welcome the aspirations of the venerable STL to join the .NET generation because it will provide a much needed migration path for C++ engineers who have invested time and energy into learning these powerful tools. I can only hope Lippman is right and that STL.NET will play well with others (C# and VB.NET and the many other new CLS-compliant languages). I eagerly await the other articles in his series to find out.
My main thesis here, though, is that STL.NET is not enough. Making STL.NET available for C++ is a nice gesture, but what about the rest of the CLS/CLR world? Collections are important! A solid set of collections can make architecture and engineering much easier and you quickly find that collection abstractions enhance your thinking ability. I sincerely hope that Microsoft will bite the bullet and take this opportunity to rework the whole idea of collections intelligently.
The original System.Collections offering was, frankly, not even a respectable token gesture. I'm not sure Microsoft has ever taken collections seriously. Even the Java Collection Framework (JCF) is arguably better than .NET's collections. Does Microsoft have any empowered, strong advocate for putting a real set of collections into the .NET Framework? If so, I would like to know that person's name!
Wintellect has started a Power Collections for .NET initiative. This effort could be a vehicle for work toward a new and effective collections framework. At least, it is a community where some people want to discuss the matter and where some people are currently writing code. They are asking for our help. If you care about collections, you might want to participate. The opportunity is here and the time is now!
PS Thanks to Mike Taulty for bringing the STL.NET issue to my attention.
Update: Kevin Downs has provided a link to the very interesting C5 collection class library project. To make sure the various collection class projects at least know about each other, I have forwarded the link to the Power Collections for .NET Class Ideas Forum to make sure those folks are also aware of it and have emailed information about Power Collections for .NET to the author of C5.
-
[Human Factor] Not as far from the Holodeck as it once seemed
We always expect something cool from Siggraph, so check out Siggraph 2004 Brings Sci-Fi Imagery Closer to Reality.
-
[Security] Defensive Security Programming Resource
Security conscious software developers, certainly including .NET developers, should take particular note of the Metasploit Framework released into the wild by Metasploit. I have to stretch a bit to have faith that this information and toolkit will be used more for good than harm. Still, with all sorts of very nasty new viruses appearing, ones that can even hop from Bluetooth to your Symbian-enabled cellphone (see SymbOS.Cabir), all of us serious software professionals had better educate ourselves on the tools and techniques being used against us by the denizens of the Dark Side. Frankly, I think the virus wars have escalated beyond the coping ability of the normal anti-virus vendors and their products. From what I see, most organizations are absolutely clueless as to the new hazards we face today! If you care about your users, you will need to work very hard to protect them and your applications from the kinds of tactics demonstrated publicly by Metasploit and similar exploit information sources. May the Force be with you!
-
[Human Factor] When Blungry Blog!
I was inspired by this post on 0xDECAFBAD to think about the art of blogging and I'd like to share these thoughts with any other potential blogger burnout candidates. Here is how I answered this particular author (with minor edits added):
-
[Software Architecture] "Getting from use cases to code," a great article series
Gary Evans has written Getting from use cases to code Part 1: Use-Case Analysis and Getting from use cases to code Part II: Use Case Design, absolutely the clearest exposition I have yet seen about how to proceed from use cases to an actual design. As a .NET architect, I can use Gary's articles to cleanly lead user representatives, stakeholders, and managers through the process and can show them how we can get to shippable results by starting with a decent set of use cases. Gary gets my personal ".NET Architect's Helper of the Month" award for his work on these.
-
[TDD][ASP.NET] Some help for unit testing server-side ASP.NET
In the "Why didn't I think of this?" category falls a very helpful new article, "Server-Side Unit Testing in ASP.NET: How to create an HttpContext outside of IIS" by Steven Padfield, who did think of it. I started down this path, once upon a time, but didn't follow through. Padfield's approach is potentially helpful when you want to integrate NUnit testing with ASP.NET (not an easy task, unfortunately!).
-
[SoftDev] Book: Kerievsky, Joshua, _Refactoring to Patterns_
Now this one looks interesting enough that I may actually need to buy and study it!
-
[Human Factor] In Honor of a Different Kind of Code Hacker
Francis Crick, who, in 1953, unravelled the structure of DNA along with James D. Watson, died on July 28, 2004. Crick and Watson's discoveries led to our present understanding of the genetic code, which is arguably far more important to all of us than the computer code we celebrate on our weblogs every day.
-
[Languages] IronPython is out and OpenSource!
I am *so* stoked! Python, one of my very favorite languages, is now a real .NET language. The incredible Jim Hugunin has just released IronPython-0.6. Furthermore, IronPython is Open Source, under the Common Public License - v 1.0. Here is one Pythoneer's sincere "Thank you!" to Jim!
-
[Languages] o:XML Object-oriented XML, the Language
Check out this new XML-based programming language, o:XML. I have long anticipated something like this but am embarrassed to admit that I didn't discover it two years ago, when it got started. Version 1.0.0 was proudly released on the project's second anniversary. I only found about it because it was featured in the Daily Python URL (on 2004-07-23), one of my favorite non-.NET information sources (Rss 2.0 feed).
-
[SoftDev] Cleanly start and stop Windows Explorer
See how to cleanly start and stop explorer.exe at Jeffdav's Weblog for some obscure Windows knowledge on how to deal with Explorer crashes, etc.
-
[General] Is SBC's cfd.exe Spyware or Adware? SBC says, "No."
Several sources on the net have reported that cfd.exe is spyware or adware. The "BroadJump Client Foundation" software is automatically installed with SBC's DSL kit. I, myself, have wondered about this and was on the edge of uninstalling it when I decided to chat online with SBC support. The SBC support professional has certified to me that cfd.exe is only being used for network management purposes.
-
[The Human Factor] OK, I'll byte.
Originating from the demented mind of some bemused induhvidual, the "Page 23 Meme" has been spreading wildly. I was fascinated by memetics, when I first encountered it, so I'll participate in the experiment. However, the real meme I am spreading is the meme of memetics, itself! Oh, and I just recognized that I also seem to be heavily propagating one or more Google memes, as well. Do notice that I have not merely propagated "Page 23." I have also added some sort of content that took some sort of thought. Whenever I become conscious that I am spreading some meme, I usually try to add value.
-
[SoftDev] Kent's Rules for Refactoring
Over on the Trivial Thoughts Weblog, Michael Kent posted some very non-trivial thoughts on refactoring. You can do worse than to follow Kent's Rule for Refactoring Code.
-
[The Human Factor] Score = 42 to 6 ... oops, make that 42 to 2
I lost! We lost! Who won? spammers! (I refuse to capitalize them).
-
[Tools] Visio .NET Enterprise Architect Edition conflicts with Visio 2003 Professional
Courtesy of a kbAlertz RSS feed, I just discovered this alert: "This file cannot be opened because it was created with a newer or unrecognized version of Visio" error message when you try to open a Visio drawing by using Visual Studio .NET.
-
[.NET - General] .NET doesen't belong at the Microsoftian Core!
Sorry, fellow .NET aficionados, but this recent advice from Microsoft is highly important: KB# 841927 - Do not use .NET Framework Class Libraries or other framework libraries in core operating system processes. It's only common sense, really, but they gave me a hammer for my birthday and now they don't want me to use it on the OS! Shucks! Durnit!
-
[Tools] Monad, the MSH Beta
I have started to experiment with the new Microsoft Shell Beta (Monad) and was going to write a brilliant post about it but it appears that others have paved this road before me. So, I will just recommend that you check out these links:
-
[Tools] UMLet, a free UML Diagramming Tool
The new, free UMlet is designed to support the UmlAsSketch concept. While not exactly "full-featured," it will let you crank out useful UML diagrams in a surprisingly short time. Only a few UML diagram types are currently supported but the next version will support more. It's pretty light-weight, too, at about 6.9 MB for the entire Java application.
-
[Articles] Brad Abrams: The Bum Rap of foreach
Recursively follow all of the links in Brad Abrams article The Bum Rap of foreach and you will get a great education in both iteration and the evils and joys of micro-optimization. Regarding optimization, see "Rule #1" in The Rules of Optimization.
-
[.NET - CSharp] Nice Little String Rotator
These string rotator methods appeared in a chain of recent posts on the DOTNET-CLR list. I recorded them here because they may prove useful.
-
[SoftDev] Bit Rotation
This article on Bit Rotation for Byte, Short and Int Variables in Java could easily be adapted to C#.
-
[Tools] Free Metrics Tools
I just tried out two new free tools that provide metrics for .NET projects and recommend both of them to anyone who wants a better picture of their .NET code. The tools are:
-
[Languages] New home for Lambda the Ultimate
Lambda the Ultimate has a new home.
-
[.NET - CSharp] DCOM server in C#
Worthy of note is this post on How to write a DCOM server in C#.
-
[SoftDev] Internationalization Karma
Now I have a karmic obligation to link to Iñtërnâtiônàlizætiøn, Scott Hanselman's recent weblog post containing some good links to internationalization resources. There! My karma feels at least a little bit better!
-
[.NET - CSharp] C# Bit Reversal
I just posted a new short article on how to Use C# to Reverse the Bits in a System.Byte There are many ways to accomplish bit reversal, and this one is not the most efficient, but my NUnit tests tell me that it works. If you have a better way, please feel free to comment!
-
Use C# to Reverse the Bits in a System.Byte
During an employment search, some time back, I applied for a senior C++ opportunity at Kyocera Wireless, in San Diego. I was invited to the company's office to take a test. As a senior .NET architect and engineer, pretty much all of the tests with which I deal are performed by NUnit, not people. Nevertheless, the economy was in such a condition at that point that I went anyway. When I arrived, I soon observed that the foyer was quickly filling up with people - most of whom had obviously been in school quite recently. This collection of nameless potential "human resources" was efficiently [the best word I can find is] herded into a number of small offices to be given a timed test. Although I was supposedly under consideration for a senior object-oriented C++ position, the test was specifically targeted toward straight "C" hacks. I will not bore my valued readers with either the details or the results, other than to proclaim that I do not currently work at Kyocera. Neither would I ever be likely to work for a company that chooses to humiliate candidates in this manner.
-
[.NET - CSharp] Speaking of Singleton
Speaking of using the Singleton pattern in C#, have a look at Design Patterns potential hazards on Fabrice's weblog and follow the links to the articles he recommends. Also, have a gander at .Net singleton pattern multi-threading issue... by Chris Johnson. An old friend (and ex co-worker) just sent me another great link to an IBM Developer Works article with advice on how to Use your singletons wisely. MSDN has Implementing Singleton in C#, as pointed out by Luciano Evaristo Guerche who was recently cited by Scott Watermasysk. A comment in Luciano's post also points to Implementing the Singleton Pattern in C#.
-
[Languages] Twist of Fate: a C-Compiler in Python
Now this is an interesting twist: Atul's Mini-C Compiler is a C-compiler written in Python. I would make the appropriate allusions to Ouroboros, the snake that eats its own tail, but, as every software professional should know, those allusions would be quite inappropriate because Python was named after "Monty Python," not any variety of snake (see "1.16 Why is it called Python?" from the General Python FAQ).
-
[.NET - CSharp] Software Design Patterns in C#
The Data and Object Factory has a nice presentation of software design patterns including downloadable source code in C#. You will probably find a visit there worthwhile. For each pattern, the authors provide a structural example and a "real world" example. The code is generally clear, concise, and instructive. For example, take a look at the very simple but cool "real world" example where the authors show how to use Singleton to implement a rudimentary LoadBalancer object. Nice!
-
[.NET - General] Comment-Driven Development (CDD) (TM)
A recent secretGeek post on TODO-Driven Development may have started out as a somewhat tongue-in-cheek parody, but I am among the first to admit that I have used this "new" methodology successfully many times! While I now believe that Test-Driven Development (TDD) is a better way to go (when you can), I still use the TODO-Driven approach sometimes.
-
[Tools] Craig Andera's XPQ in a Solution File
Craig Andera tossed off this little quickie, XPQ. It was kind of hard to run it from Internet Explorer, so I promptly wrapped it in a Microsoft VisualStudio.NET solution file and you can find a link to it at CSharpener's Corner. Enjoy.
-
[Tools] WSE 2.0 Final is up
Microsoft has released the new final version of Web Services Enhancements for Microsoft .NET (WSE) 2.0. Do not miss the "Hands on Lab" documents availabe at that URL!
-
[Tools] Microsoft Information Bridge Framework
Information has been recently released on the Microsoft Information Bridge Framework (IBF). This definitely looks like something that will occupy a few coming evenings!
-
[Tools] The OpenNETCF Smart Device Framework
For .NET smart device programming, the OpenNETCF Smart Device Framework looks like a nice addition to the .NET Compact Framework classes. In fact, the OpenNetCF site appears to be a phenomenal resource for .NET Compact Framework developers. BTW, I was tipped off to this site by Larkware's Daily Grind, which has RSS feeds. I keep the Daily Grind high up on my blogroll.
-
CS0042 errors anyone?
I am getting a CS0042 error while trying to compile a solution I did not create: Unexpected error creating debug information file '
a filename with a .PDB extension ' -- 'Unspecified error ' Can anyone advise me on exactly how CS0042 errors come to exist so I can solve this little problem and get this thing running? -
FREE XDN Professional for .NET Bloggers during May 2004
Suffering from a fit of generosity, Mike Schinkel, president of Xtras.Net, has made an offer on his personal blog of a free XDN Professional membership (http://www.xtras.net/xdn) during the month of May 2004 foranyone that blogs about .NET frequently. If you are a .NET blogger, see Mike's post for how to get your free XDN membership.
-
[XML] XMLPatterns.com
I recently came across an oustanding reference site on design patterns for creating good XML. The site is XMLPatterns.com. The content has already been very helpful to me and I recommend this as a useful reference link.
-
[Tools] QuickGraph
The MbUnit Testing Framework uses QuickGraph, a generic .NET graph library. It appears that QuickGraph is now bundled with MbUnit. You can find some additional information about it in the original CodeProject article, QuickGraph: A 100% C# graph library with Graphviz Support, and in the .NET Wiki article, QuickGraph Generic Graph Library for .NET. I think QuickGraph has usefulness beyond its presence in MbUnit, so I am posting a little about it here.
-
[Tools] MbUnit, "an evolutive Unit Test Framework for .Net"
MbUnit is an alternative Unit Test Framework for .Net that includes some evolutions from NUnit and adds some additional features and fixtures. Specifically, some of the new features add benchmarking, performance testing, and "Model-based Testing." MbUnit is the new name for NPerf and represents a significant evolution from that code base. It seems this project had another intermediate name, "GUnit." MbUnit is an ongoing Open Source project and the team is looking for Algorithm writers, GUI designers, Test writers, and Documentation freaks.
-
[Tools] More on PDF: iTextSharp
As mentioned in the comments to "[Tools] PDFCreator," iTextSharp is great for software developers who want to create Adobe Acrobat PDF files on the fly in .NET code. For downloads, etc., please see the iTextSharp SourceForge Project Summary Page. Please note that PDFCreator is *not* a .NET class library; it is a standalone PDF creating utility that installs on your machine as a printer. You simply print to it. Use iTextSharp, or something like it, if you want to generate PDF from code.
-
[Tools] PDFCreator
Yesterday, I found a cool new tool you might find useful. PDFCreator is an Open Source (GPL) tool to easily create PDF files. I have wished for such a free tool for quite some time, now. While I do not normally need the full power of Adobe Acrobat, it is nice to be able to easily create PDF files while browsing or working in my normal applications. PDFCreator installs to work like a printer, so it is very easy to print up a PDF from whatever document you are in at the moment. You can even print PDFs from your web browser. Software developers may find it handy to output syntax-highlighted code directly from VisualStudio.NET (or whatever favorite editors you use) to a PDF file. You can also combine multiple documents into one PDF.
-
[Tools] wxWindows Name Change to wxWidgets
After being "approached" by Microsoft, the current "hosts" for the wxWindows open source C++ GUI framework are changing its name to wxWidgets. See the Name Change Page for details. Julian Smart and Robin Dunn will cease using the name wxWindows by August 2004.
-
[Graphics] Is Blender Insufficiently Appreciated?
This is a bit of a plug for Blender, a fantastic Open Source project that is perhaps the most under-appreciated project on the net. What is Blender? Well, it is just "the open source software for 3D modeling, animation, rendering, post-production, interactive creation and playback. Available for Windows, Linux, Irix, Sun Solaris, FreeBSD or Mac OS X."
-
[Tools] Whereis for Windows
I thought I once wrote a post about various versions of Whereis that can run on Windows, but I can't seem to find it. You can find a number of ingenious versions but I'm going to cut to the chase and just lead you to a cool .NET implementation: Tim Fitzgerald's The Code Project - Whereis for Windows article, complete with source code that compiled fine on my machine. Enjoy!
UPDATE: Be sure to look at the command file (Whereis.cmd) code in the "MuchSimplerSolution" comment at the bottom. Works for me!
-
[Tools] .WhiteKnights: Get on your Whitehorse!
Microsoft places bet on Whitehorse describes Microsoft's proposed visual modeling method for .NET. Written by Martin LaMonica, a C|Net Staff Writer and published in News.com, the article reports that Whitehorse is scheduled for release with the Whidbey version of Visual Studio.NET. It appears that Whitehorse will be an advanced drag-and-drop visual modeling tool.
-
[Tools] FreeMind Mind Mapping Software
FreeMind is a “premier free mind-mapping software written in Java.” FreeMind is something like Personal Brain, MindManager, MindMapper, and other similar software. It may be a bit simpler but it is free (as in both GPL and beer) and is an Open Source project.
-
[Tools] NPerf, A Performance Benchmark Framework for .NET
“NPerf is a framework for benchmarking classes and methods that tastes like NUnit.” It appears that NPerf has evolved into MbUnit.
-
[Languages] The Tao of Xen
Now, this is really interesting. It appears that Microsoft, via Microsoft Research, is working on another new language, currently titled “Xen” (maybe X# some day?). Microsoft Expands .Net With Xen, an article in ExtremeTech, gives a summary of the idea and cites Microsoft Research Looks to Extend C#, a Microsoft Watch article that adds a little more detail. It appears that the definitive exposition at this moment is Erik Meijer's Programming with Circles, Triangles and Rectangles.
-
Note to the builders of MSBuild
One of my heroes, Bruce Eckel, has been doing some serious thinking about automated builds and has published an excellent post, Why we use Ant (or: NIH), on his great weblog, Thinking About Computing (RSS). Another of my heroes, Martin Fowler (RSS), has commented on Bruce's musings in Build Language and has pointed to yet another interesting article, Using Ruby to build Java systems, by Jon Tirsen (RSS/RDF).
-
Resume Dream Catchers
For your historical, or hysterical, information, here are some interesting release dates that can help you catch those "embellished" resumes. As of August, 2009, anyone who claims to have ten or more years experience with .NET had better have a matching "Microsoft" entry on their resume. If not, they either must have worked for one of the MS Elite level partners or should utter the magic acronyms “NGWS“ and “ASP+“! Likewise, any non Microsoftie who claims 13 or more years experience using Visual Studio should be regarded with suspicion! More than 10 years of XML? Did they work for the W3C, perhaps? If not, well, ....
-
[XML] Aaron Skonnard's XML Links and Tools
Aaron Skonnard has lots of XML Resources, including some XML in .NET Tools.
-
[Tools] DataVision Reporting Tool
A reader just pointed me to DataVision, a cool Open Source reporting tool that is “similar to Crystal Reports.” Report descriptions are stored as XML and reports can be exported as HTML, XML, PDF, LaTeX2e, DocBook, or tab- or comma-delimited text files. DataVision is written in Java and has a SourceForge project page.
-
[Tools] Python Boa Constructor
For Python developers, Boa Constructor is a great cross platform Python IDE and wxPython GUI Builder. Boa Constructor is written in Python and uses the wxPython library which wraps wxWindows. Highly recommended - and fun!
-
[Reference] Resume Dream Catchers
NOTE: This post is now an article and can be referenced here. This entry is maintained only to preserve the comment history.
-
Resume: John Tobler
JOHN TOBLER
-
[Tools] Dev-C++ IDE
If you need to code in C++ without the benefit of Microsoft (C) Visual Studio, but you still want to use an IDE, try the free Dev-C++ IDE by Bloodshed Software. By default, Dev-C++ installs and uses the Mingw port of GCC but it can also be used with Cygwin and other GCC-based compilers.