JavaScript


Previously I read an article regarding JavaScript and another one regarding HTML.

JavaScript, it is so wonderful that not only enhances the HTML interaction, (e.g. jQuery), it also makes a revolution of the system architecture design (e.g. AngularJS, ReactJS with Babel). The Babel JavaScript compiler is so amazing that it can transform the JavaScript to EcmaScript 6 with JSX feature. JSX is actually cannot be interpreted by our current web browser, but with the Babel, it makes JSX possible.

I really cannot believe that a JavaScript can interpret a statement with the syntax like this,

var div = <div>Hello world</div>;

JavaScript, not only client-side interpretation, it also runs as the server-side, such as NodeJS.

In my opinion, JavaScript becomes so popular and so powerful is because of several factors: Web technology itself, HTML specification (DOM design), and CSS specification. In order to produce a web application effectively and efficiently, programmers developed the solution from the JavaScript aspect, because this is the best way for hacking (I do not mean cyber security attack).

As the three fundamental technologies of WWW: HTML, CSS, and JavaScript, you can discover that their syntax are different, and only JavaScript is an imperative programming language; HTML and CSS are declarative programming languages. Yet, these three languages can be integrated into single HTML page. Other programming languages such as C, C++, PHP, Java, C#, etc, they are too programmer-oriented. As a result, they are too rigid during the development. JavaScript is using dynamic typing, thus, development on the JavaScript is more robust. PHP is also dynamic typing, but it is server-side scripting language. JavaScript because of NodeJS, both client-side and server-side can use it. One language rules them all.

And because of JavaScript, the rise of JSON is gradually replacing XML. It is more lightweight and highly used in Web API. Comparing to XML, JSON is much simpler, focusing on the data only. And the syntax can be easily used to differentiate the data types: number, string, boolean, array, object, and null. On the other hand XML should be parsed with a parser according to a DTD (document type definition). Moreover, MongoDB uses BSON format, which is based on JSON.

Therefore, for the web technology, JavaScript is one language that rules them all. I am no sure whether JavaScript will be highly used in desktop applications or not. But surely it cannot be used to develop system software.

Advertisements

Facebook chat list


I am not a Facebook fervent user. I use it because of some of my friends are using it.

So, if you want to enable your “available to chat” status to your group of close friends or special group of friends,

  1. Go to Friends an create a list that you want to chat with.
  2. After creating the list, add your close friends.
  3. Now, turn on the Chat.
  4. Go to Chat Options > Advanced Settings
  5. Choose “Turn off chat for all friends except…”, and add in your target chat.
Custom chat list in Facebook
Custom chat list in Facebook

Then, if you are using Pidgin, you can use chat with your Facebook friends by following this instruction.

Why not Internet Explorer?


Firstly, I want to state that I am totally anti (dislike) Internet Explorer. There are several reasons that I don’t like Internet Explorer.

Internet Explorer version less than 9 has a lot of problems with CSS. As a result, as a developer, developing the webpages for among IE and other web browsers is exhaustive. In order to make the compatibilities, the CSS is almost web browser dependent. Besides that, CSS3 which is supported by most of the modern web browsers, does not work well in Internet Explorer. Luckily there is a trick using PIE. But this is not the best solution.

The next problem of the IE is the upgrading problem. To upgrade the IE, it is depending on the OS. To use IE8, the Windows must be at least Windows XP. This is not a great problem, because Windows XP is not yet extinct. But to use IE9, the Windows must be at least Windows Vista with SP2 (Service Pack 2). That means, whoever uses the Windows XP cannot upgrade IE to version 9. Next, to use the latest IE10, the Windows must be at least Windows 7 with SP1. That means, whoever uses Windows Vista cannot use IE10. As a result, the users can only choose to upgrade their OS or computer, or remain using old and good for nothing web browser which cannot cope the current web technologies, or lastly change to another web browser.

As a developer, to develop the webpages for web browser independent should be easy, because of the standardisation of HTML, CSS, and XML. However, it will be difficult because of IE. Moreover, to develop the webpages for different IE versions is even sillier. If using IE8 and turn on the Developer Tools, we can choose IE8 standards or IE7 standards. This is something interesting, one web browser with two different standards for development. This indicates that webpages for IE10 may different from IE9 or IE8 or IE7 or more.

The best reason not to use IE is because there are much more better alternatives: Firefox, Google Chrome, Opera, or Safari. These web browsers are free. Besides that, they are platform independent except Safari.

Why do I need to spend extra money to upgrade the computer in order to get a latest OS because of the desire to use the latest web browser? Changing a web browser is cheaper than changing an OS and even more cheaper than change a computer. So, unless IE is cross platform, following W3C standards, and remain free, I will not use IE or develop the webpages targeting on IE.

 

 

Bookmarks, like (including +1 and favourite), and Zotero


Long time ago, I used to use a text file to collect all my favourite websites. This is because I was using Internet Explorer, and Firefox was not yet introduced. I totally disliked the “favourite” files in IE. Besides that, I cannot bring my favourite websites to any other computers.

Then, after using Firefox, I started building up my bookmarks. This is really great because the bookmarks can be easily exported and imported with a single file.

Then the social bookmarking sites is gradually prevailing, such as Digg and Delicious.  Then we can share our bookmarks with our friends.

Next, social networking sites such as StumbleUpon, LinkedIn, Facebook, Twitter, and Google+ become popular. These sites provide the button such as Like, +1, or Favorite. However, feature such as Like or +1 from Facebook and Google+ does not add the posts or links as a bookmark. It provides some statistics for the user who posts, but not as a collection for the readers who like. However, the Favorite and Like in both Twitter and StumbleUpon will store as a collection for the users. Thus, they serve more like bookmarking.

Recently, I try to utilise Zotero more. Bookmark is useful to bookmark the page I like. However, sometimes the articles or some phrases are impressive to me. After I bookmarked, I cannot search them from the bookmark, because I only remember a fragment of the articles. Thus, Zotero is very useful in the way as note taking to record the phrases I like. Zotero is perfectly worked with Firefox.

The bookmarking and Zotero note taking is able to synchronise on internet. Utilise these features and increase your bank of knowledge.

Firefox 15 with built-in PDF plugin


Firefox, though I like it, I still feel a lot of limitations of using it, especially reading the PDF using the plugin from Adobe Reader. This is really a drawback. Because the plugin in Linux I feel that it is not very stable. That is why, normally I open the online PDF with Chromium, because Chromium (Google Chrome) has built-in PDF plugin.

Now, Firefox 15 has a built-in PDF plugin as well. By default, it is disabled. So, we need to enable it manually.

At the address bar, enter “about:config”. Then you are able to edit some configurations of the Firefox. So, search “pdfjs.disabled”, change the value to “false”. Yes, now, it is enabled. I forgot whether restart is required or not. Just try any PDF, then you will see the difference.

However, if comparing the viewing quality with Chromium, the text in Firefox is quite rasterised (pixelated). Yet, I am still enjoy with this new feature.

Firefox or Chromium (Google Chrome)


Yes, again web browser. I am using Firefox. Only sometimes Chromium (Google Chrome). Mainly Firefox. If someone ask me, which one I choose, I definitely answer Firefox. But, if someone ask me, which one I prefer, then it will be difficult to answer.

Firstly, I would like to go through why I choose Firefox as my primary web browser.

Because of DownThemAll. There is no alternative extension in Google Chrome like DownThemAll. Why I like DownThemAll so much? I use DownThemAll with GreaseMonkey to download my favourite mangas (comics). This is something Google Chrome still cannot do it, based on my current knowledge. GreaseMonkey generates the links, right-click, then I DownThemAll.

Another two addons, DownloadHelper and FlashGot. Both of them allows me to download any online video or audio streaming. Google Chrome doesn’t have this type of extension.

Actually, all of these limitations of Google Chrome are because of extension API restriction. That is why, there is no similar replacement for DownThemAll, DownloadHelper and FlashGot. However, I wonder why there is no one uses NPAPI to build the similar extension in Google Chrome.

Next advantage of Firefox is the bookmarks. The best feature I like is the tagging feature. This help me to search my unorganised bookmarks easier. I know, Google Chrome uses a different approach to solve this problem. Google Chrome is more to cloud computing and searching algorithm, it solves the problem by using Google Bookmark search. This is something I don’t like, without internet connection, Google Chrome can done less thing than Firefox. (You might said, without internet connection, your web-browser can do nothing, yet I can said, I can still do the web development without proper internet connection, or manage my bookmarks when I don’t have internet connection.)

Then, if I definitely choose Firefox over Google Chrome, why do I need to post this blog? Sure, there is some beauty about Google Chrome which always makes me to consider to switch to it. Firstly, its interface is really clean and simple. The interface make me feel more to the webpage instead of web-browser. Firefox makes me feel that I am using Firefox; Google Chrome makes me feel that I am visiting the websites.

Secondly, for the developers, creating extension using Google Chrome is super easy comparing creating a Firefox addon. Firefox addon needs to follow a lot of convention and using XUL, which is not easy to learn (for me). It needs to create “chrome.manifest”, “install.rdf”, and so on. The documentation is also not very good (I personally feel).

Thirdly, Google Chrome has Chrome Web Store, this is something which Firefox lacks of. But even if there exists Mozilla Web Store, I will not prefer it, unless the Mozilla Web Store is a superset of Chrome Web Store, then I may like it.

Then, there are several other reasons, such as Google Chrome open and close is faster than Firefox. Though Firefox startup is far more better than its older version, it is still slower than Google Chrome. And if closing the Firefox, then you want to start the Firefox again, you need to wait a while. Besides that, enable or disable the addons needs to restart Firefox also. May be this is the price paid for the good addons like DownThemAll, FlashGot and DownloadHelper.

Comic Downloader alpha stage


I wrote several Greasemonkey userscripts. However, the Javascript has its own limitation for security reason, especially when a website uses scripts from cross domain. As a result, Javascript cannot get the information, and my userscript fails to work. Therefore, I start another project, in order to solve the cross domain problem using Python, and targeted on Linux (Ubuntu).

The current development stage is alpha, and targeted only on one website, since the other websites I frequently visit still work with Greasemonkey userscript. The alpha stage of Comic Downloader is currently work in command-line. GUI feature will be added in future with PyGTK. Currently, the command-line is able to solve my problem for offline comic reading.

Feel free to visit the project page.