OffBeatMammal

Searching for monkeys in Cyberspace

Safari on Windows

clock June 11, 2007 19:27 by author OffBeatMammal

A few years ago I bought a Powerbook for one reason – to do compatibility testing of websites I was developing on the Mac.

Okay, so I was seduced by the dark side and still enjoy the occasional foray into their sleek and shiny hardware and (thanks to the likes of Parallels and Fusion) software … all without having to leave Vista for very long.

Now though Safari is available for Vista and at first glance it's good. On the first few sites I've visited rendering is mostly fine with performance maybe not quite as good as they claim but pretty swift.

I had one un-reproducible crash (but that's happened to me in IE and Firefox as well) and one XML DOM related error (that I clicked the "bug" button and reported. I love the "bug" button and wish MS would put it in all their products)

I wonder if they view iTunes and Safari as “teasers” for OSX… in which case I hope the Safari port has a lot more going in its favor than iTunes for Windows (that app does a good job of convincing me that Apple don’t know how to develop a good user experience!) and if it's going to help or hinder adoption of their new platform.

Alternatively Safari on Vista might just be a way to make sure PC developers can compatibility test their apps for the iPhone without having to buy a Mac...



Popfly - it's mashups for the rest of the world

clock June 1, 2007 03:52 by author OffBeatMammal

When I first heard about Popfly I didn't really grok it but now I've had a week or so to play with it and try to make sense of it... it's really cool.

Everyone talks about mashups and how they're changing the rules on the interweb... but too often it still means a lot of laborious programming and testing and delving through API documentation.

Yahoo! Pipes was supposed to make it all better, and if fact from a programmers perspective it's certainly made things easier.

Where Popfly really shines though (and I totally agree with Chris Pirillo on this) is that it makes mashups a totally graphical, drag'n'drop no-code experience that even I can get my head around....

15 mins after signing in I had my first mashup running (Virtual Earth showing the 5 latest Twitter posts updated every 30 seconds)

Once you've built a Popfly mashup you're not limited to running it on the Popfly site. You can embed it on your own site, or on Spaces or even download it as a Vista gadget.

Even at this very early alpha stage the capabilities of the basic no-code tool are pretty fantastic. Add to that the very simple coding language they've implemented and anyone who can code in JavaScript, PHP or VB/C# is going to have no problems extending this.

I can only imagine the power that's going to roll into here as the team add more blocks (wrappers for APIs or output/display mechanisms) and fine-tune the UI.

As an example of what Silverlight can do (itself still a product in development) it's even more impressive - a Microsoft team really eating our own dogfood (and finding that it tastes just fine!)



It's all about performance

clock May 19, 2007 05:24 by author OffBeatMammal

I've mentioned performance a couple of times before in the context of specific technologies (SQL Server and Javascript) but looking at a recent rebuild of a site I'd been involved in it occurred that there are a number of things that can affect performance that are easy to overlook yet can have fairly drastic results.

  • Make fewer HTTP requests
    Every roundtrip costs time. If you can bundle everything into a few requests it helps performance. Of course too much bundling (eg putting your javascript and CSS inline) doesn't always help long term (as it makes caching hard) so there's a balance.
    Combining Javascript and CSS files into fewer larger files can help, but if there's a lot of differing usage depending on the page or user type across the site consider dynamically combining and caching these (so you only have to work on the master files and let the server generate and deliver cachable specifics).
    On the homepage it might be worth having them inline, and also reference them (via an onload) as external scripts, so they're pre-cached for subsequent pages. If you set a cookie when the external files are loaded you can determine when the page is accessed if you should put the code inline or rely on external cache to speed things up. 
  • Reduce DNS lookups but maximize effective use of domains.
    Every time you have to do a DNS lookup to find a domain name it takes time that could be used to deliver content. If you include the full URL in every href then lots of DNS checks can occur. Most browsers cache these, but how many and for how long. Having lots of lookups required on the homepage can reduce the impression of performance. Flip side though is that most browsers will by default only make a certain number of requests of a given server, so you may be well served by splitting content over more than one domain name (but only 1 or 2... too many and the lookup overhead outweighs the value of the technique)
  • Use a CDN
    If your business relies on getting content to users and you can get that content intelligently cached and closer to the user, it's work paying a Content Distribution Network like Akamai to help. Some of the larger ISPs today with multiple data-centers can even offer a CDN capability without needing to use one of the big players. There are even free peer-to-peer CDNs like Coral available (and really easy to implement). Use tracert - count the number of hops to random users in your server logs... how far away (and how long a round trip) is you request/response reaching?
  • Make use of the Expires header
    You know how static your content is going to be. Tell the proxies, caches and users browser so it can make an informed decision. If they can cache an image forever... let them. You can always cache bust by changing the filename if you need to refresh something urgently. 
  • Put CSS at the top
    Ideally in the <head> where it will be loaded before the rest of the page. If you're not going inline use <LINK...> not @import. These tricks avoid the funky page flicker as the content loads and then the style gets applied.
  • Move JS to the bottom
    If you don't need it straight away get it out of the way. Parsing javascript will block the page rendering and so make things appear to run slower. If you need a function straight away define it in the <head> and call it with a <body onload="..."> but minimize what you put there
  • Avoid CSS expressions
    If the rendering engine has to do some heavy lifting before deciding what colour to make your text it's going to slow things down. Make it explicit and use rules when you're generating the page to select appropriate classes for content
  • Compress JS, CSS and HTML
    The less you send over the wire the better. Whitespace is not your friend in production (though helpful for debugging). I like the w3compiler from Port80 but there are many options out there (and for dynamic page generation I wrote some ASP code that compressed news stories to the bare bones). Most servers can also zip content on the fly (either on-demand or zip and cache for static content) so make sure it's enabled
  • Avoid redirects
    Put your content where you say it is. Every time a page or content item needs to go hunting it's a wasted round trip. Don't rely on the server to hunt for a document, point to it explicitly. Look through your server logs for 300 status codes - every one of them is a wasted round-trip
  • So... what should you do next?

    The biggest / easiest wins come from making sure your content is optimized - compressing and making sure your Javascript and CSS are cacheable (especially relevant in the JS rich world of Ajax apps) and referenced from the right part of the page. You can control that no matter how or where you're serving content.



    Expression at MIX07

    clock March 20, 2007 20:19 by author OffBeatMammal

    Visit MIXSo, you already know that we're giving copies of Vista Ultimate to MIX07 attendees, and of course you'll get a chance to hear from both Microsoft folks and people from the real world about how the UX game is hotting up and delivering real benefits to developers, users and everyone else in the ecosystem.

    What you might not be aware of is the other half of the equation.... while we support developers with WPF/E, Ajax.asp.net and (of course) Visual Studio we also have tools aimed at designers

    Expression Studio includes Expression Web, Expression Blend™, Expression Design and Expression Media. Whether you are designing standards-based web sites, creating rich user experiences on the desktop, or managing digital assets and content, the professional design tools and innovative technologies in Expression give you the flexibility and freedom to bring your vision to reality.

    To reflect Microsoft's belief that Design is an essential part of the development process, all MIX07 attendees will receive a Commemorative Edition of Expression Studio, complete with the first version of Expression Studio and one-of-a-kind artwork (in addition to a copy of Windows Vista Ultimate!).

    Check out  www.visitmix.com for more details right now... tickets are going fast.

    I hope to see you there....



    RIA frameworks as gaming consoles

    clock March 19, 2007 23:44 by author OffBeatMammal

    I've been trying to get my head around the three most interesting players on the Rich Internet Application front, and in a conversation today a really good analogy surfaced. Compare them to game consoles.

    So, who are the players:

    First comes XulRunner from the Mozilla foundation. This often overlooked environment is ticking along quite quietly but gaining quite a following out there. Unlike it's two main competitors it's actually got some real world applications built with it (even though, like the other two it won't be at a production release until the end of the year). Open and fairly approachable it's got a lot going for it.

    Next if Apollo from Adobe. This all singing, all dancing behemoth builds on the underpinnings and learnings of Flash, ColdFusion, Flex and Photoshop. Sadly it's legacy may make it rather hard (and expensive) to develop with.

    Third contender in the ring is WPF/E (Codename) from Microsoft. Surprisingly given it's parents track record this is probably the easiest of the three to get started with. Cross browser and platform support, an open object model that's addressable from Javascript in the browser (it's as easy to work with as the basic browser DOM) and an XML based vector markup language (XAML) that shares a lot of heritage and maturity from it's Windows only cousin WPF.

    Just discovered a fourth entrant worth having a look at. Dekoh is a Java ased platform supporting everything from JSP to ASP.NET to Flash on Windows, OSX and Linux. It's free and Open Source.

    So ... what consoles do these guys match up to, and why (and I expect the fanbois to abuse me over some of these) .

    XulRunner has to be a Wii - it's lightweight but surprisingly powerful and a real underground hit because of its no-nonsense all-round solid performance.

    Apollo is, IMO, the PS3 of the space. It will probably look great but it's expensive and some would say over-engineered. The barriers to entry (from a developer perspective) are high and the legacy of some of its components (Flex for instance) raise some questions about how much fun it's going to be.

    WPF/E is, almost by default, the Xbox360. Popular, great capabilities, fairly approachable (eg with the arrival of XNA the Xbox became the most open of the consoles. In a similar manner the open XAML based model of WPF/E makes development easy).

    Dekoh is harder to pick a platform to compare it to but I think given the portability and wide range of options but I think it's closest match is to the DS Lite. Fairly frill and pretension free but ballsy enough to do well in the game..

    Oh okay, so maybe there's a fifth but Java, like the Atari 2600, while ground breaking at the time is no longer state of the art or fun to develop for.

    Wonder what RIA platforms would be if they were cars....



    WPF/E delivered from an Ad Server

    clock January 18, 2007 05:59 by author OffBeatMammal

    The third little challenge in my self-set WPF/E niche was to see if it was possible to deliver an all-singing all-dancing WPF/E experience from an ad server to a page that had no WPF/E code in it at all.

    Well, this turned out to be a little harder than the earlier video re-sizer and overlay samples but again like both it turns out that WPF/E is really fun to work with - doesn't matter if you're hacking code in Notepad or working in a full Visual Studio environment (and don't forget the free Visual Studio Express) it's quick and easy.

    Remember, this is only the first technology preview of WPF/E with a lot more goodness to come! More functionality, performance, stability will only make these things easier.

    If you want to see this (and the other samples) full screen you can open them in their own window.



    Ad Serving and WPF/E

    clock January 11, 2007 00:55 by author OffBeatMammal

    After the fun I've had on the (still evolving) WPF/E In Page Video Resizer I thought I'd tackle another fun project - serving dynamically generated XAML (as though from an Ad Server) and having it play nice with the underlying target page.

    At the moment it's in very early stages - it's based on certain assumptions around what the target site is happy to do (add a couple of lines of JavaScript and one event to the XAML object where they want the ad to appear... not too bad as things go)

    Anyway, rather than talk about it too much... here's the sample for you to play with:



    Mix07 - Registrations now open

    clock January 4, 2007 00:30 by author OffBeatMammal

    Microsoft is hosting a 72-hour conversation, and you're invited.

    MIX07 :: April 30 — May 2nd, The Venetian Hotel in Las Vegas

    MIX is Microsoft’s conference for Web designers, developers and decision-makers who make their living at the forefront of the consumer Web. Join the conversation with Microsoft and others on how to harness the latest technologies, unlock new revenue opportunities, reduce development costs and improve customer experience. MIX is for cutting-edge Web professionals designing and building next-generation experiences.

    Registration is now open, and if you sign up before March 15 2007 there is a 15% discount. You could even get there for FREE - Check out the IE7 AddOn Content (but be quick!)

    Following on from it's debut in 2006, MIX will continue to explore how to build more interactive and responsive experiences that take full advantage of the capabilities of the Web. MIX will also be an opportunity to dive deeper into Microsoft’s Web technology offerings and discover ways to create more dynamic customer connections that take user experience to the next level.

    If you're serious about developing for the future (be it Ajax, Rich Internet Applications or just delivering compelling content) is there anywhere you'd rather be?



    Who says it's hard to make web interfaces look good

    clock December 8, 2006 23:09 by author OffBeatMammal

    “Questions about whether design is necessary or affordable are quite beside the point: design is inevitable. The alternative to good design is bad design, not no design at all. Everyone makes design decisions all the time without realizing it.“

    Douglas Martin

    This week I've been getting an introduction to a really interesting new technology called WPF/E.

    You may already be familair with WPF as the XAML powered presentation layer for Vista which is used to great effect there and in apps like the new Expression tools. It moves away from the traditional design/layout constraints to a flowing vector based, non-rectangular, device independent format.

    WPF/E is a subset of that that runs in the browser (cross platform, gotta love that) presenting a user interface is defined in XAML.

    Because the UI isn't stored/managed in a closed binary format it’s been possible to expose the underlying model to Javascript running in the browser (just like the DOM) and you have total control.

    Combined with Ajax type controls (for instance the new AJAX ASP.NET library – also cross platform) it’s a whole new world of shiny stuff and I think going to start pushing the envelope of how designers and developers work together to shape the web apps of the next generation. You don't have to believe me. See what Microsoft have to say on the introduction of WPF/E and then check out this really cool demo and dive into more detail.

    Before you have a look at the samples you'll need to install the runtime. It's less than 1Mb and works a treat in WinXP, Vista and even on my Powerbook!

    If you want to dive in and start building:



    IE6 running under Ubuntu on my iPod

    clock November 1, 2006 11:13 by author OffBeatMammal

    Okay, I know it sounds a little silly, but I just had to try. I'm using Moka5 to host Ubuntu on my iPod (because I can, not because I'm uber or anything like that) and I was testing a site build and needed to see how it looked in IE6.

    Now I could have just gone to my other machine (the laptop has been upgraded to IE7 but we've got a desktop still at IE6 - it's my Media Centre machine so I don't dare touch in in case we miss something!) but I had the Ubuntu desktop up (testing the site in Firefox) and thought.... let's try out this IEs4Linux thing...

    Well, I was very pleasantly surprised. I does exactly what it says on the tin with very little fuss. I only noticed after installing IE6 that it can apparently install the IE7 engine as well (wonder if they'll ever get the tabbed container working as well!)

    It does need to install Wine, and requires a few keystrokes in Terminal... but the instructions are straightforward - if you've got Linux up and running it's not going to be beyond you. If you need to do compatibility testing this is really handy... and you can have multiple versions of IE co-existing side-by-side.

    Hmmm... wonder if this can be made to work on OSX....

     

    Currently listening to: Rihanna Pon De Replay (Hey Mr. DJ Turn The Music Up)



    Search

    Calendar

    <<  March 2010  >>
    SuMoTuWeThFrSa
    28123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    Sign in

    Twitter


      follow OffBeatMammal at http://twitter.com



       
      Donate unused CPU cycles with BOINC Stats and Account Management from BOINCStats.com



      Blogroll

      Archive

      Tags

      Categories


      Disclaimer

      The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

      © Copyright 2010