Archive

Archive for August, 2011

Seminario: “Mi primer curso virtual bajo la plataforma e-learning Chamilo”

August 23, 2011 Leave a comment

Advertisements

Open alternatives to Skype

August 21, 2011 2 comments

Note: this post might be considered totally useless by some as there is no clear conclusion or solution. It is a work in progress. It does, however, contain hints at nice things to do to find your own replacement for Skype.

So I’m a Belgian in Peru and I want an alternative to Skype, now that it’s been bought by Microsoft and I really don’t want to be adding to the enormous money fund of Microsoft because I think they don’t do much real good with the money (or what it’s transformed into).

A few websites tell about available alternatives (see references below), but I must admit I’m not convinced by any of these. While the most similar solution (in terms of having the possibility to contact people over the same network for free and being able to reach anywhere in the world – not for free but at a reasonable cost – with a software that is available on Linux, Mac and Windows) would be the Google Voice solution, apparently it’s not available in Peru: I invariably get to the https://www.google.com/voice/help/setupUnavailable page, which tells me I’m not eligible for a Google Voice account.

So the best solution still seems to be to hire a VoIP service that will rent you a telephone number with the possibility for you to connect to their server directly from a physical IP phone, like the excellent good-value Linksys SPA942, but you’ll have to go through a series of trial-and-errors, each time potentially loosing your local number.

Because… did you know that several countries allow you to *buy* (for life) a normal phone number, and have it linked to an IP address of your choice? That’s a very cheap deal, as you are then free from any phone service provider, and just pay to make calls, using whichever service you like. Buying the phone number is generally quite cheap. Like US$80 or so, and then you can just set it up to go through an Asterisk (VoIP) server you could set up for free.

So in the meantime we’re using WeePee, an IP Phone service which we’re happy about (although they suck at internationalizing their services – mostly they suck at having good multi-lingual support staff) as they allow us to make calls from our self-owned landline number with a reasonnable fee (still higher than Skype though, and still not making possible a large network of users like Skype does).

There has been some fuss about developing an equivalent to Skype inside the Free Software Foundation’s high priority projects, but so far it is still lacking a real implementor.

References to alternatives to Skype:

Categories: English Tags: ,

e-learning platforms list

Just as a reference for later (in alphabetical order) – this list was originally quickly composed as part of the planning of a comparative study which was not concluded:

Open Source:

  • A-Tutor
  • Canvas LMS
  • Chamilo
  • Claroline
  • Docebo
  • Dokeos
  • eLMS
  • Ilias
  • Moodle
  • OLAT
  • Sakai
  • .LRN

Non Open Source:

  • Angel (now Blackboard)
  • Blackboard
  • CourseMill
  • e-Doceo
  • e-Ducativa
  • SharePoint LMS
  • TotalLMS
  • WebCT

Reset mailman admin password

To reset a mailman admin password on Debian, the easiest way is to locate the mailman’s proper bin directory (use dpkg -L mailman), generally: /usr/lib/mailman/bin

There, you’ll find an executable script called change_pw. Use this one.

If you want to change the password of all lists at once, use: sudo ./change_pw –all –password=newpassword

Ref: http://www.mail-archive.com/mailman-users@python.org/msg34242.html

Server stalled on Loading Kernel Modules without chroot – What to do?

Today we had a server stalled on “Loading kernel modules” at reboot (after adding 12GB of RAM, to 24GB total). The datacenter didn’t know what to do and they put us on a 32-bit rescue mode console from which we couldn’t (obviously) launch a 64bit chroot to update the kernel. The situation seemed pretty desperate.

Our sysadmin, Jérôme, once again came to the rescue. Waiting for the datacenter to respond would have potentially increased reboot time up to 45 minutes. The only possible thing to do: replace initrd with a similar version (just in case the first one would have been damaged). Luckily, we had another similar machine which had been installed the sameday (at 1h difference), so we copied the initrd image over and launched a reboot. After 5 long (never-ending) minutes of no response from the server, it just popped back online.

That’s another one to remember for sysadmin’s day!

How to best generate a DDoS without even noticing

Yesterday w had a funny (I say that now that I’ve been able to relax a little) situation on one of our hosted servers. The server’s RAM usage went bang to the ceiling in a matter of minutes, and it was then practically impossible to get it back (had to hard-kill Apache and the monit process that was restarting it).

What happened? Basically, a DDoS on a single server which is, as most knowledgeable people will tell you, practically impossible to manage.

Just a few definitions:

DoS = Denial of Service = a high load generated on a server which gets the server into a resources starvation (either no RAM left, or disk over-used or CPU overloaded or anything really essential to your system).

A simple DoS attack is originating from one single source and is pretty easy to stop: locate the origin IP and block it. Done.

A more advanced version of a DoS is a DDOS.

DDoS = Distributed Denial of Service = a high load generated on a server … originating from a large number of sources at the same time

The detail is in this last part. Whereas it was easy in DoS to detect where the attack came from, in DDoS, it is made impossible to distinguish one attacker from a normal user, because no single attacker is making “a lot” of requests. They just sum up to a massive number of requests, which eventually make your server get into resource starvation.

So now the concept is clear, how can you do to make it work? Well, that might require a very high skills set if you want to do that on purpose, but surprisingly if you don’t even know what DDoS means and you’re a simple Flash banners designers, it’s apparently dead easy: just make sure you put a flash banner on the homepage of a moderately visited website (let’s say 6000 visits per hour) which has a mechanism to recommend pages when a user tries to find a page that doesn’t exist (technical translation: a custom 404 page which generates a SQL query), on which users stay for a while (put some full-size breaking news or something like that). Then try to load, from your Flash, an URL that doesn’t exist. Oh and wait, while you don’t get the expected answer, just repeat that call, over and over, once every second.

That’s it, you’ve built yourself a nice 1000-users DDoS in less than 10 minutes. Prepare to see your RAM usage soar if you have a CMS with that custom 404 recommendation page, then (if you use swap memory), your disk fill up with swapping pages, and then finally your processor burn its “waiting” states.

The beauty of it is, once you find the cause of the mess, you can’t really stop it straight away, because your users will still be on that page with the banner, so as long as they don’t change page, it will continue querying your website. To make it even more perfect, the Flash might use a lot of the clients’ CPU, which will possibly end up in freezing their browser, which means they won’t be able to get out of the page for a while…

If you’re lucky enough to have a Varnish reverse proxy installation (or any other reverse proxy), one (emergency) solution is to just tell the proxy to *not* pass the request to the webserver, and just answer directly (from cache) a default error page. This will effectively (but it might take a few minutes) highly reduce the server load.

My previous post explains how to do that, just in case.

Categories: English, security, Tech Crunch Tags: , , ,

Force caching for a specific page in Varnish

Just a self-reminder, in the vcl_recv section (before sending request to the backend), check the url you want to always serve from cache and tell it to return(lookup);

  if (req.url ~ “request_server.php$”) {
return(lookup);
}

Reload Varnish and get ready for a massive fall of your load if this bloody request_server.php was overloading your site uselessly…

Categories: English, Tech Crunch Tags: , ,
%d bloggers like this: