Requirements

I got quite annoyed by the vendor lock-in of Plesk Panel, so now I'm looking for a free and open alternative. The requirements were quite straight-forward:

  • good software quality
  • free and open source software
  • running on a Linux server
  • multi-domain capability
  • multi-client capability
  • FTP, webserver and e-mail configuration support
  • per-client SSH access

Alternatives

List of alternatives that I looked into, ranked by my subjective evaluation of matching the above requirements, the best first. First the panels that I consider the best for the above requirements, and they are all nearly on par:

  • ISPConfig. My personal first choice. See Wikipedia on ISPConfig. They have a live demo version available, which looks nice and stable, and with a whole lot of functionality, incl. five different modes how to host PHP, even with naming templates for database naming etc.. My only "complaint" would be that the multi-server features are also all over the place, which is overkill / distracting for our simpler requirements.
  • AlternC. I like their clean and simple user interface a lot. Their live demo version works well. Written mostly in PHP. Seems not as feature rich as ISPConfig, but simpler to use. For being used by non-techie users, I would choose this one, while for myself, I would choose ISPConfig.
  • ZPanel. Also a feature-complete hosting control panel.
  • Virtualmin. A variant of the well-known Webmin panel, adding website management features though additional modules. Written in Perl and modular, though due to its age the user interface is somewhat outdated and complicated, including the naming of items (such as "virtual servers" for "domains").

Other panels:

  • GNUPanel. See its website. Nice project, but not yet feature complete and it still has to mature. Plans for version 2.0 are well under way though.
  • Domain Technologie Control. Indeed still a very active project [source], but with just one main developer, so no warranties for the future. The DTC documentation however is extremely outdated (with comical overtones when they praise SysCP and Web-cp as "very good" [source], both dead since 4 resp. 8 years now). I did not like the self-praise in their docs, so did not even bother to try the software. Which I would have done however if there would be a live demo …
  • OpenPanel. Interesting architecture with a core written in C++, but so far not yet the full feature set as available in, for example, ISPConfig.
  • Froxlor. I have installed Froxlor on one web server, and I'm not really happy with their software quality then (2013-03), esp. the UI logic. Once it's running and you found your way around configuration issues, it works pretty stable though.
  • i-MSCP. Looked quite promising until I saw it does not support per-user SSH access [source].
  • Kloxo. Seems not really in active development any more [source], and its history is quite bumpy.
  • Webmin. One of the oldest web-based control panels, with its first release on 1997-10-05 [source]. Virtualmin, a derivative of Webmin, seems preferrable over Webmin for webserver management since it adds the website management features directly [source], while they probably could be added to Webmin as modules.
  • Usermin. A variant of Webmin, but not strictly for website management. Rather for user-level computer management. Virtualmin is the variant to choose for website management.
  • ispCP. No per-user SSH support, so not applicable for our requirements. Also, superseded by the fork i-MSCP.
  • SysCP. No per-user SSH support, so not applicable for our requirements. Dead since four years [source].
  • Baifox. Dead since 2009.
  • WebsitePanel. Only for Windows-based hosting [source].
  • EHCP. No information on this.
  • Ajenti. They say "Ajenti is a server control panel, not a hosting control panel." [source], means it is not possible to manage domains, clients etc. with this. Not for our purposes here, but an impressive project anyway.
  • Aegir. Impressive features and even a command line client for hosting management, but it is meant only for Drupal site deployment [source], not as a generic web hosting control panel.

Sources

 

Just rebooting the phone should fix this if this option is at least usually shown when connecting the phone by USB cable to a computer.

It does not help to use the feature in settings to "Safely Remove SD Card" and then drawing the SD card out and plugging it in again – the SD card is accessible by the phone without problems still, just not shared to a computer.

It might be that switching the "USB Tethering" feature on and off multiple times is what triggers this issue (since, by design, the USB mass storage connection option is not shown while USB Tethering is enabled on the phone; and by error, maybe also not afterwards in some cases).

Symptoms

The exact error when executing the cron job manually (/usr/bin/php -f /var/www/vhosts/example.com/httpdocs/cron.php) was:

PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 7 bytes) in /var/www/vhosts/onlinediscountmarkt.de/httpdocs/lib/Zend/Db/Statement/Pdo.php on line 290

Solution

This error can happen if Magento's cron_schedule table has too many records, coming from the log entries of past cron runs. So, delete all the entries, directly in the database with TRUNCATE TABLE cron_schedule; or using phpMyAdmin or similar.

Now, when calling the cron job again from the command line, it finishes normally, without a crash.

Prevention

It seems that the table could become that full because in "System -> Configuration -> System -> Cron", "History cleanup every" was set to "1440", thinking this was to be set in minutes. But instead, it seems it's set in days. The same for "Success history lifetime" and "Failure history lifetime" there. So better set all three to some meaningful value like "30".

Discussion

This "Allowed memory size exhausted" error also persisted after installing the AOE Scheduler module and removing all scheduled cron tasks, then calling the cron job manually. This hinted to the fact that this error is unrelated to any single of Magento's various cron tasks (so also independent of installed contrib modules), and instead happens in Magento core. (This is Magento 1.5.0.1 by the way.)

Also, from searching the error message on the Internet, it appears that the "Allowed memory size exhausted" problem at this specific code location is a rather generic error that else happens for example when processing too many product records at once (see for example here or here).

This had me look at Magento's cron_schedule table, in this case it had 673498 entries according to AOE scheduler (in the database, even 830,881 rows). These were too many records for Pdo.php to process within the memory limits: in line with other reports of the "Allowed memory size exhaused" error in Pdo.php line 290, the error was here caused by too many records in this cron_schedule table.

This applies for example when you want to add a photovoltaics installation to your campervan, expedition vehicle, garden hut, off-grid house or similar. For having enough electricity year-round from photovoltaics alone, battery size and module size have to be properly dimensioned.

The best tool I found for this is the European Commission JRC's PV potential estimation utility. There, use the last tab "Stand-alone PV".

Note that that the tilting angle of the solar panels is important in winter. Differences of up to ca. 30° from the optimum have no large effect, but above that they get quite important. So having an angle of 0° (flat panels) while you should have an angle of 74° (Germany in winter for example) means you get only about 25% of the power you would get at a 74° angle. You can calculate the exact numbers for this with the SunAngle calculator.

Instructions

These are instructions how to import messages held in KMail 2 into Thunderbird. Versions were KMail 4.10.5 and Thunderbird 17.0.8, but should not matter for this to work.

  1. Install ImportExportTools in Thunderbird.
  2. In Thunderbird, create a folder into which you want your e-mails imported. This can be in "Local Folders", which is recommended, but also in an IMAP account. In the latter case, importing and uploading are done at the same time, so there are two error sources and the second step can not easily be repeated when it fails, without repeating the import step as well.
  3. Right-click on the new folder and select "ImportExportTools -> Import Messages".
  4. In the file selection dialog, go to ~/.kde/share/apps/kmail/mail/<your folder to import>/cur/, select "All Files" in the file filter at the bottom, and select all these messages (simplest by pressing Ctrl+A).
  5. After the import, all messages are marked as unread. Right-click the folder again and select "Mark folder as read" to fix this.

This should import all messages nicely and without errors. You may compare message counts to those in KMail.

Discussion

The above solution seems quite straightforward, but it really was the only working solution I found. Various other solutions are meant to work, but did not:

  • Uploading local e-mails to an IMAP folder in KMail, then downloading again from there in Thunderbird. Should work usually, but in other cases errors in KMail can be triggered. For example, creating a new folder is not possible in KMail if the e-mail server is based on courier.
  • Selecting a bunch of e-mails in KMail and right-clicking on them then selecting "Save as …" gives the option to save them all to one .mbox file. Which can then be imported with "ImportExportTools -> Import Mbox files …" in Thunderbird. However that import often fails, so that no e-mails are imported at all.

Has been nearly a year since the last release. But then again, it's just a for-fun project for me at the moment where I put in some spare hour to relax by indulging into creative technological thinking and some systems engineering. Anyway, here we go:

The new version 0.13 of the EarthOS document has been published. Access it with that given link, or via “Downloads -> Main” in the site menu.

What's it all about? A constantly evolving open content project where I collect and orchestrate existing open hardware and open source projects and own ideas into a system with which you could manage all material and technological requirements of living, from food to water supply, mobility to clothing, health care to Internet connection.

What is it good for? Personally I use it as a framework of thought: I do not implement it all since it's too much of an effort for one person alone, but where applicable I align the designs of stuff I build according to the EarthOS proposals. For example, things I integrate into my mobile home. So I guess it would be great as a combined roadmap that could help all the open projects to coordinate efforts for arriving at a fully open world efficiently and fast. Preferably in our lifetime!

What's new? Too much to count. Really, it's 850 pages now and I do not remember all I changed. Main aspects are however the energy supply design: levels L2 and L3 rely on biomass gasification now. This includes innovative ideas that have never been tried to my knowledge, like a bike with wood gas powered assisted power engine, or a truck where 100% of all energy is used because the 60-70% thermal energy, normally lost via the exhaust and radiator, is used for meaningful work like drying collected biomass and recycling water by multi-stage distillation.

Why are there no images? :S Umh, I admit the document is very much in draft state, also still containing untranslated German sections etc.. It's like a brain dump … and probably shows the nature of my thoughts: many details but not aesthetically pleasing 😀 I am wide open to your proposals how we could make this a great, usable piece of content. In order to make faster progress, we'd either need more people, or some compensation so I can put in more hours. Any ideas? Any feedback on how applicable this is for a small crowdfunding campaign?

Recording a video from Linux desktop content, like for creating a screencast presentation, is quite simple with recordmydesktop or its GUI version gtk-recordmydesktop.

However if you want to capture the system sound as well (not what you might speak live into a microphone), it gets a bit more difficult. Here is one possible solution with the pulseaudio sound server (available by default in Ubuntu Linux):

  1. Install pavucontrol by executing sudo apt-get install pavucontrol.
  2. In gtk-recordmydesktop, go to "Advanced -> Sound -> Device" and change the value from "DEFAULT" to "default".
  3. Start pavucontrol.
  4. Do a test recording with gtk-recordmydesktop and, while it's recording, in pavucontrol go to tab "Recording", there in entry "ALSA plug-in[recordmydesktop]:ALSA capture from" change the value from "Built-in Audio Analog Stereo" to "Monitor of Built-in Audio Analog Stereo".
  5. In tab "Input devices" use the dropdown on the bottom to display also monitor devices, look for the ""Monitor of Built-in Audio Analog Stereo" device and make sure it's not silenced and the volume gauge is at 100%. When something is playing through your speakers, you have to get a signal showing up there, independently of if you're recording at the moment.
  6. Record with gtk-recordmydesktop as you're used to do.

This solution was taken from ubuntuforums.org thread 1509398.

There is also another solution involving only ALSA and the snd-aloop kernel module for recording from a loopback soundcard. However I could not get it to work.