New Product: Data Dynamics Reports Public Beta

I am ecstatic about the public beta release of our new product, Data Dynamics Reports. We’ve been hard at work for more than a year to build a new embeddable reporting engine that in addition to many other features will run reports created in the standard Report Definition Language (RDL). We’ve added everything supported in RDL and extended it with many new features that even Reporting Services does not have. I’ll mention a few of the features I’m most excited about…

Themes

We’ve added a theme engine so you can reference style information (colors, fonts, etc.) in your report’s expressions. Change the underlying theme and all your reports will change to the new theme.

Master Reports

Create a master report as a base to include data sources, styles, and common report items for all of your reports. In addition to making it easy for us report developers to embed that common information in to a single place, Master Reports also serve as a great starting point for end user reports.

Ajax-Based Web Report Viewer

Our Report Viewer WebControl allows viewing any RDL report in an ASP.NET application easily, and due to the ajax technology it doesn’t require a full page refresh or ASP.NET post backs.

Windows Forms Report Designer Control

We’ve invested a lot in our designer technology and the same technology we use to publish a first class report designer for visual studio you can embed into your own applications. And if you want an even easier way out, we are providing a compiled report viewer application and report designer application that you can deploy to your users. Of course everything is licensed under a royalty free license for you to deploy to your customers.

Formatted Text Report Item

Embed XHTML directly into your reports. Pull documents from your web pages or embed sophisticated text with multiple formats in a single report item.

Data Visualizers

We have numerous visualization features that you can use as a simple expression to graphically visualize data instead of looking at bland numbers in text boxes.

I’ll talk about each of these features in more detail over the upcoming weeks. For now visit our beta site, download the beta and tell us what you think on the beta forum!

These are just a few of the features that are available in the product right now. We have created this product with the future in mind and have many more exciting features planned. I can’t wait to talk about those too!

My Excuse for Missing the Daily Scrum Meeting

wrecked bike

You can borrow my picture if you need your own excuse, but I wouldn't recommend going through the exercise of creating your own picture :) Other than some minor scratches I am fine, thanks to an armored leather riding jacket and helmet. The bike... not so much. My laptop (which was in my backpack that I slid over the pavement on) has a nasty scratch on the corner but works fine. I think I'm lucky Apple used a metal shell:

scratched laptop

Helpful Resources for Voting in the November-2006 General Election

GovTrack.us
A wealth of active information about the US Congress with voting records, bills, and statistics. Also has an impressive way to find your US Congressional District. Interesting fact: Runs on Mono.
ohioelects.com.
Election Information provided by Columbus Dispatch. Includes an interesting and independent analysis of Candidates' and special interest groups' advertisements which are funded by "multi-million dollar war chests". Don't accept the sound-bites you see and hear in advertising, analyze them. Also includes commentary and analysis on state issues and candidates.
Franklink County Ohio Voter Registration Search
This is incredibly useful if you don't memorize this type of information. Use this to make sure your registered to vote. to find your Party Affiliation, Polling Location, City Area, Ward, Voting Precinct, US Congressional District, State Senate District, State Rep. District, School District, and to view a Sample Ballot. For Franklin County Ohio only.
2006 General Election Candidates - Franklin County (Ohio) Board of Elections
Franklin County Ohio General Election Candidates.
2006 General Election Candidates, Issues, and Voting Information - Ohio Secretary of State
General Election Candidates and Issues from the State of Ohio.
Ohio District Maps
District maps for the state of Ohio including US Congressional Districts (US House of Representatives), Ohio House Districts (Ohio House of Representatives), and Ohio Senate districts.
Sherrod Brown's Site
Candidate for US Senate. View his Issues page. Find out interesting facts and statistics about Sherrod Brown at GovTrack.us.
Mike Dewine's site
Canidate for US Senate (incumbent). View his Issues Page. Find out interesting facts and statistics about Mike Dewine at GovTrack.us.

Finally, I wish I lived in the Ohio's 12th US Congressional district so I could vote for Bill Buckel as a US Congressional Representative. He has thoughtful explanations of issues on his website with references to just about everything he asserts as fact. I have not seen a candidate validate their assertions and stance on issues as he has in his campaign site (Write In Bill Buckel For The U.S. House of Representatives). All political representatives and candidates should document their stance with references as he has.

His issues include the below and many more:

He also lists the following "Statements in Preparation":
  • The Government of Israel should pay reparations to Lebanon
  • Iraq---past, present, and future
  • Rethinking the "war on drugs", "War on terrorism", and war on whatever
  • Open government protects our civil rights
  • No more wars without a Congressional declaration of war
  • Reducing the ratio of low-paying jobs
  • Immigration
  • Reasonable pay for congressmen/women

"I don't understand all these people who say that Macs never crash."

As Joel says I don't understand all these people who say that Macs never crash. I couldn't agree more. I've had a Macbook Pro for several months now and my experience is going down hill. It crashes often, not only the same crash Joel speaks of (although the recent Airport updates seem to help), applications are definitely more unstable on Mac than Windows. Even the built-in text editor crashes frequently without warning. Admittedly the UI for a crashed application looks nicer on a Mac, maybe that has something to do with it, but it doesn't get any points with me. A crash is a crash and I have the same reaction every time (of which the words I utter are inappropriate to note here :) ).

OSX was great fun at first. It is beautiful, and a fun new toy with all new apps and system directories to explore. I was completely sold on Mac Mail for quite a while. Telling everyone it was simply the best mail program anywhere. That is until I noticed Mail was not downloading mail from one of my accounts. No error, no nothing, it just didn't download.

It took me quite a while to realize it as I have four mail accounts and a couple of them get lots of email, so I didn't notice I was missing hundreds of messages from one of them. After searching far and wide for a solution, and found others having similar problems, I finally installed Thunderbird and am now using it on OSX.

And I don't need to say much about Finder, as I know even hardened mac users dislike it. It is terrible and has it's own share of crashes when viewing directories with odd file names in them. I wish my beloved Total Commander worked on a Mac. I might keep OSX around longer if it did.

Now that I use Firefox and Thunderbird as my primary applications on OSX, I really don't see the point. I think I'll scrap OSX and install Windows on it until I can get my new laptop. My last laptop was a Toshiba which was the finest laptop I've ever had (and I've had many).

I'm a Book Contributor Now!

Some months back I was offered an opportunity that I am very excited about. Jim Holmes and James Avery have a book to be published in November titled Windows Developer Power Tools: Turbocharge Windows Development with More Than 140 Free and Open Source Tools.

A few months Jim contacted me about contributing to the book, and I was able to contribute two chapters. One on the "Less MSIérables" utility (aka "lessmsi") I developed as well as a chapter about XamlPad. It was a great experience in every way: Challenging, educational, and a joy to write about software development tools! I am grateful to Jim for inviting me to contribute and thrilled about what looks to be a wealth of resources for Windows developers. I am anxiously awaiting the final release and I hope you will enjoy the book !

The real point of terrorism is not the act itself, but our reaction to the act.

A friend just sent me a link to page where a guy made up shirts that say "I am not a terrorist" in Arabic. It seems silly at first, but it has a serious point.

I saw this story on the news about Raed Jarrar being forced to remove his shirt that had Arabic writing on it before being allowed to board a plane at JFK. I was really struck when Mr. Jarrar said something to the effect of I wouldn't have been surprised if it happened in Iraq or Saudi Arabia, but never would I have expected it to happen in the U.S.

The shirt page also noted an interesting quote that I've placed below:

The point of terrorism is to cause terror, sometimes to further a political goal and sometimes out of sheer hatred. The people terrorists kill are not the targets; they are collateral damage. And blowing up planes, trains, markets or buses is not the goal; those are just tactics. The real targets of terrorism are the rest of us: the billions of us who are not killed but are terrorized because of the killing. The real point of terrorism is not the act itself, but our reaction to the act."
What the Terrorists Want

U.S. built major Iranian nuclear facility...

Interesting article...
The Tehran Research Reactor represents a little-known aspect of the international uproar over the country's alleged weapons program. Not only did the U.S. provide the reactor in the 1960s as part of a Cold War strategy, America also supplied the weapons-grade uranium needed to power the facility—fuel that remains in Iran and could be used to help make nuclear arms.
U.S. built major Iranian nuclear facility, sun-sentinel.com, August 23, 2006

Kudos for ActiveReports

Franklin Gauer has posted some kudos based on his experience with ActiveReports in his post Why you don't need much more than Active Reports.... In his post he says:
Any programmer with a little salt will tell you the frustration involved with selecting and sticking with a reporting tool. Traditionally, these reporting tools will only get you about 60% (if you were lucky) the way through any project (the actual percentage is probably around 30-40%). Inevitably the user requests keep coming and they end up exceeding what the tool is capable of.
You need to be able to take a generic datasource (i.e. a dataset served up via a webservice) and be able to format it, group it and total it. That's it. And Active Reports does this very well.

In Apolon's Software Torq blog, there is an interesting post about a new version of the MacroView Studio product that describes some innovative use of ActiveReports' extremely flexible end user report designer.

Travels 2006: Russia, Dubia, and London

Long time no blog… I’ve been on some great travels during July and the first part of August including my second trip to Novosibirsk, Russia, and my first to Dubai, United Arab Emirates, and with a brief stop in London during a layover. Wonderful trips all around. Russia was wonderful, and it’s great to see it green this time and above -40°C and wonderful green everywhere.

Dubai was amazing and a bit shocking to see the insane construction including that of Burj Dubai commencing at one floor per week, soon to be the tallest building in the world. I was told one third of the world’s tower construction cranes are in Dubai! I was also fortunate enough to eat a fabulous dinner at Burj al-Arab, which really does appear to be a seven star hotel (despite the fact that there are only five stars officially ).

I have made a point to put some pictures up in my Picassa Web Album. Russia pictures here, Dubai pictures here, and London pictures are here. I created a google Earth .kmz file to mark our journey from airport to airport as we went. It is a lot of fun to open it in google Earth and press the play button to animate the trip :)

Liberty, Safety, and Spying

Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety.
- Benjamin Franklin

I must say I am glad to hear that the court is challenging The Bush Administration's warrantless surveillance program. In the conclusion of her ruling, Judge Anna Diggs Taylor wrote in part:

For all of the reasons outlined above, this court is constrained to grant to Plaintiffs the Partial Summary Judgment requested, and holds that the TSP violates the APA; the Separation of Powers doctrine; the First and Fourth Amendments of the United States Constitution; and the statutory law.

Defendants’ Motion to Dismiss the final claim of data-mining is granted, because litigation of that claim would require violation of Defendants’ state secrets privilege.

The Permanent Injunction of the TSP requested by Plaintiffs is granted inasmuch as each of the factors required to be met to sustain such an injunction have undisputedly been met. The irreparable injury necessary to warrant injunctive relief is clear, as the First and Fourth Amendment rights of Plaintiffs are violated by the TSP. See Dombrowski v. Pfister, 380 U.S. 479 (1965). The irreparable injury conversely sustained by Defendants under this injunction may be rectified by compliance with our Constitution and/or statutory law, as amended if necessary. Plaintiffs have prevailed, and the public interest is clear, in this matter. It is the upholding of our Constitution.

"TSP" referrs to "The Secret Program" and AMA refers to The Administrative Procedures Act. I take "the Separation of Powers doctrine" to mean the separation of powers as defined in the United States Constitution.

The reason that I think that this is a good thing is that it is allowing government to execute the laudable process as required by the United States Constitution (which the Bush Administration apparently sought to prevent). The Legislative Branch of the government has passed legislation that makes it legal for the Executive Branch to conduct surveillance on US citizens. This was done in FISA. Contrary to popular belief, in the interest of an expeditious process the current law under FISA even permits the " eavesdropping " to begin without obtaining a warrant, so long as the Justice Department seeks a warrant within 72 hours after the beginning of eavesdropping. So there is a perfectly legal way for the Bush Administration to spy on American Citizens without breaking the law.

Going further, if the process is not acceptable to the administration then they should ask our citizen-elected representatives in Congress to modify the law. Does the administration really think that in a so called " post-nine-eleven world " (a phrase which I despise) and a subservient Republican controlled congress that they wouldn't lengthen that 72 hours to 90 days if the president merely asked?

Secretly ignoring a law because it is inconvenient is not okay. Luckily the citizenry found out how the executive branch is secretly executing the law and asked (well the ACLU asked for us) the judicial branch to decide if their practices are legal. Now the judicial branch has made a decision (pending the administration's appeal), and demanded the immediate injunction (i.e. stop it) of the program. For now, both sides agreed to let it continue until the administration's appeal is decided.

Finally, I am donating to the ACLU as soon as I finish posting this. I hope you will to.

Citizens Are Not Permitted to Sue the Government for Spying

The government has refused to let citizens file a class-action lawsuit against telecommunication companies for violating the Telecommunications Act. Apparently there is no doubt that they broke the law or they would let the motion continue. Furthermore, if what the NSA and these telecommunication companies did was lawful, then I would think that implies that Qwest's refusal to comply with the NSA's requests is illegal, but apparently the government doesn't feel they have a strong case. According to quotes in the New York Times, Qwest refused to comply because there was a disinclination on the part of the authorities to use any legal process and the requests violated the privacy requirements of the Telecommunications Act.

Below is a statement issued by the Electronic Frontier Foundation yesterday:
Early Saturday morning, in the darkest hours of the night, the Department of Justice made good its threat to file a motion to dismiss our class-action lawsuit against AT&T, contending that AT&T's collaboration with the NSA's massive and illegal program to wiretap and data-mine Americans' communications (which violates the law and the privacy of its customers)--despite being front page news throughout the United States and the subject of government press conferences and Congressional hearings--is a state secret. The motion was accompanied by declarations by Lieutenant General Keith B. Alexander, Director, National Security Agency and John D. Negroponte, Director of National Intelligence. We will vigorously oppose this motion. Donate to EFF and help stop the illegal spying!
- [DOJ Moves to Dismiss AT&T Class Action under Cover of Night, EFF, May 13, 2006]

Using WinMerge with StarTeam

I've been using Araxis merge for a while, but WinMerge is another great merge/compare utility ($120 cheaper than Araxis) that works well with StarTeam when integrated as described by Jon Galloway here.

mount ISO Images on OSX with hdiutil

Note to self :) Mounting ISO Images in OS X

Or for a GUI use Applications > Utilities > Disk Utility

Immoral War Crimes?

Below is a quotation said by Robert McNamara, United States Secretary of Defense from 1961–1968, during an interview in the Academy Award winning documentary The Fog of War.

LeMay said, "If we'd lost the war, we'd all have been prosecuted as war criminals." And I think he's right. He, and I'd say I, were behaving as war criminals.... But what makes it immoral if you lose and not immoral if you win?
- The Fog of War

Russia Trip 2006 Photo Wrapup

Finally I have taken the the remaining pictures from my tip to Russia off of my camera and posted them. You can find the last gallery of photos here.

New Version of MSI File Extraction & Viewer Utility

I have finally updated my "Less MSIérables" utility (aka "lessmsi") with all of the features suggested by the users of the tool including fixes for the bugs noted. It is probably about a googol times more interesting than it used to be since it now extracts files and maintains their target directory structure just as if they were installed from the msi setup/installation file. There are a couple other things added including the select/unselect all buttons and a new summary tab. Some new screen shots just to wet your taste buds:

Less MSIérables New MSI File Extraction Screenshot
Note the Directory column. This is the directory that the file will be extracted to

Less MSIérables New MSI File Extraction Screenshot
The new summary screen

If you find this utility useful in anyway, I'd love it if you comment below just to let me know.

Download the program and source code here!

SlashDocs: Manage C# XML Documentation in External Files

SlashDocs is a Visual Studio Add-In to help to write and maintain C# XML Comment Documentation in external files included using the C# Documentation Comment <include tag. This is a specialized tool for my needs, but may be useful to other class library developers managing C# XML documentation in an external file. To use SlashDocs right-clicking on a type (e.g. class, struct, interface, enum) or member (e.g. method, property, event), and Select Open SlashDoc File from the menu.

Right-click on a method and select Open Slash Doc File to get the Add-In to change documentation comments in the source code from this:
 /// <summary>
 /// Invokes my method.
 /// </summary>
 /// <param name="myParam">This is my param.</param>
 public void MyMethod(object myParam)
 {
 }
...to this:
 /// <include file="SlashDocs\MyClass.slashdoc" path="/Libraries/Types/Type[@name="MyClass"]/Members/Member[@name="MyMethod"]/Docs"/>
 public void MyMethod(object myParam)
 {
 }
...and this (in a separate file):
 <?xml version="1.0" encoding="utf-8"?>
 <Libraries>
   <Types>
     <Type name="MyClass">
       <Members>
         <Member name="MyMethod">
           <Docs>
             <summary>
			 Invokes my method.
			 </summary>
             <param name="myParam">This is my param.</param>
           </Docs>
         </Member>
       </Members>
     </Type>
   </Types>
 </Libraries>

The SlashDocs Add-In makes moving documentation from the source code to C# XML Comment documentation in an external file quick and easy. It also will quickly jump to the documentation in an external file, if the include statement already exists.

After selecting the Open SlashDoc File item from the context menu, a dialog appears so you can preview path and file name of the external "slashdoc" file that is used when you press OK.A screenshot of this dialog is below:

The dialog in the screenshot is pretty daunting at first, but if you have ever managed these <include...> tags before, it should make sense quickly. I'll try to explain what everything is for. SlashDocs generates the name and path of the target slashdoc file based on the source code file's name and path. To do so it uses two regular expressions: A Match Expression and a Replace Expression, which are the first two fields under Project Settings.

The Match Expression is used to grab the interesting information from the source code file's name and path. Typically, the portion of the path relative to some root directory, and the name of the source code file. The Replace Expression is used to "replace" the portions of the source code file's path with the changes necessary to generate the target path and filename of the target slashdoc file.

The next textbox under project settings which is labeled File Include Base Path is used to generate the path used in the file attribute of the include tag ("SlashDocs\MyClass.slashdoc" in the first example above). This is the path that the value of the file attribute in the include tag is relative to. This must be the directory where the csc.exe compiler is invoked from. Typically this is the solution directory, but I believe with VS2005 this changed to the project directory. When using nant or command line access to csc.exe, obviously you have more control. Whatever your need is, that path should provide enough flexibility. As noted in the dialog, these are saved with the project, so once you get them right for your project, you shouldn't need to change them again. Hopefully you'll just push OK and jump to the file.

March 5, 2006: Get the latest update here.

So download the installer here (166kb), and post any comments or questions you have.

SlashDocs C# XML Comment Tool Update (v1.0.2)

The SlashDocs tool has been updated with fixes for the following bug reports:

  • Some other Visual Studio add-on tools did not like the fact that project settings could be stored with < characters in their value. Now SlashDoc’s settings are under a different name and base64 encoded. You will loose your three old settings, so be sure to open your projects with Slashdocs to jot down your settings, or just be prepared to type them in again.
  • Methods with a single overload, that is two methods in the same type with the same name, were using the same path value.

Download the patch here.

Run Multiple DOS Commands

The pipe character used to work, but on Windows 2000 + you need to separate them with the ampersand character. For example:
cd \windows & dir /w & pause & cd .. & dir /w & pause

ENIAC: A computer is born (news.com)

News.com has an interesting article on the ENIAC. Read the article here. Be sure to listen to the MP3 provided at the link in the article that reads Hear ENIAC programmer Jean Bartik explain how the computer was tested. Confident programmers that were they had a "perfect program" used unit testing and break points for debugging way back then. And I've always heard that debugging back in those days could be meant quite literally.

Novosibirsk in Pictures

More pictures are available here now. Technically I am in Akademgorodok, but everyone just says its Novosobirsk Russia.

Tighter Integration Between StarTeam and Araxis Merge

This will definitely come in handy: VisDiff drop-in replacement using Araxis Merge (borland.com)

[Craig Stuntz's Weblog]

Borland --

With Borland's announcement that they are divesting themselves of their IDE division, the tragedy has finally occurred that has seemed inevitable for the last few years now. Borland, who once produced the finest compilers and IDEs in all the land, has officially announced its demise (again). In some respects, Borland still has the finest compilers, and maybe IDEs, in all the land. Delphi for one is a mature and profoundly capable product by itself. It has a fantastic IDE that in some respects, Visual Studio .NET still falls short of. The Delphi component framework was very innovative and influenced the design of the ".NET Framework" more than any other single product. Delphi's compiler and memory manager are performant and multiplatform, and the compiler can even take a step back and produce IL if somebody should so desire. When you combine all this with the fact that a Delphi compiler can produce modules and components (VCL) that can be statically linked to an application with modules from Borland's C++ products, it is a simply wonderful piece of technology that Borland has let it slip through their fingers. And this doesn't even get into other innovative technologies like Turbo Pascal, InterBase/Firebird, JBuilder, and many more. It would be very interesting if, instead of trying to sell their IDE and compiler products to another company, they open sourced them in a foundation setup something like Eclipse, Apache, or Mozilla. I bet a lot of people would contribute, not the least of which would be the famous community of Delphi hackers where I am currently visiting here in Russia.

St. Petersburg Pictures

Finally I have posted the first round of pictures. Long story as to why this took me so long, party I'm busy and partly because photo software is actually quite terrible on linux and windows. Anyway here are some pictures I took in St. Petersburg on my way to Novosibirsk.

Applications Open Slow on SuSE Linux 10

While traveling here in Russia I ran into huge problem where my applications opened very slowly on my SuSE Linux 10 laptop. And I mean slow. I suspect this problem is applicable to Gnome, KDE, and any X environment, but I've only seen and solved in on SuSE 10 running Gnome 2.12. Applications that normally took a second or two at most to open, were taking around 20 seconds to open! I tried to use SuSE/Novell support to no avail (other than "Installation support" apparently there is not any despite the fact I bought SuSE 10), I searched all over SuSE/Novell, google, etc... Many people reported similar problems with SuSE and other Linux distros and many of them had some recommendation for resolving the problem posted, but often nobody confirmed that it worked.

Unfortunately, none of the recommendations I found solved my problem, but after trying many different things I was able to figure this out. It appears that the problem was solved using the following steps:

  1. Open YaST
  2. Select the Network Devices tab
  3. Choose Network Card
  4. Press the Edit button for your Network Card
  5. Press the Host Name and Name Server button
  6. Uncheck the Change Host Name via DHCP

I suspected this checkbox because I noticed that after I connected my network connection applications became very slow to launch, and in terminal windows the prompt changed from simply "[email protected]:~>" to "[email protected]:~> " (where xxx-xxx-xxx-xxx was the IP address assigned by DHCP). I hope this helps somebody else, and maybe helps SuSE fix this and make an even better product.