QuiXXX down, quick and hopefully effective primitive load balancing system

QuiXXX, an app for android and windows phone me and a friend developed some time ago, was actually (and unbelievably) doing well. It has been receiving ~ 5 to 10 thousands visits per month, which was about 5-10k times more than we expected when we first developed it as a joke.

Anyway, recently there has been a peek in traffic (looks like mexican windows phone users liked the app) and we first noticed the problem: we are exceeding the maximum CPU load of our free hosting service (frogcp.com):

cpuexceededfrogcp

So I registered another free account on altervista.org and uploded the app there, then also mirrored the app on my domain www.nicassio.it, and wrote a very primitive load balancing redirect in php to be hosted on the original service frogcp, which redirects to one of the two mirrors with equal probability.

Let’s see if this will sort it out.

Ah, this broke the scoreboard, but this is temporary.

I’ll update this blog post when there’s further information.

[update]

We needed to do this without an actual update of the app, but this is not possibile, at least for android. Any page on a different domain will be opened in the browser, instead of within the app. That’s because we didn’t tell the app to handle redirection that way. Since we are not willing to release an updated version of the app right now, after being ublocked today I reuploaded the app to the original frogcp url making some changes to lower the cpu usage. I hope this will be enough for the near future.

Naive Bayes Classifier in JS, empowering telegram webapp

Today I made a simple implementation of a naive bayes classifier in Javascript. The implementation was largely inspired by this article.

After that, I spent some time to integrate it with this Telegram webapp, and now I have a telegram webapp in which you can mark messages as ‘spam’ or ‘important’, and every message is then classified giving some confidence about the possibility of it of being part of these categories.

It saves the results to the chrome local storage, so that you can train the classifier over time, preserving the results beetween sessions.

When I will train it enough, and if the results are good, I’m looking forward to implement the auto-hiding of messages based on this data. This is intended for large telegram group chats, in which often off-topic messages will just make painful extracting important messages from the enormous amount of things people texted. How many times you look at your preferred messaging app and you find ~50 unread messages? This is meant to resolve this, even if the bayes classifier is not perfect for this task, it was easy to implement and usually gets good results. I’ll update here if I have encouraging result from this test.

Meanwhile, here’s a screenshot:

telegrambayesscreenshot

Some music, please

I’d like to spend a few words about a project I’ve been doing with a friend for some years so far. My friend, nicknamed ‘Cassio’, enjoys singing some music (sort of dancehall/reggae/hip hop) and It’s been years since I started assisting him technically to record some of his songs.

We bought some stuff, like a decent microphone, a tiny external audio card, some cables and a dedicated PC, and we’ve been recording some tracks using Cubase 5, with me enjoying exploring new effects and possibilities offered by the software. I must say that has been very much fun, and I’m sharing it on this blog because I think it’s a pretty interesting experience, with (maybe) some technical value too.

If you’re interested in listening some of the songs we produced, you can find them on his official soundcloud page. The songs are in italian.

JSNeuralNetwork updates and some more experiments

I’ve updated the JSNeuralNetwork library implementing a small and still simple version of the Hopfield Network, along with some implementations.

Moreover, I implemented a new experiment based on the Kohonen networks, which is about vision, and needs a webcam to work.

 

As usual everything is here: http://www.nicassio.it/daniele/JSNeuralNetwork/.