27.08.2012

Patents

posted by Karsten

Thought I should say something about the recent patent cases:

The patent system is broken, especially the US software patents. A system created to protect investments in innovation has turned upside down and become its adversary.

When US patents are granted for:

  • “Touching a Touch Screen” (Apple, self-evident what you should use it for)
  •  ”Accessing a Server from a mobile” (Yahoo!, any computer driven device can do this)
  •  ”Clicking a button to view a result” (Blackboard, duh – I expect something to happen)
Then they are merely granted to protect market shares and not for innovative value generation.Add to this that they often are evaluated and judged by juries selected specifically so they have NO technical, software or market knowledge, then the evaluation becomes stupidified!

I have spoken against patents when; Apple was attacked, MS was attacked, Google was attacked, and I will speak against them now.

We, the consumers, have all lost out over the last week!

Or, should I say the US consumers, as most of the patents in question are void in the rest of the world, but it will impact us by proxy…

Share
Tags:
12.07.2012

My life with Virgin Media and their “Customer Service”

posted by Karsten

About a month ago I started experiencing an intermittent connection problem with my Sky Broadband connection. It would slow down to almost no connection at all, and sometimes disappear all together!   I often work from home, I develop Mobile phone apps as well, I am a computer scientist – so – this is unacceptable to me. I called Sky, they sent BT, and they couldn’t fix it after 2 weeks of trying.

Now out in the ground outside my house I have a Virgin Media cable, and I thought to myself that it was worth a try to get that set up. After all 100Mb/sec sounds like Internet heaven to me, so I ordered it Thursday the 28th of June, and was impressed with the service I received in setting up my account, and even more impressed with the speed at which they could get a man to my house, it was scheduled to the 2nd of July.

The installation guy came as promised to my door, and after an inspection established that a two man team was needed, as there apparently was no connection into my home. He called up his supervisor and was told that a two man team would come later in the afternoon. I was even more impressed at this point – however this was the highest point it ever got to, as it drastically went down from here on!

No one turned up that day. At work the next day I decided to call the “Customer Service” to find out what had happened. This is a close-to-real-enough transcript of the conversation:

Automated Lady voice: Enter your account number
Me: (I did) #########
Indian male voice (IMV): Hallo Sir, what is you account number
Me: I already gave it
IMV: Sorry, but I need it again
Me: Here you are #########
IMV: Was it #########
Me: Yes
IMV: Are you sure you are a customer?
Me: Yes, otherwise the installation guy probably wouldn’t come to my house yesterday…
IMV: And your address is?

I give it, and following a difficult time conveying my name to him, he finally decides to transfer me to his “supervisor”. After some wait he connects. He is a Male English Voice on a much better phone connection (MEV).

MEV: Hallo Sir, what is your account number?
Me: I already gave it twice…
MEV: I know. It can be frustrating. But I do need it again for digital privacy reasons…
Me: (Almost not resisting the temptation to call the error in that argument!) #########.
MEV: And you name, address, and password
Me: Give the information
MEV: I can see that the installer turned up yesterday
Me: I know
MEV: And a two man team will come today to your house.
Me: Really!! Do I need to be there? Why didn’t anybody call me, I gave all my phone numbers…
MEV: Yes, you ought to be there (and politely excuse that I weren’t told)
Me: Drives home from work in a hurry after just arriving…

 

Now I could understand this if they turned up. But they didn’t, so I called up “Customer Service” again shortly after 6PM the 3rd of June, and this is roughly what happened:

IndianGuy: Tells me I am not a customer
Me: Try and convince him I am
IndianGuy:  Tells me I need to talk to sales, and transfer me
SalesGuy: Tells me I am a customer and that they will come on the 12th with a two man team. (A help person all in all)
Me: Asks if he can tell me why I was told that someone would come today, and why I was told I wasn’t a customer.
SalesGuy: Excuses the situation, doesn’t have any answers, so switch me over to “Customer Service” as they should have the answer to that
IndianGirl: Tells me I am not a customer
Me: I try and convince her
IndianGirl: Tells me that no installation is booked
Me: I tell her that the sales department just told me that there was on the 12th
IndianGirl: She talks to sales, and after that tells me that there indeed is, and that I had given her an old account number to begin with
Me: I ask her to give me the correct one
IndianGirl: Tells me she can’t over the phone
Me: I tell that I already received my number by mail and read it to her
IndianGirl: Tells me that is the correct new number, and claims that I didn’t give her it at the start
Me: Frown, and say I don’t have any other numbers, so couldn’t possibly have given her an old number
IndianGirl: Doesn’t say anything to that, and decides to ensure me that the two man installation team will come on the 12th.

So today is the 12th of July, and the two man team should come, but, only an hour ago a one man team turned up. I told him I expected two people. He excused himself, and went around the house and could confirm that it is a two man job. He called up management, and they told him that they would send a team later today.

Have I been here before?!

I really do hope they turn up today, and that I don’t have to call the dreaded “Customer Service”…

BTW – as a Computer Scientist with a PhD in Knowledge Representation – I might be tempter to offer my consultancy expertise to Virgin Media. There must be something wrong with redundant data and the internal methods when something isn’t a normal case!

— Update —

The managers came by, and they were really friendly and apologetic about the situation. They could verify that a two man job was needed, but the only thing they could do was to reschedule the job to the 24th of July. A “bit” annoying, but at least they did turn up this time.

The Saga will continue…

— Update 22-07-2012 —

A Virgin representative calls me up on a Sunday to tell me that the two man job has been delayed until the 26th, and reassure me that I will have the service that day.

— Update 26-07-2012 —

50% of a two man team turns up. The guy informs me that this is a two man team, and that he cannot do this on his own.

I start – forcefully – to tell him the history of this “odyssey” . He calls up his manager, and he angrily tells the manager off for sending him alone. After this he re-investigate the situation, and decides to do it on his own. It takes him 4 hours (it was scheduled to take less than an hour), and he manage to install it!

He was awesome, and I cannot praise his work enough…

Share
13.05.2012

e-Sports

posted by Karsten

In 1998 I bought Grand Prix Legends

I’ve played it ever since. Today I won the Nüremberg 1967 race! Proudly I can proclaim that I have now won all races available as standard in the game. An achievement not shared by many!

Had I done it in real cars, I would have died about a 1000 times, and I pay homage to the (stupid) men who raced these things for real. Many of them with lethal endings…

GPL

Share
08.03.2012

Reflection on Teaching C++ to Novice Students

posted by Karsten

I have just finished 5 weeks of teaching C++ to the first year students at University of Reading. My impression is that my personal effort went well, for instance the students actually clapped when I finished my last lecture today – something that came as a complete surprise to me! Although a very nice surprise…

Having said that I believe that C/C++ isn’t the right language choice to teach programming to novice programmers. In a session a few weeks ago, where I gave feedback to them in the form of an interactive “Post-it coloured stickers show me what you think” session, it was brought to my attention that more “basic” programming construct such as pointers and arrays were still a struggle. I actually had to create a fast re-cap session on pointers to somehow hammer this concept into them. The questions I started to get were much more satisfying after this session. The problem is that what is the chance of learning function overloading, method de-referencing or multiple inheritance, if you don’t get how the arrays and pointers interact in the examples you see, as a struggling student, within the lecture notes? You probably go blind by these concepts before you even start thinking about inheritance at all!

Don’t get me wrong. Object Orientation is a crucial concept for aspiring Computer Scientists and programmers to understand, but the combination of C and then OOP in the form of C++ does not help teaching this. I believe that taking a OOP language such as Python, Java, C# or even VB would enable a much cleaner learning path into OOP whilst showing the concepts of programming. Once you understand these within the framework of OOP, you don’t really need to be taught imperative programming, because you would understand it quite easily!

Unfortunately I am not the person deciding this. I have voiced my opinion appropriately many times. I have had an interesting time teaching C++, wouldn’t mind doing it again, as most students clearly have moved far on the learning curve of programming – I just think it could be done more effectively…

Share
04.03.2012

No Cue Pool – Windows 7 phone

posted by Karsten

Yesterday my game “No Cue Pool” got verified and published on the Microsoft marketplace. It is a pool game where the player control the white ball using the accelerometer. There are online highscore lists and 3 types of game play.

This is the free version of the game, and I’m following the download rates closely, because if they are good then I’ll make an extended paid-for version with more game types and functionality to play against other online players. Click the image to go to the game in the marketplace.

Share
21.02.2012

BoB bug

posted by Karsten

I was teaching Android Game App development today. The session where I go through all of the code. The session as such went quite well IMHO.

Except, I “obviously” plugged my own games, as examples of game representations within a game. A student of mine downloaded BoB, and played it hanging about while waiting for a mate finishing asking me questions. To my surprise BoB crashed on him!

Apart from being only “slightly” embarrassing this was a great opportunity for a more in depth bug report. Not only had I observed him play a normal game, but also seen him finish, so I knew that the bug was in the transition between playing and finishing a game. So, I got him to file a bug report, and my was it interesting!

I can now locate the bug in the Scoreloop API, perhaps not surprising as the BoB game is using an old’ish version of the library, but nonetheless it is reassuring to know that the bug is related to failing to sending the highscore correctly, and not timing out, therefore not allowing the surfacedeletion to happen. This makes Android timeout, and that seemingly blows up everything within the system, as my code relies on the normal OS life cycle of an app. I must find a proper solution to this problem, but at least I now know the cause of the problem.

Oh, and btw, how we can teach Computer Science in a lecture hall with no adequate internet / 3g access is beyond me…

Share
13.02.2012

Farseer engine “bug”

posted by Karsten

I’m working on a game project for the Microsoft Phone / xbox. I decided to try out the box2d library for this one, and found the Farseer engine, which is a well supported library with many developers using it.

Things have been working well, but over the week-end I ran into a strange behaviour. Shapes (called body(ies) in the box2d world) got stuck to static shapes. So if a ball slowly approach a static wall it would be stuck to the wall, and it wouldn’t get away again (at least not by bouncing other balls into it). The ball would only move along the static wall.

Now this isn’t really expected behaviour in an environment simulating physics in the normal world! I have searched high and low to find a solution to this, and in the end my curious mind got into the Settings class, and I found the VelocityThreshold, which was set to 0.3f. This is indeed the culprit, as it treat any velocity below this threshold as inelastic. When set to 0.0f (zero point zero) the world starts to behave normally. This might be ok in a senario with non-static bodies, but in an world with static walls, not so great…

That was then that Sunday afternoon… ;-)

Share
12.02.2012

Rune Escape – changed format

posted by Karsten

I’ve decided to test how the download rates are with a traditional ad supported/full version model on Google market. Seemingly it works well on Amazon market where I have a steady – albeit low – sales rate.

Therefore, if you cannot find the adfreeable version on the market it’s because it has gone. You can follow the links to the new version to the right, or still get the adfreeable version from slideme.

Share
10.02.2012

Rune Escape Free – Windows Phone

posted by Karsten

I’ve had an interesting start to my Windows Phone explorations. Rune Escape is currently #15 for “paid apps” in the card/board games category, unfortunately not as lucrative as being #15 on the Android or iPhone markets. hi ho!

So I thought it was time to see how a free (add sponsored – with less functionalities) version would do…

Today it got published and can it be found here.

Share
29.01.2012

Google Market vs. Windows App Hub – a review

posted by Karsten

Yesterday evening I uploaded Rune Escape to App Hub – The Windows Phone Market backoffice – and I am now awaiting certification by MS! Following is a comparative analysis of that process and the Google Market process: (1 – Google, 2 – MS)

Coding:

  1. Coding the Menu’ing was easy. The game engine was hard. I struggled getting a smooth game play (Java isn’t exactly the first choice of language for most game developers…)
  2. Coding the game was easy (converted the game in an afternoon). The menu’ing was hard (using api 7.1, under 7.5 this should be easier by combining silverlight and xna)

IDE Environment including emulation and debugging on phone:

  1. Eclipse works fine and emulation and connection to handsets is easily set up. Emulation is slow even on fast computers.
  2. Visual Studio 2010 express works well. Perhaps a bit more “polished” (I hate to say) than Eclipse. Emulation works much faster than on Android. Setting up a handset for testing is a hassle though! It took me about 4 days from starting on the journey until I had the game on a phone for debugging. Not technical problems but redtape (see below)

Registering for markets

  1. Easy – just used my google account, and as google has a registered EU entity there are no need for any US tax forms to set up money transactions in either direction.
  2. Hard - First you have to pay £65 for a year’s membership of App Hub, then a 3rd party company has to verify you exist, and are who you say you are, and then after that they cannot activate the account, MS does that, which takes and extra 2-3 days. (All of this time you aren’t allowed to debug…) After that they still have to receive a US tax form by snail mail to their US entity of the corporation. This is strange as the EU headquarters are less than 10 miles from my home, and I literally drive past them every day going to work! So they must be set up to deal with UK/EU tax authorities directly. (But it gets stranger still – see below)

App Business model

  1. It is hard making money on Android. There are many developers fighting for the pot, and after Google removed the “Just In” section on the market, new apps don’t get exposure automatically, so you need to be big to make an easy entrance. Additionally few players buy paid for games, and ad-support and in-game purchase  seemingly are the two models that work well.
  2. We’ll see about this once the game is published. But there are definitely less games, and the NEW section automatically creates exposure to new apps. The trial versioning of MS phone games is interesting to test out, which I do in my first game. Ads can be used (which I do in the trial version), and this was reasonably simple to set up. Only MS’s ad service seemed to support XNA apps, so I use them. Setting up an account required me to create an electronic US tax form, which took about 30 mins to do, but once done, fine, I had a working account on the spot. WHY oh WHY can’t MS use this within the App Hub. The method clearly works, and is efficient! Or even better – set up a system where it is not necessary? Being multinational should come with such perks….

All-in-all an ok experience to convert Rune Escape, but I can understand if the redtape acts as a deterrent for some international developers. Now that I have done most of it, I cannot wait to compare how the market models compare to each other…

Share