| Ward's profileBlah Blah BlogPhotosBlogLists | Help |
|
Blah Blah BlogThoughts about the art and science of software development and other random stuff that probobly interests nobody but me! November 10 Isolate Me From StupidISO? Pronounced not from Webster, but Durossette, as eye-so. Not too very far from eye-sore.
For those not in the know, ISO is a format for storing disk images. An .ISO file is the exact image of a cd-rom or dvd.
Look around you and find a CD-ROM or DVD. Now imagine that whole physical piece of plastic as a single file on your hard drive. Hmmm, let's call it an .ISO file, and when you click on it you can look at it's contents. Kind of like a .ZIP file, but this is an Exact Image of the plastic CD-ROM. With the right software, you can mount/unmount .ISO files just like load/unload cd-roms.
But wait, there is a problem with this simple life.
It's Microsoft.
They have decreed that you can't just click on an ISO to see it's contents. No Microsoft Operating System understands the .ISO file format!!
Now if your a computer master geek like me, programming since eight years old, this is not a problem. I know that there is an unsupported tool from MS. I know that there are multiple shareware/freeware/purchase options out there...
For you "consumers/normal people" out there, well, sorry, there is no support for the ISO format in ANY of Microsoft's Operating System. (what! hun? why not?)
Click on an .ISO file, and you get a dialog asking the equivalent of "I may be the leading Operating System in the world, but I can't understand this file."
"Furthermore, since you are smarter than I am, please tell me what to do...". This works with a few people,
They might as well be saying "Try another Operating System, I am just too stupid to help you, and you might be too stupid to answer the question...".
Linux understands the .ISO format? Hmmm... Maybe...
What are they thinking? Remember when there was no support for looking inside of .zip file when you used a Microsoft OS? Oh, wait... They are just modeling stupid basic behavior from before...
Many of you will say: "Hey Ward, leave poor MS alone, they don't have time to mess with .ISO file formats....". Hmm, that's interesting. (WARNING: High level CS thought::: Then why are they driving towards other virtualization tech then??)
Let me tell you something important: "ISO files are a key technology of the future, as sure as .ZIP files were important in the late eighties."
The faster Microsoft incorporates this technology into their OS, the better off they will be.
September 14 Reporting Services - Report Model Won't Include Views or Tables Without A Primary KeyThe Problem:
Tables and Views without primary keys are "Bad Medicine" for the Visual Studio Reporting Model Project and SQL Server 2005 Reporting Services. The wizard will not add items to the report model that do not have a primary key.
The Solution:
You have to manually add a primary key to views and tables that do not have a primary key intrinsically. But there is another step to make the newly added primary key (and thus the view or table) visible in your output Report Model if you have already created a Report Model in your Visual Studio project.
The Trick: It's easy. The trick is: after we add the logical primary key, we have to "Autogenerate" the report model again. Then it will pickup the changes in the Data Source, and add the view or table to the Report Model.
How Do I Know It Worked: You get a lot more lines of info when you click the "Run" button, none of which are griping about the missing primary key.
More Than One Way To Skin A Rabbit:
You could also delete and re-add the Report Model from the Visual Studio project, or just delay running the "New Report Model Wizard" until after you have added your logical primary keys to any views or tables that are missing them!
General Steps:
Step 1: Add the logical primary key to your table or view that is lacking a primary key.
This is done in the "Data Source View" in the Solution Explorer pane of Visual Studio.
1a. Double click on your Data Source View.
1b. Right-click on the view or table that is lacking a PK. Set a logical primary key. If no field by itself is unique, then multiselect a group of fields that is unique together. Small golden key(s) should appear next to the field names.
Step 2: Regenerate the Report Model, or "Delete - Add" a report model. 2a. Double Click on your "Report Model" in the Solution Explorer pane of Visual Studio.
2b. Right click on the "Model" and select "Autogenerate" from the context menu. A warning will appear - Select "Yes" to continue. 2c. Step through the wizard as before. The sign that all is good will be the removal of the "No Primary Key" warning messages, and the appearance of many more messages during the last "Run" phase of the wizard. April 26 Install my software... Please?I once told someone that the Microsoft .NET framework would be considered "real" when it was installed as part of the operating system. At the time, the .NET framework was a beta product, and I was writing code using the framework due to my participation in the beta program from Microsoft.
The other day I thought to myself: "They are doing it to me again." I know it's a self-centered thought to imaging that Microsoft is making my life harder on purpose, but when users complain that they have to load the .NET framework 2.0 in order to "enjoy" one of my programs, I really begin to wonder why isn't the framework just automatically installed?
I have had some really good software that has never been loaded because the hassle of navigating to the Microsoft Update / Windows Update / MS New Name Update website, selecting optional or custom or where ever the framework is hidden on that particular day, then finding the framework in the list of optional thing-a-bobs to install.... Do you see my point? Click here to install the point seeing framework.
I know, there are all kinds of programming / administration resolutions to this issue.
1. Install the .NET framework with an AD policy, logon script, or other AD trick.
I could use an Active Directory gizmo tech to install the framework. Already doing that, actually. Problem is, some of my "Customers" are not on my "network". Some of my customers are not even in my company. So AD deployment of the .NET framework is a looser idea. Thanks for asking.
2. Add the .NET framework to the install program of my program.
I am prolific. In software, if not blog posts. After three or four years with the same company, my dev directory has over 100 sub-folders. Two weeks ago I wrote a small utility to browse X9.37 files, which are the image cash letter files that the Federal Reserve uses in the Check-21 act. If that means nothing to you, image notepad for text files.
Small applications like the X9 viewer don't warrant their own setup. They are simple .EXE files designed to the xcopy deployed to our "bin" directory, along with the other 300 progams and utilities. Microsoft wants programmers to convert from VB6 to VB.NET, but when a user complains that the VB6 programs all run just fine, but the VB.NET programs require them to perform a painfull download...
So, all the other executables in the BIN directory run just fine, but the X9 viewer won't run. Not without the .NET framework 2.0 version installed. So to distribute one small utility I should write a setup program? A setup program who's main purpose is not to install the utility, but to install some Microsoft code that the utility uses?
The answer in my mind is clear. Why Microsoft does not see this is a mystery. Install the Freaking Framework as part of the Operating System!!! Are you ashamed of it? Do you see the framework as a piece of software that is not really ready for prime time? What is the issue here? The burden of installing your software should not be on my shoulders.
February 24 Vista Ultimate?From a newsletter that I get:
So for every server release, MS has been upgrading the name of the top-of-the-line product... Windows Server Windows Server Enterprise Edition Windows Server DataCenter Edition and now we have... Vista Ultimate! Now the only real question is: ?? On the next version how are they going to TOP ultimate ?? From Dictionary.com:
Some of my suggestions:
January 27 VB Nine?There is a great "Technology Preview" on the MSDN web site that involves the new language extensions for Visual Basic. LINQ is the "language integrated query" extension. The basic idea? Microsoft is proposing extending the Visual Basic language. There are two videos, the first one is the lead and program manager discussing the technology, and the second is the demo, with the program manager (Amanda) running Visual Studio 2005 with the extensions installed.
There is also an installable extension so that you can run the technology preview yourself. You need VS2005 to run the preview. As I am currently working on a release of software, I dare not install this right now!
I have put the second video on my media server here:
There was one eye-widening moment for me in this video. Amanda is typing code into the editor, and intellisense is popping up, suggesting statement completion options. She has typed something along the lines of:
Select * from _
The intellisense dropdown list appears, suddenly I notice that other items are in the list besides the expected tables, views, etc. The list contains the standard objects and collections that would normally be present, like PreformanceCounters. She mentions that you can query any of the standard collections present in the framework.
If this is truly the direction that these "Language Integrated Query" extensions are going, then I am excited. If you have ever queried WMI to get information, then iterated through a framework collection looking to match an ID value then imagine both the WMI query and the collection query using the same language structures. For that matter, imagine performing both lookups at the same time, via a join.
One more thing that struck me deeply. On my old web site (www.durossette.com) I have several RSS feeds as tickers across the top of the page. Mostly technology feeds, they act as headline teases. If one of the headlines catches my attention, I click to find out more. A couple of days ago, the headline "Microsoft Previews Visual Basic 9" caused my mouse to click.
The story was a technology writer's description of the language extensions. There were links to the MSDN site. It's one thing to see a demo and download of a proposed "Language Extension", and quite another to hear this described as "Visual Basic 9.0".
I had to think for a second... where was 8.0? But then it occured to me that after VB6, VS2002-2003 would be VB7, and VS2005 would be VB8, so the next number up to bat would nine. Wow. The train is moving now.
January 22 Virtual InstallationsVirtual is a fancy word for NOT.
After all the trouble moving from the Visual Studio Beta to the release version, I found myself thinking alot about the nature of software installation, versions, and the Windows registry. What I want is a virtual application. Or perhaps what I really want is a virtual installation.
Image a new PC. Install an Operating System. This is as good as it gets. The snappy, responsive user interface will never be faster. As a matter of fact, something quite the opposite happens. The longer the PC is used, the slower it becomes. As software is installed, used, and then deinstalled, it's as if the "arteries" of the machine become clogged.
Registry entries are added, during installation and run time of the program. The removal of the progam of does not remove every entry. Even Microsoft software does this naughty behavior. After deinstalling SQL Server 2005, and browsing the registry, I found an entry for "LastConnect" that pointed to the SQL Server that I had just deinstalled. No doubt this entry was added not by the installation program, but by one of the programs during run-time. Perhaps this entry was used to pre-poplulate the "Connect To:" field in a connection dialog. It's easy to see how a setting that was added outside of the installation could not be removed by the installation.
There is something wrong with the design of the system that requires me to write an "INSTALL" program as a seperate entity from my main program. Often this installation program is written by a seperate person, or team of people. How do we know that they got it right? Why does the system design mandate that they must get it perfect for the de-installation to be perfect?
Inside my source code is the knowledge of all the "settings" that I will read and write. Even dynamic settings that are defined during run-time could be tracked by the operating system.
I am picturing an overhead projector. Turn it on, and there is a large splotch of light projected onto the wall. Take a sheet of plastic with information encoded onto the surface. Overlay the plastic sheet onto the projector, and there is the application. You can write onto the plastic, and perhaps you can erase. But when the sheet of plastic is removed from the projector, the projector is back to it's base state.
January 14 The AMD EcosystemI talked about this in an earlier BLOG (VB.NET Express - How marketing may have caused a misstep.), and browsing the AMD website my eye was caught by this:
AMD64 Ecosystem
More than 1,300 software packages support AMD64 technology.
Someone over there gets it. It's all about how much "water" is in your "land".
|
|
|||||||||||
|
|