Dreamstime

Tuesday 29 December 2015

RavenPlus Version 1.0.507 - Picture Uploads To PicasaWeb Via OAuth2

I know some of you have been waiting for this. So here it is: RavenPlus version 1.0.507, which contains the fix for uploading pictures to PicasaWeb via the Google OAuth2 protocol.

I have been testing this version out for over the last couple of weeks and I believe I have a stable version that is fit for release. Pictures in my last 3 blog postings (totalling 17 in all) were uploaded to PicasaWeb with this version and I did not notice anything out of the ordinary. They all went through smoothly as far as I could tell. Even my edited pictures were detected by RavenPlus and they got updated on PicasaWeb when I subsequently republish my blog post.

Not tested though is video uploads to PicasaWeb - simply because I do not have the bandwidth nor any videos to share.

If you do not upload pictures to PicasaWeb, you can safely ignore this version.

Version 1.0.507 only works for existing users of Raven and RavenPlus. New users will have to wait a little while as I haven't started work on making a clean import of blogs hosted on Google's Blogger/Blogspot yet. That's next on the to-do list.

Saturday 19 December 2015

Getting Sharp Macro Butterfly Pictures

Painted Jezebel - Broadside (click to enlarge)

PaintedJezebel - Head Shot (click to enlarge)

I was taken aback by the 2 photos above when I first viewed it on my computer. I was not expecting to see such sharp images, clear enough to see the finer details on the butterfly (do click on the pictures to enlarge). And the colours, they are just spectacular - totally unanticipated. The only editing that I did on these two photos was to crop and resize them, nothing else.

Previous Attempts

Compare the 2 pictures above with the one below, a picture that I took about a year ago. I think you will agree that this photo is less striking. A little over exposed, I think.

Thursday 10 December 2015

Tiny Mushrooms

Close Up Shot Of A Tiny Mushroom

If there is no moisture, there will be no mushroom. With the onset of the year-end North-East monsoon, where it rains almost every day, little tiny mushrooms started to appear here and there around my front garden. The top part of these mushrooms, its cap, measures about an inch across; its height, no more than three inches. These mushrooms will start to dry up after about 24 hours. I don't think these mushrooms are edible - there's not much to chew on even if it is.

Here are some macros (closeups) that I have taken one fine morning towards the end of October. If you enjoy looking at the finer details, like I do, just click on the pictures to enlarge.

Friday 27 November 2015

Spotted Doves Fighting

Spotted Doves Fighting - Jumping Up, Outstretch Wings

I suppose this must be a yearly affair. I remember there was one last year, if I am not mistaken. I theorise that this is to determine the pecking order of the Spotted Dove community. There were 5 of them within the boundaries of my house on my last count just the other day.

I initially thought that this was the courtship ritual of Spotted Doves. But on closer observation (I recorded a couple of videos, by the way), it appears more like a pair of, presumably male, Spotted Doves fighting. The first encounter was on 20th November 2015. Two more encounters were to follow after that, spanning over a total of three days. They clashed on the ground, on the roof of my front porch and also within the branches of my mango tree. I particularly like the encounter within the mango tree, with all that branch to branch jumping and all. I am unsure if there were the same pair over those three days though.

The objective it seems is for the Doves to attempt to stand on the opponent's back. If that fails, then, to wrap its wing over the opponents body. I don't think there was any pecking involved. I didn't see any in my recorded videos.

Mounting an attack could be either head-on, broadside or from behind if one is at such positioning following an earlier attack. There is a lot of wing fluttering during the fight. Lots of jumping with the help of their wings too to gain some extra height. A feather or two may be lost during an attack.

The fight ends when one bird walks calmly away from the confrontation with the other bird (the victor?) following behind, head bowing and cooing at the same time at the retreating bird as if to taunt it. In one of my videos, the two birds actually perched together, separated by about 6 inches between them, after the fight. No bird appears to be injured nor were any bloodied either. Very civilised I think.

Some Additional Pictures

Below are some pictures that I have taken on the first day of this encounter mentioned above. The pictures were all taken within 5 minutes with my Nikon compact camera set to 'Sports' mode. All I did was to focus and hold the shutter-release button down with my forefinger for a couple of seconds to capture a sequence of continuous shots (not really continuous actually as at 16 MP each shot takes about 0.7 or 0.8 of a second to complete).

This fight ended, by the way, when I was too close for the birds' comfort. They just flew away.

Tuesday 27 October 2015

Windows XP - Intermittent ntfs Error

One of my nightmares over the last couple of years - it happened again yesterday. This was what greeted me when I started my Windows XP yesterday:

"One of your disks needs to be checked for consistency"

This only occurs on the C: drive. Windows will 'fix' this problem alright, via a 'CHKDSK', but always will some files deleted. The only thing I could do is to restore the deleted files from backups; which is a laborious task since Windows doesn't actually tell me the directories/folders the deleted files were from. At the back of my mind, I always have this feeling that one of these days, some essential system file will get messed up real bad rendering my PC unbootable.

Googling didn't help much as I could not find anything specific to this problem.

A Lead?

It's only a hunch, but my suspicion has always been on the Avira Free Antivirus software for it is the only application that modifies my C: drive regularly via its automatic updates. But I have never had any concrete indications ... until yesterday (well, at least I believe it is so).

Monday 5 October 2015

A Brief Update On Picasa And RavenPlus

Python & XML By Christopher A. Jones & Fred L. Drake, Jr. Just a quick note to say that I am still working on the Picasa upload function (via the OAuth2 authentication) in RavenPlus.

To say the least, I am struggling; struggling with XML processing in Python. All this while, I have been avoiding this subject area as it looks complicating. After spending a couple of days on this, it still is. I am not at all familiar with XML processing in Python or in any other computer programming language. There is a 357 pages book written on this topic, but this is something that is not easily digestible in a short time. Hands-on work through the examples in the book is required.

The Google Picasa API part is easy, thanks to an example Python script that found off the Internet. In fact, I managed to upload a few pictures to Picasa web via my own customised Python script with OAuth2 authentication. The problem now is in saving the uploaded picture file's meta-data (the information that is returned from Picasa web) into RavenPlus. Not getting this meta-data into the RavenPlus' Picasa registry means RavenPlus is unaware of the successful picture upload.

Thursday 17 September 2015

A Golden Tree Snake

Headshot Of A Golden Tree Snake

My Wish Granted

Ever since my first encounter some 3 years back, I have always wanted to know the identity of this snake. Now I do; it is a Golden Tree Snake - much appreciation to Google Image search for helping me.

Ever since I took this rather uninspiring picture some 14 months back, I have always wanted to redeem myself. Now I have, as my luck would have it one fine morning in the month of June 2015.

Wednesday 9 September 2015

Customizing Google API Python Client Version 1.2 For Python 2.4

I extended RavenPlus to support Google OAuth2 authentication for Blogger/Blogspot with the help of the Google API Client Library for Python version 1.2. Out of the box, this library does not support Python version 2.4, the version in which RavenPlus (and Raven) was built. Below are the modifications, in RED, that I have made to this library to get it working with version 2.4 of Python.

Wednesday 26 August 2015

RavenPlus Version 1.0.506 - Post Scheduling In Blogger/Blogspot

I have a confession. I actually had the 'post scheduling' feature included in RavenPlus during development. But I had it removed a few days before releasing RavenPlus Version 1.0.505.

While under development, I noticed that one of my blog post had its URL set to my blog homepage. The reason (after much tracing): my PC was running about 60 seconds ahead of the Blogger/Blogspot server - it became a schedule post, which is technically correct. Because of this, I wrongly assumed that it was better to let Blogger/Blogspot set the publishing time of a blog post, rather than by RavenPlus, without realising that I had mistakenly taken the 'post scheduling' feature away.

I am now undoing my mistake with RavenPlus Version 1.0.506. My apologies.

Friday 14 August 2015

RavenPlus Version 1.0.505

I am releasing RavenPlus version 1.0.505 today. This release, although half-baked, is of special interest to existing users of Zoundry Raven and RavenPlus who are facing problems in publishing to Blogger/Blogspot. Google shutdown 'ClientLoging' completely in late May 2015, resulting in Raven and older versions of RavenPlus getting crippled.

At the moment, only the following Google OAuth2 aware publishing functions are available to users of Blogger/Blogspot:

Tuesday 4 August 2015

RavenPlus & OAuth2 - 2 Prerequisites For Blogspot Users

If you blog on Google's Blogger/Blogspot, then read on.

Otherwise - users of Wordpress, for example - you have nothing to worry about. This blog post doesn't apply to you.

The 'Google OAuth2 authentication aware' version of RavenPlus, in which I am currently working on, is built using the Google's Blogger API version 3. As a consequence, to publish your blog post to Blogger/Blogspot with RavenPlus, you will need to do two things:

  • activate the Blogger API (version 3) for yourself; and
  • download the "client_secrets.json" file (in which your "Client ID" and "Client Secret" is stored) to your PC.

Sorry for the hassle, but Google's Terms Of Service doesn't allow me to share my "Client ID" and "Client Secret".

Tuesday 28 July 2015

RavenPlus Updates - 28th July 2015

Here are some updates on what's happening on my work with RavenPlus and OAuth2 since my last update about 4 weeks ago.

What's Working

I have completed the following functions in RavenPlus:

  1. Insert new post
  2. Update an existing post
  3. Delete an existing post
  4. Downloading recent posts (including Blogger labels)

The time taken for item (4) is a little longer because I had to take a detour to learn about Python's 'list', 'tuple' and 'dictionary'. Otherwise I could not proceed. I never had to in my previous fixes as there wasn't a need to.

Saturday 18 July 2015

When Keystrokes Triggered Nothing In Raven/RavenPlus


I was suppose to publish this post on 28th May 2015. Little did I know then that Google had planned to shutdown the ClientLogin authentication protocol on that faithful day. Obviously, my attempts to publish this blog post failed. If only they had published a notification on my Blogger dashboard (something that I login to everyday) rather then at their developer blogs and forums (something that I did not access until recently).

But irrespective, I still maintain that this is still the most difficult bug fix in Zoundry Raven/RavenPlus for me, despite my work on OAuth2 over the last couple of weeks.

The blog post follows below.


This must have been the most difficult bug fix for Zoundry Raven/RavenPlus so far. With variables to track and multiple levels of inheritance for certain Python Classes, pretty soon I got confused while tracing through the code. I have to virtually see the code in my sleep before I finally figured out the root cause of this problem: variables not being reset correctly after clicking the "Save" button within the editor. A very common programming mistake, if I may add.

I can only think of 2 states that the Raven/RavenPlus editor could be in at any one time - "Content NOT Modified" or "Content Modified". In the "Content NOT Modified" state, the "Save" button is disabled. Make any changes, by keying something on the keyboard for example, will change the editor from the "Content NOT Modified" to the "Content Modified" state. This should trigger an event to enable the "Save" button. Click on the "Save" button and the state will change back to "Content NOT Modified" from "Content Modified" - and disabling the "Save" button at the same time.

However, I have encountered a number of times when keying in something on the keyboard triggered nothing while editing. The "Save" button remains disabled no matter how many times I banged on the keyboard.

Friday 10 July 2015

My Contribution To The 2015 MY Garden Birdwatch Survey

The table below is my contribution to this year's MY Garden Birdwatch Survey. I did my counting on 20th June 2015, between 4:00 PM and 4:30 PM from my bedroom windows upstairs. This is my fourth year of participation. Yeah! Me a citizen scientist.

A Jungle Myna

On That Day

Loud chattering at my front gate led me to catch sight of 2 Jungle Mynas. They are not common visitors to my home. So I guess a little bird must have told them about this year's birdwatch survey that I am conducting and they did not want to be left out.

Saturday 27 June 2015

RavenPlus And Blogger's OAuth2 - My Work So Far

Hello! I'm Back

After working for something like 60 odd hours over some 20 odd days, I have finally managed to integrate Google's Blogger API Client for Python (version 3) into RavenPlus. Lots of pain; Lots of u-turns; Lots of challenges; And lots of stress along the way. This is something that I hope I will never have to do again.

A Snapshot Of My Work In Notepad++

I have to write 3 extra Python modules in all. These 3 modules are all to do with publishing to Google's Blogger with authentication via OAuth2, obviously. It is a good thing that Raven was well designed. Existing publishing modules (to Wordpress, for example) are not disturbed. It is a good thing too that there is a Python Client Libraries for Blogger API. Otherwise, there will be more work and complexity.

Thursday 28 May 2015

Unable To Access Blogger/Blogspot From Raven/RavenPlus

I am going to be offline for the next few days, hopefully. Google changed the authentication protocol for Blogger/Blogspot and I can't post anything from Raven/RavenPlus since yesterday 27th May 2015. From what I know, this affects other offline blog editors as well.

This is the error message that I received when I tried publishing to my Blogger blog yesterday:





Not very informative, unfortunately.

Wednesday 20 May 2015

A Night Shot Of A Large-Tailed Nightjar

A Night Shot Of Large-Tailed Nightjar

The month of April 2015 must be a lucky month for me. For some reason, I began to get regular visits from a Large-Tailed Nightjar, almost daily for over a span of a month-and-a-half. I don't have the slightest clue if this is just one particular bird. But one thing is certain: when it does come to my front yard, it will very much likely perch on the telephone wire at a distance of not more than 10 feet away from my bedroom window. Without a doubt, an ideal position for taking some photographs with my low end compact digital camera, a Nikon Coolpix L27.

Thursday 7 May 2015

My Daily Prayers

St. Michael' s Institution, Ipoh - My Daily Prayers (First Side) - Click To Enlarge

Here's an ancient relic from my alma mater. A card measuring 10.5" x 5.5" with a list of prayers printed on both sides. It is neatly folded in thirds so that it fits nicely into a student's shirt pocket.

Tuesday 28 April 2015

The "Save" Button When Switching Tabs In RavenPlus?

I thought I had found the last remaining oddity with the "Save" button in the Raven/RavenPlus editor 3 months ago. Unfortunately, I found another one recently.

I am a bit paranoid while composing my blog post. So, not wanting to lose my work, I have this habit of regularly saving my post after every couple of minutes while editing. I also have a need to dive into the "XHTML" tab from time to time; to insert an Amazon affiliate ad, for example. So this means me regularly switching between the "Design" and "XHTML" tabs while composing my blog post.

Did I Just Modify My Content?

I got confused when I first encountered this flaw in Raven/RavenPlus: The "Save" button in the editor became enabled when I switched from the "Design" tab to the "XHTML" tab. It won't happen the first time round when I made the flip. But it definitely will from the second time onwards, even when there is NO content in either the "Design" or "XHTML" tab. This can't be right.

Monday 13 April 2015

Do Monitor Lizards Climb Trees?

A Water Monitor Lizard Clinging Onto A Tree

On the left is a picture of a Water Monitor Lizard clinging onto a mango tree in front of my house. If one needs proof that they do climb trees, well here it is.

In fact, not only do they climb trees, but they can also climb up (on the inside) of vertical cast-iron sewage pipes. I know because one actually entered my bedroom, via my attached bathroom, not too long ago. Not a pleasant thought considering that it had to submerge itself in raw sewage in the septic tank before ending up in my room

Taking This Shot

It is not possible for me to take a close-up photo as Monitor Lizards are shy creatures (but not aggressive as far as I can tell). As soon as they caught sight of me, they will bolt. And they can run at amazing speed.

The picture on the left was taken from my bedroom window upstairs, at roughly about 10 feet away with my Nikon compact camera set at 5x zoom and the scene mode set to "Dusk/Dawn". I don't think it was aware of my presence as otherwise it would have climbed to the other side of the tree, away from me.

Check out that tail length.





















Tuesday 24 March 2015

RavenPlus Version 1.0.504

If you have been following my blog, you would have realised that I have made a couple of improvements and bug fixes to RavenPlus since the release of RavenPlus Version 1.0.503. After about a year, I think it is about time I release a new version of RavenPlus - Version 1.0.504 .

Thursday 12 March 2015

My Checklist When Releasing A New Version Of RavenPlus

Dear ME,

I have noticed that you were struggling with yourself while trying to build the updated release of RavenPlus version 1.0.504 yesterday. RavenPlus version 1.0.503 was released roughly about a year ago, and it is quite obvious that you have forgotten the steps.

To prevent this from happening again, I have taken the liberty to write down and document the steps for you. Confucius say : "the palest ink is better than the best memory". Keep this safe somewhere. I'm sure you will need it - again and again.

Sunday 1 March 2015

RavenPlus: Getting iframes To Work Correctly

Here is an update to my previous work on iframes in RavenPlus. If you recall, my first attempt only allows iframes to be placed at the end of a blog post. Well, not anymore with this fix, as you can see with the Amazon iframe banner ad above.

Friday 20 February 2015

Closeup Photography With A Compact Camera

I must admit, I am a greenhorn in photography. To be honest, the camera that I bought about a year-and-a-half ago is actually the first I have ever owned. Not surprisingly, most of my pictures were taken using the 'Auto' mode on the camera. But at times when my shots of flowers, for example, were bad, I will put my camera into 'macro' mode, hoping that somehow I will get some improvements in my shots since they are meant for closeups. But unfortunately there was none, despite me following the instruction as written in the user manual. And this includes the zooming part, i.e. the zoom indicator on the LCD display was always green.

My First Winning Closeup Shot

My First Winning Closeup Shot

But about 2 weeks ago I did something different. I decided to do my own zoom by physically positioning my camera at about 6 inches away from the subject - a butterfly on a flower. I was take aback when I first viewed this picture on the camera's LCD display. The result was stunning; my first winning shot in 'macro' mode as you can see above. The fine details captured were just staggering, something that I have not expected since I was using a low end digital camera, a Nikon Coolpix L27. I think this shot could have been even better if I were to have used a tripod since I do not have steady hands. Obviously, camera with fancier macro lenses would give even better magnification and thus better closeup shots.

Saturday 31 January 2015

Mentioning Someone From Google+ Mobile

+Mention-ing someone in a Google+ post or comment is a neat way of grabbing someone's attention; whether to ask them a question, to give them credit or just simply to thank them. When we +Mention someone, a link will be created between our post or comment and the person mentioned. A notification will also be sent to the person mentioned.

Call me weird but I have always liked accessing Google+ (Facebook too in fact) via its mobile site on my Windows desktop PC. Google+ pages on the mobile site just loads faster compared to its desktop version because of its minimal bandwidth requirement. But there was one problem - I had never found a way to +Mention someone from Google+ Mobile. This has subsequently led me to wrongly assume that it was not possible to +Mention someone from Google+ Mobile. But after something like 2 years, I have finally found a way. I accidentally stumbled upon this workaround about a week ago when I clicked on the About page of MacroAddict on Google+.

I have tested it out by Google+ mentioning myself in a test post and found that it actually works. I have tested it on Google+ Mobile running under both Opera desktop (just remember to use the URL for Google+ Mobile: https://plus.google.com/app/basic/stream) and Opera Mini. I guess I must have not looked hard enough previously.

The Steps To +Mention Someone

The Google+ Numeric ID Is Found At the URL Address

To Google+ mention someone in a post or comment, just type '+' followed by the person's Google+ numeric ID (A Google+ profile custom URL will not work; it must be a Google+ numeric ID).

Monday 19 January 2015

RavenPlus: Find (& Replace) And The "Save" Button

The "Find and Replace" Dialog box in Raven/RavenPlus

I think this is the second last oddity that I have encountered with the "Save" button in the editor window in Raven/RavenPlus. Even though modifications have been made to the blog post via a "Find and Replace", the "Save" button remains disabled if it was disabled previously. The workaround here is similar to the Spell-Checking problem i.e. we fire an "onkeypress" event back into the editor.