Just trying to make sense of things...

Vista SP1 Soon

Monday, 11 February 2008 16:05 by jordan.terrell

**** Update (02/15/2008 09:03 AM CT) ****

Vista SP1 is on MSDN as well.


**** Update (02/14/2008 02:51 PM CT) ****

I'm now able to download Vista SP1 from TechNet.  I don't yet see it on MSDN, but still, this is great news.  Thanks for listening Microsoft!!!


**** Update (02/13/2008 02:21 PM CT) ****

Looks like we might get Vista SP1 this week!


**** Update (02/12/2008 01:43 PM CT) ****

While looking at the comments on the latest update from the Windows Vista blog, it appears that the MSDN/TechNet community is still not pleased with the change in Vista SP1 availability.  I can't say that I disagree with this response.  According to Slashdot, people are turning to pirate sources for a copy of SP1.  Now, I can only imagine that tons of problems could come from this - the obvious being viruses/trojans.  All of this has to be worse than a few drivers that are not ready for prime time.  Food for thought...



Well, it looks like Microsoft got the message and today posted an update on the availability of Vista SP1.  Looks like those of us who have MSDN and TechNet subscriptions should be getting it sometime "later this month".  This is certainly better than having to wait until mid-March - however, it is a bit vague as to exactly when we will be able to download the service pack.  After all, "later this month" could be February 29 (leap year).

I'm hoping we will see it sometime this week.  Regardless, thanks for listening Microsoft!

Tags:   ,
Categories:   General
Actions:   E-mail | | Permalink | Comments (0) | Comment RSSRSS comment feed

What Were They Thinking - Follow Up

Monday, 11 February 2008 09:44 by jordan.terrell

Well, I just checked and as far as I can tell we still can't download Vista Service Pack 1 (SP1).  This just baffles me to no end.  I'm also surprised that I don't see more community pressure to get this released now.  Most of the feedback I've seen has come in the form of comments on the main blog post that announced the RTM status of the service pack.

I want to quickly revisit the whole driver incompatibility issue with Vista SP1.  If indeed the service pack is now complete (Released to Manufacturing), it would make sense that Microsoft could not change anything within it without publishing a revision, for example "SP1a".  So what is the difference between releasing SP1 now, versus releasing it in a month and a half?  It should still be the same bits, correct?  Only the drivers that have issues need to be changed, and again, those only affect a small subset of the Vista community.

I'm eager to receive the service pack for two reasons - 1) I'm working on a project which deals with installing a kiosk-mode application of a XP or Vista system.  We are just now adding support for Vista, and are targeting a release in the next few months.  It makes no sense to go through intensive testing on pre-SP1 Vista, when ultimately we will have to move to Vista SP1. 2) I purchased two copies of Vista Ultimate - one for my desktop and one for my laptop.  I've had a few challenges with the Vista that I'm hoping will work itself out with the service pack.  I've only upgraded my laptop to Vista, and my desktop is in desperate need of a fresh install.  I want to start that fresh install WITH Vista SP1.

From the looks of it though, that won't be happening any time soon.  Maybe you can write a blog post on this - let us and Microsoft know why they should release this now!

Tags:   ,
Categories:   General
Actions:   E-mail | | Permalink | Comments (0) | Comment RSSRSS comment feed

What Were They Thinking... Or Were They Thinking...

Thursday, 7 February 2008 10:52 by jordan.terrell

I'm referring to Microsoft and their decision to announce, but not release, Vista Service Pack 1 (SP1).

Honestly, I can't understand the reasoning behind this decision.  As many have noted on blog posts and comments, it is entirely reasonable and responsible to not release Vista SP1 automatically via Windows Update.  But from what I understand, the purpose of MSDN, TechNet, Connect, and various partner channels is to identify a subset of Microsoft's partners and customers and allow them to prepare for the broad release of key software packages, such as operating system service packs.  Even today we see Windows Server 2008 Datacenter, Enterprise, and Standard editions available on MSDN - even though these have not officially launched. Why not Vista SP1?

Now, I can appreciate that there is some trepidation around certain device drivers not being functional with the release of Vista SP1, but it appears that it affects only a small population of users. I don't see this as justification for preventing a much larger population of IT professionals and software vendors for gaining access to such a critical release.

If Microsoft offers a more compelling, reasonable explanation behind this decision, I'm all for supporting it.  But until that happens or I see Vista SP1 on one of the various official download channels in the next 10 days or so, all I can say is this:

Bad call Microsoft, bad call!

Tags:   ,
Categories:   General
Actions:   E-mail | | Permalink | Comments (0) | Comment RSSRSS comment feed

CAPTCHA Challenge

Thursday, 31 January 2008 14:22 by jordan.terrell

A friend of my built a CAPTCHA generator out of his frustration with commonly available ones being easily circumvented.  As a test, he has issued a challenge to see if his generator can be defeated.

My gut tells me that it can be defeated, but I hope that I'm wrong.  If it ends up being highly successful, I would love to see some kind of proof-of-concept, person-to-person (non-automated) email protocol built around it.  This would absolve the need to have all emails digitally signed - only the automated ones would need it.

Actions:   E-mail | | Permalink | Comments (1) | Comment RSSRSS comment feed

iSynaptic.Commons - License

Friday, 25 January 2008 15:48 by jordan.terrell

I think I've pretty much decided that I'm going to release my Commons framework under the The Artistic License 2.0.  This will allow you to use the framework in a commercial product (terms outlined in the license).

Any feedback?

Actions:   E-mail | | Permalink | Comments (0) | Comment RSSRSS comment feed

iSynaptic.Commons - Cloneable<T>

Thursday, 24 January 2008 10:28 by jordan.terrell

So as I was working to increase the code coverage for my Commons framework, I found some gnarly edge cases that caused issues in my Cloneable<T> class - specifically dealing with value types.  I have since fixed those.

Cloneable<T> is really the guts of my Transactional<T> class, but I figured that it could be useful as a separate class.  When you start a transaction, Transactional<T> will use Cloneable<T> to create a copy of the object you want to be transactional.  Now historically the way that I've seen this done is to use in-memory binary serialization make a copy.

This is both slow, and consumes unnecessary additional memory.  Really, what you want to be able to do is create an instance of an object, and then copy the contents of it's fields from the source to the clone.

In order to create an instance of an object that might not have a parameter-less constructor, I use FormatterServices.GetSafeUninitializedObject(Type type).  This allows you to create an instance of an object without calling a constructor.  I first learned about this when reviewing how ObjectBuilder works.

Once you've got an instance of the object, you could just use Reflection to copy the contents of the fields, however that is slow.  Enter DynamicMethods!  DynamicMethods allows you to create a method on the fly, and tack it on to a class.  Using Reflection *once* to enumerate what the fields are, I build a method that can copy the fields from the source to the clone by emitting IL (Intermediate Language).  When you call the Clone(T source) or ShallowClone(T source) method it calls this dynamically emitted method.

DynamicMethods have a performance profile *almost* identical to that of normal compiled source code.  I did a test cloning 1 million instances of a class that had 6 fields - using in-memory binary serialization it took roughly 2 minutes (just shy of it by a few seconds) - using Cloneable<T> it took about 0.5 seconds!!!  This bodes well for my Transactional<T> class - creating copies of even complex objects is now a very cheap operation.  Is still have to investigate the Code Access Security (CAS) ramifications of emitting the DynamicMethod, but I still think it is a better approach.

I'm still looking to release my Commons framework soon.  Code coverage is at 72% now, with Cloneable<T> at 100% covered (I'm sure there are still more edge cases I haven't tested).  Once I'm comfortable with the code coverage, I will release it.  I'm thinking of releasing it under something like the BSD or MIT license - because I want it to be usable for commercial purposes - but I haven't decided yet.

Any license you would like to see it released under?  (and don't say GPL or anything very similar - not going to happen!)

Categories:   .NET | Programming
Actions:   E-mail | | Permalink | Comments (1) | Comment RSSRSS comment feed

Language Filters Please

Thursday, 17 January 2008 09:06 by jordan.terrell

I've got a pretty extensive list of blogs that my aggregator (now Google Reader) pulls down.  I will see roughly 500-700 posts a day (not that I read them all).  However, for the last year or so I'm seeing a lot of foreign (to me) language posts that make up a good bit of those numbers.  I really wish that there was a way to filter out posts that are not written in languages you are interested in (similar though here).

Does anyone know of a way to accomplish this without it being a feature of your aggregator?

Categories:   General
Actions:   E-mail | | Permalink | Comments (1) | Comment RSSRSS comment feed

iSynaptic.Commons - CTP coming soon

Monday, 14 January 2008 10:02 by jordan.terrell

Lately I've been working on a "Commons" framework that I am planning to release to the public.  There is two versions of the framework - one that targets the .NET 2.0 framework, and one that targets the 3.5 framework.  The goal is to create a framework that really leverages the new C# (or VB) language enhancements. I'm not sure how soon I will be releasing a CTP, but here is a list of things that it can do so far...

  • Custom Implementation of LINQ Standard Query Operators (partial implementation so far) so you can use LINQ when targeting .NET 2.0 framework (assuming you are using VS 2008).
  • Numerous extension methods, all in a separate namespace "iSynaptic.Commons.Extensions"
    • IEnumerable<T>.WithIndex()
    • IEnumerable<T>.LookAheadable()
    • IEnumerable<T>.Delimit(string delimiter)
    • Action<...>.Curry<...>(...)
    • Action<T>.MakeConditional(Predicate<T> condition)
    • ICollection<T>.Remove(params T[] itemsToRemove)
    • Enum.IsDefined() (useful/simpler as a extension method)
    • Func<...>.Curry<...>(...)
    • Func<T>.MakeConditional(Predicate<T> condition)
    • Func<T>.ToAction()
    • ...and many more
  • An implementation of the Specification pattern
  • Scope<T> and NestableScope<T> implementation
  • ReadOnlyDictionary<TKey, TValue>
  • Cloneable<T> - uses dynamic IL generation to clone objects really fast!
  • Transactional<T> - makes use of Cloneable<T> to create transactional objects that support System.Transactions
  • ScanningTextReader and SimpleScanner for custom text parsing
  • ProcessingInstructionParser to parse XML processing instructions when you are using XmlReaders
  • ...and much more

I've got a number of things I plan to implement, but this is what is mostly functional now.  I want to get testing code coverage up a little higher (I'm at 66%), so stay tuned...


Tuesday, 4 December 2007 10:21 by jordan.terrell

My personal and professional life has become very busy as of late - pretty typical of this time of year.  As a result, I have not been as regular at posting to my blog.  I anticipate (read "I hope") that by mid-December things should slow down and I will have time to resume posting - for those few of you who do follow this blog.

Categories:   General
Actions:   E-mail | | Permalink | Comments (1) | Comment RSSRSS comment feed

Is Visual Basic, the language, in its golden years?

Monday, 12 November 2007 11:26 by jordan.terrell

I may be setting up myself for a flame war, but I just had to ask this question.

Visual Basic has been around for some time, and will soon be releasing version 9.0 of the language.  Visual Basic has gone through two major platform shifts - first with the move to COM, and then with the move to .NET.  Through each of these shifts, the language has had to change to participate in these platform changes.  When I recall the 1.0 release of .NET, many Visual Basic 6 programmers viewed VB.NET as an entirely different language because sheer number of changes to the language.  However, many have successfully transitioned to the .NET platform and continued to move forward.

However, look at the new features in VB 9.0 - I have to say, in my opinion, the language is starting to look quite bloated - especially when you look at the XML literals features.

Can Visual Basic continue to survive shifts in platform directions, especially with the continued functional and dynamic focus of languages such as C#, F#, IronPython and IronRuby?

Is Visual Basic in its golden years?  What do you think?

Categories:   .NET | Programming
Actions:   E-mail | | Permalink | Comments (3) | Comment RSSRSS comment feed