May 2004 Entries
If you've been a frustrated VB Developer that wants more out of the language (at least a few things that are in C#) then rejoice!
I like many others have considered a jump to C#, but from what I see in Visual Studio 2005 there really is no point. I can be at least 30% more productive in VB than I can in C# and that isn't just because I already know the language better.
Case insensitive Intellisense is one of the biggest reasons and now that we are getting these new language enhancements C# has literally nothing to offer me. The only thing I really wanted in VB that C# has now is using
Here are some highlights of the new language enhancements:
- Generics
- Operator Overloading
- Unsigned Types
- Set & Get can have different interface types
- Object Renaming with global replacement (not just search & replace here)
- Partial Classes
- My object (same as using in C#)
- Major Asyncronous enhancements
- User Settings built in for forms, webapps, etc. (that you build, I don't mean in the ide)
- Unhandled Exception Events
- Snippet Manager for group or team snippets/boilerplate code
- Bind to business objects
- Form Designer code is now in a seperate file (a partial class) from your development code
- Master Pages for ASP.NET
With these enhancements coupled with Team Services and Modeling we will have a much more productive environment for VB. I swear when Visual Studio 2005 is released I think anyone who still wants to write code in a text editor is a fool.
If you are a plumber you may still want to do this for smaller DLLs, but when writing Managed Code Applications there is just no productivity advantage NOT to use an IDE anymore.
I'll be talking alot more about this in this near future.
Bear in mind, these are only highlights, there are more changes in this version of VB than I have seen in any one version jump of the language (not including the jump to .NET itself)
I have been a Microsoft Certified Professional since 1993 (yes, I have a really low number, lower than the total number of MVPs) and am current in VB.NET and SQL 2000.
Tonight I was invited to participate in a round table discussion with Javier Arrupea, the Program Manager of the MCP program, and about a dozen other MCPs.
I was really happy to participate in helping to improve the program. Now that there are some 1.7 Million MCPs worldwide, the program seems to have lost its luster in favor of the MVP program.
I tend to view the MVP program as a totally political system that is more of a popularity contest than anything really significant, nonetheless the benefits are highly desirable. (that's probably only because I am not an MVP and get frustrated over it, so make me one and I'll probably feel differently)
There are dozens of MCP tracks and there was a time that if your were “certified” it really meant something, now it seems to just be expected if you are a professional in the Microsoft world of computing.
Prepare for that to hopefully change in the near future. Javier is gathering information on just how the current MCPs would like to see the program improve. I am not sure how far along the process is but it seems to me that they are in the final stages of implementing significant changes in both the way we are tested and in the benefits associated with the program.
I do believe this is a very worthwhile program and it gives at least a modicum of credential that someone who is certified has some idea that they know what they are doing. Yes, its true that you can cram for an exam and just pass a test to be certified without any real practical knowledge in the field (aka book knowledge...) but I think that is one aspect that is going to change.
I don't want to talk about all the things discussed because most of them were purely speculative and the real changes will be weighed over the next few months and implemented sometime soon. I am however grateful that I was given the opportunity to voice an opinion in the process and someone with authority in the matter actually listened.
I'm sure that it will take time for the market to react to the changes, but surely an official certification should hold more weight than it currently does.
While I am bitching...
The CTS Track has been great, but I missed one of the tracks I wanted to see because I was 2 minutes late and the room was full. I saw this happen (from the inside at least 3 times already) After they start pushing all this SOA stuff on us, why did they put all the developer tracks for it in one of the smallest room in the Convention Center?
Just a logistics gripe, seems like a strange thing to do to me.
OK, I am a developer but I also do 95% of my own architecting. I mean, isn't that what people hire us for? Usually they need an competent architect, if they just need a coder they could send the work out to India or something...
Anyway, I have to express my extreme disappointment in the whole Architecture track. Maybe it should have been called the Fortune 500 Guy that sits in his office and tells developers what to do track...
NO CODE EVER... These tracks were extremely high level philosophical discussions about how to RE architect legacy systems into SOA systems. Most of what was discussed was how to take a bunch of legacy data and retrofit it into an SOA architecture through abstraction. I'm not saying I want to see WSE plumbing in these, just how to make the proper layers of abstraction for the SOA entities IN CODE. Instead of this stuff (that surely needs to be discussed) why aren't they showing us how to wire together services IN CODE and show us the patterns and practices they are recommending for making a cooperative service architecture that are NOT refactored from traditional client/server methodologies, but made as NEW systems.
I don't know, I have my own ideas about how to do all this, but it I had expected to see alot of patterns that MS had been testing with to prove that this SOA architecture is all that they are sizing it up to be.
I already drank the koolaid on SOA a year or more ago and have rearchitected several systems to move away from the traditional client/server architecture into the heterogeneous, disconnected systems that lend themselves to this type of orientation.
I want to see the code they are recommending, that's all.
My first session this morning was Michele Leroux Bustamante's Intercepting HTTP requests.
I've done handlers before but it never fails, everytime I sit in a Handlers session I learn something and get totally confused at the same time :-)
dasBlonde gave a great presentation, she really has a handle on handlers.
I learned that I can use handlers to deal with something I was thinking about earlier but was sure how to do it. If you ever had a desire to change from one blog engine such as dasBlog or .Text to something else (or the other way of course) you can take the handlers that work in one and apply them to the other and just switch the results that you get to do some ID mapping. This will let you retain all your old permalinks in the new application.
I am planning to do this with an old blog that I have in Drupal so I can convert it to something that's running in .NET, when I get the handler code figured out I'll be sure to post it so you can see how I went about doing it.
Another example is this same methodology could be used to take an old ASP application and convert it over to a new mapping system in .NET
So, if you ever need to chane a mapping schema from something that was less desirable to something more in line with your current development effort while retaining backward compatibility, handlers just may do the job for you.
Other than that, Michele demoed a nice way to do watermarking of images that can be found at Dot Net Dashboard
Julie did a great job of leading a rousing discussion at the TabletPC BOF
Congratulations to the University of Washington Team for placing second in the Imagine Cup Competition. They wrote a slick Tablet PC Application for education.
Some of the topics included what different people were working on, whether they were targeting ONLY the Tablet, Thoughts on requiring students to have tablets in Universities, and inking recognition development tips & tricks.
A few of us were invited to dinner with Arin Goldberg, the Program Manager for the TabletPC SDK and several members of the development team at Microsoft. Thanks again Arin for a great dinner.
This is one platform to really keep an eye on it has so much potential, as prices for the hardware continues to fall and the software continues to improve it will become a very popular platform. This is your chance to get in on the ground floor of a new development platform, it's still a wide open area for all aspects of development, so many applications just lend themselves to Tablet but very little has been written so far. Now get out there and develop something interesting. (me points to self...)
This was Whitehorse, now its just part of VS.NET 2005 I'll abbreviate it VSM
First what it's NOT:
- UML, but it can export to the useless modeling language
- Low Level Constructs - but you can down to that level when needed
- CASE - case was a failure because it had no framework and needed to generate way too much code
Now that we have that out of the way, we can discuss what it is and why you are going to learn to love it. This is part of the new Team System but I am focussing on the modeling in this post.
With VSM we are getting a new level of abstraction that allows us to incorporate patterns and practices on top of the .NET Framework that offers a rich graphic experience for architecting conceptual modeling that is fully synchronized with our code.
Patterns and Practices are allowing us to standardize certain common bits of code so we can reuse them and never have to write them again. This also allows us to plug in patches and updates very easily without slogging through all our code to make small syntax changes in dozens (or more) files.
It provides for us to make a set of Software Product Lines that promotes reuse across applications like assembly line manufacturing
It gives us a Software component Assembly so that specifications, contracts and software supply chains can be enforced in all the code we are building. using modeling we can build applications in a much shorter time frame by removing the repeated linear code methods we have been using for all these years
Modeling and CodeGen are going to go hand in hand in the new development environment. If we built the models correctly then they can just be rubber stamped on all our applications with ease.
Patterns are the key to codegen. We are embarking on a new methodology and desperately need a new way to create these complex applications without requiring armies of developers just to generate code. Let the machine do it. As architects and developers we can create the building blocks, wire it all up, then just add in our more specific business rules that don't justify codegen yet.
As I've said in previous posts, VSM will provide a way for us to not only build these services, it will allow us to specify them by zone and apply specific rules that a service in the zone must meet.
By using Code Visualization we can further define our ideas by the drag/drop/properties methods we have started to think about in the current version of VS.NET but we can now take this into the enterprise (and our own reuse) by defining not only the patterns and practices that come from Microsoft, et.al. but also the patterns we tend to use all the time in our specific line of business.
The Diagram Models will all have an SDK that will allow us to extend the system and create our own modeling patterns and code to generate based on a set of rules. I am really seeing the light on this one, coding in notepad is for masochists. My systems are so complex that if I had to write every single line of code that goes into them, it would take me a decade to complete anything. By leveraging supplied patterns and practices and common task models we will get a whole new meaning to RAD.
More on the Microsoft Team System. (TS)
You are going to hear a lot about this from me... I just love this new tool and it's coming built into VS.NET 2005
Don't let the name fool you, if you think this is just for armies of developers think again.
If you do Unit Testing, Task tracking of your development, or architecture of any kind in your development you need this tool. If you don't do any of those because you are a single developer and think youi don't need them, think again. As systems become more complex and more spread out across servers you are not going to be able to track much effectively without tools like this.
One thing I need to do consistently is describe where I am in my development process with upper management, this is not always an easy task but TS will make it alot easier to comunicate the development process with non-developers through the built in portal system that creates a full development process cycle website that will track the project, do bug tracking and task assignment, progress and completion status that anyone with a browser can look at.
Email integration makes it easy to move workflow assignments around the team or just send the status to your boss or even your customers if you are a consulting developer.
This is not Source Safe, "Together" from Borland or "Rational" from IBM though it includes ideas from all those systems. It is a completely new and fully integrated way to track everything you do in development.
- Rich Architectural Design - make contraints through DSI about how components talk to each other.
- Diagram Modeling like Visio (except this actually works - both directions)
- Workflow - (yes you can even use this yourself to better track your billing)
- Intergrated fully with VS.NET, Office and Project
- Create and merge private code branches automatically
- Import from other tools like Borland Caliber
- Team Based snippets for sharing approved base source code
- Built in Unit Testing
- Highlighted Code Coverage of the Unit Tests
- Profiling Specifications for enterprice code policy rules
- Development Portal
But Wait... if you order NOW.... Yes there's more, but I will be talking about it after this session I am in now.
With the indroduction of Common Engineering Criteria 2005, Microsoft is publishing some best practices and policies targeted at making IT more efficient. Not only will it assist IT but it will also help developer write better integration tools for the enterprise.
Microsoft Operations Manager (MOM) also gets an upgrade so it works better across multiple servers. This allows you to make one set of management policies and have them distributed with MOM across the whole enterprise.
The Infrastructure Environment will help consolidate disparate configurations into a common framework that makes more sense, repeating the same procedures for a dozen (or 10,000) machines can get old really fast, this is a nice solution to take some of the burden of the IT guys backs.
This one has me reeling.
I thought I knew a lot about state management and how it should be done. Clemens demonstrated about 3 different ways I can improve the way I handle state when using Web Services. One of the best demos he had to cut short, I look forward to delving into his code about how to prevent Phantom Data. This was the highlight of his session for me, the solution isn't perfect but it is very nice when you need to make sure that nothing can be left as a phantom on the server when its not confirmed by the client.
Another great aspect of his talk was how to setup a broker to control an object pool when you are using web services, I really liked this, it's basically a way to use Enterprise Services with WebMethods the same way you would use them with remoting, but the framework doesn't make it apparent that you can do that.
Again, not a lot of new material here, but I did confirm that the really nasty page scrambling bug has been fixed and it is IN the RC version of SP1! That is one bug that drove me crazy, I seemed to have to deal with it much more than I wanted to.
Another thing I took away from the session was the way that Folders work, Why did no one show me that before? I bitched about how OneNote can't open other folders easily and all you have to do is put a shortcut to your other folder inside the "My Notebook" folder. Duh, I immediately felt like an idiot and went and re-arranged my folders.
Folders within folders are perfectly fine.
Not much new here, same basic 10 ingredients that have been talked about for the past couple of years at most conferences.
One thing that was intriguing:
I really liked the part they had about pulling all youur configuration data in at once and stuffing it into your own strongly typed class, then caching that on a per session basis. It makes complete sense and I hadn't thought about doing it that way before. The method they employed was to create a new element in your web config (I know .Text employs this technique but I hadn't thought about it this way) then load that into you own class by implementing an IConfigurationSetting Handler
Ken and Paul are always great presenters, this was no exception, making a tired subject seem more interesting takes great talent and they pulled it off and taught me something to boot.
I always enjoy Don Box's talks and this one was no different. I've never heard Doug Purdy speak before, but he delivered a lot of sage advice.
I took two things away from this philosophical session:
- There is only one program and it is still being written
- The model is the thing, the implementation will catch up
The first part is the philosophical section of the talk. Since everything is literally connected together it's essentially one program with a lot of parts. I tend to like this philosophy. If you can play well with your neighbors then it will be a perfect computing world. You are responsible for your own contributions to the greand ultimate program and once things are added they are almost impossible to get rid of. So when you are designing, design for the long term.
Part 2: see part 1, then as you architect, unless you have a very short-lived program or one that you know will be completely disconnected from everything else (seriously doubtful) then you should focus on your model and let the implementation take care of itself.
This doesn't mean ignore performance, it means that don't let nanoseconds of speed take priority over your code's ability to work with other applications. Remoting is a great thing, its very speedy but it ties you to an architecture that you may not want to be permanently tied to.
ASMX is one method of using WSE solutions, but it certainly isn't the only one. WSE security still requires you to know plumbing though WSE 2.0 (as Don says) only requires you to know plumbing when something goes wrong.
The SOA seems to be a huge theme here at TechED.
I think this is a really good thing, lots of talk about interop going on, it seems that interop no longer means 98 talks to NT at Microsoft.
Steve Balmer's Keynote started with the usual marketing banter of how great Microsoft is and how they are going to make your life better. He seems to have calmed down and become more comfortable as a speaker since I saw him speak a couple years ago.
When he announced WSE2.0 going to RTM today, that was great, I've been waiting for that to hit the streets.
Then we had the Announcement of "IBF", Information Bridge Framework. This is a very nice WSE Enabled package for extending Office with Web Services Integration. The Demo showed an Outlook Message being created, as they started typing, a smarttag showed up that offered rich integration with some backend services to to transactional processes (like buying a stock) then placing the order reference and details into the email message, all from within the email message. Very nice integration that will provide a very powerful tool building platform for integrating VS.NET, Web Services and Office, extending the usefulness of Office without resorting to macros and add-ins. What really blew me away was VS.NET Team System.
WOW! It's WAY beyond SourceCode Control. This is not just an upgrade to VSS. It is a complete workflow solution for VS. The Demo incorporated a nice looking UML system combined with Code Policy enforcement, Deployment scenario validation (with unit testing) and security vulnerability testing.
The smarts behind this will warn you when you are creating a method that can result in buffer overflow security holes and that sort of thing. Overall an extremely nice addition. The workflow is similar to a product from Borland that I saw a few months ago, but appears to be much easier to use as well as more robust in its implementation.
This appears to be a product for VS.NET 2005 and I don't think it will be available for VS.NET 2003. I'm going to be asking around about this particular system all week so as I get some more details, I'll post them.
I'm off to TechED I'll be blogging every day when I get a chance to upload, I'll have pictures, stories and reflections here about all the events that I am attending. I'm going to go into a reporter mode for the first time at a conference so this should be interesting.
I'll be using my TabletPC for the first time at a conference to take copious notes, lets hope the recognition engine does what it's supposed to do so I don't have to post handwriting that you can't read to get articles up quickly. I really look forward to the release of OneNote that uses the same recognition style as the new TIP, writing everything from the TIP would be really annoying.
Yet another reason why I still refuse to use Outlook.
I had to install Outlook 2003 yesterday to check something for a colleague. I'd really like to use Outlook but for a variety of reasons, I just can't. As soon as it was installed and running, I started getting really annoying popups (every minute) about something trying to access my addressbook.
This can be somewhat disturbing, but moreover the popup is impossible to get rid of once you have something that is actually accessing it. There are a multitude of workarounds listed on the above site, but I SCREAMED IN HORROR at the unbelievable solution provided by Express ClickYes!
This is quite possibly the most unbelievable type of workaround I have ever seen and can't believe people still do it, let alone that it is RECOMMENDED BY MS MVPs to others as a viable solution.
The principle here is that when the dialog box is thrown, the little utility will just click the yes button for you.
I remember this type of solution back in my Dialup days when I needed something to keep me connected to the internet.
I see 2 problems here:
- The focus of your apps are changing when a modal dialog is thrown causing undesirable things to happen while you are typing, and
- This is a total kludge that doesn't actually fix anything.
Does it work? sure, but so does pounding a nail in a board with your shoe (or head for that matter).
OK, so fine security can be an issue here, why does the dialog not tell you WHICH Application is trying to access Outlook? Maybe a better solution here would be for Outlook to say:
Hey, AppX is trying to get at your address list, is this OK?
Do you want to allow it permanently so you never see this annoying box ever again?
But the UI wizards at MS would never do anything quite that elegant.
I really hate to sound like a Microsoft basher because in most respects I think MS writes excellent applications.
This is obviously a rushed out patch to put a bandaid on a security hole, but what really bothers me about it is that this same patch has been the only solution since Outlook 2000 SP1+SR1.
I also want to be able to SKIN Outlook, but that's yet another usability story.
So today, after having Outlook on my machine for less than 24 hours, it was again removed, I use Thunderbird and Rainlendar instead and really like them, they are not without fault but do everything I need the way I want to do them.
Some of you may not be able to replace Outlook so easily since you are dependant on shared calendars, etc. I simply refuse to use a piece of software that has this many problems for my personal usability.
Google plans powerful search software; to take on Microsoft
Let's see, WinFS: based in a most likely stripped down version of Yukon that will not be fully supported until 2010 or Google: the most impressive and revolutionary search system ever devised by man... which is available now.
I think there is giant window of opportunity for Google here that MS is going to completely choke on if they don't get it together soon and stop the chaotic changes and bizarre announcements about WinFS.
NTFS needs an update in the worst way, as we get larger and larger HD Subsystems attached to our machines (I have over a Terrabyte just at home...) the need for something that breaks the barrier of folder size (number of files in a folder) limitations, the need for stuffing everything into a Filing Cabinet model and the speed of locating a document by freeform searching is going to be in such huge demand that MS is dropping the ball here.
WinFS will surely be amazing and innovative when it finally arrives, but will they loose the market in the interim?
I'm sure that people will just use WinFS because its built in and they don't know any better, but I would really like to see Microsoft just license known working technology instead of trying to compete by replacing it with something unproven.
They license technology for writing CDs and DVDs, so why not just license the Google Search engine as a modular plugin for WinFS, if they made it a pluggable search technology (Like the should) then replacing it with Google, Yukon Searching or something even better that is yet unknown would be viable and highly desireable. Just fix the fat structure for now to account for giant drive subsystems and leave the searching for later.
When I saw this video on Channel Nine, about a new Powertoy, I thought, awesome, now I don't have to write that :-)
I am writing an application that was going to compile fonts, I also want to go the other way, take a font and make it INK, now I can focus more on that unless someone else beats me to it :-)
Making TabletPC Applications and actually just architecting them is more fun than I have in computing in years.
Julia seems to have moved the TabletPC Design Considerations BOF session to Tuesday Night.
I guess all of us going to the IT Heros/MPC party are going to be late :-)
I really look forward to talking to people in this session, I am working on several items Tablets right now and just LOVE this new SDK. I think I am going to get a second hard drive for my Tablet so I can swap out Beta Development with my Non Beta production environment more easily, I prefer not to use VirtualPC or Multi Booting options on a Tablet.
This will be my first conference with a Tablet it should be really interesting to see how I use it differently in the sessions than I did a laptop last year and a PDA the year before. Everytime I use the Tablet in a new environment, I pickup ideas for new applications.
A quick plug...
If you have ever needed to grab streaming audio or video for download, wanted to optimize and resume huge file downloads, or anything of that sort, go get your Free (as in free beer) NetTransport from Exciting Software. It is a really handy tool that I use all the time.
If you've never seen the Zero 7 - Destiny video go watch it. Maybe you've seen Waking Life, also by Bob Sabiston.
What is important here is not the Video or even the Music, but the software that was used to create it.
If Rotoshop ever gets published... combining that with some things like Adobe After effects is going to make for some new and utterly amazing UIs when Longhorn and XAML are released.
What we have in store for us as developers in the next few years is more exciting than anytime I can think of since I started programming. We have finally gotten technology to the point that doing amazing things on a home PC is not a complete fantasy.
I recently made an 8 node super computer at home just to see if I could and ran a test program on it. The total cost of the hardware was worth somewhere around $3500 (mostly junk laying around...). To think that this is even possible is amazing in itself. To make it affordable to anyone other than NASA is shocking.
I suspect that in 5 years or less, my house will run on an 8 to 12 node main supercomputer with a few Terrabytes of HD and 32+ gigs of ram, talking between processors on 10gbs fiber lines for about $2500. My first 5mb hard drive cost more than that!
Interfacing to that kind of a backend while lounging around on the sofa with my wireless tablet is so sweet.
Don't let anyone tell you Blogs don't matter.
It took a whole 9 hours for someone from Microsoft to respond to my irritated blog post.
Actually I was quite amazed that people (big brother) are monitoring feedster, or something similar in regards to this. So Hats off to Microsoft for some really good efficiency in this regard to their support efforts.
Apparently, it was somewhat MY Fault that I wasn't receiving the Beta I had asked for (though they sure could have sent me an email to let me know before I posted that irritating entry...)
SO... All Irritation is now redirected from Microsoft to ME (well, almost all :-))
I surely look forward to this particular Beta because I am drooling over the new objects I need to write a particular piece of interesting software.
UPDATE: And a week later... look at this announcement
Join the Tablet PC SDK Beta Program
Do you want to use the next release of Windows XP Tablet PC Edition Platform SDK? Join the Tablet PC ISV Beta program. It's easy. Just send an e-mail to tabbeta@microsoft.com and ask to become a member. (May 21, Announcement)
Did I possibly cause that to be posted to the TabletPC site? who knows...
Thank you Microsoft for getting this SDK to me, I really am pleased with what I am seeing here!
It is REALLY annoying that it is IMPOSSIBLE to get this unless you know one of 5 people inside Microsoft!
If they (Microsoft) want Tablet Developers they should be BEGGING people to try it.
I don't care if it's a BETA, I'm a developer, not a baby, give it to me and let me take the risk of trashing my machine with it, it can't be any worse than any of the 25 or so Betas and previews that are in MSDN or freely downloadable.
FFS, Why do I even bother with MSDN if I can't get development Betas! I've received other betas before, why not this one?
Exactly one month ago today I wrote to the ultra secret beta email address (and before that tabalpha too...) and since have received NOTHING, not even an automated response saying they'd file my application away (presumably to annoy me with spam some day or see if I actually write something they want like the normal beta app...)
If I sound a little annoyed I am, it's frustrating to hear them (ms) talk about how great their support for Tablets and Developers are then make building for the next release a guarded secret only for the chosen few.
thhhhhhffffpt.
A Whole new way to look at Usenet...
Not sure I am really all for using this, but it sure has potential to browse usenet on my TV with MythNews.
Larry O'Brien writes about TabletPC Development being a largely open market.
Tablet Software is a completely untapped, wide-open market that I for one plan to exploit to the fullest.
to paraphrase... The News of the Tablet's death is greatly exaggerated.
I don't know where they are coming up with this, however the "tablet" as distinguished from a regular notebook has some validity, it only makes sense for all notebooks to become convertibles when essentially all they need to really add is a hinge and a digitizer.
Working with Ink was easier for me to pick up than working with the Listview control was... in fact, Listview still confuses the hell out of me :-) but I am happily writing apps with Ink and not even blinking.
I dreamed of this day when I bought the first Kaypro "laptop" in 1985.
I am having an absolute ball programming with Ink, There are literally hundreds of potential application we can be writing that no one has even touched yet.
Coupling CodeGen with Ink and Visio like Drag and Drop of components and images can take Software development to a completely new level of ease and RAD.
Something like Softwire for C# takes on new possibilities of coding on the beach in Maui with a Tablet.
After using 4 different RSS Aggregators for the past month to see which one I really like best... I have decided to stick with RSSBandit.
RSS Feeds have become an indispensible way for me to keep up with what's going on in the world.
Products Weighed:
Conclusions:
SharpReader:
- Great mean/lean aggregator for simply reading feeds
- NOT OpenSource
- No toolbars
- no Blogthis capability
- uses 5x as much Ram as RSSBandit
SauceReader:
- Probably the friendliest GUI
- No Comment support
- NOT OpenSource
- Total Memory Pig
- Pretty Icons
- sporadic crashes (but I was using a beta)
Bloglines:
- HTML Implementation, I still use this to hold my OPML so I can access feeds everywhere as a backup
RSSBandit:
-
-
OpenSource so I can tweak it
-
Great memory efficiency
-
nice security features for the browser, tabbed browsing
-
OpenSource
-
Silly looking Icons, but it's OpenSource so I can change them
-
Nice looking GUI out of the box
-
Instant Reply via CommentAPI
-
Did I mention its OpenSource? :-)
Thanks to Mark Pitman for leading me over to it.
Avalon is the most exciting thing about Longhorn for me, I really do look forward to working with it.
From what I've seen of Avalon so far it's the most innovative thing to happen to the presentation layer since Windows 95 and the documentation of GDI.
This online seminar will give you a pretty decent understanding of what is coming.
Nicholas Petreley writes about Gnome 2.6:
“Of all the criticisms one might lodge against GNOME, it's the hypocrisy of its design philosophy that looms largest. GNOME grew out of the desire to free people from Microsoft's ability to dictate what users can or can't do. Yet GNOME is built on the premise that its developers are so much wiser than users when it comes to navigating folders and setting colors that GNOME users shouldn't have a choice in the matter. With an attitude like that, heaven help us if GNOME turns out to be the only defense Linux has on the desktop against a Microsoft hegemony.“
I have avoided Gnome with a passion since I discovered KDE some 3 years ago. Ximian Gnome caused incredible grief to me when I was first trying to learn Linux.
Yes, KDE is slower(not really since 3.1), Yes it's bloated(you can choose not to install everything), but it also is alot more stable IMO than Gnome ever was.
It' not just a windows styling clone, it's not a mac clone (though it can be made to be both), it stands on it's own as a well adjusted piece of GUI technology.
To be honest, I don't really like it either, but I dislike every GUI I've ever used for the same basic reason, they all assume they know what is best for the user to do and lock you into a certain paradigm that is the same thing Xerox came up with 25 years ago.
This comment by icepick reinforces this lunacy in design flawed by fear of competition. To further quote the linked article:
“If we're going to be competitive, we need to follow the
open source defacto standard route, that we're all working
on, rather than being bogged down with the standards process.“
“We need to slow the upgrade to Longhorn, and since that
is relatively costly to businesses, if we can make cross
platform applications work well, there is an opportunity
for Linux migration.”
They see the opportunity, but are completely unable to capitalize on it from lack of vision. I can only hope that somewhere on the way to Longhorn, a truly flexible GUI will emerge with open standards for accessing the GUI, not design standards that restrict the way in which we can present information in innovative and exciting ways. Longhorn and XAML are poised to dominate right and will make every current GUI look like ancient technology. We can only hope this doesn't come at a price of so many restrictions on other levels of Longhorn that it is so unattractive no one will upgrade to it.
It's too bad no one seems to be able to get it together enough to write a bullet-proof GUI that is flexible in design and free from crashing once you depart from the assumed presentation methodology.
If the design widgets were truly object oriented they would be universally replaceable given a set of open standards for hooking into the underlying presentation system, all the current GUIs break miserably when you try to replace elements within them. I'm not talking about skinning. I want to replace objects completely, not just their paint.
When someone comes up with a completely unique, fast, robust, cross-platform presentation system that supports a rich set of open standards they will have no fear from competition, it will be adopted with open arms.
Maybe CodeGen is the answer for this, if we could CodeGen a skeleton in any given language to the underlying presentation engine, then we would have a way to enforce the object's interface in a way that doesn't take forever to write in code.
Here is another possible solution with potential.
“To accomplish this feat, Microsoft is looking at the possibility of a separate user interface that could be instantly accessed for playing back movies, music and other media files.”
I am really looking forward to the possibilities of Lonhorn now.
Up until TechED 2004 Lonhorn for me has been a distant dream that might one day become reality, now that we are approaching a real Beta, I am starting to getting more intrigued by what can be achieved. I can't just drop everything and start looking at Longhorn only code yet, but that day will be comming in the next year I hope.
Having the ability to completely change the UI for a specific task is something I have wanted to work with for a long, long, long time. It just makes sense that we could apply an appliance feel to certain tasks rather than force them all into the desktop paradigm.
These Pictures from WinHEC Explain it thoroughly...
I am working on several applications right now that are doing precisely that, most being targeted at Tablets or TVs.
Specifically in Tablets... a Giant oversight in my opinion is not having a scroll wheel built into the hardware that I can use my thumb to scroll the display with. The joystick on the Toshiba doesn't quite cut it for me, I have been thinking about ways to rip one (tilt wheel would be preferred) out of a usb mouse to bolt onto mine somehow, but don't have the ergonomics figured out yet. With mice going for like $5 it's something to consider if you are a tinkerer.
Someone who sold a scroll wheel that could attach to a wide range of laptops ergonimically and inobtrusively is going to make a boatload of money.
There is some pretty interesting stuff to consider here.
This is a firmly “inside the box” type of thinking, but it does lend some validity to what users expect to see and how they can get really confused when presented with a “different” interface.
Personally, I don't really care if they are confused the first time they see one of my application interfaces, as long as they can understand it within a few minutes and help is instantly recognizable.
Forcing every application into the same paradigm doesn't always make sense, in most business/data applications it does.
I don't design applications to look the same on a TablePC as I do on a Desktop or Web App, though there are always similarities. Forcing a TabletPC to look and act the same as a desktop is a mistake in my opinion, I get relatively frustrated when something is intuitive on a desktop, but really difficult to achieve in the same way with a pen. I'd rather have a completely different interface that is more suited to the pen in that circumstance.
As we move more towards different types of interfaces, the UI is going to have to change, TV Remotes are another interface that just need to be approached differently than the typical keyboard/mouse approach.
While I am on the subject of CSS...
I want all you coders to take one thing into consideration:
“coders are usually terrible graphic artists”
While your left brain - right brain functionality might be quite intact, it is without question that some of the absolute worst layouts I have ever seen are done by programmers who think they are truly beautiful creations.
Beauty is quitefirmly in the eye of the beholder, but whose idea was it to make a <blink> tag? It surely wasn't a graphic designer. Doing things because they are cool or just because they are possible doesn't make them attractive.
Graphic designers make some really ugly stuff too, don't get me wrong here. I am not picking on coders alone.
However, as coders you have the ability to provide an escape route for poorly reasoned or misguided layouts by incorporating the thought of layout into your code designs.
We may think the world revolves around C# or XML or ada code, but in fact, the world sees your layout before they even consider your code. If you feel less comfortable designing a layout than you are writing a quicksort algorithm, get some help, consult a professional designer.
I really love the popularity blogs have gained because it gets more information into our hands than we ever had before. The thing is... Blogs are cool, mostly well written bits of code that only lack one thing, the ability to skin them in a way that a graphic designer can take and run with. Remember, graphic designers are artists, they are tempramental and NOT coders. They don't want to slog through some aspx code just to change the way a column is formatted.
So build these artistic capabilities into your code and even if you don't think anyone will ever want to change the design, someone somewhere will find a reason to.
Microsoft has seen this shortcoming in Windows and have they done anything about it? Not really, but we should have a bit more flexibility in Longhorn through Avalon, Aero and XAML. Linux is just as bad, sure you can skin it, but I don't want to decorate rectangles, we need ways to take containers and completely change them if the need arises. We don't live in a square world, square is just convenient for developers because they don't have to think too much to bang out a square design.
The popularity of Skin Sites and programs like Object Desktop should tell you something... There are enough people who want to make changes that you need to build it right into your code so someone doesn't need to come along and write a hack just to make a change that should have been able to have been set easily from the beginning.
Some coders already do this, others make basic attempts to allow for skinning, others still completely ignore it as a waste of time, or put it off until version 2. The problem with the latter two techniques is that you are alienating a group of potential customers that could be in love with your code if only it allowed them to work the way they like instead of the way you like.
I encourage you to take the time to consider all the ways people might want to change things, especially if you are designing code for use at the presentation level. Designing for artists takes more thought than simply making everything available from CSS. It takes considering how you are grouping objects on the presentation layer. It takes considering that what you put at the top of the screen may be desirable by someone else to go on the bottom of the screen (or not even there...). It takes considering that everything you have thrown into a menu may be desired to be in completely seperate groups by others.
All this can be done quite easily if its thought about while you are writing your code. If this is something that you think might be changed by someone, then by all means make it accessible without writing source code and recompiling to achieve it. For the most part, I really like .Text and as the name says, it's terrific if you only want to blog text. Maybe I should take that as a clue, but I really think that with a few tweaks to the basic skin code of .Text it can enable things like floating menus, image replacement of static text and a few others things that can make it even more attractive to people who want radically different looking loayout for their blogs. I'm not just bitching here, I have spent the better part of the weekend thinking about exactly how to do this so I don't need to jump ship and use a different backend for my blog (most suffer from the exact same thing). I know I am going to here from people who say “you can do that already in ... blah, blah, blah.” That's not what I am talking about, when I get the .Text code the way I think it is more reasonable for the types of layouts you might see on CssZenGarden then I will post it and put my money where my mouth is.
So if you are writing any kind of code with a presentation layer, please consider that your design may be beautiful, but someone else might want to make it radically different.
This is a very intriguing article.
Does Microsoft Care About Web Standards?
The question must seem absurd. After all, Microsoft is a member of the W3C and an active participant in the development of web standards. Ea