ã¾ã£ãããªCent OS 4.6ã§RubyããFlash Lite 1.1ãçæããã¾ã§ã®ã¡ã¢
ãããããããã¨å¤ãã¦å¿ããããªã®ã§ã¡ã¢ã
Check Installãå ¥ãã
RPMãä½ã£ã¦ã¤ã³ã¹ãã¼ã«ãã¦ããã¦ãããã¨ããã¨ãã¨åé¤ãæ´æ°ã楽ãã³ã§ãã
wget http://www.asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz tar zxvf checkinstall-1.6.2.tar.gz cd checkinstall-1.6.2 ./configure make && sudo make install
Check Installã§Check Installãå ¥ããªãã
Check Installèªèº«ãRPMããå ¥ããªããã¾ãã
sudo /usr/local/sbin/checkinstall sudo rpm -ivh /usr/src/redhat/RPMS/x86_64/checkinstall-1.6.2-1.x86_64.rpm
Rubyãå ¥ãã
sudo yum install gcc zlib-devel openssl-devel sqlite-devel wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gz tar zxvf ruby-1.8.7-p249.tar.gz cd ruby-1.8.7-p249 ./configure make sudo /usr/local/sbin/checkinstall >> Ruby 1.8.7-p249 sudo rpm -ivh /usr/src/redhat/RPMS/x86_64/ruby-1.8.7-p249-1.x86_64.rpm
Rubygemsãå ¥ãã
wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz tar zxvf rubygems-1.3.5.tgz cd rubygems-1.3.5 sudo ruby setup.rb
Swf millãå ¥ãã
0.2.12ãå ¥ããå ´åãKlabãããå½ã¦ã¦ããã¨ã³ã³ã¼ãã£ã³ã°ããããå½ã¦ã¦å©ç¨ããã£ã½ããã§ãããã©ãããææ°ã®0.3ã«ã¯åãè¾¼ã¾ãã¦ãããããã§ãããã¨ãmuraoka17ããã®ç»åé¢ä¿ã®ããããåãè¾¼ã¾ãã¦ãã模æ§ãã£ã¦ãã¨ã§0.3.0ãå ¥ãã¦ã¿ã¾ããã
sudo yum install libxslt-devel freetype-devel libpng libpng-devel libgcrypt libgcrypt-devel libxml libxml-devel wget http://swfmill.org/releases/swfmill-0.3.0.tar.gz tar zxvf swfmill-0.3.0.tar.gz cd swfmill-0.3.0 ./configure make sudo /usr/local/sbin/checkinstall >> Swf mill 0.3.0 sudo rpm -ivh /usr/src/redhat/RPMS/x86_64/swfmill-0.3.0-1.x86_64.rpm
ImageMagickãããã
wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/ImageMagick-6.5.6-10.tar.gz tar zxvf ImageMagick-6.5.6-10.tar.gz cd ImageMagick-6.5.6-10 ./configure make sudo /usr/local/sbin/checkinstall >> Image Magick 6.5.6-10 sudo rpm -ivh /usr/src/redhat/RPMS/x86_64/ImageMagick-6.5.6-10-1.x86_64.rpm
RMagickãããã
sudo gem install rmagick --no-ri --no-rdoc
swfmill_ruby
githubããå ¥ããã®ã«gitãå¿ è¦ã§ãããcentosããã©ã«ãã®ãªãã¸ããªã«ã¯ãªãã®ã§ãこちらのリポジトリã追å ãã¾ããã
sudo yum install git
ä»åº¦ããã¨æã£ããswfmill_rubyã«gemspecããªãããã¤ã³ã¹ãã¼ã«ã§ãããforkãã¦gemspecæ¸ãã¦ã¿ããã§ããããã¸ã§ã¯ãã®ç®¡çç»é¢ã«RubyGemsã®ãã§ãã¯ããã¯ã¹ããªãï¼
ãããããªãã®ã§ãã¼ã«ã«ã§ãã«ããã¦å
¥ãã¾ãã
git clone http://github.com/koumiya/swfmill_ruby.git cd swfmill_ruby gem build swfmill_ruby.gemspec # libxmlãå¿ è¦ã§ãã sudo gem install swfmill_ruby-0.1.gem libxml-ruby
ã¨ããã©ããæãåºãæ¸ããªã®ã§éããªãã¨ããããããï¼shã®è£å®ãªã©ã§ãã¾ããã£ã¦ãã ããã
Ubuntuã«Flareã¨Tokyo Cabinetå°å ¥
çæä¸ã®ã¢ãã¤ã«ã¢ããªã§ãã¦ã¼ã¶ã¼ç»åã®ãã£ãã·ã¥ãå®ç¾ããããã«è²ã ã¨KVSãæ¤è¨ä¸ã§ããå¿ è¦ãªè¦ä»¶ã¨ãã¦ã¯ã
- Memcacheäºæã®ãããã³ã«ã使ãã(mod_libmemcached_cacheãã使ããã)
- æå¹æéãè¨å®ã§ãã
- æ°¸ç¶åã§ãã
- ãªãã¹ãé«é
ãªãã¨ãTokyo Tyrant(Tokyo Cabinet)ã社å ã§ã®å°å ¥å®ç¸¾ãããæååè£ã ã£ããã§ããããªãã¨Memcaheäºæãããã³ã«ã ã¨æå¹æéãæ±ããªãï¼ã¨ãããã¨ã§ãgreeããã§æä¾ããã¦ããFlareã試ãã¦ã¿ã¾ãã
ã¤ã³ã¹ãã¼ã«
åºæ¬ããã¥ã¼ããªã¢ã«ã«å¾ãã°OKã
http://labs.gree.jp/Top/OpenSource/Flare/Document/Installation.html
å¿ è¦ãªã©ã¤ãã©ãªå°å ¥
Tokyo Cabinetããbzlib.h(libbz2-dev)ããFlareããboostãå¿ è¦ã§ããboostã¯C++ã®ä¾¿å©ã©ã¤ãã©ãªã ããã§ãã
sudo apt-get install libbz2-dev 'libboost.*-dev' 'libboost.*1.34.1'
Tokyo Cabinetã¤ã³ã¹ãã¼ã«
æ°¸ç¶åã¹ãã¬ã¼ã¸ã¨ãã¦ãTokyo Cabinetãã¤ã³ã¹ãã¼ã«ãã¾ãã
wget http://1978th.net/tokyocabinet/tokyocabinet-1.4.39.tar.gz tar zxvf tokyocabinet-1.4.39.tar.gz cd tokyocabinet-1.4.39/ ./configure --prefix=/usr/local/tokyocabinet make && sudo make install
Flareã¤ã³ã¹ãã¼ã«
wget http://labs.gree.jp/data/source/flare-1.0.9.tgz tar zxvf flare-1.0.9.tgz cd flare-1.0.9/ ./configure --with-tokyocabinet=/usr/local/tokyocabinet --prefix=/usr/local/flare make && sudo make install
ä»æ¥ã¯ã¨ããããããã¾ã§ã
ã·ã§ã«ã§é層ãã¨ç¹å®ã®ãã¡ã¤ã«ãã³ãã¼
/usr/local/ aaa/ ccc.log ddd.txt bbb/ ccc.log ãããããããeee.txt
ããccc.logã ããæãåºãããï¼ã¤ã¾ãããããªæãã«ãããã
~/logs/ aaa/ ccc.log ããã bbb/ ccc.log
ãããªã¨ãç¨ã®èªåãªãã®è§£ãå¿ããªãããã«ã¡ã¢ã
mkdir ~/logs cd /usr/local for d in `ls -p | grep /`; do mkdir ~/logs/$d cp $dccc.log ~/logs/$d done
"ls -p | grep /"ã§ãã£ã¬ã¯ããªã ãæ½åºã§ããã®ã§ããã¨ã¯æ¯ãã£ã¬ã¯ããªãã¨ã«ä½æã¨ã³ãã¼ãç¹°ãè¿ãããã£ã¨ã·ã³ãã«ãªããæ¹ãªãããªãã
ã·ã³ã°ã«ãã³ãã¿ã¼ã³ãã¯ãã¼ã¸ã£ã§å®è£ ããã¨ãªã¼ãã¼ãããã¯æ¸ãã®ã
Life is beautiful: Python Hack : 噛めば噛むほどおいしくなるクロージャの話ã«ã¦ãã¯ãã¼ã¸ã£ã使ã£ã¦ã¹ã³ã¼ãã®å°ããªã·ã³ã°ã«ãã³ãã¿ã¼ã³ãå®è£ ãã話ãæ¸ããã¦ãã¾ããã
ãif not _config:ãã¨ããæ¡ä»¶åå²ãæ¯åæ¯åå®è¡ããªããã°ãªããªããã¨ãä¸ã¤ä¸ã¤ã¯å°ããªè©±ã§ããä½ç¾åãä½ååãå¼ã¶å¿ è¦ãããå ´åããã®ãªã¼ãã¼ãããã馬鹿ã«ãªããªãï¼äººéã ã£ããããã«æ°ãã¤ãã¦ãã§ãã¯ãè¾ããããããã°ã©ã ã®å ´åã¯ç´ ç´ã«ä½åº¦ã§ããã§ãã¯ãã¦ãã¾ãããï¼
http://satoshi.blogs.com/life/2009/11/python-hack.html
ã¨ããããã«ãé常ã·ã³ã°ã«ãã³ãã¿ã¼ã³ãå®è£ ããã¨ãã¯ãã¤ã³ã¹ã¿ã³ã¹ããã¼ãæ¸ã¿ãã©ãããæ¯åãã§ãã¯ããå¿ è¦ãããã¾ãã
ç´ç²ã«ã©ã®ããããªã¼ãã¼ããããããã®ãæ°ã«ãªã£ãã®ã¨ãæ®æ®µãã®ãããªå®è£ ããã¦ãã¦ç¡é§ã ããªãâ¦ã¨æã£ã¦ããã®ã§ãå®éã«è¨æ¸¬ãã¦ã¿ã¾ãããã¨ããããæ軽ã«ã¯ãã¼ã¸ã£ã使ããã¨ããã¨ããã§Javascriptã§å®è£ ãã¦ãã¾ãã
ãã¼ãæ¸ã¿ããã§ãã¯ãã¿ã¼ã³
var Singleton = { get:function(){ if(!this.instance) this.instance = {}; return this.instance; } } var start = new Date(); for(var i = 0; i < 1000000; i++) { Singleton.get(); } alert(new Date() - start);
ã¯ãã¼ã¸ã£ã使ã£ããã¿ã¼ã³
var Singleton = { get:function(){ var instance = {}; this.get = function() { return instance; } return this.get(); } } var start = new Date(); for(var i = 0; i < 1000000; i++) { Singleton.get(); } alert(new Date() - start);
è¨æ¸¬çµæ
ããããï¼ï¼ï¼ä¸åã®è©¦è¡ãï¼åè¡ããã®å¹³åå¤ãåãã¾ããããã®çµæã¯â¦ã
ãã¼ãæ¸ã¿ããã§ãã¯ãã¿ã¼ã³ | 1746 msec |
ã¯ãã¼ã¸ã£ã使ã£ããã¿ã¼ã³ | 1669 msec |
ã¨ãããã¨ã§ããã®å·®77msecããããã§ã¯ããã¾ãããã¯ãã¼ã¸ã£ã使ã£ãã»ããæ©ããã¨ã¯ããããã«ã«ãªããªãç¨åº¦ã§ã¯ãªãã§ãããã¾ããnullãã§ãã¯ãªãã¦ãããªãããã¨ä¸å®å¿(ç®ãã¤ã¶ããªãã»ã©ã®å·®ããã£ããæç ã®æ¸ãç´ãããç ãçºç ããã¨ããã ã£ãï¼) ã¨ããããã"Javascriptã§ã¯"ã
éã«ãã¯ãã¼ã¸ã£ã使ã£ãã»ããé ããªãã¨ãããã¨ã¯ãªãã®ã§ããã¼ãæ¸ã¿ã®ã¤ã³ã¹ã¿ã³ã¹ãé è½ã§ããååªç§ã¨ãããã¨ã«ãªãã¾ããããããã£ããããã
ã·ã«ãã¼ã¦ã£ã¼ã¯ã«ããããã¨
- ããã°ãæ¸ãï¼éä¸ã¾ã§æ¸ããè¨äºãï¼æ¬ããã®ã«å ¬éã§ãã¦ãªãããªãªã¼ã¹ããã
- èªæ¸ï¼è²·ã£ãã¯ãããå¦çã®ã¨ãã¨éã£ã¦ç¤¾ä¼äººã«ãªãã¨æéãæéãªã®ãã²ãã²ãã¨æããããã¾ã£ã¦ããããã«ã¦ã§ã¢ãã»ãã¥ãªãã£ãã¹ã±ã¼ãªã³ã°é¢ä¿ã®æ¬ãæ¶åãããã
- ãªã¢å çãªãªã«ãï½èªåã§è¨ã£ã¦ã¦ãã¿ãããªãããä»ã®ã¨ãå人ã¨Ikeaããå£ç¯ã¯ããã®æµ·ã¸ã
- æ ç»ãè¦ãããµãã¼ã¦ã©ã¼ãºè¦ã¦ãããã£ã¦ãªããã
- éçºå宿ï¼éçºä¸ã®æèæ´çãã¼ã«ãå ¬éâ¦ã¾ã§æã£ã¦ããããï¼
- é±æ«ã«ã¢ã¤ãã£ã¢ãç·´ãä¸ããé±éãã¤ãããæ¯é±æ«ãããã¨æãã¤ã¤ã§ãã¦ãªãâ¦ããã¼ãã¯é¢å¿ã®ãããã¨ãªãã§ãããããåºãã¦âæ´çãã¦âæè¯ãããã¨ããã¯ã»ãé ã®ä¸ã«ã¤ããã
åã«ãã®æ¬ã§èªãã ã

ã²ã¨ã¤ä¸ã®ã¢ã¤ãã£ã¢ã
- ä½è : çæ¨æº
- åºç社/ã¡ã¼ã«ã¼: ã¤ã³ãã¬ã¹
- çºå£²æ¥: 2005/11/02
- ã¡ãã£ã¢: åè¡æ¬
- è³¼å ¥: 9人 ã¯ãªãã¯: 63å
- ãã®ååãå«ãããã° (54件) ãè¦ã
éã³ããï¼ãã©ãåæã©ã¹ãã¹ãã¼ããããããæºåæéã§ãããã®ã§æå¹æ´»ç¨ããããã¨ããããä»äºããã£ã¡ãçµãããã¦æ°æã¡ããä¼ã¿ã«å ¥ããã¨ã第ä¸ã®èª²é¡ã ãªã
O/R Mapperãã¬ã¼ã ã¯ã¼ã¯ã«æ±ãããã®ã¡ã¢
ãµã ããã£ã¨ç¤¾ä¼äººåããã¸ã§ã¯ãã®ãªãªã¼ã¹ãè¦ãã¦ãããä¹ ã ã®Javaæ¡ä»¶ã§ä½åº¦ãRubyã«æ»ããããªã£ããã©åã¯å æ°ã§ãã
ãã ããã ãã¯ã©ããã¦ãçç£æ§ã®é¢ã§ä¸ããªãé¨åããã£ãããããO/R MapperãiBatisã使ã£ã¦ãã®ã ããã©ãä»ã¾ã§ä½åº¦ã使ã£ã¦ããActiveRecord/S2JDBCã«æ¯ã¹ãã¨ã¦ãã§ã ãã
éã«ãiBatisã®ã»ããMaster/Slaveã®ãµãã¼ããªã©ã¹ã±ã¼ã©ããªãã£ã®ãµãã¼ãã¯æåãã£ããããã®ã ãã©ã
ä»å¾ãO/R Mapperãé¸ã¶åºæºã¿ãããªãã®ãæµ®ãã³ããã£ã¦ããã®ã§å¿ããªããã¡ã«ã¡ã¢ã
ã¹ã±ã¼ã©ããªãã£ã確ä¿ããããã®ã¢ããªã³
Master/Slaveããã¼ãã«åå²ã®ãµãã¼ããªã©ã
çµåã®æ¦ç¥ã¨ãã¦Joinã«ãããfkæ½åºâInã§åãåãã
ãªã©è¨å®ã§ãããç´ æµã
å°ãªãè¨å®
ã¢ããã¼ã·ã§ã³ã§è¨å®/é©åãªããã©ã«ãã
Lazy Loading
S2JDBCããã¯æèçã«ããããã¦ããæ©è½ã ãã©ã
âçµåããã«ããããã£ã¨åããã®ãä½ã£ã¦
âããã©ã¼ãã³ã¹ã®åé¡ãããã°Eagerã«ç½®ãæã
ã£ã¦ãµã¤ã¯ã«ã§éçºã§ããã®ã§æ¬²ããã
Hibernateã®ããã«Entityã¸ã®åçãããã·ã§å®è£
ããããã®ã¯é«ã³ã¹ããªã®ã§ãé¢é£ããã©ãã³ã¼ã
ãçæãã¦ãããã»ãããããããããã
ããã£ã¦ã¨ãã«SQLãããã
ãã®ã¸ãã¯S2JDBCã®å¤åºãSQLãç´ æµã
éã«HQLããJPQLããããããããªããã®ã¯NGã
Entityã¨ãã£ããã«ã¡ã¿æ å ±ãæä¾
ãã¬ã¼ã ã¯ã¼ã¯ã¨ããããã¸ã§ãã¬ã¼ã¿ã®æ©è½ã«ãªããã©ã
S2JDBCã®ã¸ã§ãã¬ã¼ã¿ã使ãã¨ãã£ã¼ã«ãå
ã®ã¡ã¿æ
å ±ãEntityNamesã¨ããã¯ã©ã¹ã¨ãã¦æä¾ãã¦ãããã
ãã®ã¡ã¿æ
å ±ãããããã¨æ´»ç¨ã§ãããã
ä¾ãã°è¤æ°ã®ç¤¾å¡ãã社å¡åã ãæ½åºãããå ´å
Entities.extract(employees, EmployeeNames.name);
ã¿ããã«ã¿ã¤ãã»ã¼ãã«æ¸ããã
ãããã£ã¦æ¸ãåºãã¿ãã¨ã俺ã¯ããªãS2JDBC好ããªã®ãåããw
LazyLoadingã¨ã¹ã±ã¼ãªã³ã°ããµãã¼ããã¦ããããã¨ããããè¨ããã¨ãªããªãã
[Java]Javaã§ãã¹ãç¨WEBãµã¼ãã¼ãæ軽ã«ç«ã¦ãæ¹æ³
WEB APIã®ã¯ã©ã¤ã¢ã³ãããã°ã©ã ãçµãã§ããã¨ããªã¯ã¨ã¹ã対ãã¦é©å½ãªå¤ãè¿ãã¦ãããã¢ãã¯ãµã¼ãã¼ã欲ãããªãã¾ããRubyã ã¨Webrickを使ってç°¡åã«ãµã¼ãã¼ãç«ã¦ããããã§ãããJavaã§ããããâ¦ã
ããJettyã§ã§ãããï¼
Jettyã¨ããã°ãGAE/Jã®ãã©ã°ã¤ã³ãªã©ã§çµã¿è¾¼ã¿ãµã¼ãã¼ã¨ãã¦ä½¿ããã¦ããã注ç®ã®Pure Java軽éãµã¼ãã¼ã§ããããã¤ã使ãã¾ãã
ãªã«ã¯ã¨ãããã³ã¼ãä¾ã
JUnit4ã®ãã¹ãã±ã¼ã¹ããå©ç¨ããä¾ã§ãã
public class TestCase { private static Server server; @BeforeClass public static void prepareServer() throws Exception { server = new Server(3000); server.addHandler(new AbstractHandler() { @Override public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) throws IOException, ServletException { response.setContentType("text/html"); response.setStatus(HttpServletResponse.SC_OK); response.getWriter().write("aaa"); HttpConnection.getCurrentConnection().getRequest().setHandled(true); } }); server.start(); } @AfterClass public static void closeServer() throws Exception { server.stop(); server.destroy(); } }
è¶ ç°¡åï¼ï¼
ããã ãã§3000çªã§ãªã¯ã¨ã¹ããå¾
ã¡åã"aaa"ã¨ããæååãè¿ããµã¼ãã¼ãåºæ¥ä¸ãã£ã¦ãã¾ãã¾ããã
handleã¡ã½ããã®å¼æ°targetã«ãªã¯ã¨ã¹ãããããã¹ãå
¥ã£ã¦ããã®ã§ãããã«åããã¦çµæãå¤ãããªãã¦ãã¨ãåºæ¥ã¾ããã
Jettyã®å°å ¥æ¹æ³
æå¾ã«Jettyã®å°å ¥æ¹æ³ããã¨ãã£ã¦ã説æãããã¨ãªããããç°¡åã§ãã
1.Jettyのページããã©ã¤ãã©ãªãè½ã¨ãã¦ãããä»åã¯ãjetty-6.1.19.zipã使ãã¾ããã
2.1ã解åãããã©ã«ã/libä¸ã®3ã¤ã®jarãã¡ã¤ã«ã«ã¯ã©ã¹ãã¹ãéãã
以ä¸ã§ããç°¡åããã¾ããã
H2ã¨çµã¿åããã¦ãã¼ã¿ãã«ãªWEBã¢ããªãä½ã£ã¡ãã£ããã¨ããããã使ãéããããã§ãããJettyç´ æµã§ãã