Friday, April 3, 2015

Google Search Term Easter Egg


While trying to refresh my memory of what the word askew meant, I turned to Google.

Apparently, Google's SERP will be rendered in an askew way when you search for the word "askew".
That's a pretty neat way to drive home the meaning of a word :)

(It is purely a coincidence that I discovered this easter egg today which for Christian faithfuls is Good Friday.)

Thursday, January 22, 2015

svn: The filename, directory name or volume label syntax is incorrect.

I recently came up against the following error while checking out code using Subversion (svn client v1.6.17) on a Windows 8.1 machine:

svn up
A    modules\distribution\repository\conf\ues\jaggeryapps\social\themes\default\img
...

A    modules\distribution\repository\conf\ues\jaggeryapps\social\themes\default\img\preloader-40x40.gif
A    modules\distribution\repository\conf\ues\jaggeryapps\social\themes\default\img\sprite.png:Zone.Identifier A    modules\distribution\repository\conf\ues\jaggeryapps\social\themes\default\img\avatar.png
svn: In directory 'modules\distribution\repository\conf\ues\jaggeryapps\social\themes\default\img'
svn: Can't move 'modules\distribution\repository\conf\ues\jaggeryapps\social\themes\default\img\svn-A5B0B865' to 'modules\distribution\repository\conf\ues\jaggeryapps\social\themes\default\img\sprite.png:Zone.Identifier': The filename, directory name or volume label syntax is incorrect.


The error message "Can't move 'path\to\file\img\svn-A5B0B865' to 'full\path\to\file\img\sprite.png:Zone.Identifier': The filename, directory name or volume label syntax is incorrect." wasn't particularly informative.

Attempts to do an "svn cleanup" failed. Based on the suggestions in the answers I found, I decided to delete the "lock" and "log" files in the ".svn" folder of the path mentioned in the error, as well as the contents of the ".svn/prop-base" and ".svn/text-base" folders.

The error remained. The error message sounded like svn was not able to move a temporary file into its final location on Windows. I navigated to the path of the file in the repo I was trying to check out from.  It turns out that the file in question has a name that uses characters that would make it an invalid file name on Windows. The offending file was named "sprite.png:Zone.Identifier" -- it contains the colon ":" which is disallowed in Windows file names.

My workaround was to check out the code on a Linux machine and copy it over to Windows.


Monday, October 27, 2014

$15 Million Global Learning XPRIZE

The Global Learning XPRIZE which duration-wise, is a very very long challenge (it will be awarded in 2019) launched on September 22, 2014 and it:
"challenges teams from around the world to develop open source and scalable software that will enable children in developing countries to teach themselves basic reading, writing and arithmetic, empowering them to take control of their own learning and ultimately their future. Our goal is an empowered generation that will positively impact their communities, countries and the world."

Similar to the Ansari X Prize,  there is a grand prize of $10 million to the winning team. Along the way, there will be a prize of $1 million each to 5 promising teams that are selected as finalists.

The X Prize was inspired by the Orteig Prize which was instituted in 1919. Image comes from Strive Masiyiwa's photo stream.

Saturday, January 11, 2014

YUM: Cannot allocate memory

While trying to execute yum -y install nfs-utils nfs-utils-lib for the installation of NFS on a test EC2 micro instance running CentOS, I got the following error:



Total                                                                                                              1.6 MB/s | 644 kB     00:00    
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : libgssglue-0.1-11.el6.i686                                                                                                      1/7
Error in POSTIN scriptlet in rpm package libgssglue-0.1-11.el6.i686
error: Couldn't fork %post(libgssglue-0.1-11.el6.i686): Cannot allocate memory
  Installing : libtirpc-0.2.1-6.el6_4.i686                                                                                                     2/7
Error in POSTIN scriptlet in rpm package libtirpc-0.2.1-6.el6_4.i686
error: Couldn't fork %post(libtirpc-0.2.1-6.el6_4.i686): Cannot allocate memory
Error in PREIN scriptlet in rpm package rpcbind-0.2.0-11.el6.i686
error: Couldn't fork %pre(rpcbind-0.2.0-11.el6.i686): Cannot allocate memory
error:   install: %pre scriptlet failed (2), skipping rpcbind-0.2.0-11.el6
  Installing : libevent-1.4.13-4.el6.i686                                                                                                      4/7
Error in POSTIN scriptlet in rpm package libevent-1.4.13-4.el6.i686
error: Couldn't fork %post(libevent-1.4.13-4.el6.i686): Cannot allocate memory
  Installing : keyutils-1.4-4.el6.i686                                                                                                         5/7
  Installing : nfs-utils-lib-1.1.5-6.el6.i686                                                                                                  6/7
Error in POSTIN scriptlet in rpm package nfs-utils-lib-1.1.5-6.el6.i686
error: Couldn't fork %post(nfs-utils-lib-1.1.5-6.el6.i686): Cannot allocate memory
Error in PREIN scriptlet in rpm package 1:nfs-utils-1.2.3-39.el6.i686
error: Couldn't fork %pre(nfs-utils-1:1.2.3-39.el6.i686): Cannot allocate memory
error:   install: %pre scriptlet failed (2), skipping nfs-utils-1:1.2.3-39.el6
  Verifying  : keyutils-1.4-4.el6.i686                                                                                                         1/7
  Verifying  : rpcbind-0.2.0-11.el6.i686                                                                                                       2/7
  Verifying  : libgssglue-0.1-11.el6.i686                                                                                                      3/7
  Verifying  : 1:nfs-utils-1.2.3-39.el6.i686                                                                                                   4/7
  Verifying  : nfs-utils-lib-1.1.5-6.el6.i686                                                                                                  5/7
  Verifying  : libevent-1.4.13-4.el6.i686                                                                                                      6/7
  Verifying  : libtirpc-0.2.1-6.el6_4.i686                                                                                                     7/7

Dependency Installed:
  keyutils.i686 0:1.4-4.el6                                                                                                                       

Failed:
  libevent.i686 0:1.4.13-4.el6           libgssglue.i686 0:0.1-11.el6       libtirpc.i686 0:0.2.1-6.el6_4       nfs-utils.i686 1:1.2.3-39.el6     
  nfs-utils-lib.i686 0:1.1.5-6.el6       rpcbind.i686 0:0.2.0-11.el6      

Complete!
The error was exactly that: the VM did not have enough memory due to the already running Apache, MySQL and Tomcat services I had running on VM with only 613MB of RAM.

Killing Tomcat freed up enough memory to allow the command succeed.

Monday, September 9, 2013

RIP: iPhone 4S

It's been exactly 3 weeks now since my iPhone 4S over-heated - it became unbearably hot that I couldn't even hold it in my hand. It has not shown any signs of life ever since.

Even the 2 different technicians that have taken a look have not been able to pin-point what the cause is ...

You will be sorely missed, iPhone :(.

Wednesday, May 22, 2013

SSH Brute Force Attempts

I found an interesting entry in the output of the netstat utility while trying to see the actively running services on an Amazon VM running CentOS.

netstat -pant
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
tcp        0      0 0.0.0.0:27017               0.0.0.0:*                   LISTEN      996/mongod         
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      1017/nginx         
tcp        0      0 0.0.0.0:28017               0.0.0.0:*                   LISTEN      996/mongod         
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      858/sshd           
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      803/cupsd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      952/master         
tcp        0     48 10.204.214.243:22           173.203.XXX.XXX:43344        ESTABLISHED 21748/sshd         
tcp        0    784 10.204.214.243:22           218.109.6.241:56570         ESTABLISHED 25742/sshd
    
 


The IP in the last line clearly isn't one I own. I did a quick IP2Location lookup and it is a Chinese IP address.
I did a Google search to learn more about what this IP is up to from the system logs and came across the 3 commands below.

grep -ir ssh /var/log/*
grep -ir breakin /var/log/*
grep -ir security /var/log/*
 
Running the first command on 2 different servers (CentOS and Ubuntu respectively) revealed loads of automated attempts at breaking into the servers I tried the command on.
/var/log/secure:May 22 08:05:00 ip-10-204-214-243 sshd[23741]: Invalid user server from 218.109.6.241
/var/log/secure:May 22 08:05:00 ip-10-204-214-243 sshd[23745]: input_userauth_request: invalid user server
/var/log/secure:May 22 08:05:00 ip-10-204-214-243 sshd[23745]: Received disconnect from 218.109.6.241: 11: Bye Bye
/var/log/secure:May 22 08:05:02 ip-10-204-214-243 sshd[23747]: Invalid user share from 218.109.6.241
/var/log/secure:May 22 08:05:02 ip-10-204-214-243 sshd[23751]: input_userauth_request: invalid user share
/var/log/secure:May 22 08:05:02 ip-10-204-214-243 sshd[23751]: Received disconnect from 218.109.6.241: 11: Bye Bye

/var/log/auth.log:May 22 04:43:08 ejeboo sshd[18376]: Failed password for invalid user test1 from 198.23.229.207 port 44166 ssh2
/var/log/auth.log:May 22 04:43:08 ejeboo sshd[18378]: Address 198.23.229.207 maps to host.colocrossing.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
/var/log/auth.log:May 22 04:43:08 ejeboo sshd[18378]: Invalid user test1 from 198.23.229.207
/var/log/auth.log:May 22 04:43:08 ejeboo sshd[18378]: pam_unix(sshd:auth): check pass; user unknown
/var/log/auth.log:May 22 04:43:08 ejeboo sshd[18378]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=198.23.229.207
/var/log/auth.log:May 22 04:43:11 ejeboo sshd[18378]: Failed password for invalid user test1 from 198.23.229.207 port 44599 ssh2
/var/log/auth.log:May 22 04:43:11 ejeboo sshd[18380]: Address 198.23.229.207 maps to host.colocrossing.com, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!


It's a sad world out there :(