Dreamstime

Thursday, 26 May 2016

When The White-throated Kingfisher Comes Visiting

A White-Throated Kingfisher Perching On My Roof One Morning (click to enlarge)

Just outside my bedroom window, there is this more-than-50-year-old mango tree. Doves, both Zebra and Spotted, make this tree their home. Regular tenants every night, some 4 or 5 of them.

Every now and then though, a White-throated Kingfisher will make this tree its dwelling too. Not permanent but just temporary for over a couple of days, even weeks maybe. I sometimes wonder why? Why such a short stay unlike the Doves.

Friday, 20 May 2016

Getting Xiaomi Mi 4i Detected On Windows XP

I have spent about 4 days working on this. So, I suppose it is worthy of me writing it down somewhere so that I won't have to slog through the whole process again.

Phone Not Detected

Someone in my household bought a new Xiaomi Mi 4i smartphone 2 months ago. Great phone at a great price, by the way. Being quite popular here in Asia, the last thing I would have thought is to have problems in getting this phone connected to Windows XP. The recommended way, I presume, was to install "Mi PC Suite" since the setup program was already included in the phone. But upon successfully installing "Mi PC Suite", Mi 4i was undetectable. No connection to Windows XP means no file transfers between the PC and the phone.

Mi 4i Device Drivers

Windows Explorer With The Xiaomi Mi 4i Device Detected On Windows XP

After working frantically for 4 days, and trying out various drivers, I am glad to say that I finally got the phone connected to Windows XP in the end. As far as I could tell, there were no problems with the transferred files. The file system and transferred files on the phone shows no sign of being corrupted.

Thursday, 5 May 2016

Python Script For Posting To Blogger (Via OAuth2)

I hope somebody will find this Python script useful. I actually used this Python script to test things out first (and make sure that everything works) before I started work on fixing RavenPlus last year. I can't remember now, but I think the gist of this script came off from b.py - a Python script for posting blog posts to Blogger and Wordpress.

To post to your blog from this script, remember to replace the blogID "1087XXX5764091XXX95" in the line

post = service.posts().insert(blogId="1087XXX5764091XXX95", body=body, isDraft=False).execute(credentials.authorize(Http()))

with your blog's blogID.

To update an existing blog post, just replace the line above with the following (NOTE: you will need to find out what your blog post postID is, otherwise the statement will fail):

post = service.posts().update(blogId="1087XXX5764091XXX95", postId="4781959859649019078", body=body, publish=True).execute(credentials.authorize(Http()))


The OAuth2 login credentials is named 'plus.dat' and it must be located in the same directory as this Python script file.

I ran this script file under Python 2.4 with some customisation made to the Google API Python Client Library Version 1.2.



The Source Code

Friday, 22 April 2016

Freelance Software Testers Beware

Last Monday 18th April 2016, there was an online job posting looking for freelance software testers. This was what the ad says:

Looking for someone to test my application called "Crush Clean" its a Simple app to clean your desktop Please just open the application test it and tell me what happens and payment will be made Thanks

Baited

Sounds simple enough. So I proceeded to download the attachment, a Windows executable compressed in a ZIP file, without much thought.

I updated my anti-virus scanner, scanned the downloaded file and it appears to be 'clean'. Everything looks good.

I loaded it up in my Windows 7 test environment running under VirtualBox. I then ran the application from the command line. There was nothing much to see, much less to report: it just 'terminated' as soon as I press the <ENTER> key - no window or anything admire.

The Malware CrushClean2016.exe Running In The Background

I launched the "Windows Task Manager", clicked on the "Processes" Tab and there it was resident in the system's memory. It seems to spawn a sub-process (which then terminates almost immediately) every 5 seconds or so. Good, now I have something to write about and so I submitted my proposal and reported what I saw.

Sunday, 3 April 2016

Maybank Online Payment Problem At Superbuy.my

Oops! I got this error message while attempting to make my online payment via Maybank at Superbuy.my in Windows XP

I made an online purchase recently at Superbuy.my. Everything went well until the point when I wanted to make an online payment via Maybank. It failed with an error message "Could not connect to remote server" at URL

https://netpay.my/web/Payment/GeneralEntry.aspx

I tried again but this time with the Mozilla Firefox web browser, thinking that the Opera web browser was causing the problem. Unfortunately, it did not work either, but with a different error message "The connection was reset" at the same URL.

I started an online chat with tech support at Superbuy.my. Their advice: try again later, which I did after a 30 minutes wait. Regrettably it did not work either. Thinking that the site may be having some technical problems, I just gave up for the day.

On the following day, I tried again. Same thing, it did not work. I then started thinking to myself:

Tuesday, 22 March 2016

Metamorphosis: Caterpillar To Pupa

At The Right Place And Right Time

This was totally unanticipated. Last week, I was lucky enough to witness a caterpillar morphing into a pupa. It was only by chance that I saw this happening. Lucky me for being at the right place and the right time when this happened.

I have been keeping tabs on this particular caterpillar for a couple of days prior. In fact, just an hour or so earlier, it still looked very much like a caterpillar. And all of a sudden about 30 minutes later, it began changing into something different - a pupa.

Here is my account of what transpired.

The Tawny Coster Caterpillar On 14th Mar 2016

This is how the caterpillar looked like a day earlier 14th March 2016. Except for the white patches on the sides, it looked very much like any other Tawny Coster caterpillar during its earlier stages after hatching.

The Tawny Coster Caterpillar On 15th Mar 2016 (9:37 AM)

This photo was taken at 9:37 A.M. on 15th March 2016. Still looking very much like how it was the day before, except that the white patches have grown larger.

Saturday, 12 March 2016

A Mature Tawny Coster

A Matured Tawny Coster Butterfly (click to enlarge) The picture on the left was taken in the morning 2 days ago (do click to enlarge). It is a Tawny Coster butterfly. Over the last couple of days I have noticed the presence of this butterfly in my front garden. Its point of interest: my Damiana plants (it appears to be in egg laying mode). To my knowledge, its caterpillars only feed on the Damiana leaves.

This picture was taken while, as it appears to me, to be resting on a dead branch under the strong mid-morning sun. A little unusual as butterflies will only do this in the cool early mornings. It did fly away when approached but it settled down after awhile probably because it was tired after laying eggs. I think the underside of its wings looks a little worn. As a mature female butterfly, it is probably close to the end of its life-cycle.

I wonder if this is the same butterfly as the one that I observed in February 2016? I am no butterfly expert so it is hard to tell. Do they have distinguish markings or features from each other as us humans do? I wonder.

Monday, 29 February 2016

My First Google OAuth2 Python Program

Below is the code for my first Google OAuth2 Python program. The last time I had a look at it was something like 6 months ago - that long already? As I recall, the sample script file blogger.py that was bundled in 'google-api-python-client-samples-1.2.zip', if I am not mistaken, by Google didn't work. I had to debug it myself to get it working.

What this program does is to print out the user's Google login name, the list of blogs at Blogger.com that is associated with this account and the list of blog entries for each blog. The OAuth2 login credentials is named 'plus.dat' and it must be located in the same directory as this Python script file.

I ran this script file under Python 2.4 with some customisation made to the Google API Python Client Library Version 1.2.

I hope somebody will find this useful.

The Source Code

Thursday, 25 February 2016

A 'Newborn' Tawney Coster Butterfly

Tawney Coster Butterfly Basking Under The Sun (click to enlarge)

Perhaps I should have waited a little longer. Perhaps I should have hung around for another 30 minutes. But I didn't. The afternoon tropical heat was just unbearable. And I do have an umbrella with me at that time, by the way. So what happened is that I missed the chance of observing this butterfly, a Tawny Coster, taking flight for the first time since breaking out from its pupa.

The picture above is of the said butterfly taken at around high noon. I think the hind-wings will turn more orangy in colour as it dries, much like the fore-wings in this picture. At least that is how a Tawny Coster butterfly that I know of looks like.

Sunday, 14 February 2016

Google Is Shutting Down PicasaWeb

My Oh My. After put in so much time and effort into integrating Picasa and OAuth2 into RavenPlus, Google has now announced that it is shutting down PicasaWeb. May 1 2016 is the date to look out for as that is when Google will start rolling out the changes.

I have had a look at the PicasaWeb API developer page and it seems that pictures uploads via RavenPlus should work as what we have now in version 1.0.507. This is what the notice in this page says:

PicasaWebNotice_Feb2016.jpg

Looks okay to me. But who knows, Google has pulled the rug from right under our feet before.