Thought Flow

Technology and other things

Category: Industry

  • Complexity

    Fractal simulation
    A fractal simulation from https://davidlebech.com/fractals/
    I learned about complexity studying computer science. Complexity was often measured in space and time, denoted by Ω, Θ and Ο. We learned about the fastest algorithms, the “hardest” problems and the methods to solve them or just prove that they are hard. That is what “complexity” meant to me.

    And then I started working with real world problems and complexity started meaning something else. It is no longer about NP-completeness, lower-bound running time or even algorithms. I have worked almost for a year on the same project 1 and throughout this project, the most difficult tasks have been figuring out the requirements of the end-user and transferring these requirements into an actual user interface. The complexity of a task is not measured in upper-bound running time and space requirements but in number of meetings and emails. And while the complexity of algorithms does not change after they have been implemented, the real world task changes its complexity whenever there is a change in requirements.

    When I step back and look at the output of the current project, I see nothing else there. All the complexity lies in communication and that is something different.

  • Intellectual stimulus

    After a year of doing freelance programming/consulting, I have a better understanding of why some people choose academia or research as a career path: Intellectual stimulation. I have been working mostly with website and webshop backend programming and on a day-to-day basis, the recipe is basically the same:

    1. Create a datatable in a database.
    2. Create a webpage form so userdata can be put into this table.
    3. Display this userdata in various versions on the website/webshop.

    Over time, I see myself writing the same or very similar code over and over again for every new feature that needs to be added even when I try to reuse the same code — and it bores the hell out of me sometimes.

    Actually, while studying, I was not particularly interested in theory. I always liked the programming more than the theory and the latter is usually more emphasized. It is ofted noted that college is not preparing students with proper programming skills for “the real world” and that a dedicated software development education might be a good idea. I agree.

    But now I’m going of at a tangent. My point is, when I was in school, I was displeased with theory (because “hated” is such a strong word) and I fell asleep while reading any research paper or computer science book (this still haunts me. Reading CS books seems to be important for developers. I just cannot do it). But now, I miss the intellectual stimuli from academia. This is one of the reasons I have been pushing myself to find time to work on Antecons, a project that has forced me to dig into a number of research papers on association rule learning. (By the way, the recommendations made by Antecons are actually being added by the users to the shopping carts at vildmedvin.dk. I can thus assume that it is raising profits. This is a great success, given its currently limited and quite crude functionality)

    This blog post does not have a particular message or opinion. This is thought flow and I have just been wondering what other people do to cope with boredom in their jobs. Sometimes, boring work is inevitable, I know. But when more than half of one’s work is boring, is it then time to start rethinking one’s situation?

  • Why you should not use Microsoft Silverlight for your next web application

    You are running a Silverlight 4 application. You may experience incompatibilities as Moonlight does not have full support for this runtime yet.
    The above warning message sums up everything I dislike about proprietary web technologies. Silverlight is a fairly new Microsoft technology from 2007 and Moonlight is its Open Source and not up-to-date equivalent that I have to use because Microsoft does not provide Silverlight for Linux. Since most software only run on Windows anyway why is this so upsetting? Well, everything is different on the web.

    First, the premise for Rich Internet Applications (RIA) like Silverlight, Flash and even Java is ok: A website usually does not provide much “action” in itself so having an extra plugin running on the website with some access to the underlying system resources as well as built-in extra functionality will provide a better user experience. Microsoft writes on the Silverlight website:

    Silverlight is a powerful development platform for creating engaging, interactive user experiences for Web, desktop, and mobile applications when online or offline

    That sounds good and I do not necessarily disagree with the premise for RIAs but the question is: Why did we need another RIA platform that doesn’t really work? I don’t exactly know. However, it is understandable from Microsoft’s viewpoint, given their history of locking-in people to their platforms and the fact that they have legions of .NET developers that are probably very comfortable staying in their own environment when writing web applications. For them, Silverlight is probably bliss.

    But there are some problems, one of them being its availability. As of this writing, Silverlight is only supported in roughly 61% of all browsers, according to statowl, or roughly 69%, according to riastats. As the above warning message suggests, it does not work perfectly on (my version of) Linux, even with the newest Chrome browser and Ubuntu 11.04, the arguably best supported Linux version out there. Indeed, most of the Silverlight applications that I have looked at did not work very well, including an app that I was offered to work on2 and popular services such as Netflix which currently does not work with Moonlight.

    Again, the question arises: Why is this so bad? Isn’t this the same as always? No, it is a problem because the beauty of the web is its openness, and this openness is what Microsoft is challenging. The same applies to Flash. You may call Apple snobbish and manipulative if you like but Steve Jobs does have a point regarding Flash as a platform:

    Most Flash websites will need to be rewritten to support touch-based devices. If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript? … New open standards created in the mobile era, such as HTML5, will win on mobile devices (and PCs too). Perhaps Adobe should focus more on creating great HTML5 tools for the future …

    In my opinion, this would apply to Silverlight also. To be fair, Microsoft is embracing standards like html5 in Internet Explorer 9 but at the same time, they continue to push Silverlight forward. Some people think that this is not a problem since html5 and Silverlight are not direct competitors. But because of Microsoft’s power, Silverlight applications are shooting up everywhere which cuts off some users from using certain services of the Internet, something we have not seen on the same level with Flash. And this is a troubling development.

    There is only one way of avoiding that Silverlight will dominate the next decade of web applications as Flash did in the past: Stop developing applications for it. My choice should now be clear. But I fear that I am almost alone.

  • Business Stock Photo

    Did you ever wonder where companies get their nice looking photos for the pages of their website? You know, the ones with a team with an equal amount of male and female employees that are just so happy about their jobs and dying to get some work done and have you as their next customer? Like this one:
    Businesswoman consulting a partner
    I wondered about it but in many cases the answer is probably: Stock Photo. Take a look at the pictures in this most entertaining blog post:
    Microstock: why would a reputable company do this to themselves?

    Quite weird having people on your corporate pictures that have never set foot in your company don’t you think? But it’s good fun.

  • Walled Gardens of countries

    Yerba BuenaHaving recently moved to Sweden but with business/friends/family in Denmark, I have experienced first-hand a phenomenon that has increasingly been discussed in various forms over the recent years: Walled Gardens.

    According to Wikipedia, a walled garden refers to:

    … a closed or exclusive set of information services provided for users. This is in contrast to giving consumers open access to applications and content.

    This is a rather broad definition but well-suited for the purposes of this blog entry. There are several kinds of walled gardens. Some examples of walled gardens include social networking sites such as Facebook and Apple’s iTunes Store.

    The walled gardens I have experienced recently are related to internet and cell-phone services between borders of countries. Here is the situation: My Danish cell-phone carrier, 3, offers the convenience of calling and surfing with the same prices in Sweden when connecting to their Swedish network. This allows me to keep in touch with friends/family and business relations in Denmark without added cost. However, there are three problems with this:

    1. 3 is the only company that offers this service, limiting my choice of carrier.
    2. If a Swedish person calls me while I’m in Sweden, they pay as if they were calling from Sweden to Denmark, i.e. with international rates instead of domestic rates. I feel bad that they have to pay more to call me and maybe they will actually call me less because of it.
    3. If I call a Swedish number while I’m in Sweden, I pay as if I was calling from Denmark to Sweden, i.e. international rates instead of domestic.

    Now, the solution to all the above problems is pretty simple: Create a subscription that offers the same rate for calling both domestic and international numbers with no roaming charges. It is beyond me that I can travel freely between most of the European Union countries without border control (because of the Schengen area) but I am restrained by my Danish service provider’s walled garden when it comes to communication between borders.

    I have tried different options such as buying a Skype Online Number and running Skype on my phone and I have clinged to my belief that it should only be necessary for me to carry one phone around. But I realize that I will probably soon have to carry around two phones at all times because there is also not a decent double sim-card phone out… yet.

    Why are roaming prices so high? A survey by Eurobarometer from 2006 (in these days considered a very long time ago) finds that there are really no reason and suggests, among other things, to have a maximum roaming charge of 16.5 cents for receiving a call (about 1.24 DKK). Now, 5 years later, I can see that my carrier charges 1.39 DKK for receiving calls in many European countries. This is simply not good enough.

    I think the above example outlines a problem that needs solving and needs it fast. Unfortunately, the cell-phone carrier business is not one I would dare entering but if someone came along and offered me 100 million as startup capital (or something like that), I would promise to devote my entire time to creating a company that would support this idea. Imagine not being restrained by borders and huge roaming charges. That would be something.