InnoDB is better for SugarCRM

After SugarCRM was deployed, we were experiencing some lock ups.  Not frequent or dangerous, but annoying.  About once a week or every ten days or so, SugarCRM would lock up and won’t answer any queries at all.  Not even the login was possible.  A brief investigation showed that somehow it was locking up the MySQL database – about 15 processes (using “show full processlist”) in Locked state, with no data being sent back or forth.  All locked queries were rather complex, with several JOINs.  The load on the system was somewhat high, since we have about a few dozen operators working on it at the same time.

A similarly brief Google search suggested (see here and here) and explained converting MySQL tables from InnoDB to InnoDB.  A test has been performed and everything went OK.  Our SugarCRM database is about 600 MBytes and it was converted from MyISAM to InnoDB in under 20 minutes.  The best part is that it takes even less to convert back to MyISAM, in case you change your mind.

It’s been a few days now since we did the conversion and it looks OK.  Also, the CRM itself feels a bit faster.

Monitoring dynamic processes with Nagios

We spent a couple of weeks now at work, setting up our Nagios installation.  This is one of those things that one can never finish.  Monitoring is like security – no matter how good it is, it can always be better.

One thing that I particularly enjoyed figuring out was how to monitor dynamic stuff.  Hosts and services are the easy part – they are always there and should be there.  If they aren’t – let me know.  But how to monitor dynamic values, that change based on the time of day or day of week?  How to configure the monitoring so that we don’t need to update the limits every other week?

For example, consider the number of the user registrations through a web form.  If we are to measure this number over any sensible (monitoring-wise) period of time, such as one hour, we’d see that it fluctuates a lot during the day.  Furthermore, this number fluctuates differently depending on the day of the week.  We have three separate pick hours during the day, and we have a great decrease in numbers over the weekend.  Plus the amount of user registrations is linked to all the advertising that company does, so this week might different from the last week and from the next week.  How can we measure it so that a notiification is sent when the number is abnormal?  What is abnormal?

The solution turned out to be much simpler than I originally thought it would.  It is sufficient to get a few samples of the data in same hour last week and a week before.  If current value is more than twice the maximum or less than twice the minimum from the sample data, then we should be notified. This, in fact, works pretty well.  The only time when we get a lot of false positives is when the values in the sample data are small.  With values under 10, it’s very easy to jump over or under the limit.  When the sample values are higher, there is more space between the boundaries and the system works as expected.

We’ll get some more sample data now and we’ll be adjusting the formulat accordingly.  But as I said, even as it is, it’s pretty good.

Vacancy for Python or C++ programmers and Linux sysadmins

Point Nine is looking for some talanted people.  They are working in the financial sector, and seeking Python and C++ programmers, as well as Linux system administrators.  They seem to be an interesting company, judging both by their technology stack and hiring techniques.   For example, I’ve spotted their job ad on The Daily WTF.  Cool stuff.  If I wasn’t working where I am working, I would have applied for the job already.

Migrating MS Dynamics CRM to SugarCRM

I’ve been a bit quiet for the last couple of month.  That’s because I was leading an ambicious project at my new job – migration of a Microsoft Dynamics CRM version 3 to SugarCRM Community Edition version 5.0.0.  There were only three people involved, non of us could afford to work full time on the project, and we only had three weeks to do it.

Read on for a story on why it took us longer, how we did, and if it was a success at all.

Continue reading “Migrating MS Dynamics CRM to SugarCRM”

Longer video? Maybe.

Scobleizer believes in longer videos:

Advertisers also will pay a lot higher rates for those long-form ads.

Why?

Because someone who’ll watch a 30-minute video is HIGHLY ENGAGED. They are far more likely to become a customer than someone who just watches a two-minute entertaining video.

I think that “video” is too broad for this topic.  To consider only educational and entertainment videos, I see a huge difference.  I don’t believe that entertainment videos will become longer.   Entertainment is a sort of thing that doesn’t have to go either deep or long.  Thus it doesn’t need large chunks of time.  Educational video is a totally other story.  While there are many “howto” type of videos, many topics require more than 5 minutes to explain.  Take Google Tech Talks for example.  They are pretty popular and each one takes about an hour.

There is also this factor of production costs.  It’s much harder to create 60 minutes of high quality (and I don’t mean pixels or bytes) video material, than 10 minutes.  Or 5.  Filmmakers know that.  And the audience knows that.   While less and less filmmakers will risk it, and more and more of those who do risk it will produce crapy long videos, the audience will learn the benefit of a short video and will be more inclined into choosing shorter formats.

However, since I am not at all involved in any video production or distrubtion, I might be totally wrong on this.  Judging purely from my own experience.  And my own experience mostly comes from YouTube and Google Video.