Category Archives: Technical Notes

All about technical notes

Comprehensive Guide to Java (JRE and JDK) Installation on Fedora Linux – Tips and Tricks

Sun's Java JRE and JDK on FedoraIn this article, you will be exposed to the installation of Sun Java in Fedora Linux. Although Java has been installed by default in every fresh Fedora package, the Java version shipped along with the OS package is the open-source version GNU Java instead. Some applications and frameworks may require Sun Java. Due to licensing issues, however, Sun Java can not be bundled with the default Fedora Linux package and should be installed separately. Although the installation steps in this article can also be reproducible in other Linux distributions, there is no guarantee that steps advised in this article will also work for other Linux distributions.

The installation of Sun Java in a Fedora Linux box can be seamlessly easy. Yet, some people especially those with minimum technical experience on *NIX OSes may face difficulties in completing the installation. This article tries to provide a comprehensive guide for the installation. It provides whole steps to be followed along with corresponding snapshots so that one can accomplish the installation successfully. It also shares some useful tips which may help readers in understanding the environment they are working on better.

Prerequisites and constraints

This installation assumes that the following requirements and constraints have been fulfilled:
1.    Installation will be conducted through the console prompt.
2.    User conducts the installation using root account.
3.    The software yum must have been already installed in the box.
4.    The software wget is already installed in the box.
Tip: if wget is not installed yet, run command yum install wget from the console and the software will be immediately installed.
5.    Fedora version used is Fedora 8.0 or newer.
Note: in legacy Fedora, there is different path in installing the compatibility libraries. You can check jpackage site for more information.
6.    JRE and JDK version to install is 1.6 (snapshots are for JRE and JDK 1.6 update 17)
Continue reading

Sizzling Upload Progress Bar in PHP with APC, Part 1: APC Installation

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

Collectibles After Months of Seclusion

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

Wolfram Alpha logoSome 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

Riding The Cloud of Multi-million Worth of Infrastructure

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

A New Toy Namely Google App Engine Has Arrived

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 😉