Sunday, September 16, 2012

Google Drive for iOS

Even with its latest update, Google Drive for iOS is still missing some essential features:
- I appreciate it took this long even to get one-at-a-time uploads, but it's really not a usable feature until you can select more than one at a time.
- You can share but you can't unshare? Seems like an oversight to me.
- There's still no "gallery" view of image thumbnails for folders containing images/photos.
- There is no apparent way to sort a folder by file size, date modified, etc.

Some of these features may actually be there, but the fact I can't find them still constitutes a need for improvement.

I'm optimistic Google will address these drawbacks. They always do.

Friday, August 3, 2012

Plugging the Holes in Linq-to-Entities

If you can do it in SQL, you should be able to do it with Linq-to-Entities, right? Trouble is, not everything in a Linq expression is directly translatable into SQL by Entity Framework. Well, not without some help...
Between the above techniques (especially the last one), you should be able to get entity to run just about anything.

Thursday, June 21, 2012

Custom Telerik MVC Grid Ajax Binding

Here's a code block demonstrating the manual sort/filter/paging of an ajax-bound Telerik MVC Grid request--it's handy for hook-ins of various flavors.

public ActionResult CustomBindingResult(IEnumerable items)
{
    int page = int.Parse(Request["page"]);
    int size = int.Parse(Request["size"]);
    string orderBy = Request["orderBy"];
    string groupBy = Request["groupBy"];
    string filter = Request["filter"];

    var list = items.ToList();
    var filtered = (IEnumerable)list.AsQueryable().ToGridModel(1, int.MaxValue, null, null, filter).Data;
    var results = (IEnumerable)filtered.AsQueryable().ToGridModel(page, size, orderBy, groupBy, null).Data;
    var data = results.Select(result => Activator.CreateInstance(typeof(TDestination), result));
    var model = new GridModel { Data = data, Total = filtered.Count() };
    return View(model);
}

Will need the Telerik.Web.Mvc.Extensions namespace.

Wednesday, June 13, 2012

Storing State in the Url Hash

It can be done. We have the technology.
function settingsToStorage(settings) {
    var s = [];
    $.each(settings, function (key, value) {
        s.push(key + "=" + encodeURIComponent(value));
    })
    return s.join("&");
}

function settingsFromStorage(storage) {
    var settings = {};
    storage.replace(/[#&]+([^=&]+)=([^&]*)/gi, function (m, key, value) { settings[key] = decodeURIComponent(value); });
    return settings;
}

Thursday, June 7, 2012

HTTP Error 403.14 in IIS 7.5

I get this error the first time I try to set up IIS for local development on a new 64-bit Windows install.
Turns out, ASP.NET 4 isn't yet properly registered with IIS. To do so, run the following from an administrator-level command prompt:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir

Do the same for a 32-bit Windows install except with s/Framework64/Framework/.

Wednesday, April 11, 2012

NTFS Symbolic Link

Some dude at work was all, "Move your application data to this other drive."
And I was all, but I don't want to break all my relative paths.

BOOM!

Symlinks for Windows. Problem solved.

ASP.NET MVC: Compiling Views

I'm in yer project, compilin' yer views.
http://stackoverflow.com/questions/383192/compile-views-in-asp-net-mvc

Add <MvcBuildViews>true</MvcBuildViews> to the <PropertyGroup> element.