After some series of “political” technical notes, I think it’s the right moment to supply some more technical posts to fellow developers. This time I will write about creating sizzling upload progress bar in PHP. In the past, there had been heated debate in PHP internal list about RFC 1867 implementation on PHP core code. If you were there, you might still remember that we had to patch the file main/rfc1867.c and some other files and then recompile PHP to get the upload progress bar hack working. Some harsh critics even mentioned that without the built-in capability of upload progress, PHP was years behind Java and Perl and lacked its capability as a web programming language.
Fortunately, since PHP 5.2 (especially after PHP 5.2.6 release), showing upload progress is not a big deal in PHP. Thanks to APC developers -mostly are also core PHP developers- who contributed to changes in APC that led to the availability of this long-waited feature. With APC we’ll be able to track the progress of file upload and provide our users better convenience when using our application.
Still, APC is not a part of core PHP shipped as a bundled package. We need to install it manually. In Windows, we can simply load the dll file to get it working. However, Linux users may need some pointers about how to install and enable this package. Hence, I will provide some guide for APC installation which was tested on veteran RHEL 4 and energetic young Fedora 10. So, let’s just go to the installation part. Continue reading →
You may have noticed that the postings in this blog become scarcer even though it was already scarce before. This doesn’t mean that I have lost the interest in writing posts here. Instead, the sabbatical period (in another sabbatical period) has brought me a lot of new findings, interesting and exciting things to explore. Here, in this post, I write some of the stuff you may find yourself curious about too.
Wolfram the Knowledge Engine and Knowledge Discovery
Some have speculated that Wolfram will be the Google-killer although by purpose they are a bit different (and the Wolfram dev team also clearly mentioned about this on their site). Wolfram is a knowledge engine with its own data repositories which is capable of answering questions to very diverse domains. Different with search engines in which data are collected from various sources and then ranked based on relevance, utilizing page rank algorithms, the knowledge engine stores data that are “factual” and representative for the knowledge. For each given question, it computes the answer based on the model that represents the question. Two pertinent fields to this application are machine learning and data mining. Key issue in developing application like Wolfram is that it should be smart enough to interpret the question and provide relevant and factual answers thus less being subjective. Continue reading →
Do you still remember the OLPC (One Laptop for Child) program and other (if any) with similar purpose? Let me help you lessen the time for googling by citing the mission of this program from its official cite, “To create educational opportunities for the world’s poorest children by providing each child with a rugged, low-cost, low-power, connected laptop with content and software designed for collaborative, joyful, self-empowered learning.” From a recipient’s point of view, what could this be? The meanings and implications may differ however one thing for sure, the recipient -given the condition he/she can’t afford laptop at normal price- is given luxury at very affordable price, the luxury of owning the gate to access the advancement of technology.
Similar story now may be repeated in the near future in computation area. It’s less than decade from year 2000 but if we compare the computing power of a node (e.g.: standalone PC, server, workstation) in that year with today’s, the discrepancy is very significant. In less than a decade we have seen how computers are becoming faster and how hardware prices are becoming cheaper. These days, multi core processors are becoming more common thus multiplying the computation speed of those of single core.
Continue reading →
Google seems to love and hate me at the same time. Some moments ago (I forgot the date I filled the application), I submitted application form for testing its App Engine. I was just curious about its cloud computing environment and wondered if the infrastructure they built could properly address some issues common in grid computing or cloud computing architecture. Also, I thought it would also be nice for me, although I’m not exposed to the details of the architectural implementation, to use their infrastructure for research purpose as I’m currently researching on distributed systems.
I received an email from Google containing the approval of my application. No need to explicitly express how radiant I was to receive such notification because it really means something, to be frank. The caveat is, current SDK provided only supports Python programming language, a language I am not so familiar with. I have never spent hefty amount of dedicated time learning Python, to get to know what’s inside and out. Lacking the knowledge can be a taxing obstacle, but let’s just see if I am up to the challenge.
Later, I will provide an article about cloud computing for those who want to know why it’s often said as a promising architecture for future web computation.
In the meantime, if you have ideas about applications to build or good references for Python, just let me know. The comment section is open 😉
Last week, my indiscreet non-techie colleague encountered his yet-another-virus-attack experience. There should be nothing big as he had an antivirus product installed. However, after casually spending his routines for some days; beverages and snacks and tons of unproductive applications running from his laptop, he felt that his laptop became much slower than usual and also exercised some strange behaviors. He later asked me to investigate the oddities and construe what was actually going on.
To my surprise, normal simple procedure in detecting and destroying virus, trojan, and other malware didn’t work at the time. Antivirus reported nothing but the strange behaviors persisted. Still being unsatisfied and puzzled, i tried to verify antivirus’ finding by conducting online scanning and here the mystery started to unravel.
To make it short, my friend’s laptop was infected with TDSS rootkit. This rootkit is a combination of trojan and adware. Reported first time by Sophos, this attack has gained its notoriety as one of the hot trojan and malware attacks in November.
If you happen to experience symptoms below, you might infer that you have been infected by TDSS rootkit:
- Slow browser
Your browser unusually loads slower than it should be. Even though browser is the only application you run, the speed is still slow, invalidating assumption that the slow loading is caused by insufficient memory
- Continuous high CPU percentage for System Idle Process
If you press Ctrl-Alt-Del and see the list of running processes, you will notice that “System Idle Process” consumes most of the CPU cycles, usually more than 90%
- Denied access to some files and folders
If you enable System Restore, you will notice that if you click the folder “System Volume Information” that resides in the root directory of each drive, you will get message “Access is Denied”. You can also check some other files in system32 folder and raise the same message.
- Redirection of results from search engine and unavailability to access antivirus and security websites
If you try to search for remedy for the infection and type words related to antivirus like “virus removal, trojan removal, TDSS, antivirus vendors, etc” you will notice that every time you click the link from the result page you will be redirected to another search engine, that is bediddle (bediddle.com) or some other page that is different from the real link.
You are also disabled from accessing antivirus providers’ websites and circumvented from conducting online scan.
- Antivirus doesn’t work or only seems to work
If you try to scan using your antivirus, it will say your system is safe. This is actually not true. Try updating your virus database definition and you will see error reported by the update engine. Also, if you want to install a new renowned antivirus, you will always fail the installation.
Continue reading →