読者です 読者をやめる 読者になる 読者になる

Fight the Future

何かを始めたら、半分成功したのと同じ

Project Lambdaの変更差分をまとめてみる

pg

関ジャバでさくらばさんにProject Lambdaの最新情報について話していただけました。 僕も以前調べていました。 Java SE 8に導入されるのは、ほんとにクロージャ!? - Fight the Future http://jyukutyo.hatenablog.com/entry/20111121/1321891230 この頃か…

jQuery Mobile 1.0 + jQuery 1.7.1だとIE6-9すべてでスクリプトエラーが発生する(解決編)

pg

jQuery Mobile 1.0 + jQuery 1.7.1だとIE6-9すべてでスクリプトエラーが発生する http://d.hatena.ne.jp/jyukutyo/20120111/1326373079ということがあったのですが。 RC2の段階でこういうバグがあったようです。#2965: JQuery Mobile 1.0RC2 is currently in…

jQuery Mobile 1.0 + jQuery 1.7.1だとIE6-9すべてでスクリプトエラーが発生する

pg

IE爆発しる「フォーカスをコントロールに移動できません」というエラーが発生する。 解決方法を調査中。

Java SE 8に導入されるのは、ほんとにクロージャ!?

pg

Javaプログラマが悩むラムダとクロージャと匿名関数と - Fight the Future じゅくのblog http://d.hatena.ne.jp/jyukutyo/20111117/1321587651 の続き。 セットアップ ラムダ式の使えるJava SE 8のアーリービルドは、ここからダウンロードできます。 Java Pl…

Javaプログラマが悩むラムダとクロージャと匿名関数と

pg

僕は、Javaでプログラミングを始めて8年以上になります。 ここ数年、RubyやScalaを少しずつ学んでいます。 やっと、さっとWebアプリケーションを作るのに、 Ruby(Sinatra)で作れるようになってきました。 Ruby、Scalaと進んでいくと、 Javaになかった概念が…

大事なことだから2回言うけど、ソースコードのコメントは書けばいいものじゃない

pg

僕は他人のソースコードを批評するほど、すごいプログラマでも何でもない、 ただの初級プログラマだけど、これだけは言える。 ソースコードに、こういうコメントは一切必要ない。絶対必要ない。 public void connectToAndQueryDatabase(String username, Str…

eclipseのEmacs+に追加する設定

pg

Delete Previous Ctrl + H Editing Text Open Search Dialog をUnbind Commandする。 Ctrl + H, *系のコマンドをすべてUnbind Commandする。 Maximize Active View or EditorをCtrl + MからCtrl + Shift + Mに変更する(Ctrl + Mの改行が効くようになる)

eclipseのWTPでPublishingせずにHot Reloadingさせる

pg

参考にさせていただいたサイト WTPで毎回ワーキングフォルダをPublishingしにいってほしくない設定 - yummy-yummy http://d.hatena.ne.jp/uriyuri/20080328/1206694040 Serversに設定してあるTomcatの設定を変更 Over viewタブ設定 Server OptionsのServer m…

MyBatis Generatorで出力するクラスをカスタマイズする

pg

Generator - mybatis - An introduction to the code generation tool for MyBatis - SQL Mapping Framework for Java - Google Project Hosting http://code.google.com/p/mybatis/wiki/Generator MyBatis(旧iBatis)には、ジェネレータがあって、DBのスキー…

発行したSQLのログを取るp6spyを設定し、ログのフォーマットを設定する

pg

p6spyのバージョンは1.3。 Mavenで設定する場合は、次のとおり。 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>1.3</version> </dependency> 1.3ではロガーにバグがあるらしく、フォーマットやカテゴリを指定しても、その設定でログ出力されない。 なので、ロガーを作成する。 import java.text.DecimalFormat; imp…

JSF 2.0で、ファイルアップロードのコンポーネントを作成し、SpringのMultipartFileオブジェクトとして扱う

pg

参考にさせていただいたサイト The BalusC Code: Uploading files with JSF 2.0 and Servlet 3.0 http://balusc.blogspot.com/2009/12/uploading-files-with-jsf-20-and-servlet.html JSFにはファイルアップロードコンポーネントがないらしい。 CommonsのFil…

Mavenで本番用と開発用の設定ファイルを分ける

pg

pom.xmlでプロファイルを定義する。 <profile> <id> prod </id> <build> <plugins> <plugin> <groupid> org.apache.maven.plugins </groupid> <artifactid> maven-war-plugin </artifactid> <configuration> <webresources> <resource> <directory> src/production/webapp </directory> </resource> <resource> <directory> src/main/web…</directory></resource></webresources></configuration></plugin></plugins></build></profile>

Commons4E updatesite

pg

Commons4E updatesite http://commons4e.berlios.de/updatesite31/

Mavenで動作させたJettyにEclipseからデバッグする

pg

Debugging with the Maven Jetty Plugin inside Eclipse - Jetty - Codehaus http://docs.codehaus.org/display/JETTY/Debugging+with+the+Maven+Jetty+Plugin+inside+Eclipse

JavaScriptで半角英数全角英数変換

pg

参考にさせていただいたサイト JavaScriptで全角英数と半角英数の相互変換 - Rewish@hatena http://d.hatena.ne.jp/Rewish/20100427/1272296260 // 半角にしたい str.replace(/[A-Za-z0-9]/g, function(s) { return String.fromCharCode(s.charCodeAt(…

Rubyで暗号化ZipするときはZip/Ruby

pg

Zip/Ruby - Ruby bindings for libzip. http://zipruby.rubyforge.org/ $ gem install zipruby -p http://プロキシ:ポート

jQueryの無名関数の組み立て方

pg

ときどきわからなくなる。こちらのサイトが丁寧に説明してくださってます。jQueryの無名関数の組み立て方 ≪ kwLog http://blog.makotokw.com/2010/02/17/jquery%E3%81%AE%E7%84%A1%E5%90%8D%E9%96%A2%E6%95%B0%E3%81%AE%E7%B5%84%E3%81%BF%E7%AB%8B%E3%81%A6…

jQueryでBlink

pg

参考にさせていただいたサイト jQuery Blink Plugin | www.antiyes.com http://www.antiyes.com/jquery-blink-plugin (function($){ $.fn.blink = function(options){ var defaults = { delay: 500 }; var options = $.extend(defaults, options); return th…

サクラエディタでnative2ascii

pg

サクラエディタ用 native2ascii マクロ(管理人日記) - むぅもぉ.jp http://muumoo.jp/news/2006/06/05/0sakuranative2ascii.html

Jetty 7を組み込みで動作させる

pg

参考にさせていただいたサイト Jetty/Tutorial/Embedding Jetty - Eclipsepedia http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty main()からJettyを起動 - ねこだいすき http://d.hatena.ne.jp/tubureteru/20100829/p1 pom.xmlには、 <dependency> <groupId>org.eclipse.</groupid></dependency>…

MavenでJetty 7を設定する

pg

Jetty 7からeclipseのプロジェクトになったので、細かい設定がJetty 6までと異なってる。 http://mvnrepository.com/artifact/org.mortbay.jetty/jetty-maven-plugin <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.26</version> </plugin> eclipseのプロジェクトとなったバージョ…

Jetty 7で動作するHudsonのような実行可能なWARを作成する(Gradleも使う)

pg

参考にさせていただいたサイト Executable WARs with Jetty ≪ EclipseSource Blog http://eclipsesource.com/blogs/2009/10/02/executable-wars-with-jetty/ これをGradleで実行するコードがGitHubで配布されてる。 https://github.com/xlson/standalone-war…

jQueryでローカルのJSONファイルを読み込む

pg

参考にさせていただいたサイト ローカルファイルの読み込み - awacio.log http://d.hatena.ne.jp/awacio/20100220/1266625934 jQuery.get()でOK。 $.get("config.json", function(data){ var hoge = $.parseJSON(data); }); $.getJSON("config.json", functi…

Javaで「Access restriction」と出たときの対処

pg

Description Resource Path Location Type Access restriction: The method xxx from the type xxx is not accessible due to restriction on required library xxx\Java\lib\rt.jar xxx.java /xxx line xxx Java Problem と出たとき。参考にさせていただい…

Maven2,3でのプロキシ設定

pg

C:\Documents and Settings\ユーザ名\.m2 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <proxies> <proxy> <active>true</active> </proxy></proxies></settings>

Javaで1文字ずつ文字種を判定する

pg

UnicodeBlock.of('あ') == UnicodeBlock.HIRAGANA またはUnicode表の範囲で判定してもいい。

MyBatisでカラム名から「_」を取ったプロパティとオートマッピングする

pg

MyBatis(旧iBatis)はカラム名とJavaBeansのプロパティをオートマッピングするけど、「_」がつくとマッピングできない。拡張ポイントもないので手軽には対応できないけど、次のようにすればいちおうできる。 ResultSerHandlerの実装クラスを継承した独自のク…

Tomcat 6.0でJSFのManagedBeanのBigDecimalがデフォルト0になる仕様

pg

リクエストパラメータに含まれていない時でも、BigDecimalがnullではなく0になってしまう。0にならないようにするには、「-Dorg.apache.el.parser.COERCE_TO_ZERO=false」でTomcatを起動する。バグではなくTomcatの仕様のようだ。http://tomcat.apache.org/t…

Javascriptでbit.lyを使った短縮URLを取得する

pg

bit.lyでサインアップし、APIキーを取得しておく。jQueryプラグイン「jq-shorten」を使用する。 jQueryとこのshoten.jsを使用する。 以下のようなスクリプトを記述する。 $("a").shorten({login: 'xxx', apikey: 'R_xxxxxxxxxxxxxxxxxxxxxxxx'}); これで短縮…

Twitterへのtweetボタンを実装する

pg

「http://twitter.com/home?status=xxx」のxxx部分がtweetのテキストボックスにセットされるので、画像リンクなどのURLに設定しておくだけ。xxxはURLエンコーディングする必要がある。 <a id="tweet" href="http://twitter.com/home?status=" + encodeURI('テスト http://example.com')" target="_blank"></a>

スクリプトでユーザーのブックマークを登録する(IE、Firefoxのみ)

pg

IEはwindow.external.AddFavorite()、Firefoxはwindow.sidebar.addPanel()を呼び出す。 function addBookmark(title,url) { if (window.sidebar) { window.sidebar.addPanel(title, url, ""); } else if(document.all) { window.external.AddFavorite(url, t…

画像のタイトルをかぶせる

pg

<div id="test"> <img src="test.jpeg"> <span>説明</span> </div> #test span { background-color:#111111; border-left:1px solid #999999; border-top:1px solid #999999; bottom:0; color:#FFFFFF; font-size:120%; font-style:normal; left:0; margin-bottom:1px; opacity:0.7; padding:5px; position:absolute;…

SubversionからチェックアウトしてSCPでWARファイルをデプロイする

pg

#!/bin/sh mkdir ~/xxx svn checkout --username xxxxx --password xxx http://subversion/svn/something/trunk/xxx ~/xxx cd ~/xxx mvn clean package scp ~/xxx/target/xxx.war xxxxx@xxx.xxx.xxx.xxx:/usr/share/tomcat6/webapps/

Google AnalyticsのデータをJavaで取得する

pg

// Service Object to work with the Google Analytics Data Export API. AnalyticsService analyticsService = new AnalyticsService("gaExportAPI_acctSample_v2.0"); // ClientLogin Authorization. analyticsService.setUserCredentials(userName, passw…

iPad/iPhoneのSafariにおけるiFrameの扱い

pg

どうやら、iPadのmobile Safariでは、iFrameを2本指スクロールさせることができないらしい。もちろん、Appleだからスクロールバーも出せない。

IEのみにCSSを適用するCSSハック(ただのバッドノウハウ)

body { /* applied only IE6 */ _line-height:130%; /* applied IE6 and IE7 */ >line-height:130%; /* applied only IE8 */ line-height /*\**/: 130%\9; } 有名なスターハックのほか、「>」でのハック、IE8では「/*\**/」と「\9」を使う。「\9」がないとWe…

iPadなどのmobile safariでは、labelタグのfor属性で指定したチェックボックスにチェックできない

pg

ので、labelにclickイベントをバインドする。こちらのblogで、きれいに作って公開してくれてます。 $(‘label’).each(function(i, l){ l = $(l); l.bind(‘click’, function(){ var t = $(‘input[id=' + l.attr('for') + ']‘); t.checked = t.checked ? false …

QuartzはWARに含んだJARファイルとコンテナのlibディレクトリにあるJARファイルのバージョン違いでClassNotFoundExceptionが発生

pg

java.lang.ClassNotFoundException: org.quartz.JobDetailQuartzでスケジューリングしようとしたんだけど、上記例外が発生した。もちろん、libディレクトリにQuartzのJARはあるから、ライブラリのバージョンを上げてみたりしたんだけど、例外が発生したまま…

FancyBox 1.3.1でiframeを使うと、Firefoxだけ2回同一リクエストが送られる

pg

ふと見つけてしまった。既知のバグのようで、「fancybox request twice」でググると見事にヒット。 fancybox makes multiple request on iframe is used ? - fancybox | Google Groups 現行バージョンの1.3.1で発生しているので、次のバージョンがリリースさ…

Apacheのmod_rewriteでトップページへのアクセスをリダイレクトする

pg

httpd.confに記述する。 <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^/$ /xxx.html RewriteRule ^/zzz.html$ /index.html </IfModule>

Pleskで管理しているサーバーのhttpd.confを書き換える

pg

普通にhttpd.confを書き換えても有効にならない。/etc/httpd/conf.d/zzxxx_xxx_httpd.confみたいなファイルに次のような記述がある。 Include /var/www/vhosts/xxx/conf/httpd.includeなので、このファイルを書き換える。

HTMLでチェックボックスやラジオボタンのラベル

pg

<input type="checkbox" id="test"/><label for="test">TEST</label> label要素のfor属性にチェックボックスのIDを指定する。

jQueryでチェックボックスにイベントを登録する

pg

$("input:checkbox").change(function() { var isChecked = $(this).attr("checked"); }); 「input:checkbox」がすべてのチェックボックスを取得するセレクタ。

MySQLでは256バイト以上のVARCHARはTEXTになる

pg

タイトルまま。

MySQLで大きなBLOBを扱うときはmax_allowed_packetを設定する

pg

my.cnf [mysqld] max_allowed_packet=16MMySQLを再起動する。 mysql> show variables like 'max_allowed_packet'; +--------------------+----------+ | Variable_name | Value | +--------------------+----------+ | max_allowed_packet | 16777216 | +---…

Servlet(Spring MVC) + JSP + jQueryでTwitterライクなmoreボタンを実装する

ひとまず初期表示する。DAOでは10件など固定の件数を取得する。このサンプルでは、IDの順番に表示していく。 @RequestMapping(method = { RequestMethod.GET }) public ModelAndView index(@RequestParam(defaultValue = "0") Long Id) { // limit 10などのS…

JavaScript(jQuery)で指定した要素だけを印刷する

pg

Ask Ben: Print Part Of A Web Page With jQueryを参考にしました。上記サイトで公開されてるコード。 //Create a jquery plugin that prints the given element. jQuery.fn.print = function(){ // NOTE: We are trimming the jQuery collection down to th…

JavaScript(jQuery)でオーバーレイした画面を表示する

pg

画面にレイヤーをかぶせて子画面を表示するような、よくある作りを実装する。jQueryを使うけど、プラグインとしてFancyBoxを使うと楽にできた。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="http://www.google.com/jsapi"></script> <script> google.load("jquery", "1.4.2"); </script> </meta></head></html>

iBatisのSQLをログ出力する

pg

log4j.xmlをつぎのようにする。 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> </layout></appender></log4j:configuration>

iBatisでの動的SQL

pg

こんな感じ。 <select id="selectWithoutBLOBs" resultMap="ibatorgenerated_BaseResultMap" parameterClass="xxx.Xxx" > select id, xxx, xxx from xxx <dynamic prepend="where"> <isNotNull prepend="and" property="xxx"> xxx = #xxx:INTEGER# </isNotNull> <isNotNull prepend="and" property="xxx"> xxx = #xxx:INTEGER# </isnotnull></dynamic></select>