Jim Cheung

Saturday, January 04, 2014

read Realtime Web Apps With HTML5 WebSocket, PHP, and jQuery, but it uses pusher, not really telling you how to write websocket javascript, it's a waste of time.

now reading JavaScript Web Applications, which is good. found an interesting app while reading this book: Holla

because of clojure, start to use emacs, I love it's old-fashioned interface.

a bookmarklet to increasing font size:

javascript:var p=document.getElementsByTagName('*');for(i=0;i<p.length;i++){if(p[i].style.fontSize){var s=parseInt(p[i].style.fontSize.replace("px",""));}else{var s=16;}s+=2;p[i].style.fontSize=s+"px"}

Thursday, January 09, 2014

light table is open sourced, it is such a good news. I was wondering how they wrap they wrap the web app (written entirely in clojurescript) with chromium and waiting them to open source the project, now it's the time.

I did try a little bit of emacs, i think the whole integration with shell, dired and window arrangement is great. but on editing part, still have to a lot of customization in order to match vim. i'd like to customize my editor with lisp, but i think i need to spend more time on emacs-lisp first, and use evil-mode.

Thursday, January 16, 2014

finished JavaScript Web Applications, should read it two years ago.

start reading Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript and Async JavaScript: Build More Responsive Apps with Less Code, both are good.

today found a problem with drupal_json_output() response with bom, which will cause php json_decode() return null. first thing i found is php json_encode() All string data must be UTF-8 encoded. second thing is if any php file contains a bom before <?php, the output will be with a bom. i wrote a script to find files with bom and removed the bom, json output resumes normal. (add DirectoryScanner to composer.json)

require './vendor/autoload.php';

use TheSeer\DirectoryScanner\DirectoryScanner;

$scanner = new DirectoryScanner;
$scanner->setIncludes(['*.php', '*.inc', '*.module']);
/* @var $i SPLFileInfo */
foreach ($scanner($dir) as $i)
  $file = $i->getRealPath();
  $data = file_get_contents($file);
  if (substr($data, 0, 3) == pack('CCC', 239, 187, 191))
    echo $file, "\n";

Saturday, January 18, 2014

there few things i am excited about php 5.6 new features:

Friday, January 24, 2014

I'm listening to few podcasts recently (including archives), Java Posse, Ruby Rogues, Java Spotlight, Programming Throwdown, and a good place to find new podcasts about programming (or any other topics): player.fm.

When moving my backups to new machine, git treats my windows files as updated (permission changed), have to disable the file mode:

git config --add --global core.filemode false

very busy past couple weeks and didn't read much, reading How We Got Here: A Slightly Irreverent History of Technology and Markets and reserved Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers.

Blog Archives