Run for Food: Day One

I never had formal training for competitive running until I got enlisted in the Army. Since then, I had the opportunity to represent my unit and formation in long distance run competitions. I was at my peak of my “running career”, and also participated in a couple of marathons (finished “leisurely” and back then, taking part of marathon was  never a fashion statement unlike these days)

Since I left as a civilian, I had not been maintaining my fitness level so  it plunged and crashed. At one point, I did spend a couple of months reshaping my fitness, but got seriously injured along the way. And the rest is history.

Fast forward to today, I could not walked briskly for 100m without huffing and puffing, let along complete a 2.4km run.  My fitness level was at the valley, while my weight was unthinkable. I seemed to fall sick easily too. As I approached the 40 years old mark, I told myself my lifestyle needs a makeover. For the last 18 months, we have been walking regularly as we would bring our Corgi furkid for a daily neighborhood walk or a weekend walk at the park . Then came the resolution recently that I need to pick up my running again.

So I dropped by Adidas store to get myself a pair of running shoes (I’m a sucker for the 3 stripes, tbh). I told myself I need to run at least once a week. But lo and behold, it turned out to be more than that.

On 15th December 2011, I started my maiden run since 2000. It was around 11pm, as I wanted to make sure the weather is cool and air is fresh.  Despite that, the run was a torture one. It took me more than 18 minutes (did not time, so no exact timing) just to complete a 2.2km. I had to stop my run multiple times during the course, just to catch my breathe and recover the fatigue. By the time I completed my session, I felt like as if I had done a marathon. That was how pathetic I was. Strangely, it did not demotivate me, and instead propelled me to increase the frequency of the run (strangely as well!).  And this is just the beginning …

When I was young … I love to draw

When I was young, I would have signed up for any art competition I came across, whether it was through my school, community center, or from newspaper. I remembered there was once I actually made my own way to the competition venue (and I was just 8-9 years old), on a Sunday morning.

When I was young, I had never attended any formal art classes, at least not that I could remember. So I cannot comprehend how I could apply different techniques of drawing and painting on my work. I found out that I was best in drawing landscape, and figured out my own ways of how to have vibrant colors on my work using crayons (and that’s by overlaying the different tones and colors of the crayons on the subjects)

A Caricature work of my class in varsity

When I was young, I knew I could draw a tad better than my peers. I remembered when I was in kindergarten (that was when I was just 5 or 6 years old), my teacher asked the class if anyone knew how Merlion looked like. Many of my friends went up to the drawing board, but their drawing just has little resemblance to the Singapore icon. I clearly remembered that all of them had drawn the tail of the Merlion flipping out!  After all the commotions, I slowly but calmly walked up to the board, and drew up a very perfect Merlion picture (including its proper tail :))

That was when I was young … 🙂

Note: Trying to create a series of “When I was young”. So this is just the first of many series I hope to blog in future 😉

Jammed up Office Mailbox – No more!

If you were like me, who always receive emails from colleagues with huge attachments (and I meant HUGE, the largest I ever received was a 10MB PowerPoint slide), you probably can understand my frustration. Every other week my mailbox will be cloaked up, and I have to clear my inbox before I can send out emails. It didn’t help that our IT admin only allocated each of us with only a pathetic 200MB mailbox quota (in this world where free mailboxes in gigabytes are not uncommon).

I don’t like to move those huge files to a local mail folder for a couple of reasons. So I came up with a method of manually save and delete the attachments, before inserting the links of the attachments into the original email. It worked well, but it is very manual. Outlook 2010 does help to simplify some of these steps, but the ‘solution’ was still very manual. I had always wanted to do a quick macro programming to simplify these steps, but too lazy to move my butt.

A message with the option to archive the attachments

Earlier, I was again spending my Saturday afternoon clearing up my mailbox. I thought enough is enough so I went to google some samples, and existing solutions so that I can get this problem nailed once and for all. (Power of internet!)

There isn’t one solution that fits my need entirely, but suffice to say, I have enough information from the net to build a version 1.0 of what I need within minutes. Here’s a quick re-collection of what I have done;

  1. First of all, I need to enable macro in my Microsoft Outlook. Customize Quick Access Toolbar > Customize Ribbon > Enable “Developer” tab under “Main Tabs”
  2. At the Developer Tab (in the main application screen), Create a new macro by navigating to Macros > Enter a new name > Create
  3. In the macro program, I create a subroutine that will loop through the the attachments in the email, archive each of them by exporting and deleting, and finally insert the exported attachment links into the message body of the original email. The code, which is leveraged from the net with some modification, can be found at the end of this blog post.
  4. Then I add the macro shortcut to the message window’s “Ribbon Bar”, so that I can “run” it immediately any time while reading an email.
    1. Open the message window by clicking on any of the emails.
    2. Go to Customize Quick Access Toolbar > Customize Ribbon
    3. Under “Choose commands from”, select Macros. The newly created macro should be in the list
    4. Under “Customize Ribbon”, Select Main Tabs.
    5. Create a new tab, and under the new tab that I have just created, create a new group. The new macro command has to be added under this new group. Rename the tab and the group where appropriate. I name them as “My Tab” and “Quick Stuff” respectively.
    6. Select the newly created macro and add it to the new group. I named the macro “Save & Link Attachment”
  5. Once I have done all the above, I can now open any email with an attachment, Click on “My Tab” and then “Save & Link Attachment” (or whatever you named it earlier in 4(vi)), the attachment will be saved, deleted and subsequently linked in the email automatically!


How a message looks like after the macro processing

Here is the subroutine that checks for attachments existence before doing the necessary file and messaging operations. If you want your attachment(s) to be saved in specific folder (and its sub folder), you can always modify the value of the variable strFolderpath
Sub SaveAttachment()

Dim objOL As Outlook.Application
Dim objMsg As Outlook.MailItem 'Object
Dim objAttachments As Outlook.Attachments
Dim objSelection As Outlook.Selection
Dim i As Long
Dim lngCount As Long
Dim strFile As String
Dim strFolderpath As Variant
Dim strDeletedFiles As String

    ' Get the path to your My Documents folder
    'strFolderpath = CreateObject("WScript.Shell").SpecialFolders(16)
    'On Error Resume Next
    ' Instantiate an Outlook Application object.
    Set objOL = CreateObject("Outlook.Application")
    ' Get the collection of selected objects.
    Set objSelection = objOL.ActiveExplorer.Selection
    ' Set the Attachment folder.
    'strFolderpath = strFolderpath & "\OLAttachments\"
    'Use the MsgBox command to troubleshoot. Remove it from the final code.

    strFolderpath = "C:\"  

    Dim MyPath As Variant
    MyPath = BrowseForFolder(strFolderpath)
    If VarType(MyPath) = 11 Then
      If Not MyPath Then
        GoTo ExitSub
      End If
    End If
    strFolderpath = MyPath

    ' Check each selected item for attachments. If attachments exist,
    ' save them to the Temp folder and strip them from the item.
    For Each objMsg In objSelection
    ' This code only strips attachments from mail items.
    ' If objMsg.class=olMail Then
    ' Get the Attachments collection of the item.
     Set objAttachments = objMsg.Attachments
     lngCount = objAttachments.Count
    'Use the MsgBox command to troubleshoot. Remove it from the final code.
    'MsgBox objAttachments.Count
     If lngCount > 0 Then
    ' We need to use a count down loop for removing items
    ' from a collection. Otherwise, the loop counter gets
    ' confused and only every other item is removed.
        For i = lngCount To 1 Step -1
        ' Save attachment before deleting from item.
        ' Get the file name.
        strFile = objAttachments.Item(i).FileName
        ' Combine with the path to the Temp folder.
        strFile = strFolderpath & "\" & strFile

        'MsgBox strFile

        ' Save the attachment as a file.
        objAttachments.Item(i).SaveAsFile strFile
        ' Delete the attachment.
        objAttachments.Item(i).Delete
        'write the save as path to a string to add to the message
        'check for html and use html tags in link
        If objMsg.BodyFormat <> olFormatHTML Then
            strDeletedFiles = strDeletedFiles & vbCrLf & "<file:>"
            Else
            strDeletedFiles = strDeletedFiles & "<br>" & "<a href='file://" & _
            strFile & "'>" & strFile & "</a>"
        End If
        'Use the MsgBox command to troubleshoot. Remove it from the final code.
        'MsgBox strDeletedFiles
        Next i
    End If
    ' Adds the filename string to the message body and save it
    ' Check for HTML body
    If objMsg.BodyFormat <> olFormatHTML Then
        objMsg.Body = "The file(s) were saved to " & strDeletedFiles & vbCrLf & vbCrLf & objMsg.Body
    Else
        objMsg.HTMLBody = "<p><p>The file(s) were saved to " & strDeletedFiles & "</p></p>" & objMsg.HTMLBody
    End If
       objMsg.Save
    'End If
    Next
ExitSub:
Set objAttachments = Nothing
Set objMsg = Nothing
Set objSelection = Nothing
Set objOL = Nothing

End Sub

I also added a function to select the folder where I want the attachment(s) to be saved in and referenced from (the message)

Function BrowseForFolder(Optional OpenAt As Variant) As Variant
     'Function purpose:  To Browser for a user selected folder.
     'If the "OpenAt" path is provided, open the browser at that directory
     'NOTE:  If invalid, it will open at the Desktop level

    Dim ShellApp As Object

    'Create a file browser window at the default folder
    Set ShellApp = CreateObject("Shell.Application"). _
    BrowseForFolder(0, "Please choose a folder to save the attachment(s)", 0, OpenAt)

     'Set the folder to that selected.  (On error in case cancelled)
    On Error Resume Next
    BrowseForFolder = ShellApp.self.Path
    On Error GoTo 0

     'Destroy the Shell Application
    Set ShellApp = Nothing

     'Check for invalid or non-entries and send to the Invalid error
     'handler if found
     'Valid selections can begin L: (where L is a letter) or
     '\\ (as in \\servername\sharename.  All others are invalid
    Select Case Mid(BrowseForFolder, 2, 1)
    Case Is = ":"
        If Left(BrowseForFolder, 1) = ":" Then GoTo Invalid
    Case Is = "\"
        If Not Left(BrowseForFolder, 1) = "\" Then GoTo Invalid
    Case Else
        GoTo Invalid
    End Select

    Exit Function

Invalid:
     'If it was determined that the selection was invalid, set to False
    BrowseForFolder = False

End Function

WebOS TouchPad, a simple desktop in tablet form

WebOS-powered TouchPad

I am a big fan of Palm products. Those days it was cool to carry a Palm PDA, and if my memory did not fail me, my first Palm product was a Palm Pilot series. Palm gave me the impression of building nifty products but not a world shaker one. However when the webOS was first unveiled in 2009, I thought it is the mobile platform to go, with Windows and Linux both dominating the desktop market. The thoughts of web connected device, taking advantage of the Web 2.0 technologies, was just salivating.

Since then, a handful of Palm devices were launched sporting WebOS. I love the simple interface but the form factor never grew on me. With the products mostly focused in the US market, strangely if I may add, I never got to own one until now.  Then HP acquired Palm, and it got me lighted up. A PC giant (or a ex PDA big player in Jornado and iPAQ), and an promising next generation mobile OS maker, perfect marriage or a disastrous divorce in making? Continue reading

Animal Protection – It starts with you

Ministry of National Development had recently set up an online survey, to collate public feedback on pet ownership and stray management policies. If you have not already done so ( in giving your feedback), it’s high time you do so, whether you are a pet lovers or not. At least, the authority would be able to tweak their policies so to protect the innocent animals while making sure all the ‘troublesome’ human-beings happy (Note: I am referring to both pet and non-pet lovers, as I think human beings are always the problematic one, not the animals themselves)

For me, I think the stray issues need to be dealt with a multi-pronged approach;

1. Pet Homing policies to curb the overcrowding situation in the animal shelters.

The HDB policy on pet ownership should be revisited, so that it would be more supportive in homing of medium dogs. In helping to re-home the stray animals which a significant number of them do not meet HDB guidelines, whether it’s an “all inclusive” or “by exception” policy, it will go a long way to address or mitigate the overcrowding challenge that the animal shelters are facing today. This will also give some hope to the poor homeless, abandoned animals as they deserve better than what they are receiving today.

2. AVA policies to protect the puppies who are helplessly mishandled by the unethical pet commercial entities

OK, not all pet shops or farms are unethical. But that does not mean there is none in this “dark” industry as they disregard the welfare of the baby animals. We do not expect any pet commercial entities to run like an animal welfare association. But at minimum they should and must be pet lovers. A pet lover would not have done what some of us had encountered ourselves, which I had recently blogged in a true revelation of a pet warehouse and the feedbacks I had gathered from the like-minded pet lovers.

The authority could do more to keep such irresponsible entities in check. Do not believe on what some of the companies would say in their “PR-tically” right statements, as some of them are just wolf wearing the skin of a sheep. They might project themselves to be animal lovers, but in reality they are just taking the poor animals as a mere commodity.

We need AVA help to weed out such socially irresponsible dog breeders/sellers, so we do not have a situation of animal ill treatment.  We would also be able to minimize the number of stray dogs. Many of these dogs were abandoned partly due to these scrupulous commercial entities. They will hard-sell their “commodities” to potential pet owners who are not ready yet for pets.The end result? Abandoned animals.

3. Educate potential pet owners about the responsibility of being one

The saying goes, it takes two hands to clap, and the stray situation is no different. If all potential pet owners were to do their homework, on what their duties are in owning a pet, then we would know the pet will be in the goods hand of a responsible owner. The unfortunate truth is a lot of potential pet owners do not. They would therefore be easily swayed by the sweet-talk of the sales people, and the cute-innocent look of the puppies. By the time they bring their “toy” back home, they will realize that the life of a pet owner is not as easy as one have made it out to be. Issues of strays and/or mistreatment by pet owners are brewed as a result.

4. Execute, and execute wisely and properly.

With all the policies in place, it’ll be useless if they are not governed or executed well. A case in point is a recent incident involving a restaurant suspected of selling dog meat. The officers made a first trip to the restaurant for preliminary check, and then subsequently made a second trip to the restaurant again to obtain meat samples. Perhaps they were just following the protocols, but for heaven sake, exercise some common sense because what they had done was just plain meaningless. The restaurant could have gotten sufficient lead time to cover up their bad deeds, if they were indeed guilty. Do more mystery or surprise audit check on these commercial entities where there’s suspect of cruelty treatment of animals, I am sure one will see a different story, and one that matches the reality.

And it is not just with the authorities that should get their acts together, the society needs to play its part as well. As pet owners, we need to do what is necessary to keep our pets clean and happy, but not forgetting to stay in harmony with our fellow neighbors and friends who may not necessary a pet lover. For non pet lovers, let’s exercise some graciousness, for I am sure there are other things you like to do which others may not. But more importantly, if we all exercise our capability as human being in doing what we can to protect the innocent animals, we would not have seen the proliferation of the “pet warehouse” in the recent years.

So let’s take the first step. Let’s give our feedback to MND 🙂

 

Dark side of “Pet Warehouse” further exposed

A few days ago, I blogged about my experience with what I called a “Pet Warehouse”, on how they carried out the sales, and equally if not more importantly, how my Corgi puppy had seemingly traumatized by the short stay at the “warehouse” (but thankfully he had since recovered)

I received a few responses, and was shocked by how other had experienced the same with the said “Pet Warehouse”, with some even worst. I thought I would share some of these responses, so you can see the severity of the issue we are facing today.

 

last mth i went to pasir ris dog farm and walk into EPW and saw this beautiful boxer.. and ask them how much is the price… they told me he is cost 9.5k.. so i back off once they try to force selling the puppy.. and just walk away… that very same day i went to nex PS, they too have a boxer and cost cheaper to half price of the price at EPW.. i was so shock… and one of my friend GT just died after bring him home 5 days from EPW… but cos he did not pay the so called insurance thing.. so he get nothing back but a word of so sorry to hear that…

– Maureen

 

We got our corgi from there too!!!

The standing guy with dyed hair sold him to us. His change in attitude was equally horrifying when he realized that we only bought a few of the food he STRONGLY suggested. I can’t remember how much we got our corgi but it was around 3k plus. (My brother settled the payment.) We brought him home immediately and when he arrived home, he slurped 4bowls of water nonstop! Gosh, he was so thirsty!

After that, he came down with demodex but thankfully he recovered after medication. Now we feed the best vitamins we can for him to boost him immune system.

One of the reasons we got him because he looked pretty quiet and lonely in the cubicle.. But he was never once like this since we bought him home. He is extremely playful and active. Hmm.

– Eunice

 

Oh dear.. I heard of alot of bad rumours about them but this is the furst time I read about a 1st hand experience! Luckily cody is with you guys.. If not some weak minded individual might have gotten hom on impulse!

My Estee was from Ericsson by her previous owner too.. When I adopted her over, She contracted Lymphoma at the age of 3 and it is an extremely rare case.

From what I read from the web, lymphoma is a genetic diseases so maybe her parents were not of good health but made to breed and breed.

– Lynn

thanks for sharing the article… Lucky you got Cody home in time and taken good care.. My 1st dog from the “Warehouse” was not so lucky.. I can share a few pics with you of my 1st dog that i bought home then at nite got very sick and died the next morning..

The vet said was amoeba virus, then i brought her back to EPW the next morning, she died there after EPW’s vet came over to look.

Alot of us strongly believed she was put to sleep…
Hence why i strongly urge people in here not to buy from them because I do not want anyone to suffer what i had been through while getting my 1st dog… My tears even flow now when i type this coz this is the worst 1st experience anyone can get when getting a dog and bring home dead the next day…
– Jeffrey

Hmm, was abit surprised to see this topic here. I agree that EPW is a horrible place to get pets, the living conditions there before how they currently look like now was really bad. And there have been many sick cases from the puppies and often leave the owners very helpless.

i do advice my friends who want to get pets, not to go there though – all along! But the dogs and cats there are really poor thing..sigh

– Felicia

This has been going on for long times. I had the same experience with Jeffery and that was 16 years ago. It just happened every now and than but their business still grow strong. The poor little corgi puppy stayed one nite in my hse and 7 days in hospital than passed away. Till now did’t know what was the cause but I later found out the same batch of puppies( all other breeds) that came together , many died too. i always remember that puppy, he was so smart and obedient. He can do sit stay and wait without lease, the only day happy memory we spend together enough for me to reminisc for life.

– Amy

 i got koji from EPW too… he cost close to 4k… n like described, about insurance, pedigree cert n all, i was faced with the same thing!

– Alicia

We din go back to them regards to Miko’s demodex Mites. But there was once, we happened to passby there for the dog run , Miko stayed very still in my arms , could feel her trembling, she looked ard in fear and she tot we were returning her back to the horrible place of her life …

– Val

A Revelation of a Pet “Warehouse”

It has been more than a year since we have gotten Cody from a “pet farm” located somewhere in Singapore. I figured I should shared our story (about our dealings with the farm) so that more people will be more aware about the dark side of the pet industry. I first blogged about our experience privately, sharing with a small group of pet owners. The responses can be categorized into two camps. One camp was shocked by the experience, although most if not all had heard similar unethical practices, just that they did not hear it from somebody who had experienced it first hand. The other camp could relate to our experience because they had undergone similar trauma with the same said farm! There was no doubters, and the responses propelled me to publicize our story, for greater exposure of such unscrupulous practices. Continue reading

Samsung Galaxy S II, The best Android Smartphone ever?

Whenever i hear such a claim, on any product for that matter, i always wonder what is the context of the “best”. You see unless the product excels in all departments, i.e. it is the purrrrr -fect product in comparison to its competitors (see there is still a context) it can’t be the best.

Take the category of smartphone as an example. I would rate HTC for its famed Sense experience, which help to ramp up a newbie experience with Android (and Windows Mobile previously). On the other hand I see SonyEricsson being in the leader in its camera functionality having used its Xperia Arc and compared it with all the Galaxy S series. That said, HTC Sense is getting too complicated as the company tries to be sophisticated for its products to be ‘smart’. But I have digressed.

So when I read reports that raved the new Samsung Galaxy S II as the best Android smartphone to date I thought it is a bold statement. Don’t get me wrong as I think it is yet another fine product by the Korean company but that statement needs to be contextualized. Continue reading

Saab maintenance #4: Broken Vacuum Check Valve

Close up of the vacuum check valve

This morning, as I was driving, I experienced some shuddering when the car slowed down. At idling, the shuddering was more obvious. It was as though the car was trying to find the right gear, or misfired. The initial thought was it might be a coil pack problem, for which I had a spare part as a back up. But as I googled to confirm the root cause of the problem, it looked more likely to be a vacuum line leak as coil pack problem usually causes misfiring at higher rpm (and my engine shuddered at low rpm or idle)

Popping up the bonnet, I inspected the lines and true enough, I found the vacuum check valve broken. Hopefully there is no other leaks, and we will find out more as I bring the car to the workshop tomorrow.

Location of the vacuum check valve