Archives

Archives / 2004
  • Stallman

    Sudhakar has a link to a post by Richard Stallman that illustrates just how paranoid Stallman is of Microsoft. It is quite amusing:

  • Macromedia's New Player

    Macromedia is readying a new version of the Flash player. Looks like we will be seeing huge performance improvements and lots of new filter effects (things like blur or drop shadows). Stay tuned for more information, as they should be doing a lot more coverage at Macromedia's MAX conference next week.

  • Macromedia Beaten Again

    It's always nice to see a product that you've invested significant time and effort in come out ahead of the big dogs. Articulate's "Presenter" product (which is one of those products that I have invested quite a bit of time in) just took 1st place going up against Macromedia's Breeze at a very respected e-learning conference, which leaves me feeling pretty good right now.

  • Blockbuster

    When Blockbuster started thier $20 a month unlimited rentals deal, I had a feeling it was a result of NetFlix's success. Looks my intuition was correct. You can now have Blockbuster deliver DVDs straight to your house for $20 a month.

  • Bloggregator Refresh

    The Bloggregator is becoming more kick ass every day. The latest preview download includes fixes and some more feature enhancements such as search functionality. Two types of search can be used right now. The first search lets you scan an web page for feed links (useful if you don't feel like browsing to a site just to find the rss link), the second lets you filter posts within feeds. Install instructions are still the same and are included in the readme if you don't remember.

  • ReSharper

    JetBrains ReSharper is a must have for VS 2003 users. I highly recommend it. There are a few minor quirks that I have ran into, but the productivity boost is still great. This is by far the best VS.NET add-in I have encountered.

  • More Aggregator Goodness

    New aggregator build is available. You will need to re-run the db script since there is a lot of new table info. Enough functionality is there now that I am now using it as my default aggregator, but still a good bit to go before the release. New features include post flagging (like outlook's colored flag stuff), fixes, and some more ui work on the post view.

  • Aggregator Updates

    You can download the latest aggregator build from here. You will need MSDE installed and you will need to run the included SQL script to create some tables. This version adds persistence support for feeds and posts for those of you who emailed me and told me you wanted to start using it as your default aggregator already. As you can tell from the screenshot below, there are some minor UI tweaks in addition to the DB support. Some of the more noticeable UI changes are that posts that have already been read are now dimmed so that you can tell them apart from unread posts and post counts are added to the junk and unread messages folders.

  • Bloggregator Sneak Peak Download Available

    Ok. All you guys that are drooling and foaming at the mouth for a little preview of the Bloggregator, you can download it here. This download is only for fanatics, it doesn't do much of anything except load RSS 2.0 / RDF / RSS 1.0 feeds, look cool, and let you preview the p2p search stuff. The search should work fine behind NAT/Firewall assuming there are some “supernodes” online to do a bit of message routing for you (aka. people who aren't behind firewalls). Still a lot of code before the release of course, but the basics are up and running.

  • Uber Bloggregator

    A long while back, I posted about some a client side blogging experimental app that I had begun work on. Well,  I am actually bringing that experimental stuff out into the open and am slinging out code for the coolest blog tool you can imagine. I've attached a screen shot of the progress so far below, but just to name a few highlites (other than the cool UI), I have built-in support for bayesian filters which allow you to mark posts as “Junk“ posts and enable the aggregator to automatically filter out unwanted posts. This is very useful if you subscribe to some of the massive aggregate feeds out there and have a hard time keeping up with what you are interested in because of the plethora of lame posts. There is also some other things I'll be building with the filters that are equally cool, but that is the one that is up and running right now. Additionally, the application contains a bit of P2P functionality that can enable all sorts of cool scenarios. For example, lets say that you are on vacation for a week and end up missing out on a bunch of content from your favorite feed. With a normal aggregator, you would be lost without any hope. However, this baby lets you search for other users who have subscribed to the same feed and download missing posts or even download posts from before you had subscribed to the blog. In any case... just a sneak peak. I'll try to make a preview available some time soon so that you can play around with it a bit.

  • WSE 2.0: Setting a Bad Example

    Today, while working on a uber cool blog tool that I will be talking more about shortly, I needed to utilize WSE 2.0 for authentication. WSE 2.0 authentication is fairly straightforward (though not a walk in the park if you haven't done it before). However, unlike WSE 1.0, WSE 2.0 goes ahead and automatically authenticates your users using Windows auth unless you specify otherwise. Changing this behavior is just a matter of implementing your own UsernameTokenManager class and updating your web.config files. This, of course, is all very brain dead stuff if you have an example or some good docs to walk you through the process. However, the official MSDN examples and all the other guys writing WSE code seem to have been working with another version of WSE, because their examples don't do jack as they are written. It took me a while to figure out why the hell their code was malfunctioning, but finally, with the help of the WSE 2.0 tracing utility, I determined the root of the problem: the wsse namespace used by the UsernameToken class has been changed to match the OASIS specs and is not the one listed in all the damn examples! So, if you are thinking about using WSE 2.0 with some custom authentication, keep in mind that you will need to use this namespace if you are passing UsernameToken credentials:

  • Tablet PC

    My laptop has been acting up, so I bit the bullet and purchased a Toshiba Portage tablet PC (M200) this week. If you are in the market for a Tablet, I highly recommend the Tablet from Toshiba. First off, Toshiba's tablet is the only Tablet with SXGA res that I know of 1024x768 just doesn't cut it for me. Second, it is one of the few that supports 2GB of Ram (Most top out at 1 GB). And third, it is the only one that comes with a nice nVidia GeForce FX card. On the downside, it doesn't come with a cd/dvd, so you will have to drop a few hundred bucks on a USB powered one.

  • Microsoft Abandons Wi-Fi

    According to this article in Business 2.0, Microsoft is shuting down it's Wi-Fi hardware operations. I'm sad to hear this. I have a Microsoft wireless router and a Microsoft hub and both are excellent pieces of hardware that I'd recommend over anything else I've used. The configuration utility on the router is a fine piece of work and the hub has some cool features like the ability to automatically detect when you plug in the wrong type of cable and reconfigure itself (for instance, if you plug a computer to computer cable from your hub to your laptop instead of a computer to hub cable, it detects this and everything works fine). In any case, all the MS hardware I have used rocks, so I hope they can get their foot in the door somewhere else and stay there for a while.

  • Gentlemen, Start Your XQueries

    Lots of people are talking about these express products, but what I haven't seen mentioned yet is that there are express versions of just about everything, including J#, Visual Basic, and SQL Server. That's right, you can get a full blown copy of the kick ass MSDE replacement here:

  • How Not To Advertise Your Crappy Product

    Facing pressure from various competitors Quarbon has decided to get into the PowerPoint to Flash conversion market. Fortunately for their competitors, their product sucks. Apparently, they licensed their technology from a company called “Netron“ who doesn't seem to know much of anything about PowerPoint or Flash. Their status page clearly shows that all but one of the “very high“ priority items haven't even been started, but viewing one of Quarbon's sample presentations also quickly reveals that the few things they do support don't even work (and this is in their official product demos... audio doesn't play until you come back to the slide and placement is wrong the first time you view a lot of slides as well). What is even more hillarious is that if you view the product demo they have on their site, created with their viewlet builder, they have one of their main competitor's (Articulate's) product installed on the box. How can you tell this? Well, the “Articulate“ menu option is in plain view inside PowerPoint for the duration of their demo.

  • Articulate Job

    Here is the official job post I gave you the heads up on a week or two ago:

  • Stealin Secrets from Your Favorite Bloggers

    I ran into this postential security riskwhile doing a security audit of Empower, our content mangement server that will be available for purchase in just a few short weeks, and it turns out to be a common hole that many tools and apps do not protect you from. Most modern web based blogging tools and a host of web site tools include the ability to view referrer information for a given item. The problem is that these tools assume that the incoming urls are valid, so they simply echo them to the screen. Unfortunately, this means that evil users can insert all sorts of nasty scripts into the referrer string and hijack your browser, stealing all sorts of information like domain specific cookies (ie. login info). If you want to see if you are vulnerable, you should go download the referrer spoofing tool over at http://home.wanadoo.nl/lc.staak/quickspoof.htm (and while you're at it, send Rory a nice google wierdos message :-) ). Enter something like http://hacked.com/<script>alert('you have been hacked');</script> and see if you get a dialog box when you look at your referrer logs.

  • Cool Job Opening

    A company that I have done quite a bit of work for is looking to hire a talented, full-time ASP.NET / C# senior dev. They are looking for a sharp person with a background in building e-commerce, content management, and/or portal solutions. If you are getting tired of doing the same old thing every day and are looking for a challenging position where you can really make a difference and have an impact in the industry, I highly recommend sending your resume and a cover letter over to jobs@articulateglobal.com so that you can see what they have to offer. Articulate is a great, smart company that is quickly moving up the ladder and becoming a dominant force in their industry.I have nothing but positive things to say about the company, so once again, I highly recommend checking this out.

    Oh... and by the way, in addition to being a great job with great people, this position is also 99% work from home, which means that other than some meetings which you'll have to fly somewhere like NY to attend, you can do all your work from the comfort of a nice sunny beach :-)

  • ObjectSpaces Should Be Released Like WSE

    So, if we aren't going to get ObjectSpaces merely because some shmackheads at Microsoft think developers can't deal with changes in their object models when Longhorn comes around, they should release a version of ObjectSpaces along with Whidbey the same way they released WSE. This will satisfy the needs of developers who Microsoft promised this stuff in the Whidbey timeframe, as well as allow the community to give feedback on how the current approach works in the real world. At the same time, Microsoft will not be obligated to keep the APIs consistent when Longhorn is released, because the stuff was never advertised as the final deal. Then again, maybe the advertised reason for the delay is wrong. Maybe the reason ObjectSpaces is being delayed is because those shmackheads just couldn't get the thing working after 4 years... if that is the case, we are all in trouble.

  • Linux Just Another OpenSource Photo-Copy Job?

    “According to the study, it's safe to argue that Tanenbaum, who had years of OS experience and who had seen the Unix source code, could create Minix in three years. "However, it is highly questionable that Linus, still just a student, with virtually no operating systems development experience, could do the same, especially in one-sixth of the time," says the study, which was written by Ken Brown, president of the Alexis de Tocqueville Institution.“ [1]

  • Mono Already Dead?

    Seth Nickell thinks Mono is to encumbered by Microsoft and too full of risks to be a viable option. Paulo and Miguel  have already sufficiently discussed this topic, and nothing Seth has to say leads me to believe otherwise. The simple fact is that the Open Source community NEEDs a managed execution environment upon which they can standardize and a set of base class libraries to go with it, or they absolutely will not be able to compete in the coming years. The only other reasonable choice is Java, and it faces much more of these kinds of issues that Seth raises. Of course, the most patent-free route would be for the Open Source community to innovate and create some of their own stuff instead of photo-copying other people's ideas... but when is the last time that happened?

  • Ventuz Acquired By Microsoft?

    A while back, there was a lot of noise around a presentation tool from this company “Ventuz“ that was being used for a lot of MS conferences to make super slick 3d-ized PowerPoint presentations. Shortly thereafter, the company disappeared off the map. In fact, now, the “we will be updating our site soon“ message that used to be found at their domain has been replaced with a nice, IE “this page cannot be found“ message. So, will this slick C#/Managed DirectX app be one of the first super slick Longhorn Office upgrades? We'll see, but it wouldn't suprise me in the least.

  • First C# Codec for H.263

    As of this morning, I have ported the C++ version of our H.263 code to C#... I believe we now have the first H.263 implementation written in 100% managed code. Definately the only Flash H.263 managed code lib out there...

  • Macromedia/Sorenson's H.263 Implementation

    H.263 is a video format the is pretty similar to what you find in MPEG. Like a lot of digital video formats, the first place size reduction happens is at the color level. As it turns out, having an equal representation of R, G, and B values like you are probably used to can be pretty wasteful. For example, your eye can recognize far more shades of green than red or blue. Knowing this, YUV formats are used instead of RGB (some times called Y'CrCb). Y, or luma, stores mostly the green info, while the other two components store the r and b components. Taking into account that your eyes don't need as much distinction between all the colors in the spectrum, YUV formats will generally include less information about the R and B component. In the case of H.263, a format known as 4:2:0 is used. 4:2:0 takes the Y component and stores an array of 8-bit values (width*height) for the image. Following this come the V & U components, which are both stored in individual arrays. However, the V and U values are sampled for each 2x2 block on the screen and only contain 1/4 the amount of information. The loss of detail sucks if you need really crisp edges and you aren't working in a high res environment, but for most types of video (like the average DVD for instance), your eye won't pick up on anything...after all, did you even know they were doing this to you until I told you? :-).

  • Articulate Blog

    One of the companies I did some work for based on our SWFSource C++ library has just launched a blog:

  • Why Microsoft Should Hire Miguel

    With all the great thinking coming from Miguel de Icaza, it is no wonder that Don Box is trying to get him to jump the fence. What makes Miguel so dangerous is that first and foremost, he is a brilliant guy. However, perhaps even more important is the fact that he really truely understands and buys into the same type of thinking that has gotten Microsoft to where they are today. Unlike many of the intelligent people in the Linux community, he believes that components are vastly superior to pipes, he believes that managed languages are the only way to stay competitive in the coming years, he believes that Linux development is way to costly, etc. If his crusade is successful, Miguel will have done far more to give Linux a leg up in the coming years than Linus Torvalds and Richard Stallman combined. My advice to Microsoft: “hire him before he succeeds, or face the consequences.”

  • Google Must IPO

    “Ultimately, an obscure securities rule seems likely to override any possible second thoughts about a Google IPO.

  • It's Official, The Patent System Needs To Be Fixed

    “the [National Research] council recommended in its report that the patent office and Congress take seven steps to improve the patent system. Those steps include, among other things, hiring new patent examiners, creating a more open system for challenging questionable patents, and rejecting more patents on processes that are deemed to be "obvious" by people in the field.” [1]

  • Matt's Book

    Matt Mickiewicz sent me a few chapters from one of his company's latest books: Build Your Own ASP.NET Website Using C# and VB.NET and asked me for my thoughts. It definately seems like a book I could recommend to someone with minimal web design experience. Of course, I tend to underestimate the challenge the average person faces when getting up and running since I've been programming since elementary school, but the book does do a better job of explaining some of the basic details than I could do (even stuff I probably would have completely left out, like installing IIS, etc.). There is some potential misleading info in the chapters I read, such as the discussion of “namespaces,“ where the author says you must import a namespace to use its functionality, which leads to a very common misconception that namespaces actually do something. But, to some degree, I can understand something like this, because telling a beginner that “namespaces don't actually exist in the IL“ or something along those lines is probably counter-productive. The initial discussion of current “.NET“ applications from Microsoft is also a bit out of date for a book being published at this time, but this is also a very minor issue. So, overall, it looks like a pretty solid book for a beginner (like 99% of the other ASP.NET books out there), but if you want the technical stuff, go buy a copy of Essential .NET instead.

  • Free Copy of Visio 2003

    So, you want those cool looking MS icons, but only have a copy of Visio for Enterprise Architects? Time to upgrade:

  • Whidbey Dictionary Exceptions

    In Whidbey, the current implementation of the generic Dictionary class will throw an exception when you do something like this:

  • First Gif, now Jpeg. Let the Litigation Begin.

    A company named “Fogent“ is claiming that it owns the rights to the JPEG patent and is suing the pants off of IBM, Apple, and 29 other big guns [1]. Now if software patents should be valid, JPEG compression should definately be a patentable technology. After all, it is rather complex and isn't something anyone is going to come up with over the weekend. However, the patent Fogent is using [2] (4,698,672) is dated “October 27, 1986,“ and Fogent didn't even start pushing companies to license until 2002, which makes their claims quite annoying. After all, I would be willing to bet that one of the major reasons that JPEG gained acceptance as a standard was the very fact that it didn't have royalities associated with it! Maybe today is too early to overhaul the entire patent system, but the USPTO should at least start requiring people submitting patents to submit information about their licensing strategy as well. This way, the USPTO could examine licensing strategies to make sure that companies wouldn't be able to use their patent storehouses to kill innovation. If, for example, a company had no immediate plans to license their technology, then the patent should be invalidated, because its existence will merely stifle innovation by others. This might require a 2 stage submission process, since licensing decisions usually come later in the game than invention, but there could at least be something like a 2 year window in which a licensing strategy must be submitted along with the patent.

  • JetBrains ReSharper Release Date Slips

    The JetBrains guys have a release date set for M2 of ReSharper. The old release date was “Mid-April“ if I remember correctly, so looks like things have slipped a month or so.

  • Defining Classes in Flash

    Working with ActionScript bytecode can be an interesting adventure. Although Macromedia defines the format of 99% of the ActionScript and SWF tags, they don't do such a good job when it comes to how the Flash player deals with the tags themselves. Until now, this knowledge has been kept secret by the SWF decompiler guys and Macromedia (I know of zero articles or references on this, and believe me, I've looked far and wide), but I'm going to start making this info publicly available as I dig deep into the SWF 7 file format with SWFSource.NET (note that classes were really introduced in MX/Flash 6, so doing this stuff will require Flash Player 6 or higher).

  • Google IPO is Here

    “NEW YORK - Within days, Internet search firm Google Inc. is expected to announce it will carry out an initial public share offering, the Wall Street Journal reported on Friday, citing people familiar with the matter.” [1]

  • Microsoft Slams the EU Commission

    I just ran across the clearest description of the idiocity of the EU commission that investigated Microsoft (echos a lot of the very things I have mentioned previously). It's a seven page paper written by Microsoft's legal team and it is extremely well written and extremely interesting. I highly recommend checking it out. Just a sample:

  • Flashmagazine on Flex

    “...Macromedia used to have a product that did well at the medium/big enterprise - Macromedia Generator. The Generator codebase was getting old and hard to extend and many of it's functions could easily be done using clientside Flash. Due to that, Macromedia discontinued the product (no sales or support) and they had nothing new to replace it with. They could have kept Generator there without doing anything with it and now claimed Flex to be the successor. By not doing this, they caused a lot of frustration with the enterprises that had put their bets on Generator.

    There has been some discussion about the pricing of Flex. We don't think $12000 is a lot for enterprice companies. This is not a high volume product like Flash or Dreamweaver and its feature set is great. Let's just hope the enterprises forget fast and that Macomedia will not change the entire API for each new release like they've gotten sort of a reputation for? Some of these companies also bought Generator for the enterprice price of almost $40000 just to see the price sliced to one tenth the month after. A few months later, Generator was discontinued. Now Macromedia will try to sell Flex to the same companies. That could be a hard sell, despite the rave reviews. “

  • Artima Interest Groups Launch

    “...Tonight I've launched a new feature at Artima called Interest Groups, a free service that allows communities to keep informed and discuss issues. Each interest group is essentially a news feed that serves a specific community. The news feed is moderated by one or more volunteers from the community. Anyone can submit news items for consideration. The moderators check the accuracy of the submissions, and decide which news items to approve. Approved items appear on web pages at Artima.com, in two RSS feeds, and form a topic for further discussion in the Artima Forums...“ [1]

  • Luke Hohmann on Licensing

    Artima has an excellent interview with Luke Hohmann regarding software licensing. Luke states that he isn't quite convinced that there are any viable open source business models to date.

  • Macromedia's New Alternative to Sorenson Encoding

    One of the most interesting part of the SWF specs has been the embedded video section. As you may know, starting with Flash 6.0, Macromedia added support for embedded video inside of SWF movies. The video compression codec was licensed from Sorenson and output to a slightly modified version of the H.263 video compression standard. Although it hasn't gotten any coverage yet that I have seen, in Flash 7.0 / MX 2004, Macromedia has added support for another video codec: ScreenVideo. ScreenVideo basically just divides your screen up into a grid and then encodes each of those grid squares as a lossless (or ZLIB compressed) chunk of data. If a grid square does not change, then the chunk's data is left out in subsequent frames, which means that this format is great for encoding video that has relatively static content (screen recording is a likely usage). Unfortunately, true to Macromedia's style, the docs on the video tags inside the SWF are incorrect (yes, the specs are a ton better, but still a few bloopers in there), and I had to spend all night decompiling SWFs and finally get in touch with Burak (the ASV guy) to confirm my findings. In any case, just to document this so people running into the same prob can find the answer, the ScreenVideo packet needs to be proceeded by UB[4] Frame Type, UB[4] Codec. This bears a striking resemblence to its format inside of an FLV file, which is noted in the specs as UB[4] Codec, UB[4] Frame Type. However, Burak mentioned that the FLV specs might be incorrect and that the reverse order is actually what you want. Oh, well. It works now.

  • Client Side MXML Compiler

    Nik Khilnani has an interesting experiment up and running. After thinking (like many others) that Flex is outragously priced ($10k+), he set out to prove that MXML compilation is a trivial process. Head over to:

  • Tortoise SVN For VS.NET

    If you haven't heard, there is a special version of Tortiose SVN now for people using VS.NET. It gets rid of the .svn folder problem that messed up VS.NET web projects.

  • Macromedia's Improved Swf Openness

    While working on our .NET port of SwfSource (a .NET library for working with flash content and creating flash enabled applications), I have been extremely impressed by Macromedia's latest file format docs. A few years back, when I was working on the C++ version of the SDK, the docs from Macromedia sucked big time. They contained a bunch of misinformation and didn't cover a lot of the information inside the swf file format. Since then, Macromedia has restructured it's file format strategy, getting rid of the C++ SDK that they previously offered (good choice, since it was also crap), and focusing mainly on delivering quality docs so that third parties can create better Flash content creation tools (I'm sure the good docs probably had something to do with the Flex team needing some better explaination of the swf format too). This is the first time I've had a chance to really dig deep into the updated docs, and it is quite impressive when you consider the previous state of affairs. In any case, +1 for Macromedia on this one.

  • WalMart and the Future of RFID

    If you are going to be around (or can make it to) Southwest Missouri (Joplin) on April 13th, you don't want to miss this! We have arranged for Kerry Pauling, the Director of Information Systems for Wal-Mart (US and international) to come up and discuss what Wal-Mart is doing in their IT department regarding their mandated RFID support. No press allowed, but all IT folks are welcome. Send me an email if you would like more information or would like directions to this event.

  • Flash, ZLib, and .NET

    A week or so ago, I resumed work on our .NET based Flash file format library (the C++ version, known as SWFSource is generally considered to be the best lib for Flash encoding and is used in a ton of 3rd party SWF tools). The library should be available within the next few months so that you can begin construction of your own .NET enabled version of Flex or Laszlo (if you want to beta so that you can get started on it today, send me an email and I will get something out to you).

  • IT Offshoring

    “Catherine Mann of the Institute for International Economics makes the case in favor of offshoring: High-tech hardware would have been 20% more expensive in the 1990s if not for offshoring. This spurred investment in more high-tech gear, boosting productivity and freeing up cash to plow into still more innovation. Plus, for every dollar spent on offshoring, the U.S. gets back $1.12 (and the global economy reaps another 33 cents), says a report from McKinsey consultants. Think about it: As more workers in India land higher-paying jobs, they can afford to buy more U.S. products, from processor chips to Hollywood films. By spreading the wealth, offshoring makes life a little better in some of the poorest regions of the world. “ [1]

  • Microsoft

    This is a pretty interesting Slashdotted piece about tracking information embedded in some of Microsoft's PR documents. At the very least, it gives you an appreciation for the editing process that Microsoft goes through, which strips out stuff like ad hom. attacks before they make it to the press

  • AOL Gives Away Spammer's Porsche

    This Porsche Boxer S was seized from a spammer as part of his settlement with AOL. AOL is going to be giving it away to a lucky AOL subscriber as payback.

  • IronPython .2 and Paper

    Iron Python .2 is out, and this time there is a paper to go along with it. No comparisons to Jython in this one, but still interesting stuff.

  • Flex Released, but It's Not a Flash Killer

    “Flex presentation server pricing starts at $12,000 for two CPUs and includes annual maintenance. Special pricing is available for ISVs and discounts are available to government and educational organizations in certain regions.” [1]

  • Bush: Broadband for All Americans by 2007

    “ALBUQUERQUE - Reaching back to revive an idea promoted by the man he beat for the White House, President Bush urged Friday that affordable high-speed Internet access be available to all Americans by 2007, saying it was essential to the nation’s economic growth.” [1]

  • DOJ and US Lawmakers on EU's Decision and My 2 Cents As Well

    ”The European Commission's order for Microsoft Corp. to ship a version of Windows without the Windows Media Player could stifle innovation and help Microsoft's rivals instead of promoting fair competition, the U.S. Department of Justice's antitrust chief said Wednesday..."The U.S. experience tells us that the best antitrust remedies eliminate impediments to the healthy functioning of competitive markets without hindering successful competitors or imposing burdens on third parties, which may result from the EC's remedy," [1]

  • Make Your Icons Spiffy With Image Overlays

    In Windows, it is very common to see an icon that has an image overlayed on top of it to designate something special. For example, when you create a shortcut to another location, you get that nice white box with the curvy arrow that says to you “this is just a shortcut, not an actual document.” On the web, this type of thing can also be very useful in your UI, but achiving the effect with Javascript or layers can be a pain. In our CMS UI, we needed a way to designate which documents in lists were merely shortcuts or overlay different status info on top of icons. If you run into a case like this, here is some code to get you started (note, you probably want to add caching, etc. to this):

  • Laszlo's New Pricing

    Laszlo has announced their low end version pricing. The low end version is limitted to deployment on single processor machines and costs $1,999. Personally, I think they would make a lot more money if that was the price for the Enterprise version. How do they expect to compete against Flash when their lowest end version is five times as expensive and their product doesn't even include any real tool support? [1]

  • Has AOP Arrived?

    “IBM plans to bring a software development technique that has been the subject of theoretical work for years to commercial products this year and next.

    Daniel Sabbah, IBM's vice president of software group strategy and development, on Wednesday plans to detail the company's use of the technique, called aspect orientation, at the Aspect-Oriented Software Development conference in Lancaster, England. Sabbah also will declare that the technology is reliable enough for commercial use, according to IBM.“ [1]

  • Getting Up and Running on VSIP

    One of the very cool tools we are working on here at the office is an ASP.NET based defect tracking system (we actually use it in house already and it is really helping us manage defects effectively as we push to get our CMS out the door). We have some very cool things going on with the system (like integration with NUnit to automatically keep bugs in sync if you use TDD). From the start, I've always thought it would be nice to have bugs show up in the IDE just like compiler errors. After all, runtime errors (like unhandled exceptions) are just as bad to have strewn around your code as compile time errors and a little visual notification would be nice. So, when I heard the VSIP extras were finally here, I rushed out and downloaded a copy. I quickly filled out the sign-up form and 30 seconds later I was downloading the install.

  • Why is Windows Priced So Low

    I found this article quite interesting:

    “At the time of the Justice Department's landmark antitrust case against Microsoft, the software maker was selling its Windows operating system to computer manufacturers for an extremely low price given the company's dominance in the market.

    At the same time, it was charging significantly more for its Microsoft Office application suite. Given that both products had comparable market shares, why did Microsoft charge only about $60 for Windows--its "base" product--instead of the $1,800 that many estimate it could have demanded, and why did it choose to price Office--the "complementary" good--at nearly four times as much?

    The question was key during the trial for understanding Microsoft's competitive position. Never answered to the satisfaction of many observers, the query launched Brian Viard, assistant professor of strategic management at Stanford, and Nicholas Economides, professor of economics at New York University's Stern School of Business and executive director of the Net Institute, to look for an answer. ” [1]

  • Great Opensource Photo Shop Alternative

    GIMP 2.0 is about to be released. You can download a windows installer here. I've been using GIMP for ages now and I have to say it is very cool. I see little reason to spend $700 per dev on a copy of Photoshop for misc. icon editing / image conversion, etc. GIMP beats the hell out of Paint for that type of thing (it can actually do just about everything Photoshop can) and the zero dollar price tag sure is nice.

  • Java Guys Can't Beat VS.NET

    I was listening to a panel discussion entitled “The Future of J2EE Panel, from TheServerSide Java Symposium 2003“ over on www.theserverside.com in which some big Java players (guys from Sun and BEA for example) were discussing the state of the industry and where they saw J2EE heading. What I found extremely suprising was the universal acceptance of defeat versus VS.NET. The belief across the board was that there is no way any J2EE tool vender could ever provide the same quality in their development environments that Microsoft has provided with VS.NET. 

  • .NET Weblogs Archive Goes Mobile!

    When working away from my internet connection, or sitting around in the airport somwhere, one of the things I miss most is my daily blog dose. I got tired of having to miss out on all the action when I am away (or having to pay $15 just to log on to the wireless network at the airport just to read some blog posts while I am waiting for my flight), so last night I whipped up a mobile edition of the .NET weblogs archive. Add this baby to the favorites on your cell and you can get your daily blog dose from anywhere:

  • Should MS Include the Longhorn SDK with the OS?

    Lorie Pearce wants to know if Microsoft should include the massive Longhorn SDK with the OS. My answer: “Forget bundling it. This is Longhorn. Make a freakin smart client app.” Seriously, why the hell would I want 2 GB of docs that will soon be out of date and whose search capabilities blow. Who even uses search on the current SDK docs? About all I use is F1 if I want to look up method docs real quick, but the vast majority of the time I use Google for answers.

  • Fixing Microsoft's Bugs: Url Rewriting

    Yet another day, yet another ASP.NET flaw to work around. If you've ever attempted url rewriting with the .NET framework, two things will quickly become apparent:

  • To MS: Listen to your Customers

    Frans and Martin both think this Yukon and Whidbey delay is crap (as does the overwhelming majority of the people that are commenting on their blogs). I agree. MS has been hyping Whidbey, ObjectSpaces, ASP.NET 2.0, etc. for long enough, and now they are telling us that .NET 2.0 won't even come out until the time when we were originally scheduled to recieve .NET 3.0 (Longhorn version). All you MS bloggers out there, NO ONE REALLY WANTS YUKON AND VS.NET INTEGRATION! We want Whitehorse. We want ObjectSpaces. We want ASP.NET 2.0. We want Generics. Save Yukon integration for a minor release in 2005 (like VS.NET 2003).

  • Unconventional Ways To Avoid SQL Recursion

    Ken Robertson asks, “Which is better recursion or temp tables?” I would suggest that you don't have to do either. Given Ken's case (calculating the number of nodes in a tree structure for displaying image counts), it is likely that this query is going to run quite often, which means that you don't want to lock up your server to preform recursive operations every time a node is requested. One option is to cache the data somewhere, which is a pretty good option in some cases, but in this case, we want real time results. An unconventional way to avoid this breaks normalization rules slightly, but probably offers the best overall solution compared to some of the more complex ways you can do this (not to mention that it is a heck of a lot easier to code than the alternatives). Add a "path" column to each node. Now, when you run your queries, you can do something like this:

  • Classic Security Mistake

    Jeff mentions that MSN fell victim to a classic security mistake wherein a user's authentication credentials are checked on one page, then they are redirected to a new page, which doesn't check credentials (assuming that the user was redirected from the page that did), which allows a sly user to do all sorts of nasty things. This is a huge mistake that tons of application makes and the funny part about it is that the mistake is not rooted in the authentication checking done by the ASPX pages at all as you might assume. The problem is that the application's business logic layer let the request through, even though it was clearly invalid. If the people who coded this part of the MSN APIs had taken the time to code a proper business logic layer, it would have said something like this:

  • Macromedia Needs To Get It's .NET Act Together

    “Andrew Stopford wants to see Macromedia enhance support for .NET and, personally, I couldn't agree more. I believe there are many .NET / Flash / ColdFusion developers out there that would agree with this statement too. While Flash Remoting may support ASP.NET the implementation is terrible-- thanks to FlashORB there now is an alternative. ColdFusion and .NET can only work together in two ways: COM or WebServices. I don't need to get into the merits, and evils, of either approach. FLEX, being still in beta for J2EE systems, is not even conceivably on the horizon for the CLR anytime soon and this really is a shame.

  • Laszlo vs. Flex

    There is a pretty interesting post on the Laszlo message boards comparing Laszlo to Flex. Again, the Laszlo guys confirm that they are porting Laszlo to other platforms (Longhorn/CLR is a good bet). Of course, at 20k+ for a server license, the price isn't exactly enticing for the average developer, but the Laszlo guys say that we should hear about some new low price options for smaller shops within the next few weeks.

  • FreeTextBox 2.0 Released

    Pascal reports along with Scott that FreeTextBox 2.0 is out, and it includes Mozilla support! They are charing $50 for the source now, if you want to have access to it, but the component itself is still free (and, I might add, $50 for the component would still be a steal, this thing is hot). Highly recommended.

  • Passport is Rediculous

    Mike Sax and Chris Kinsman think Passport pricing is lame. This isn't the first time a blogger has commented on this, and once again, I'm going to have to agree. I would use Passport for authentication all the time if it didn't cost $10,000+ to get up and running. What the hell were they thinking? I can implement my own single sign on service in a few hours, why in the world would I pay 10k+ to use someone else's? Like it is really a plus that my customers can seamlessly sign into their hotmail account from my web site. Give me a break.

  • CNet on Central

    There's a big article on CNet about Macromedia Central failing. A few quotes from me in there.

  • Top Reasons Why I like Subversion Better than SourceSafe

    *Offline access is the model Subversion is designed around. You don't have to worry about going offline, because this idea is at the root of Subversion. Subversion was designed to replace CVS, which is typically used for projects with huge geographical dispersion. Think ADO vs ADO.NET.

  • Laszlo 2.0

    Laszlo 2.0 is coming. Sounds pretty cool, especially this part about the new UI components:

  • Subversion 1.0 + VS.NET

     So, Scoble linked to a post about subversion going 1.0 today. What you may not realize is not only does subversion run completely on its own on any Windows machine (yes, no Apache is needed unless you want WebDAV support), but it is fairly easy to get up and running, comes with great documentation, and there is a VS.NET add-in if you just can't wait to ditch SourceSafe, but want to do it from the safety of VS.NET.

  • .NET Rocks

    My .NET Rocks Episode is up. I'm on with Chris Kinsman talking about “.NET success stories.” Great show, IMO, but I might be a little biased ;-).

  • JetBrains IDEA Refactorer EAP Information

    “The early access build of IDEA's ReSharper comes out today. It aims to support advanced code editing and refactoring features for C# developers using VS.NET. I am a big fan of the IDEA Java IDE and have high hopes for this VS.NET plugin. Get yours from

  • ASAP: The "Breeze Killer"?

    Jeremy Allaire thinks he's found a “Breeze Killer.” The app, ASAP by Convoq (which Jeremy just happens to be an investor in and board member of), is actually pretty cool. Integrated video, voice, IM, presentation sharing, etc. He says that it makes “first generation products” like Placeware and WebEx feel awkward, but I have to disagree. Although this is a very cool application, it suffers from the same design flaw that Lazslo does, it is built on top of Flash. This means that, although the UI is very slick, it is extremely unresponsive compared to a standard desktop app, and it sucks up your CPU cycles like mad. Just try doing some screen sharing and you will notice that not only does your CPU utilization go through the roof, but the video is like 8 seconds off, even on DSL.

  • Rory on XAML

    Rory has some great commentary on the “Why Doesn't Microsoft Use SVG or XUL? debate“

  • From MS: Build Your Own Darn Blocks!

    Ron Jacobs is of the oppinion that the community should build their own application blocks. His proposal is quite interesting, because Microsoft would furnish test cases and do some design work and then let the community build the blocks themselves. The reason he gives is that the PAG could never really build all the blocks the want to build, so the community (who apparently has lots of extra time on its hands) could build them themselves.

  • Dave Winer Goes To Microsoft

    If you haven't heard already, Dave made the trek to Redmond. You can find a pretty extensive overview of what he had to say here:

  • SOA, what happens when your service provider goes out of business?

    As we move toward SOA based approaches, we face an interesting dilema. What happens when your service provider goes out of business (or when they kill a product line, or say, like MS tends to say after a few years “upgrade now or die“)? Unlike a software company whose components you have purchased going out of business, this could be potentially devastating to your application's infrastructure. How will you deal with this situation? Does your SLA cover you? Is this outside the scope of a SLA? I have a feeling this may become a hot topic as we move toward service oriented architectures. One major side-effect of this dilema may be the creation of serious barriers to entry for smaller software companies (which have a hard enough time with large licensing deals when they are shipping binaries).

  • Top Blogs For Term (.NET Weblogs Archive)

    I'm working on extending the archives to do some useful stuff with all that data, now that we have a good amount of data to mine. You can preview the first of these features here:

  • .NET Weblogs Archive Updated (Search Support)

    Search and filter are now implemented and runing on the .NET Weblogs Archive. Also new is “Rate this Post” which allows you to assign a rating to posts as you are browsing. Rate this post will be integrated with the RSS feeds (still coming), so that you will be able to rate posts straight from your RSS browser if you are not using the web interface. Also noteworthy, the 25,000 posts that have been archived over the last 10 months or so since the archive first began have all been imported to the new SQL database.

  • New DotNetWeblogs Archive Up

    There is a new version of the .NET Weblogs Archive up and running. We are transitioning from flat xml files to SQL server storage, which will allow nice things like full text search. The XML flat files where becoming too resource intensive and causing all sorts of problems with the large amount of traffic we were getting. This should provide more stability as well as a good foundation for adding more robust features.

  • eHelp Acquisition Blues

    So, right before Macromedia bought eHelp, eHelp acquired some technology from Articulate, which they turned into a product called “RoboPresenter.” Since I wrote the backend for Articulate's technology, I've been watching this quite closely. In any case, RoboPresenter is used to convert PowerPoint presentations into Flash animations. You can do all sorts of things like add naration, set slide timings, etc. However, Macromedia also has a product that does this now (Breeze), which they acquired from their acquisition of Presedia. So, the two overlap. The official word from Macromedia is that they will be killing the RoboPresenter line, which is pretty sucky for all of eHelp's customers. You see, Breeze is not only an inferior product, but it doesn't allow you to publish locally, you have to send your presentations out to a) Macromedia's hosted servers or b) a Breeze server at your site. Publishing locally, is of course a major reason why all these people chose a product like RoboPresenter in the first place instead of Breeze. Macromedia's solution is apparently to give out hosted Breeze licenses to ticked off customers, which hardly solves the problem. RoboPresenter is like $500, compared to Breeze, which is something like $50,000.  So, as soon as your Breeze hosted contract runs out, you wind up with having to choose between coming up with tens of thousands of dollars to renew your license, or going to some other product line. Understandably, there are lots of ticked off people out there, because eHelp just released RoboPresenter a few months ago and the assumption is that they are already abandoning it after promising continued support to all their customers. Interestingly, this whole deal works out good for Articulate, because they will probably wind up getting all of eHelp's (or should I say, Macromedia's) ticked off customers.

  • John Udell Wants To Hear From You

    “In the spirit of Michael's plea, I'm working on an upcoming article in which I'll compare what was promised for the .NET platform (er, framework), two and three years ago, with the current reality as it exists today...Over the next week or so, I'd like to have conversations with people on all sides of these (and perhaps other, related) issues. I'll be speaking with various folks privately, but here's a comment link (rss) for those who want to register opinions and/or provide feedback.“ [1]

  • Back from ATL

    I'm back from Atlanta. Spent a few days there with Wiretree and one of their clients going over like 600 pages of specs for an app we will be joining forces to create. This will my second major colab with their guys. They are definately a top notch design studio if you need ever need some classy design work.

  • Novell's Alternative to System.DirectoryServices

    Novel has released a .NET based library for LDAP operations [1]. Unlike Microsoft's implementation, this is pure managed code, so you won't have to deal with those amazingly informative “Error 0x85000000“  errors that Microsoft's Win32 API wrappers in the System.DirectoryServices namespace love to give you. Some cool features in there too, like async support. And I must also mention, that you can also download the complete C# source. [2]

  • Shadowfax Alpha Code Drop

    “We are currently looking for reviewers to provide feedback on the latest drop of code. If you are interested in participating in an alpha review (prior to the code becoming more widely available on the workspace) please contact Pete Coupland (see admins) along with the name of the organization you work for - and a couple of sentences about projects that you are working on that might have a need for Shadowfax.” [1]

  • Your Dream .NET CMS

    So, over the past 2-3 years we have been slowly putting together our kick ass .NET based web content mangement system. It is designed not only to sit there and manage web pages like most content management systems, but also to be easily extended for other content based applications (like blogging or knowledge bases for instance). Looks like we will be going into public beta some time soon, but we still have a little time left for your input before then (and, of course, we will have plenty of time for input during the beta as well). What features does your dream CMS have? Do you currently use content management? Did you build, buy, or extend? Is anyone actually using MS CMS? What price range are you considering or would you consider for your next CMS purchase?

  • Mono 1.0 Quickly Approaching

    “We keep focused on our Mono 1.0 release, so those of us working on this release get to enjoy fixing bugs, while the others developers get bored to death implementing new code and boring new features.

  • Sam on .NET Rocks

    Sam's interview is up on .NET Rocks. Looks like we are getting more frequent updates over there now. Very nice to see (plus, lots of quality guys being interviewed).

  • Web Services: What is the Industry Smoking?

    “was just idly thinking today about Web Services. You know, the big hype item that some folks hoped would break through the IT economic doldrums after dotbomb and 9/11. There were articles, magazines, conferences, and the normal hoopla, all boiling around this old concept wrapped in new clothes.

  • Open Source Steals More Jobs Than Offshoring

    “ I wonder if more commercial programming jobs have been lost to the open source community giving away intellectual property than to cheap programming shops in India. Admittedly, I can't back that up with numbers, but I suspect it is true. Certainly, IBM has been able to lay off thousands of technical professionals since it embraced open source.“ [1]