Posts

subscribe via RSS

  • Popular Antipatterns explained.

    There is so much talking about buzzy Design Patterns. But honestly, who cares. We don't need MVC as long as it works. What is Flyweight? And definitely no need to decorate anything, this is a factory.

    But unless you already found the perfect way to eliminate code beauty and readability, I put up this short list of common antipatterns. Use or avoid them, it's up to you.

    Mietroller

    A blend of the words Model, View and Controller, mostly found in big, monolitgic, uncommented source files. Hard to maintain and impossible to test, yet it feels quite natural to do it that way. The usage is simple: just put everything in one file, write it doen as you think it. No classes, no references, just code. Don't write methods. The core advantages are:

    • No need for third-party code-scrambles
    • Looks impressive in an editor with green background and black font

    Manufactory

    Why bother writing even one line of code that is reusable? Exactly, just burn down this useless Factory-Pattern, and replace it with the fancy Manufactory pattern. In case you never heard of the factory-pattern, you are lucky. Else, try to forget it, and forget Object Orientation too.. Advantages are:

    • Many.

    Heavyweight

    Nobody, really no one likes to deal with references or pointers. So it's save to assume that there are enough resources to store everything in-place. And of course, this is a very secure approach. No pointers = no danger. Advantages:

    • No need to use strange facilities like References ever again.

    Globalton

    Exactly, not singleton, it's globalton. Why? Well, it's pretty clear to me. There is no good reason for using global variables. Of course, some are saying it decreases portability and reusability. I don't care. Just put everything you need in a global scope. If the language you are using doesn't support that feature, use another one. Really. Advantages:

    • Easier.

    If you know some more antipatterns, please let me know, I'd be glad to know as many as possible.

    Continue Reading...

  • Web-Development is not dead, just challenging.

    Damn, not talking about the standard-php-mysql stuff, but about new things, innovative applications and so on.

    The common cliche is that most things have been developed, so there is not much left to do but reinvent. That is wrong. When google hit the search engine market, everybody was convinced that they would fail, the market was already crowded by many providers, though no one offered a simple, speedy search without a bloat interface. Nowadays, google leads.

    37Signals did the same thing, although way more small-scaled. By providing easy-to-use applications for small businesses, they just created what many people need, communication-enabled platforms.

    I guess the real challenge is to create things that everybody will like, yet nobody developed already. And there are many things, like an eBay replacement ( ebay sucks ), contact management, password management.. I could easily extend this list, but it's up to your imagination what to do with all this stuff.

    Certainly, we don't need any more CMS or blog-engines, no guestbooks, no bulletin-boards, not even new wiki engines. They are there and working, so start doing something new. Please.

    Continue Reading...

  • Android, building a custom Keyboard

    G1 has hit the market, and since typing on a touchscreen is still a pretty unpretty thing, I decided to build my own softkeyboard. Doing so is not possible with the current SDK downloadable from the android site, but you can ( not easily.. ) build all the required libs ( mainly android.jar ) using the sdk source and even use the adt 0.8 eclipse-plugin. Even though it confronts you with some errors, hitting ok will do the job.

    Android features the ability to select your preferred input service, enabling a developer to create a custom keyboard from scratch. android.inputmethodservice seems to be the entry-point for any such efforts, and I will keep you up-to-date here on how it works. And how it doesn't.

    Continue Reading...

  • Password Management, 2nd approach

    A while ago I developed a simple demo of an application able to log a user on to his several social homes. Feedback was poor, users are just not willing to save their passwords anywhere else but in their brains. This is funny since most users I talked to ( except some nerds ) stick to the one-password-per-life principle. Really. And since every major security measure applied is rendered completely useless if the user has a weak password, which is assumably mostly the case, it's time to think about an alternative. I won't, I tried, nobody liked it.

    But the other problem is in enterprise or business environments. Imagine some people with the need to have access to certain management systems ( e.g. for remote servers ) sharing one account. While it would be totally usable to simply write down a password and hide it in the office, this is quite time-consuming, each time someone compromises your secret place, you have to reset passwords and find a new place, communicate this new location etc.

    So an online solution should be the way to go. Public-Key Infrastructures fulfill the requirement of security sufficiently, yet the usability sucks. A simple desktop application retrieving encrypted passwords and deciphering them locally would be enough. Change a password and publish this change is as simple as changing the password, everyone else would get his new password automatically if he is in the group with access to that password, so password changes are not a problem.

    Avoiding showing the password onscreen is as simple. Just put it in the clipboard, and happiness would spread. But where is this simple approach?

    Continue Reading...

  • Windows 7 Preview, some words about it

    Jiha. Windows 7 is approaching, and it seems that all people waiting for the post-vista OS by Microsoft will change their minds. Really. Vista was Burner, but this time, seriously, Microsoft kills OS X. And this .. linux? No one will ever use it again. A small subset of stunning features I encountered:

    -  Calculator, still unable to calculate sqrt(4) - 2 = 0. Some numeric disaster.

    -  Snippet, a rocking tool to create eye-catching.. screenshots. Wow.

    - A sophisticated and well-worked out Fax and Scan-Utility. After all, E-Mail isn't that important.

    - No E-Mail client. Proved to be unnecessary as E-Mail is only a huge security thread, and spam sucks. Good choice here!

    - Superbar. Excellent. Amazing. Never seen it before. almost.

    - Aero Peek. A great way to see all your windows. Apples Expose is patented, by the way.

    - Many features that allow for individual customization of your Machine. That is great. Just amazing. Why work if you can just waste your time customize your Desktop?

    - Cutting-Edge Games like Minesweeper. And Solitaire. And clock.

    And of course, the most advanced browser, Internet Explorer, ships with Windows 7.

    Seriously, use Ubuntu. grr.

    Continue Reading...

Newer Posts Older Posts