Feb 25

Here is our official press release for Mob1serv, we are launching it today:

Injoit and YAS, two mobile software companies specializing in iPhone and Android development, have announced a launch of a service called Mob1serv. It is believed to be of demand by growing numbers of mobile developers and publishers as the service takes care of server side of the things. Authors say there are few typical tasks which make mobile developers to put off their native SDKs and spend time on writing server scripts and setting up the databases. Such tasks as storing locations data for Google Maps, queuing Push Notifications, maintaining online high scores table are all now addressed by corresponding modules in Mob1serv. The idea is not novel, there are some popular solutions in the market dealing each with one of the mentioned issues.

“We would not have built this service if there was a suitable solution available.” - Taras Filatov, CEO to Injoit, says, - “The problem is that existent solutions either lack functionality or they expose your user to some social networks of theirs interacting with other users and other apps. Our clients don’t want that. They just want the app to work and users to have that online high scores table or Google Map seeing other users in it, but not the users of other apps. Users don’t need to know what is the web service behind that functionality, it should be native with the app. So mob1serv just does the job, silently. And our modules are powerful, the architecture is well thought of, so as result you can integrate incredible social interfaces, literally anything. The modules are like lego bricks, you can use them in combinations and build something new each time. Our clients are happy with how quick and reliable our solutions are. Now it’s time to share the secret with other developers.”

Mob1serv is distributed on a freemium model which means the basic functionality is free but it might start charging its users for some advanced functionality in the future. Currently available modules announced at project’s website allow to deal with Google Maps data, Push Notifications (both immediate and delayed, making it possible to create instant messenger or events notifications apps), online high scores and OAuth (providing transparent integration with Facebook, Twitter and Google services).

Project owners are inviting iPhone and Android developers to visit the website and register to start using the service.


Jan 27

The works are going at a full steam on mob1serv.com, a universal server side solution for mobile (iPhone and Anroid) apps.

Earlier, in 2009, Injoit has already announced its iGetScores solution for online high scores. In this way we have created a solution for one of the most typical web service jobs often required in iPhone games. So iGetScores has been launched and it was open for other developers for free - many use the system in their games already.

It was our plan to add more of such services so we have launched the Mob1Serv.com and made it easy for developers / publishers to register, add their apps and start using the modules immediately. iGetScores has been transformed into just one of the modules, High Scores, simply put, and we have started the works on other modules.

By now, the modules of:

are already working, and more modules are to be added soon. We look into covering all typical server needs and as usual we are making the modules and data hosting for free for all the developers.

In February we plan a major opening when all modules will become available with simplified installation procedures. Video guides will be provided to make it even simpler.

So follow us here in blog or on Injoit Twitter for updates when Mob1Serv opens its doors officially. Or you may register with the system and start using it as beta user already at this stage.


Feb 20

I was reading stackoverflow and found one great idea on making client-server based high scores system for your iPhone games so as this is something we would need to develop soon, I’m posting it here so not to forget and I’ll update this post when we come up with our own solution. Actually I had a similar idea but benzado has formulated it nicely so here it is:

One idea that might be Good Enough:

  • Let Secret1, Secret2, Secret3 be any random strings.
  • Let DeviceID be the iPhone’s unique device ID.
  • Let Hash(Foo + Bar) mean I concatenate Foo and Bar and then compute a hash.

Then:

  1. The first time the app talks to the server, it makes a request for a DevicePassword. iPhone sends: DeviceID, Hash(DeviceID + Secret1)
  2. The server uses Secret1 to verify the request came from the app. If so, it generates a DevicePassword and saves the association between DeviceID and DevicePassword on the server.
  3. The server replies: DevicePassword, Hash(DevicePassword + Secret2)
  4. The app uses Secret2 to verify that the password came from the server. If so, it saves it.
  5. To submit a score, iPhone sends: DeviceID, Score, Hash(Score + DevicePassword + Secret3)
  6. The server verifies using Secret3 and the DevicePassword.

The advantage of the DevicePassword is that each device effectively has a unique secret, and if I didn’t know that it would make it harder to determine the secret by packet sniffing the submitted scores.

Also, in normal cases the app should only request a DevicePassword once per install, so you could easily identify suspicious requests for a DevicePassword or simply limit it to once per day.

Disclaimer: This solution is off the top of my head, so I can’t guarantee there isn’t a major flaw in this scheme.

Written by benzado

Currently, I’m trying to figure out the best way to make online highscores system for our clients without having to invent the bicycle. It seems however there is no great solution yet. I was looking into OpenID but the evidence that at the moment it doesn’t allow easy automated identification using the iPhone’s deviceId feature:

http://factoryjoe.com/blog/2008/01/13/the-openid-mobile-experience/

http://openid.net/pipermail/specs/2009-January/002688.html

so likely we will come up with our own solution something like Benzado mentioned above


Oct 6

Wordpress might be heavy for your web server as it works a lot with MySQL database and has tons of scripts and plugins that run along.
This as simple script, add it to the footer.php of your Wordpress theme and you will get a line in the bottom with your SQL queries and generation time.

<?php echo get_num_queries () ?> SQL queries done. Page generation took <?php echo timer_stop(); ?> seconds. ?>

You may start to think of next steps if this values are not acceptable. What you could do, to start with, is:

1) get rid of unused and unnecessary plugins
2) install WP Cache or WP Super Cache plugins
3) add automated MySQL tables optimize script to your cron jobs
4) check your server configuration (php.ini, mysqld.conf) to find if the memory allocation and other settings are optimal
5) upgrade your server

Number 3 stays without attention very often however this is important. MySQL doesn’t optimize itself unlike Oracle. In a while, your DB, depending on its size and usage characteristics, gets fragmented making mysqld process to eat all your server resources. As result, your Wordpress powered website starts working really slowly. At Injoit.com we resolve this by installing additional mysql optimize script to the websites of our customers. Added to cron this script launched daily or weekly and does the job perfectly.