My day couldn't be better... First thanks to Bilal Soylu, who told me a while back he would be kind-of-nearby The Netherlands in May 2014, and he was willing to do one of his always-awesome presentations! Bam, new CFUG-NL meeting planned for may 28, 2014.
And today I am chatting with Gert Franz, and the word CFUG drops. "I should come around once to do a presentation", Gert said. "You wouldn't happen to be in the vicinity around the 28th?" I replied. And bada-bing bada-boom, now we've got a super-awesome dual presentation evening!
If you're in The Netherlands may 28, 2014, then do come and check this evening out!
Notice in Dutch on www.cfug.nl, "Surprise!" :
Posted by Paul Klinkenberg in Phonegap on May 5, 2014
I just spent 2 hours debugging a Phonegap iPad app. The app downloads a library of images and videos to localStorage, but only if the device is currently on WiFi. The iPads do have a cellular 4G connection as well, but the data transfer would be too costly, the client said.
In all tests the files downloaded fine, and all was good. Untill a few days back: now the app constantly shows my custom msg "downloading files (waiting for WIFI)". It turned out the iPads were updated to a newer iOS version. While debugging, the network.connection.type now always returned "cellular", even when cellular was disabled on the iPad.
Solution? Turned out to be simple: overwrite the old CDVReachability.m and .h files (version 2.2) with the latest ones, version 3.5. You'll need to rename references in the 2 files from "Reachability" to "CDVReachability".
Or... just download these 2 files here, and add them to:
Hope it helps you out, I will try to add a pull request as well.
I am part of the organizing commitee for the Dutch CFUG, and we finally got a new meeting! The 28th of may 2014, we will be honored to have Bilal Soylu present on Style, Standards, Sanity. You can read all about it at www.cfug.nl!
Come to Utrecht and join us in a great evening full of CFML :-D
Posted by Paul Klinkenberg in on April 16, 2014
I recently installed a cluster of Ubuntu VMs for a client's web application. Now it was time for logging and monitoring, but that turned out to be not so simple at all. I couldn't find a solid Linux script which would log CPU and memory usage, so decided to write it myself.
The script extracts data from the files /proc/meminfo and /proc/loadavg, and saves them in sysinfo.log as a tab-delimited text file. The columns are:
Date MemTotal MemFree MemCached CPU-usage (=last minute avg.)
MemTotal will always remain the same, but is usefull for calculating relative available memory. MemFree + MemCached == available memory; don't be misled by the column name "MemFree".
MEMDATA=`sudo cat /proc/meminfo | egrep "^(MemTotal|MemFree|Cached)" | sed 's/[^0-9]\+//g' | tr '\n' '\t'`
CPUDATA=`sudo cat /proc/loadavg | sed 's/ .\+//'`
if [ ! -f $FILE ]
echo "Date MemTotal MemFree MemCached CPU-usage" > $FILE
echo "$(date) $MEMDATA $CPUDATA" >> $FILE
Steps to install/use:
- $ nano ./logsysinfo.sh
- paste the script, then do CTRL + X
- chmod the file to 755
- $ chmod 755 ./logsysinfo.sh
- $ sudo ./logsysinfo.sh
- tail ./sysinfo.log
- If the output of the last command was 2 lines (1st=header, 2nd=numbers), then all is good.
- Make sure the log is updated every 5 minutes:
- $ sudo crontab -e
- add the following line in the text editor which just opened, then close the editor:
- */5 * * * * /home/paulk/logsysinfo.sh
- Wait for max 5 minutes, then do $ tail ./sysinfo.log again
- If there is more output then before, all seems to be working :)
Personally, I now use this log file for input of a daily monitoring script: check min-max available memory (= MemFree + MemCached), cpu spikes, etc. I hope it helps you out as well!
For a client which is migrating from a Windows environment to Linux, I needed to check if the source code contained broken links, due to case sensitivity on Linux. So I wrote this script, which goes through all your source files, and checks all links inside href="..." and src="..." to see if they exist.