Saturday, March 22, 2008

Mirro the Wikipedia at your local

sudo apt-get update
sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql phpmyadmin
mkdir ~/wiki/
cd ~/wiki/
wget http://download.wikimedia.org/mediawiki/1.10/mediawiki-1.10.0.tar.gz
sudo mkdir /var/www/w/
sudo tar xzf mediawiki-1.10.0.tar.gz -C /var/www/
cd /var/www/mediawiki-1.10.0/
sudo chmod a+x config

$ mysql
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD(’new-password’) WHERE user=’root’;
mysql> FLUSH PRIVILEGES;

add user 'wikiuser' and database 'wikidb' and set privileges

wget http://download.wikimedia.org/enwiki/20070402/enwiki-20070402-pages-articles.xml.bz2
bunzip2 -k enwiki-20070402-pages-articles.xml.bz2
wget http://modzer0.cs.uaf.edu/~dev2c/mwimport.sh (OR http://freizl.googlepages.com/mwimport.sh)
chmod +x mwimport.sh

increase Default_Allowed_Packet for MySQL in MySQL configurate file
cat enwiki-20070402-pages-articles.xml | ./mwimport.sh | mysql -f -uwikiuser -ppassword wikidb

refreshLinks: php mediawiki/maintenance/refresheLinks.php (Not sure if it is necessary.)


Detail Infor.

Thursday, March 20, 2008

Static Field/Method, Initialization Block Cont. (Java Disassemble)

Disassembles class files:
javap -c BaseObject

Static Field/Method, Initialization Block Cont. (Java Disassemble)

Disassembles class files:
javap -c BaseObject

Wednesday, March 19, 2008

Static Field/Method, Initialization Block Cont. (After compile)

package com.foo;

import java.io.PrintStream;
import org.apache.commons.lang.builder.ReflectionToStringBuilder;

public class BaseObject
{

private static long second = 0L;
private String name;

public BaseObject()
{
name = "";
System.out.println("I am class block initialization.");
second++;
System.out.println("I am constructor.");
}

public BaseObject(String name)
{
this.name = "";
System.out.println("I am class block initialization.");
this.name = name;
second++;
}

public String getName()
{
return name;
}

public void setName(String name)
{
this.name = name;
}

public static long getSecond()
{
return second;
}

public static void setSecond(long second)
{
second = second;
}

public String toString()
{
return ReflectionToStringBuilder.toString(this);
}

public static void main(String args[])
{
System.out.println(getSecond());
BaseObject bo1 = new BaseObject("First One");
BaseObject bo2 = new BaseObject("Seconde One");
BaseObject bo3 = new BaseObject("Third One");
System.out.println((new StringBuilder()).append(bo1).append("__").append(getSecond()).toString());
System.out.println((new StringBuilder()).append(bo2).append("__").append(getSecond()).toString());
System.out.println((new StringBuilder()).append(bo3).append("__").append(getSecond()).toString());
}

static
{
System.out.println("I am static block initialization.");
}
}

Static Field/Method, Initialization Block (Java)

package com.foo;
import org.apache.commons.lang.builder.ReflectionToStringBuilder; public class BaseObject { /** a static field; all object of this class share this variable. */ private static long second = 0; private String name = ""; { System.out.println("I am class block initialization."); } static { System.out.println("I am static block initialization."); } public BaseObject() { super(); second++; System.out.println("I am constructor."); } public BaseObject(String name) { super(); this.name = name; second++; } public String getName() { return name; } public void setName(String name) { this.name = name; } public static long getSecond() { return second; } public static void setSecond(long second) { BaseObject.second = second; } @Override public String toString() { // jakarta lang toString utility return ReflectionToStringBuilder.toString(this); } public static void main(String[] args) { System.out.println(BaseObject.getSecond()); BaseObject bo1 = new BaseObject("First One"); BaseObject bo2 = new BaseObject("Seconde One"); BaseObject bo3 = new BaseObject("Third One"); System.out.println(bo1 + "__" + BaseObject.getSecond()); System.out.println(bo2 + "__" + BaseObject.getSecond()); System.out.println(bo3 + "__" + BaseObject.getSecond()); } // expected result: /* I am static block initialization. 0 I am class block initialization. I am class block initialization. I am class block initialization. com.foo.BaseObject@19821f[name=First One]__3 com.foo.BaseObject@190d11[name=Seconde One]__3 com.foo.BaseObject@a90653[name=Third One]__3 */ }

Vim commands

-----------------------------------------------------------------------------------------------
" could be in startup setting
:ab MAA multiAccountAlert # define a abbreviations
:map <F7> :w!<CR> # define a shortcut

-----------------------------------------------------------------------------------------------
" useful tips
<C-V> then select "column(s)" with motion commands (win32 <C-Q>)
<C-R><C-W> : pull word under the cursor into a command line or search; i.e: <ESA> -> / -> then this command
<C-R><C-A> : pull WORD under the cursor into a command line or search

:n1,n2 d # delete content between line n1 and n2
:n1,n2 co n3 #copy content between line n1 and n2 under line n3
:n1,n2 move n3 # move content

-----------------------------------------------------------------------------------------------
recording macro in VIM