Posts

subscribe via RSS

  • Thoughts on the importance of browsers

    What are browsers? They are bit like a light switched on so one can read a book. They are rather useless without any pages they can display. And still, it seems that dominating the browser market is a very attractive goal. Of course, doing that leads to the ability to control what techniques can be used and which can't, a very powerful way to exclude competitors. 

    Browsers are not important to me. As long as they display the pages I want in the way they were intended to be displayed, I'm satisfied. Nothing more, Browsers just don't impress me, they are simply a tool. And the best tool is easy to use, robust and supportive. Supportive also means that I expect a Browser to stay out of my way. I don't want toolbars or widgets stuffing the screen. Just the content.

    This leads to a question. What to expect from a Browser. Honestly, nowadays every major Browser supports Tabbed Browsing, Ad Blocking and some kind of Anti-Phising. Most Browsers also support Web Standards and large parts of CSS2.1, Internet Explorer 6 and 7 don't. JavaScript or ECMAScript is another topic. Now all widely used, modern Browsers support XMLHttpRequest, Why is it even important to list those specs?

    Well to show you that those differences in support for each standard, language or format do matter. Unfortunately, when doing something for the Web, live stops immediately being cool and easy. There is no guarantee whatsoever that your product will run or display correctly on every browser, even if you carefully follow the standards when implementing. That leads to a lot of workload just for testing, not the overall but browser-specific one. This could be totally avoidable. By browser manufacturers simply agreeing on a few standards, but unfortunately, still that fails as long as people are willing to use the well-known standards wrecking machine, Internet Explorer.

    Designers and Programmers can't ignore the fact that the majority of folks is still using IE to browse. Forcing them to change won't work, it has never. And it stinks that every page expecting mainstream audience has to be customised accordingly. Just to workaround quirks. That's well-spent time, that could be used to built great products or do something really useful.

    So a good browser should be one we don't talk about. One that just a good job. And everything else is, besides the fact that in our case "everything else" refers to "everything out there", a wrong way, keeping developers from working on useful stuff and users from having a consistent browsing experience. And it should be in the best interest of browser manufacturers to ensure both.

    Continue Reading...

  • Improving readers user experience by adding links to related external blogs

    Everyone is used to Google's AdSense system offering relevant ads instead of providing static banners. This system not only affects the acceptance of advertising on blogs, but also enhances the user experience. Being able to access relevant products or content by one click is certainly a much more attractive and modern way of offering ads.

    Could a similar system be also built for free blog-to-blog linking? I guess there are many blogs out there dealing with almost the same topics from time to time, and I think it's a pity that there is no automated way ( i know of ) to link these blogs based on the post contents. While a hard restraint for such a service to work would be that it is free and easy to customise, many bloggers focusing on their readers would embrace such a system. Once again, free and without any commercial background.

    Edit: I guess someone's done some cool work here, the plugin is called Ping Crawl and links to related posts and also pings them. Nice! Edit, 2: Ping Crawl to be quite uncontrollable and since it actually just looks at your tags, it's not working well. Though text analysis is certainly hard to do, it's the only way, I'm afraid.

    This is another one of my ideas, and I'd be really glad if I could only realise one of them. If you want to help me out, please please please contact me.

    Continue Reading...

  • Microsoft Songsmith on a MacBook Pro

    I guess you've already witnessed Microsoft dropping it's zero-drug policy, and the first obvious result. The Microsoft Songsmith Spot was certainly created by some kind of PR-genius. They are using a MacBook Pro to actually demo the software in the clip, a good choice, but don't you think that it's a bit too obvious how they're making fun of themselves? "Microsoft, so it's pretty easy to use, hu?" should be enough. But it's about your opinion, so just watch and learn.

    Continue Reading...

  • Meta Blogging and what it's really about.

    I'm doing it right now, and many others are doing it always. I'm trying to keep the count of posts about "Blogging" itself small, though I'm not actually successful.

    What is metablogging? For me, it's blogging about blogging. It's like singing about singing or books explaining how to write books. Necessary, sometimes. But mostly, it's just annoying SEO stuff feeding my reader, I know enough about it, enough to know that the blogosphere is certainly about content, it's quality, viewpoints, good posts, but not necessarily only about search engine rankings. Of course, if you want to earn some money it may matter, but most blogs ( including this one ) are not in a position enabling them to do so, careless of what fancy technique of optimisation used. 

    I'm afraid that by weighting the public opinion and certain trends too much, the real goal of blogging gets lost, and of course, the benefit the web got from it. In the beginning it was some people just sharing thoughts or writing about rather personal stuff. Watchblogs have become an important source in regions lacking a working system of free speech. This development changed at some point because some smart people figured out that money could be made, it's nothing new, and of course, the world just works like that. 

    And rather than desperately asking for backlinks and so on, people should go back and concentrate on their content. Quality content will increase your ranking, too. The guys over at google are smart enough to know how things work, and adapt. 

    I'm convinced that the best blogs are still the ones both written and read with passion. Works here, and some people like it. No meta-blogging anymore!

    Continue Reading...

  • Zeroconf made easy: Bonjour for Java, Part 2, Client Implementation

    I've been writing about the server side implementation aspects of Bonjour for Java a while ago, and I promised to explain the client side, which is a bit more tricky. The reasons therefore is that it makes heavy use of asynchronous callbacks, leaving you no other choice but to implement some interfaces and understand the way things work behind the curtain.

    So what is the client's task? In our example it is to find, that is discover, services and make them accessible to our application. Of course, it uses the same mDNSResponder facilites discussed previously. To mention it again, mDNSResponder is, from our point of view, the single instance taking care about all actions required to either register, discover or browse services. And caused by the way it works ( by "talking" to the other peers on your network ) it can't provide instant answers to requests made, that's why asynchronous callbacks are required.

    We used that killerapp example, and I'm going to continue with that, though any other name can of course be used.

    I assume you already imported the apple package and read about how to install it if you're unable to compile your class file.

    import com.apple.dnssd.*;

    Before actually starting to putting it all together, let's have a look at two interfaces that are important for our work. The one is BrowseListener, which actually defines the callbacks to call when a service is either lost or found.

    public void serviceFound(DNSSDService browser,
                             int flags,
                             int ifIndex,
                             java.lang.String serviceName,
                             java.lang.String regType,
                             java.lang.String domain)
    
    

    Continue Reading...

Newer Posts Older Posts