Get a shot of that web page with Abduction! [Charo Nuguid]
I'm currently doing the mock-up of a new online system for my organization. Part of the work is to get screenshots of webpages to paste onto the use case documents. I used to have an application that could help me grab full shots of a page without having to hit the "print screen" button every so often and stitching up the images using Photoshop or GIMP. Unfortunately, it isn't free and is only available for MS Windows applications. Fortunately, I found a Firefox add-on that does exactly what I needed. READ MORE ABOUT IT »
Google ranking on Google Search [Pinoy Tech Blog]
Barely a day after Google Knol was launched to the public, several pages of knol.google.com are already ranking quite high on Google’s own search results.

It’s a little weird to see the Google domain showing up on Google search results. This could be the start when Google becomes the content of Google search. Is it possible that someone, all the links on the front page of Google be all pointing to Google itself? Google becomes the Internet.
Surprise, it's the Proactor Pattern [C++ Soup]
So today we've finished the deployment of a very important piece of software where I work. The development of this piece of software has taught me a lot not only about the real power of C++ when you do it "the right way" in terms of expressiveness and sound software design: but also of the power of doing the right things that cause the most impact.
I cannot talk about what that project is and what is about, but I can talk about a surprising little thing that contributed most to the success of the project: the Proactor Pattern. From the original paper:
The Proactor pattern presented in this paper describes how to structure applications and systems that effectively utilize asynchronous mechanisms supported by operating systems. When an application invokes an asynchronous operation, the OS performs the operation on behalf of the application. This allows the application to have multiple operations running simultaneously without requiring the application to have a corresponding number of threads. Therefore, the Proactor pattern simplifies concurrent programming and improves performance by requiring fewer threads and leveraging OS support for asynchronous operations.
This pattern has allowed me to write a very stable highly scalable server. The good thing really is not just that it's a cool pattern, but more because of how you can leverage it to do a lot of other things. The pattern where you "handle the completion of an action" or "do something, then do this" allows you to distribute the processing of what the 'action' is (or what 'this' is) in the particular context to a group of processing threads. Allowing your processing threads to be as oblivious to what it's executing as possible compared to having to tie in the actual processing to specific thread life-times means you're decoupling basically the event queuing mechanism from the actual event handling.
This decoupled design allows users of a framework/library to leverage it in ways that are otherwise impossible with more coupled/rigid frameworks. For instance, I have been (ab)using the Boost.Asio 'io_service' object as a task queue for processing by a thread pool -- by packaging tasks as opaque Boost.Function objects or results of Boost.Bind operations. Boost.Asio uses a proactor framework internally to handle the IO related scheduling and dispatching of asynchronous events. And if C++ developers were lucky, it would be part of the next C++ standard library release (along with C++0x).
The surprise is, thanks to Boost.Asio we're now able to handle thousands of transactions per second with this new piece of software with very little strain on the CPU. Yet again, modern C++ development, a sprinkling of a little template metaprogramming voodoo here and there, and well-designed solutions saves the day -- and provisions for growth to scale in the future.
Time permitting, I may be able to post a simple example of the types of things Parallel Computing, High Performance Computing, Functional Programming, Modern C++, and Template Metaprogramming all culminating together allows. For now, this is an installment in the series of articles "On Parallel Computing" to let the world know of "that little pattern that could".
This is part of an on-going series of articles pertaining to parallel computing and programming techniques in C++. If you have specific questions particular to your application and your situation, please feel free to email me through dean.berris@cplusplus-soup.com and I'll get to your questions as soon as I can.
I like taking the train. It’s fast and climate-controlled, and the cars don’t smell like feet, unlike some of the cabs I’ve ridden in the past few weeks. However yesterday, I experienced something that may have scarred me for life (or at least for a week) — rush hour on a Wednesday.
Now I’ve tried taking the MRT during rush hour. Sometimes you can’t get on as soon as you’re inside, because there are too many people ahead of you. Which is fine, since there’s a train every, like, five minutes. Yesterday, I couldn’t get on until after four trains. That’s right. Either the gas situation has gotten so bad more people are taking the MRT or, well, I’ve probably never been out during Wednesday rush hour before.
So here I am, trying to erase the memory of getting squished against another girl’s chest (if I were a lesbian, I’d remember this memory more fondly), and nearly impaling an old lady with my umbrella. I could’ve been impregnated already for all I know, we were packed in so tightly. All I can say is, I’m taking the cab for the next few days until I’ve gotten over the horrible episode.
Here’s a piece of advice to MRT commuters: stay civilized. When the doors open, let the passengers who are exiting alight the car first before trying to get in. When everyone who wants to get out has gotten out, tightly clutch your bag/s, steel your shoulders, dig your high heels in and silently say to yourself, “Out of my way, bitches!” and then proceed to throw yourself through the doors with all the force you can muster. Yes, the silent yelling helps you mentally prepare for the chaos waiting for you. Hey, I said stay civilized, not be a wuss.
Wireless Broadband -- Miracle of the Mobile World [Dean Mikhail Beris]
A few years ago, I would only dream about the scenario I had just gotten through. I think it's really enlightening when some of your idle 'what-ifs' would come true someday. And up to now, thanks to the miracle that is affordable wireless broadband Internet, I am able to get online and be part of the global community literally wherever I am within wireless signal strength. And in the country like the Philippines, that's practically *everywhere*.
I can't share a lot about what specifics happened that required me after having dinner with a handful of officemates to get online as soon as possible. But what I can share is that I didn't have to look for a single wired Internet connection to get online. In a matter of minutes, I was up -- the mobile person that I am -- and literally engaging a team of people both just a few kilometers away and half the world away. Everybody in the team was within reach of each others' fingertips, it's bone chilling to think how small the world has really become.
It doesn't stop there though. I have written about the SMART BRO Prepaid wireless broadband Internet over HSDPA/3G/EGDE/GPRS -- but I never thought how it would transform the way I thought about mobility and productivity. I'm literally lying in bed right now writing this blog entry -- and with the same means I can go anywhere I can get an HSDPA connection or 3G signal going and be as online as I am on my bed. It's amazing really to think that because of these new technologies, solving problems becomes easier, and you get to do more things almost wherever you are and at almost anytime you dare. A few years ago (think year 2000) this would not have been possible -- but look at where we are now and what the possibilities are.
With this thought, I really think getting this technology in the hands of more and more people will only enable more people to be more productive in the global scale. Think about the person in the province who would be able to get access to timely, relevant, and correct information regarding things like health care, the weather, technology, business, other people's lives, etc; about the student who could get access to the same books that the universities in first world countries have access to, the same technology Fortune 500 companies use, the same knowledge Ph.D. students and teachers have access to; about the communication between family and friends enabled by bridging the distance gap through technology...
What this technology enables us people in the third world to have is essentially an affordable way to get connected to the global arena that is the Internet. It really doesn't matter if it's for personal improvement, due to a job requirement, or just for fun. It puts us on a level playing field alongside everybody else in the world. Realizing this can change the way we think about progress and development. Leveraging it will be the key to our collective success.
So if you are ever going to invest your money in something, make it knowledge and technology. Yes, it's a cliche that knowledge is power -- but power is useless without leverage. You're only as effective as the tools you use and as productive as your imagination and capabilities allow you to be. Once you start equipping yourself with the knowledge and power that comes with this knowledge, leverage it with technology to reach out to the world and be part of the global connection.
A few thousand pesos for a device that allows you for a few extra pesos to get online and get access to information and communicate with the world? Think of what you can learn, and what you can do, and what you can produce not just for you but for everybody else. Think of the possibilities then start doing something.
I don't remember where I read it, but truly the Internet is the world's great big equalizer. And getting on the Internet while you're anywhere? Then that makes it simply amazing.
CHill.
HP Mini Note lagging behind UMPC Bandagon [Pinoy Tech Blog]
The recently launched HP 2133 Mini-note seems to be lagging behind the newer and faster ultraportables from Acer and MSI.
A round-up of the current 9 inch and 10 inch laptops in the Philippine market showed HP’s choice of using Via CPUs instead of the faster Intel Atom broke the deal for most prospective buyers.

Included in the table are the MSI Wind U100, HP 2133, Asus Eee PC 900 and the Acer Aspire One which is supposed to be the cheapest among the four.
UMPC Chart above taken from YugaTech.
Mac OSX Leo: Sata Problems (Jul 24 08) [Pablo Manalastas]
In an earlier post, I mentioned that I was successful in installing Kalyway Leo 10.5.1 on my Neo Empriva 540SVB laptop, on an external USB-connected IDE/ATA disk. I was inspired by my success, and decided that one day, when I have time, I would install Leo on the internal SATA disk. Yesterday, I had time, and attempted several times to install Leo4allv3final 10.5.2, using grub to dual boot Leo and Debian. The installation was successful in all my attempts, but the initial boot after installation runs into problems. After loading all the drivers, including the VIA network card, the system goes into an infinite loop, displaying "Still waiting for root device" many times, ad infinitum, until I reboot the laptop to Debian. I googled that error message, and discovered that Leo 10.5.1/10.5.2/10.5.3 does not have proper support for sata drives. So those of you who have the new sata disks on your laptops / desktops, the situation is hopeless. Just buy the original MAC Intel machines, which is what you need to do anyway if you want to use Mac OSX Leo legally.
But wait: iATKOS Leo 10.5.4 announced that it may have sata support that will work for your PC. Should we try this one folks?
Drupal: Adding a footer to all of your system e-mail [Sacha Chua]
Drupal’s hook system is making me almost as happy as Emacs’ hook system does. =)
There’s a hook_mail_alter function that allows you to modify any message your system sends. Example:
function mymodule_mail_alter($mailkey, &$to, &$subject, &$body, &$from, &$headers) {
$body .= "\n\n" . t('This is a system-generated email, please do not reply to this message');
}
You gotta love developers who plan for extensibility and put all sorts of hooks into the code…
Math Wonderland (Jul 23 08) [Pablo Manalastas]
A friend and colleague, Dr. Prof. Mari-Jo Ruiz of the Department of Mathematics of Ateneo de Manila University gave me an autographed copy of the book, A Day's Adventure in Math Wonderland, by Jin Akiyama of Tokai University (Japan) and Mari-Jo Ruiz. It is a beautifully illustrated fun book about mathematical models and gadgets, that even the most mathematically-challenged student will find interesting. Prof. Akiyama's and Prof. Ruiz's work in combinatorics and graph theory have appeared in many serious international journals, and so this fun book is not normal work for them. With this extraordinary work of math and art, they make mathematics truly enjoyable for both young and old!
The book's illustrations were done by Frances Alcaraz, a fine arts graduate of Ateneo, and now a faculty member there. Ms. Alcaraz drew the character Prof. Yamaaki on page 172 of the book to look like Prof. Akiyama on the back cover. Interesting! Also the drawing of the lady in black shirt on page 224 looks like Mari-Jo on the back cover.Is the lady in white shirt Frances?
You can get the book for USD49.00 from World Scientific:
http://www.worldscibooks.com/mathematics/6864.html
Mari-Jo, is the book available from National Book Store?
GTD+R + Firefox 3 plugin + TiddlyWiki = Productivity! [Charo Nuguid]
It's been a long, long while since I last posted on this blog. I'd like to say that I've been busy, but for the life of me I couldn't figure out what I've been busy with. I know there's a lot of stuff I need to do and yet I feel like I haven't done anything much. So I decided to call this day my "Get Things Done and Organized" Day. I then revived three items which worked for me long ago, though separately. Yet by putting them all together, I realized that I had gained an upper hand in finally getting things done. READ MORE ABOUT IT »
How drafts can save your social life [Charo Nuguid]
Ophelia Chong recently wrote about email and how virtually everlasting it is. Calen Legaspi (CEO of Orange and Bronze Software Labs) also sent out an email to our office list about email etiquette. Recently, I had to admonish an email list for not having the presence of mind to change the subject header before sending out something that was totally different from the original topic of the thread.
It's like the world converged and decided to tell everyone to mind their email. This made me look back on my experience with email and how I was able to save myself from future woes. READ MORE ABOUT IT »
Remembering through flashcards [Charo Nuguid]
Learning is a lifetime activity. As long as you can hear, see, smell and/or feel you have the capacity to find out about something new every single day. But for some of us (like myself), there's a slight problem with retention of data. While reading Lifehacker I learned about some programs that could help me in reviewing the information I read earlier as well as help me create presentations that might be useful for future conventions and seminars. Welcome to the world of flashcards! READ MORE ABOUT IT »
Feature Friday: StartUpers! [Charo Nuguid]
Feature Friday is where we get a bit more intimate with the people who are starting really interesting sites, products and whatever else they've got going on. Today for our premiere we look into a startup company that deals with employment for other startup companies. Read on and find out what makes StartUpers tick! READ MORE ABOUT IT »
iBlog 4: Publicize your blog through TGS! [Charo Nuguid]
With iBlog4: the 4th Philippine Blogging Summit coming up in two weeks, I'm now scrambling to get my presentation ready. Aside from that, I'm also taking a page from my friend Sacha Chua and renting out some space on my laptop to promote your stuff! READ MORE ABOUT IT »
Hack 'Em Up: The Chrono-Day Planner beats procrastination (hopefully!) [Charo Nuguid]
I've been a long time fan of D.I.Y. Planner since the day I ditched my Palm Zire 72. But somehow I can't seem to schedule stuff correctly and end up putting off some tasks. Recently Lifehacker featured the Muji Chronotebook, a day planner that takes a much different approach to scheduling your everyday routines. That, coupled with a few lessons from "The Now Habit" by Neil Fiore, inspired me to create a totally new template to help me get my procrastination under control. READ MORE ABOUT IT »
"I am but a small blog..." [Charo Nuguid]
The heat here is absolutely stifling with humidity reaching above 80% and temperatures reaching 35 degrees Celsius! Honestly, it's hard to write in these conditions. Even the new air conditioner seems to want to give up. Global warming has really changed this world we live in. Speaking of change, enough has happened the past couple of days for me to go and talk about how blogs can also change the lives of one or one million people. READ MORE ABOUT IT »
Return of the PWIT [Charo Nuguid]
When I decided to write this entry, I had in mind to do it for posterity and for history. Little did I know that the Philippine Week in Tech (PWIT) was actually planning a comeback. Absolutely perfect timing! So I had a chance to interview the man who started it all, Adel Gabot, about his geeky project. READ MORE ABOUT IT »
What to do when you can't install VMWare [Charo Nuguid]
Wal-Mart has recently been under the microscope for selling really cheap computers with a relatively different linux flavor called gOS. So I decided to go and try out the new OS. First thing I did was download the newest version of VMWare. More specifically, the VMWare Server 2.0 Beta. (Hey! Might as well hit two birds with one stone.) Little did I know I would run into a slight problem. I can't seem to install VMWare on my newly installed Windows XP SP2.
As usual, a couple minutes of searching gave me the answer I needed. READ MORE ABOUT IT »
| Feed | RSS | Last fetched | Next fetched after |
|---|---|---|---|
| (Obsolete Feed) | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| :: Zorlac Domain :: | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| A Clockwork Durian | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Advocrazy | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| C++ Soup! | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Coredump | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Crimson Crux | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Digital Mercenary - software, code, photography, fun | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Ealden Escañan | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| F S 3 Consulting | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| foxpro.catalyst « | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| free.net.ph | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| godiane | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| http://premrara.com/blog/feed/ | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| http://www.haravata.com/blog/?cat=3/?feed=rss2 | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Insanity in a box | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| iRant | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| IT Girl | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| it is... | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| jared@darkstar | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| jijo.free.net.ph | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Joben R. Ilagan's Web Log | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Jojo Paderes | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Kyo Suayan | personal site | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Leon Kilat ::: The Cybercafe Experiments | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| melecio.org - gari melecio's personal domain | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Mental Blabberings | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| MicroISV Notebook | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| monicai tech-trospect | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Monotrematica | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| my Technology Blog | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Naked Interface | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| nox @ work! | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Pinoy Tech Blog - The Philippines' Premier Technology Blog | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| P~MANALASTAS: Random Writings | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| richard@work | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| sacha chua :: enterprise 2.0 consultant, storyteller, geek | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Stellify | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Technobiography | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Tek for the Pipol ? | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Teknolohiya | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| The Armorer's CodeX | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| The Geekette Speaketh - Teasingly Techie Thoughts from a Greatly Geeky Gal | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| the parser blog | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Third World Agility | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Third World Software... Development | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Thoughts Aloud | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| thoughts shared, rarely | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| UP ACM: Compute. Compile. Compete. | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| waaaaa | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |
| Zakame::Blog | XML | 12:00 PM, Friday, 25 July | 12:15 PM, Friday, 25 July |