Sunday, February 21, 2010

Android Development Tips

Logging

http://groups.google.com/group/android-ndk/browse_thread/thread/d6c5e8f25f1ee543

#include <android/log.h> 
__android_log_print(ANDROID_LOG_INFO, "your_tag", "fmt string", parameter1, parameter2);

Then you will see it in logcat output.

Read file build/platforms/android-1.5/common/include/android/log.h in ndk for more info.

Syntax Highlighter syntax conversion

http://alexgorbatchev.com/wiki/SyntaxHighlighter 

I found that usage pattern was changed in recent releases.

Original sample usage:

<pre class="java:nocontrols" name="code">
    your code
</pre>

New sample usage:

<pre class="brush:java">
    your code
</pre>

Change your posts to use new version of Syntax Highlighter:

Invoke following command in vim:
%s/<pre \(.*\)class="\(\w\+\)*\(:\w\+\)*" \(.*\)>/<pre class="brush:\2" \1 \4>/g

Google Blogger/Blogspot line break conversion

Google Blogger/Blogspot new line conversion

Google blogger/blogspot provides an option to let users decide whether hard-returns in the post are converted to <br/>

Set it by clicking:
    Your blog admin page –> Settings -> Formatting -> Convert line breaks

Originally, I set it to "yes". Latter I decided to manually insert <br/> instead of using automatical hard-return conversion. So I set the option to "no". As a result, my previous posts were messed up because different lines were concatenated into a single line.

I used vim to convert those posts to new format.

Append <br/> to each line
    %s/$/<br\/>/g

Sometimes, you don't want to append new lines to block-level elements such as div, ol.
Use following vim commands:

    %s/\(<\/div>\s*\)\@<!$/<br\/>/g 
    %s/\(<\/ul>\s*\)\@<!$/<br\/>/g 
    %s/\(<\/ol>\s*\)\@<!$/<br\/>/g 
    %s/\(<\/dl>\s*\)\@<!$/<br\/>/g
    ......

Vim regular expression: http://vimdoc.sourceforge.net/htmldoc/pattern.html#pattern-overview

Another option is to write a script to download posts, adjust returns/newlines, and publish them.