Alex Hoffman

  • Archive
  • RSS
  • Contact Me
… This practice of shipping bug-ridden, unfinished software products is common among MANY software firms these days… they put out an unfinished/buggy product, patch it a few times for “free”, then force users to purchase yet another “upgrade” to get any future fixes/improvements regardless of how strong the case is that there are still substantial bugs in the product you PAID for! …

http://suretalent.blogspot.com/2011/10/embarcadero-delphi-xe2-firemonkey.html

This is referring to Delphi XE2, but I recently experienced being forced to pay for what should have been just an interim upgrade with Parallels for the Mac.

  • 1 month ago
  • Comments
  • Permalink
  • Share
    Tweet

MongoDB on Windows should I think come with clearer advice that it really needs to run on a separate server.

Because MongoDB can’t limit its memory use, and can expand to use all available memory, it would appear unsuited for use as part of a desktop application, or a “shared single server” web-based system.

A separate physical or virtual server is required, unless your using Windows Server 2003 or 2008 with WSRM - http://bit.ly/tQs63L

  • 1 month ago
  • Comments
  • Permalink
  • Share
    Tweet
… I doubt that future versions of .NET will be supported on versions of Windows older than Windows 7. What is especially important about this is that newly built applications will therefore not work on Windows XP. …

— Joe Stagner (prev MSFT, now Mozilla)

The whole post “What’s wrong with Microsoft?” makes an interesting read.  Joe has always been someone whose opinion I value, even more so now he is outside of Microsoft.

See also his recent post “HTML5 App versus HTML5 Page – What’s the Difference?”

  • 2 months ago
  • Comments
  • Permalink
  • Share
    Tweet

Probably the single biggest reason I use Firefox instead of Google Chrome is that there is no “TabMix Plus” extension for Chrome.

  • 2 months ago
  • Comments
  • Permalink
  • Share
    Tweet

Passing Values to a Function through an Anonymous Type

I’m spending some time looking at ASP.NET MVC.  One new common construct I’m seeing is an anonymous type being used to pass property values to a function.

For example, note the third parameter in the method call below:-

routes.MapRoute(
    “Default”,
    “{controller}/{action}/{id}”,
    new { controller = “Home”, action = “Index”, id = UrlParameter.Optional }
);

An anonymous type is being passed to the MapRoute (extension) method that has the following signature.

public static Route MapRoute(this RouteCollection routes, string name, string url, object defaults);

I was surprised to see this because an anonymous class cannot typically be cast to something understandable in the receiving method.

So how then is this achieved?  In the case of MVC, the passed in “defaults” object is converted into a Dictionary (a RouteValueDictionary) that contains property names and values determined via reflection.

An Example Implementation

If one wanted to be able to call a method as shown below, it would appear that we have no way to access the properties associated with the “choices” object.

void Main()
{
    ProcessChoices( new {marque=”Holden”, model=”Commodore”} );
}

public void ProcessChoices(object choices)
{
    // choices.marque ? … no
}

However by implementing our own Dictionary we can do so:-

public void ProcessChoices(object choices)
{
    var choiceDictionary = new AnonymousObjectDictionary(choices);
    Console.WriteLine (choiceDictionary[“marque”]);
}

> Holden

A minimal implementation of that AnonymousObjectDictionary is shown below:-

public class AnonymousObjectDictionary : Dictionary<string, object>
{
    private readonly Dictionary<string, object> _dictionary;

    public AnonymousObjectDictionary(object values)
    {
        _dictionary = new Dictionary<string, object>();
        AddValues(values);
    }

    private void AddValues(object values)
    {
        if (values == null)
            return;
           
        foreach (PropertyDescriptor propertyDescriptor in TypeDescriptor.GetProperties(values))
        {
            object value= propertyDescriptor.GetValue(values);
            Add(propertyDescriptor.Name, value);
        }
    }
}

  • 2 months ago
  • Comments
  • Permalink
  • Share
    Tweet

… Which brings me to the punch line of software framework quality: accessibility. To enable developers get the thing done with the framework it must have documentation telling how you get the thing done.

Django folks get it. Django has always had very detailed documentation and no surprise it won the most of the hearts of Python developers back in 2006ish when the framework situation was different with Turbogears et. al. being still in their strength. …

via How does it do a date picker widget?

Something in my opinion, much of the .NET community doesn’t get.  MEF 2 Preview 4 anyone?

  • 2 months ago
  • Comments
  • Permalink
  • Share
    Tweet

The original VisiCalc from 32 years ago (the first spreadsheet for PCs) still runs.  It’s available for download here.  All 27kb of it.

Original VisiCalc application running

  • 3 months ago
  • Comments
  • Permalink
  • Share
    Tweet
autumn by Markus Dorfmeister
Beautiful (click to see the original)
View Separately

autumn by Markus Dorfmeister

Beautiful (click to see the original)

  • 3 months ago
  • Comments
  • Permalink
  • Share
    Tweet

One can force old IE versions to recognize HTML5 elements with Remy Sharp’s enabling script - http://bit.ly/cmMcvx

    • #webdev
  • 3 months ago
  • 4
  • Comments
  • Permalink
  • Share
    Tweet

What browsers support which HTML5, CSS3, SVG features - http://caniuse.com

    • #webdev
  • 3 months ago
  • Comments
  • Permalink
  • Share
    Tweet
← Newer • Older →
Page 1 of 2

About

Random thoughts and ramblings

Twitter

loading tweets…

  • RSS
  • Random
  • Archive
  • Contact Me
  • Mobile

Copyright © Alex Hoffman. Effector Theme by Carlo Franco.

Powered by Tumblr