June 2004 Entries
The Hi Res versions of the Cassini Pictures are available here.
There is a pretty cool flash movie about the project.
I plan to add some dual wallpaper as these come in, here is the first:

Project Mono today officially released Version 1.0 final.
Congrats to Miguel and company for a remarkable achievement. I for one will be using Mono in at least one project in the near future. I will be amazed if they can keep up with the releases of VS.NET.
discovered on Scott Cadillac's Blog
This Post seems to be a rather short list...
I could recommend at least a half a dozen more VB Coders who have been down in the trenches for years that were, um, passed over or not mentioned...
Some of those include:
I could probably think of a bunch more, but those are all people I read (subscribed to) regularly.
update: there is now a link of my OPML for the VB Bloggers I have found at the top of the page.
SQL Server Express 2005 Technical Preview is the most exciting product I have seen in a long, long time.
First of all, I love MSDE, I use it all over the place and start just about every application I write that uses a database with it. If there is a need for a more robust database, I simply tell the client to upgrade to a full version of SQL. I don't have to do anything to my code and if the client doesn't need all the power of a full version of SQL Server, MSDE this does everything they have ever needed.
Following that sentiment:
SQL Server Express uses the same database engine as the rest of SQL Server 2005, and all the programmatic features are the same.
So this is not much different from the old MSDE that it replaces EXCEPT... I sometimes hit a wall with the database size, not often, but occassionally I would hit the 2Gb limit of MSDE before I really needed to have a full version of SQL Server. That limit is now raised to 4Gb, that should cover 95% of my low end market!
The really BIG enhancement I was looking for in Yukon is the Native XML Datatype, XQuery and XML Schemas. I will be messing around with this in detail soon and will post some ideas I have for using it.
XCopy Deployment is nice, CLR is Nice, but I don't think I will be using those any time soon, XML I will use from Day One.
With this, hopefully people will just say no to using Access Files as a starting point for good. If you don't need a database then just use XML files. When you need a database, this is definately my first option. I think this will go along way to holding up against MySQL as some people prefer to use as a starting point just because it's free.
This is great for the development community as a whole...
And when you decide you still need source control to maintain your sanity try AnkhSVN and Subversion for a nicely integrated Open Source Solution.
Express Edition line of products targetting the hobbyist or academic developer. Offering a slimmed-down version of the VS2005 IDE or SQL Server 2005.
There are several products available. Including language specific editions allowing you to create either Windows forms applications, console applications or class libraries. As well as a Web Dev edition obviously focused around web development using either the C#, J# or VB.net languages. They don't support enterprise level features such as integrated source control, and i'd imagine the licence would restrict you from selling binaries compiled with the products. But being only 50mb(ish) downloads - which are freely available during beta - they're perfect for anyone interested in taking a look at what's to come in the next release of VS2005 and the .NET framework.
There's also a new developer center for VS2005 up on MSDN. Worth a look ...
Visual Studio 2005 Developer Center
Visual Studio 2005 Express Edition

[Via Ben Lovell's Blog]
I stumbled onto this site by accident.
WOW! I have seen some pretty cheesy stuff being passed off for demos, etc. and the actual content in this is not all that impressive, except for the fact that it contains a 15 minute, High Resolution Audio and Video Track in Under 64K, that's right 64K!
It uncompresses/generates approximately 2G of actual data that is optimized and pumped through your system utilizing just about every hardware advantage of your machine. That in itself is quite impressive.
More information can be found here
Coders should all strive to be this efficient.
The OneNote Team has officially wrapped it's first Service Pack.
This is really great news since we are using it corporately much more than we ever thought we would when it first released.
Personally, I find OneNote completely indispensible, I am learning new ways of utilizing it for common tasks almost daily.
Version 2 should prove to be amazing, I am sure there will be a big push for integration with other Microsoft tools like Visual Studio's Task List (for which I am thinking about making a plug-in to read OPML) and InfoPath.
Thanks and Congrats to Chris Pratley and his team for a job well done.
This is rather weird totally irritating.
I Activated a new server last night and immediately got this response via email:
Due to the changes made on the Microsoft Partner Program site, all Action Pack Subscribers will need to enroll into the new Microsoft Partner Program at the Registered Member level (or higher).
What is weird irritating about it is that they sent me an e-mail to the address that IS REGISTERED already. It further says:
If you have not completed the new Microsoft Partner Program registration, you can do so today by following a few simple steps:
When you Activate something at Microsoft, can't they at least check the existing Registration e-mail database with something like a WEB SERVICE that they are shoving down everyone's throat? This is a PRIME demonstration of how long it is taking companies to actually roll out Webservices and how they have not really integrated them into their applications yet (EVEN NEW ONES!)
I would really like to see Microsoft demonstrate the use of their own technology, their “Patterns and Practices”, as well as their espoused directional architectures and stop being complete hypocrites. They either really believe in this stuff or they just want to sell something new, which is it?
I had a similar experience on their Beta Site which was explained to me by a PM at TechED that the app is really old and being rewritten so I blew that one off, this one however IS a new aspx application and has no excuse for not being able to check itself or integrate with their activation system internally.
If you've never seen this
series of very entertaining and informative technical videos go watch it now. The idioms and situations are hilarious, Ralf has a real gift in video production. If you think that all instructional and technical videos are boring and dry, you need to see these!
[Via Christian Weyer: Smells like service spirit]
SpaceshipOne deserves all the attention that it is getting and probably much more!
Congratulations to Paul G. Allen, Tier One and Scaled Composites for a remarkable accomplishment. Hopefully this will open the door to a new era of innovation and technology that carries us into a space faring society. Orbiting the planet is one thing, traveling to another celestial body is another, but this is at least a step in the right direction for privatizing space business.
Governments can do a lot to support these entrepreneurs who will bring innovation and new revelations to all mankind by providing new ways to industrialize space. If we left NASA to provide the military and educational focus and get them out of the satellite launch business, I think everyone would benefit.
Michael Melvill must be feeling pretty darned good right now, his name will be written in the history books alongside a pretty elite bunch of fellows in the annals of space travel.
AKA: I finally caved and am using O2K3.
As much as I dislike it, I am now using Outlook 2003.
I really, really like Thunderbird. Unfortunately it is driving me nuts with problems switching between IMAP folders.
I don't mean I recently “tried“ Thunderbird, I have been using it as my main email reader for about a year, since version 0.3.
I now have a need to do more integration of Outlook with my calendar and OneNote. The more I try to get away from using all things Microsoft, the more I discover that there is just no other solution as productive as the integration you get from using all the office tools together. I hated StarOffice so its not even an option in my book, but there are some things I really hate about Outlook that I can't live with if there is another viable option.
Unfortunately, Thunderbird (like FIrefox) isn't ready for the beating it takes in a production environment for me. I receive several thousand messages a day and they need serious filtering (no, not all of that is spam... mostly listservs.)
Thunderbird Filters are great, I really liked them, Outlooks are pretty much the same. My #1 Annoyance with Outlook is being forced into the UI model of Microsoft. I have never liked it and don't think its any more productive to be forced to match your colors to your desktop theme. I also would like to make a lot of changes to the way information is display overall which is impossible unless you write an add-in to do it. That would take a lot more time than I am willing to commit just to change colors and panes around and is probably why we have never seen one available.
WindowBlinds doesn't help much here. I really, really hope that when Longhorn ships we will start to see some fully integrated UI changes that allow us to customize the UI of Windows AND Office with XAML and without the need to use 3rd party tools that cause more problems than they are worth. I will definately miss themes the most in Outlook, maybe someday Micrisoft will understand that no matter how much they want to push people into using their interface many people are just not going to like it and will try to circumvent it every chance they get. Building in an option for themes that don't have to be completely hacked would go a long way to pleasing more users and I'm not talking about giving me cheesy themes in a rediculous plus pack.
I've been using Firefox 0.9 for about a week now. Here are a few of my observations
Pleasures
- Tabbed Browsing
- I really like tabbed browsing, it saves me about 20 open windows throughout most of the day.
- Download manager
- The implementation of Firefox's download manager is fairly nice, but I use NetTransport anyway so it's not a real advantage
- Adblock
- This will kill certain scripts and images that tend to be irritating on some sites.
Annoyances
- Mozilla Box Model
- Like it or lump it, having two box models is just annoying, I know that Mozilla actually uses the correct model according to the W3C, but there are so many sites that just don't implement it correctly that using Firefox as the main browser is not as pleasant as IE if you mainly browse Microsoft Developer sites. What should happen is that there should be an option in Firefox to toggle the box model to the way IE implements it, then Firefox would be truly a better browser in terms of display. I'm sure this option would make the standards police scream in horror...
- Download Manager
- Cannot be turned off
- Launching links from other programs
- There is something weird about how some apps launch the default browser, I get a lot of strange dialog boxes showing up saying it couldn't open the browser after its already open (mostly from RSS bandit).
- Windows Update
- doesn't work in Firefox.
- FreeTextBox
- Sites that use FreeTextBox don't work in Firefox
- Keyboard Accelerators
- Some keystroke shortcuts are different from standard windows keys and I can't change them to what I am used to using.
Overall, I like Firefox, but I still can't move to it as my default browser for several reasons, the biggest is that it has too many unfinished features and differences in the way I prefer work that its not time to jump to conclusions and make the switch.
Despite the faults in IE, it's still the most stable, reliable and predictable browser for my daily use. I'll still use Firefox to test cross browser compatibility on my site, but for now, that's about all.
From Ted Graham, basically you just stick a conditional item into AssemblyInfo.cs - very neat tip! See his post for more details.
[Via Scott Galloway's Personal Blog]
and of course the VB way of doing this is in AssemblyInfo.vb:
<Assembly: AssemblyTitle("MyAssemblyTitle")>
'// Compile a Debug or Release flag into the assembly.
#If DEBUG Then
<Assembly: AssemblyDescription("Debug")>
#Else
<Assembly: AssemblyDescription("Release")>
#End If
Joel Spolsky just wrote this fine article on how Microsoft Lost the API War, however I think I politely disagree with his conclusions.
He states:
Nobody (by which, again, I mean "fewer than 10,000,000 people") wants to develop for the Windows API any more. Venture Capitalists won't invest in Windows applications because they're so afraid of competition from Microsoft. And most users don't seem to care about crappy Web UIs as much as I do.
Here is the problem with a statement like that...
I know that stats are another word for lies, but this is the closest I can get to a reliable number with some quick math...
- U.S. Total Internet Penetration (% of population): 69.8%
- U.S. Total Broadband Penetration (% of total internet): 55% or 38.39% total population percentage
- U.S. % of World Internet usage: 26.4%
Therefore: US Broadband accounts for just 10.13% of the WORLD's internet usage.
This is the glaring hole in his conclusion. 10% of a market doesn't drag the rest of the industry around with it, never has, never will. As the rest of the world starts to catch up (read:China and India) then maybe we would see some real substance in his conclusions.
As I see it, we are still a very long way away from having ubiquitous internet connections. As we remain a connection dependent culture, only being able to access our data with connections that are not full time, there will remain a dominance of Desktop based software.
He further concludes:
None of this bodes well for Microsoft and the profits it enjoyed thanks to its API power. The new API is HTML, and the new winners in the application development marketplace will be the people who can make HTML sing.
I see the trend of DATA being predominately accessed via the internet, but NOT applications. We will become more reliant on applications that can use data stored both locally and remotely and desire to share and merge that data in a more substantive way than we are able to do today. We will connect to that data via Web Apps AND Desktop Apps simultaneously.
I want to be able to connect to a datasource and grab the information I need, cache it locally and move around with it, when it is possible for that data to be merged/updated via a connection my local Windows based agent will just do it, even if my machine is turned off, sitting in my backpack. This obviously doesn't happen today, but it's what we will be able to get from the next generation of tools coming out of Redmond.
I'll make a simple case for programming with .NET that I have made many times before. As we continue to rely more and more on computers to intervene in our daily lives we will need ways to create applications that are smarter and more flexible than the monolithic application of the past. This includes the so-called server based web application.
I connect to a plethora of sites, waste countless hours wading through data just to find what I am seeking. Even with search engines this can be a chore, its mostly inefficient and the virtual mass of information I have to deal with on a daily basis is staggering. Information overload is not a trend, its become a fact. There is way too much information for us to consume without filtering and assistance. We are going to become more reliant on the thing that was promised a decade or more ago, agents to go collect our data for us and filter it into useful bits that we can consume in a reasonable time frame. We are just starting to see this implication with RSS and Atom.
Web Applications simply cannot do that for us, we are going to need local, desktop/mobile machine based application that gather the required data and store it in a cache for us to use when we are available for it, not just when we are available AND we have a connection.
We are going to be filtering a lot more data OUT than we actually consume, a locally controlled application that can go gather reams of data and store it locally then mine it offline with a local application. It will not only save us time but make our machines more useful and beneficial to us.
Microsoft has yet to demonstrate what the Longhorn shift is really going to do for us, but they are making a bet that we need to be able to change with much more frequency and rapidity than we have been able to with the tools we have today. We are still writing software in exactly the same way we have since the beginning of the PC Industry.
The whole thing about the new API idea (.NET Framework) and Longhorn is that it's going to provide a new API that works everywhere (at least everywhere that has a framework based API). This means my PC, Phone, TV and everything else that is controllable with the .NET Framework can work from the code I write. Sure Java has this ability but do the have the marketshare and the ability to provide a consistent upgrade path and ease of development?
Joel states that the MSDN Team has won the battle in maintaining backward compatibility, but have they really?
I think what we are seeing is a launching point, we are establishing a new format that sheds the old baggage of a disconnected world, builds on the lessons learned in the past and creates a new platform for the next several decades. With the advent of this new platform, there will then be a return to the same upgrade path Microsoft has always maintained in the past. Upon the establishment of the new system, the backward compatibility (within .NET and Longhorn) focus will be the same as it has always been at Microsoft, a Top Priority. This is what kept people building on the Microsoft platform and it is what will keep them building on it. From time to time, a paradigm shift is necessary to make a giant leap forward. Longhorn and the .NET Framework are that leap, once the leap is established and the old is laid away, confidence to reuse what we build with .NET and Longhorn will have the same reliable upgrade path that the Win32 API gives us now.
Hehehe,
This is an interesting way to dump curly braces if you absolutely can't stand them.
a lot of VB Coders just despise the whole idea. Code formatting isn't preventing me from making a transition to C#, what prevents me from making the transition is the peculiarities of Visual Studio with regard to C#, no background compiling, etc.
I just find myself more productive working in the sometimes nagging intellisense of VB, I tend to make fewer mistakes and get more accomplished in a shorter amount of time. Yes VB allows you to write really poor code, but so does any other language, I don't buy that as an excuse not to use VB. With Whidbey on the way (and my ability to start coding under Whidbey almost exclusively in a few months) I see even less of a reason to transition. Since 'Generics' and 'Using' were the only things I really wanted from C# that reason has evaporated because they are going to be in VB.
With Codesmith and other tools like it supporting VB why bother going to C#. If someone can give me a real reason, I'm all for listening, but its going to take alot more than an opinion to get me to change over.
Lonestar RC2 is released, it should show up here today. Hopefully this takes care of the rather annoying delays after suspend/hibernate on my Toshiba M205.
Looks like they are really on schedule to get XP SP2 released on time.
Today I was pleased to find an email telling me that the Virtual Server 2005 RC1 is available.
Features across the two Editions are the same, scalability is the only difference. Microsoft Virtual Server 2005 Standard Edition will support up to four processors and Microsoft Virtual Server 2005 Enterprise Edition will support up to 32 processors.
I upgraded from 2004 to the Standard edition with no problems, seems to be a little faster, will post more after I get a little deeper into the testing phase.
This article on MSDN outlines what is new in the FOR XML syntax for Yukon.
Nesting FOR XML Expressions may allow us to use AUTO instead of EXPLICIT on many way we couldn't before. That will be a real timesaver for me, generating EXPLICIT is NOT FUN, even with tools like FOAM.
PATH Mode looks like it will handle alot of the other reasons we were forced to to use the EXPLICIT syntax.
The new XML Datatype is something I look forward to using. Specifically I am hoping that I can use it with triggers, I maintain an audit trail for any data changes and am handwriting an XML record to do this on a per table basis, the new Datatype may make this easier. Another option might be the new Assigning FOR XML Results syntax.
I use FOR XML almost exclusively for retrieving data from SQL now, this is going to be a terrific enhancement for me. Hopefully there will be some type of Explicit designer tool for those complex hierarchies that still can't be achieved with the new enhancements. As my applications move more toward SOA style architectures returning XML data directly from SQL Server takes alot of the drudge work out of creating retrieve code.
The State of Browsers is pretty sad. First of all let me say upfront that I promote supporting standards even more now than I ever have before, by the end of this article you will see why.
This Graphic courtesy of Google should tell you something:

What it tells me is three things:
- Users are unbelievably lazy
- Developers are unbelievably lazy
- Microsoft has no incentive other than PR to fix their browser
Users won't replace a browser that is built into their OS unless it just doesn't work, since IE appears to work reliably for 98% of users needs, users in general could care less about what the competition is offering, they won't go seek a replacement because there isn't a need. Zealots that use OSes other than Windows don't count here.
Developers (and designers for that matter) don't want to be bothered trying to support 4 browsers and for the most part, don't. Microsoft's sites don't support browsers other than IE except to correct gross display errors. Most (I said most not all) developers only test their web apps in 2 browsers (I know I usually do unless there is a good reason to test on more). This is not really an act of laziness on my part, but one of practicality. If I know that my users will ALL be using IE or Mozilla why should I even test my application against another browser. Even when you strictly follow standards, the browser itself doesn't.
If there is no competition, why should Microsoft spend any time developing patches and fixes to standards which don't threaten their market-share. It's a simple business decision, fix the standards support in IE or fix a security hole that DOES threaten their user base and cause much more bad PR.
So what is the point, the point is that unless actual USERS start screaming, emailing and complaining to Microsoft that they want them to make a change, they won't. IE is free, they make $0 from it other than it drives more users to Windows because its far easier to install than anything other than maybe Macs. I really don't care how good Linux thinks it is, its just not as easy to install and maintain as Windows and it probably never will be. Average users are not geeks, they are relatively non-technical people that need to be more productive, tweaking your OS is not productive for MOST users.
Friday, Andrei Herasimchuk compared Microsoft to the Foundation of Asimov fame. Admittedly, not the best analogy but it makes his point easily understood.
He also said:
In fact, you can easily make the argument it is in the nature of successful companies to resist adopting standards, especially if viewed as a means to slow down innovation within the company.
The problem with this statement is that since March of 2001 there hasn't been ANY innovation in browsers. Nothing has changed, so we got Firefox and a new version from some other companies, but there have been 0 updates to IE6 (security related patches are not relevant). Where is IE7? It's buried somewhere at Microsoft, its probably not going to support standards any better than IE6 does and users simply won't care. We will probably see it come out with Longhorn but a new version of IE will not bring any new innovations. Why? Microsoft is leaning back to smart clients and away from the browser. The browser is a nice general purpose tool for viewing things out on the web, but it is a horrible way to present rich UI experiences.
What I absorbed from TechED was that the future of the web is SOA. Does this mean the browser is dead? In its current use, yes.
What does this mean for Developers? Should we stop writing Web Apps? Quite the contrary. What I seem to be understanding here is that we are going to be re-orienting ourselves into a hybrid model of Client-Server, Web Services and Presentation Layers that not only include Browsers, but also include Smart Clients, Dumb Clients and Mobile Clients. For all practical purposes, we are going to be accessing our data through multiple front-ends, not just the (general purpose) browser and not without a browser. We are going to have to allow access to our data in separate applications from the browser front-end much more than we ever have before.
This is obviously not going to happen overnight and we are not going to scrap our current applications to change the model, however, its going to be how we architect things in the next decade. Since I first saw webservices I saw this coming, but didn't really see it taking a major role in anything outside of corporate development until the explosion of RSS and now Atom.
RSS and Atom are Webservices, they are nothing more than a way to feed data to something other than a browser. The trend is going to be this: Feeds like RSS and Atom are going to take over as the target format and Browsers will just be a way to present the feeds in a known way.
I think that RSS and Atom are just the start of these format wars for feeds. Hopefully we can see feeds follow XHTML as a standard but as we move more to a feed based system we are going to see a trend of wanting to stuff more into the feed (including presentation control) than some users actually want. We are going to see Full Content Feeds start to include advertising and other annoying things that drove us to use RSS in the first place, then we will see filters to get rid of the ads... History repeats itself again and again and again.
As Developers we should focus on making feeds highly accessible in multiple ways, focus on supporting standards inside the feeds so the presentation can be changed completely separate from the data.
Why support standards if we are not targeting browsers? Precisely for that reason, if we not only have data being fed to browsers, but also to multiple smart clients, the need for standards based content is even more important so that there is consistency is the way it can be presented.
Even after a week to prepare, knowing full well that HUGE demand would be required for the State Funeral of former President Ronald Reagan no one that I found could supply a decent stream of the video that could fill the demand.
I found that MSNBC seemed to have the most reliable stream, I also tried CSPAN, FoxNews and CNN. Jerking, tiny, blocky video doesn't cut it.
The problem is simple there is still no multi broadcast system in place similar to the mbone (a failure that actually had great potential) that can allow the servers to simultaneously stream to multiple clients.
If there is ever going to be a chance for streaming video to really take off this glaring problem has to be addressed. As we moved closer to real solutions for Media Dedicated PCs the delivery system is very underwhelming.
As demand continues to increase, who can fullfill at the least a consistent VHS quality broadcast over the internet? Total capacity of the internet backbone isn't the problem here, it's the ability to stream the same broadcast to millions with a single provider stream.
Some genius is going to figure this out and hopefully make a boatload of deserved money. Plumbers, go get to it, devise a way to fix this problem, we can get a broadcast stream over the air that is absolutely more reliable than anything streamed on the internet, we have the stream standards, but no one can seem to figure out how to do what the TV Industry has been doing for 50 years. If we can fix this broadcast dilemna it will clear up a heck of a lot of bandwidth that is currently wasted by millions of duplicate connections to the same streams that could really be a single stream. We need some way to do 2 things, just stream the bits out onto public backbone (let the stream deal with the encryption and licensing) and a way to filter those bits so we can ignore the traffic (this is essentially already done anyway).
It's sad that what could have been the most important feed for streaming video was not really considered vital enough to fix properly by the media providers. They will “get it” sooner or later, I know there is alot of talk about it, but I haven't seen any real solutions being proposed yet. I suspect that once this occurs cable providers will be scrambling to adapt just like AT&T has had to deal with VoIP.
As Longhorn approaches, consider this article detailing the new requirements for Fedora Core 2
All OSes are completely bloated. I find the single largest barrier to speed is that people try to make a single machine do WAY too much. Sure it's convenient to have 1000 apps all running off your shiny new 3GHz box but is it really what you want to do?
When I talk to some people and tell them I have 9 PCs at HOME, they think I am running some massive super-computer for unknown reasons... (In fact I have done it just for fun, but not regularly)
Actually I just delineate a very clear separation in what each machine does and isolate a lot of the processing to similar tasks. I have accumulated a lot of hardware over the years and try to stretch the useful life as long as possible. One really easy way to do this is to cut down on the number of tasks each machine performs, XP is perfectly capable of running very fast on a P3-600 with 256M Ram (double the recommended minimum requirements) if you strip out all the extraneous BS that is typically run in the background. With Remote Desktop and GB Ethernet, you can partition your home network to more isolated tasks with dedicated hardware for a lot less than buying the newest hotrod.
I typically have one overloaded machine in the mix, but at the same time I have started to move toward a more utilitarian approach to my home network. I have moved toward machine isolation to tasks, not to users since I am pretty much the only heavy user. This really isn't as hard as it sounds and you can run a pretty effective mail server on a P2-400. My Firewall is a P2-400 that loads everything from CD into ram, it doesn't even have a hard drive, it's completely secure and much more capable than the router/firewalls from the likes of Linksys.
I squeeze out a lot more speed for certain tasks this way than trying to use one or 2 machines to handle everything. Do you ever upgrade your machines? Sure you do, don't throw that old hardware out or sell it for next to nothing, put it to good use as an isolated system to run one of the more frequent tasks that you use all the time. Free up your main machine for more mission critical tasks and leave your email (or image editing, etc.) on a separate machine that you can switch over to in a flash with Remote Desktop. I think you will find that your combined speed is far superior to running on a single machine and a whole lot cheaper than keeping up with the fastest processor on the planet at its premium price tag.
If you are still running a 100mbps network, its time to rethink that approach, the 1GHz cards and switches are now in the home network pricing range and you will see an incredible boost in linked speed when moving files around.
One other advantage to using this approach is that you can access a task based machine from any workstation, I can get to the exact same box running my base app from any machine on the network (and with a single License btw...), I can see it on my TV or I can browse it on the porch via WiFi on my TabletPC. This solution is not yet perfect, but its getting better all the time. I also have far fewer problems from conflicting applications clobbering each other.
I was working on a piece of code today, sort of as an experiment since it was an interim patch, but I discovered an interesting use for __doPostBack; Calling a Server Side VB Function indirectly from javascript.
I haven't seen this documented anywhere as I am sure its not a great practice, but is sometimes useful when there is no other method to get the job done quickly.
I have a WebForm with a Submit button on it that allows inplace cell editing. This is not in a Datagrid, but rather it is in a <DIV> by way of my XSLTPager. Since I already had the Submit button commited on the form and I was only loading the data in the
If Not IsPostback Then
block in my OnLoad Event, I needed a way to send a Page Number back to the server and refresh the data with a new page.
I could have used some odd Viewstate things to make it happen, but I thought of another way.
In my XSLTPager, I support a javascript function that is called when you click on a page, normally this is the function I use to call a Webservice. In this particular case I didn't need to call a Webservice, I just wanted to reload the page with the new page of data.
So in my javascript function I put:
__doPostback(“GetPage“, p);
where p is the page number.
Then in my OnLoad event (in the else part of the If Not IsPostBack) I put:
If Request.Form("__EVENTTARGET") = "GetPage" Then
LoadPage(Request.Form("__EVENTARGUMENT") )
End If
This fires my LoadPage Function with the appropriate Page Number.
Its an easy way to call a function on the Server Side directly from a javascript function without resorting to more hidden fields, Viewstate or for use when AutoPostBack isn't available, like when you set a value from javascript.
I have been saying (and doing) this ever since I started programming with VB.NET.
Rockford Lhotka writes:
I posed this question to some of the guys on the ADO.NET team at Microsoft. After a few emails bounced around I got an answer: “Sometimes it is important”...
Of course that’s not a practical answer, so the short answer to this whole thing is that you should always Dispose() your Command objects just to be safe.
Perhaps it was some holdover habit from vb6, but I also had some problems early on when I was co-writing a DAL that had to hit against an ODBC database with an OdbcCommand object. This lead to some memory leaks that I was having trouble tracking down and it turned out that my partner in the venture wasn't in the habit of disposing commands, just closing them.
I stuck .Dispose in the Finally blocks and Shazam! no more memory leaks...
If you look at any of my public DAL code, you will see those cmd.Dispose() entries. If its missing anywhere, it was an oversight that should be corrected.
Saturday's Yahoo News: Microsoft Offers Free Licenses for Backup Servers
This is an interesting development, Is there really price pressure occurring? or is this a pre-emptive strike?
I often need to do some type of vector art. Usually I opt for something I have readily available here at the office, Illustrator, CorelDraw or Flash/Fireworks.
I recently discovered (through Lockergnome) that there is a FREE Microsoft program that is pretty good for Vector Art, were it not Free, I doubt I would be so tempted to use it, but for the time being, this is a nice addition to my arsenal of software to do Vector Art without the hefty pricetag associated with the products from Adobe and Corel.
It's hard to estimate the plans that Microsoft may have for this nice little tool, maybe an addition to Office, but I think they may someday resurrect their graphics suite (remember PhotoDraw and LiquidMotion?) into something that is actually usable. I suspect there will be a XAML Export for this if they decide not to bury it in obscurity like the other graphics programs from Microsoft.
I could see a real suite that I would use if they bundled interoperability between Expression, PhotoDraw, LiquidMotion, MovieMaker, PhotoStory, WordArt and Office. All they need to do is take the best of all these tools and combine them into one modular Program that exports to the common standards, like PNG, SVG, Flash, MPG and Divx. If Microsoft did this they would really pull some serious marketshare away from the predominant programs for anyone other than professional artists.
Sometime you really have to wonder what Microsoft could do with all the program assets they have that they never use, there is a giant market for a suite like this if it was added to Plus! Media Edition and sold complete for something around $50.
Plus! is pretty useless the way it sits, but if there were a suite like this that worked seemlesly together and supported features of the TabletPC by default they could have a real winner on their hands.
Source Color Coding is an often requested feature of blogging engines, sooner or later someone is going to make a really useful one that works on the fly so we don't have to store all that markup in the posting database.
Until then, here is another useful tools to achieve the desired results
T-SQL was the last on the list of languages I wanted to add to my code coloring tool. I work with SQL Server on an almost daily basis but I never realized there were so many reserved keywords, functions, system stored procedures, etc. On the other hand, highlighting T-SQL proved to be much easier than CSS.
[Via AspNetResources.com articles, news and updates]
I had some trouble (read: it never worked) trying to get the May bits to install on Virtual PC 2004.
At the same time, I was curious about Virtual Server 2005...
So after getting the Beta (which is apparently still labeled VS2004 not 2005) and installing it on my development machine running W2K3 Server, I was delighted to see 3 things: It now can run in a web browser and 2 its about 3 times faster and it seems more stable than VPC.
Running it locally seems really fast, running it over wireless to my Tablet seems just about as fast or more so than Remote Desktop. In short, this is a fantastic way to run a beta product without dedicating a machine to a single beta.
I started by making an XP Tablet Edition Base and called it XPTsp1aBase. This virtual machine is what I can derive from with differencing additions. Differencing means that it has a separate virtual hard drive that all the added software goes on that is different from the base. So I set up the base as a normal virgin installation of XPSP1a and Activated it.
Then I created a new Virtual Machine that uses a differencing drive deriving from the base installation. I called this virtual machine Whidbey, installed Lonestar (XP SP2), VS.NET 2005 May bits and TabletPC SDK RC1.
This has all gone without a hitch, its running a perfectly good copy of everything I need to work with Whidbey for my Tablet Software.
I also have a third VM that I am using WITHOUT Lonestar and TPC SDK, this is so I can see if there are any big differences that I need to be aware of. I have a shared VirtualHD between them both that holds all my sourcecode so I can run it on both platforms and debug accordingly.
I'd really like to make the new Remote Control Full Screen (I suspect this will be added to the final 2005 bits), I sort of have a way to do this, but not quite optimally. If I figure it out, Ill make another post, but so far I am totally pleased with this type of testing environment, it's simple yet complete and doesn't force me to reformat everything to upgrade to new bits or make drastic changes. Since I used a Differencing drive and VM, I can just make a new VM that starts fresh from the virgin install of XP, this is a Brilliant move on Microsoft's part for the development community.
As a single developer with limited resources, I can host every MSDN target platform, test a really strange configuration, etc. right on the same box! When I have something I want a colleague to look at all I have to do now is point them to the web address of the virtual machine and they are looking at the exact same configuration I was.
I can think of dozens of advantages for this over the typical remote desktop approach. If you have a chance to test this platform, I highly recommend it.
OK, I am now sufficiently irritated about this to say something...
Spam is a plague, Virii are a disease almost worthy of nuclear attack and now the hijacking of Google by these subversive search engines and cybersquatters is about all I can take.
Enter some quote to search for at Google... i.e. Like this from Alexandre Dumas "A white horse is in waiting for you behind the esplanade!"
If it's obscure enough you will get almost a dozen hits from cyber hawkers that will try to trap you into clicking on their site instead of what you are really searching for.
Order Soma: Soma: 24 Drugs
... Do not enter. A white horse is in waiting for you behind the esplanade!"
Fouquet recognized the writing and the zeal of Gourville. ...
24-drugs.com/soma/order-soma/ - 14k - Cached - Similar pages
There needs to be some outrage expressed in this type of malicious redirection, it's not only cluttering up the responses from Google, but it's severely detracting from the effectiveness of the search engine. If Google doesn't do something to block it, they are going to loose alot of users to MSN, etc.
What I really want to know is how in the heck they are hijacking so many quotes, it can't be done with metadata. They ALL seem to be linking to each other though to improve their page rank because they have several thousand domains.
This is my wrap up for TechED 2004.
- Most Intriguing Announcement: VS Team System 2005
- Best Track I attended: Tied between Clemens Vasters' State Management and Michele Leroux Bustamante's Intercepting HTTP Requests
- Best Food: The Steak Dinner at Rock Bottom
- Most Fun: Yacking with colleagues at Seaworld
- Most Interesting New Contact: Arin Goldberg
- Least Favorite thing: Being in a Hotel so far away...
- Worst Food: Eggs at Breakfast (yuk.. were they really eggs?)
- Most frustrating: Getting turned away by overcrowded sessions
Honestly if VS.NET comes in a complete package with Team Services in MSDN Universal as it was eluded to in the presentations, then Microsoft is about to embark on a revolution in productivity for developers. If we have to buy Team Services on top of MSDN Universal it's going to shut out more than half their potential users.
I can hardly wait to get my hands on the Public Betas in the Fall that will reveal the complete system, until then I can only start engineering everything I am currently working on to conform to an easily transportable format with the new system. I'm not sure if I should start developing 2 products that I have been holding off until Whidbey now or wait for Team Services, its really a tough call after seeing the modeling system at work. Hopefully the bits we received at TechED can at least get me started in understanding how to develop in this new paradigm.
So far I have had a problem trying to get the May bits to work in a VirtualPC, I can't get it to install, but I did get it to install on a dedicated server with no problems. Hopefully I won't have to dedicate a machine to using the new beta, VirtualPC makes so much sense for working with betas. Now I think I might need to A.) go buy more ram for my desktop (to run a big VPC) or B.) get another hard drive for my laptop so I can swap out the betas with my production environment. I definitely prefer option A.
Life as a developer is going to get a whole lot easier with VS 2005 but in reality that's still a year away. I have 2 major products I want to make on my own, I'd love to get some help to write them but I haven't found anyone with quite the same interest or philosophy in how and why I want to go about architecting the system the way that I want to.
I'm being vague on purpose because I talk way to much about vaporware and things I want to do