[Dialy] Sublime Text 2 is a good editor

January 30th, 2012

I bought Sublime Text 2. It is a good editor.
I knew it on Keith Peters’s blog post.

I had tried it for a week. And I like it very much. My favorite points are ..

1. Multibyte support
2. Short application launch time
3. Customizable ( by Python )

1. is very important point for me. I sometimes input Japanese characters into source code. But some editor don’t work correctly. For example, they display wrong character, or can’t input character when I convert to Kanji.

As I like customizing application, I am attracted the feature(3.). But I don’t know how to configure it yet. If I have a time, I will learn it.

[terminal] archive file to zip format with password on terminal

December 30th, 2011

We can archive file to zip format on terminal without any other app.

1. archive only a file

zip example.zip filename

2. archive directory

zip -r example.zip directoryname

3. archive directory with password

zip -P yourpassword -r example.zip directoryname

[iOS] CSS3 animation is stopped when I scroll my safari on iPad.

December 26th, 2011

I wrote CSS3 animation code like this, and apply it to certain element.

@-webkit-keyframes flapping {
   0% {
   	-webkit-transform:scale(0,0);
   	opacity:1;
   }
   100% {
   	-webkit-transform:scale(1,1);
   	opacity:0;
   }
}

But CSS3 animation is stopped when I scroll my safari on iPad.
Accurately saying, it stops on 0% position of keyframes, and doesn’t progress further more.

I googled. Then I got a result which may resolve this problem.

>> GPUアクセラレーターが使える環境で強制的に有効にできるCSSの指定方法

It says that mobile safari is flickered when safari changes CPU render to GPU one.
If safari initially uses GPU rendering, it doesn’t flicker.
To do this, write this css property to target element.

-webkit-transform-style: preserve-3d;

Then I fixed the problem by this way.
Thanks.

I think that safari may change render method when it scrolls.

[terminal] recursively delete .DS_Store in terminal

December 24th, 2011

I noticed that my git repository has .DS_Store files.
The .DS_Store file is used by Mac OS.

As I wanted not to include these files in my repository,
I tried to delete these as follow way.

First, I deleted all .DS_Store files in the directory recursively on terminal.

find . -name '.DS_Store' | xargs rm

Next, I created ~/.gitignore_global file.

update 26th Dec. 2011
I have to type this command

git config --global core.excludesfile ~/.gitignore_global

I wrote these strings in it.
The file is global settings in git.
If you specify a setting in certain directory, you can create .gitignore file in the directory.
It stops to add to stage of git the files in which are wrote.

# OS generated files #
######################
.DS_Store*
ehthumbs.db
Icon?
Thumbs.db

Finally I committed this state.

I referred these sites. Thanks.
>> フォルダ以下を再帰的にgrep検索する方法 – gorton-lab 日記の下書き
>> Help.GitHub – Ignore files

[JavaScript] 3D on Canvas2D

December 20th, 2011

I am learning 3D basic theory again.


I have been using these books.
They are very kind for beginners like me.

>> Beginning Math and Physics for Game Programmers [Paperback]
>> Foundation ActionScript 3.0 Animation: Making Things Move! [Paperback]

Although I have learned 3D basic theory in AS3 before, I am trying to implement it by JavaScript.

I wrote above demo by this way.
I wrote CoffeeScript first.
Then it is compiled to js file by Cakefile which watches the .coffee files in certain directory.

[JavaScript] watch and compile, then concatenate them in CoffeeScript Cakefile

December 17th, 2011

I am learning CoffeeScript.
I saw Cakefile, and learned it.
I found that it behaves like batch file.

Then I wanted it to use as these way.

1. It keeps watching src/*.coffee files
2. When they are changed, it compiles them
3. It concatenates compiled files to lib/main.js

I made below code.
Although I don’t know whether it is correct or not, it works.

Cakefile

{spawn} = require 'child_process'

task 'watch', 'watch src/ and concatenate them to lib/main.js', (callback) -> 
  watch = spawn 'coffee', ['-w', 'src/']
  watch.stderr.on 'data', (data) ->
    process.stderr.write data.toString()
  watch.stdout.on 'data', (data) ->
    console.log 'file changed'
    build = spawn 'coffee', ['-j', 'lib/main.js', '-cl', 'src/']
    build.stderr.on 'data', (data) ->
      process.stderr.write data.toString()
    build.on 'exit', (code) ->
      if code is 0
        console.log 'build complete'

How to use
In terminal type this

cake watch

I refered these pages. Thanks.

>> node.js – coffee script cakefile task not finishing – Stack Overflow
>> [HowTo] Compiling and Setting Up Build Tools – GitHub
>> The Little Book on CoffeeScript – Compiling
>> Cakefile(zsh) – podhmoの日記
>> CakeFileの使い方 -CoffeeScript- – プログラムdeタマゴ