T/Oなんですが。FTLのお話。
こんなハッシュがあったとして
[java]
<#assign hoge = [
{
"title":"fuga",
"id":"piyo"
}
] />
[/java]
ずらーっとね。で、特定要素にアクセスするときは、こんな感じで書けるっぽい。
[java]
<#list foo.hoge as bar>
<#if bar.id == "piyo">
ぴよぴよ
#if>
#list>
[/java]
みたいな。
2013年5月23日木曜日
2013年5月15日水曜日
ドキュメントについてのリンク集
書きかけ
ウォーターフォール
- 即活用!業務システムの開発ドキュメント標準化
- http://thinkit.co.jp/free/project/4/1/1.html
- グラス片手にアジャイル開発 第4回 - ハイブリッドアジャイルの実践法
- http://codezine.jp/article/detail/5498
アジャイル
- ドキュメントを効果的に利用する
- http://it.impressbm.co.jp/e/2010/08/20/2665
2013年4月20日土曜日
EclipseがWorkbenchのロード中で止まっちゃうとき
環境は
間違って電プチしちゃったときとか、バッテリー切れて落ちたとか、Eclipseが突然死するとかで、
不意に落ちるとworkspace選択->workbenchのロードで止まっちゃうことが多いです。
その時用のまとめ。
このへんのログを見る。解決の糸口があるはず。
こんな感じのログの場合
ワークスペースをリフレッシュせよとあるので、一旦
を試してみる。ケースにもよるけどこれで割りと復活する。
こいつらが居たら消す
だいたいこれで治る。
http://www.andr0o0id.com/?p=854
- MacOS X Lion
- Eclipse 3.7 (英語版/JavaEE)
- Java 6
間違って電プチしちゃったときとか、バッテリー切れて落ちたとか、Eclipseが突然死するとかで、
不意に落ちるとworkspace選択->workbenchのロードで止まっちゃうことが多いです。
その時用のまとめ。
やること1.ログを見よう
このへんのログを見る。解決の糸口があるはず。
workspace/.metadata/.log
やること2.cleanで立ち上げよう
こんな感じのログの場合
!ENTRY org.eclipse.core.resources 2 10035 2013-04-20 02:00:14.017
!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
ワークスペースをリフレッシュせよとあるので、一旦
./eclipse -clean
を試してみる。ケースにもよるけどこれで割りと復活する。
やること3.snap的なファイルを消してみる
こいつらが居たら消す
.metadata/.plugins/org.eclipse.core.resources/.snap
.metadata/.plugins/org.eclipse.core.resources/.projects/*/.*.snap
だいたいこれで治る。
とても参考になりました
http://www.andr0o0id.com/?p=854
2013年4月18日木曜日
シェルスクリプトで添付ファイル付メール送信
例によって、備忘録。CentOS 5系にて
※ わかりにくい箇所を書き直した 2015.10.13
uuencodeが入ってなければInstall
$ sudo yum install sharutils
mailコマンドでメールが送信できる前提での、
動作サンプル:本文+添付ファイル
$ (echo "mail_body"; uuencode file_path file_name) | mail -s 'mail_title' mail_address
見にくいので、ちょっと補足すると、
mail_body : 本文
file_path : 添付するファイルのpath
file_name : 添付ファイル名
mail_title : メールの件名
mail_address : 宛先メールアドレス(to)
ちなみに、日本語とか文字化けするので、
mailコマンドに渡す前に、nkf -j をパイプで通すとよい。
※ わかりにくい箇所を書き直した 2015.10.13
uuencodeが入ってなければInstall
$ sudo yum install sharutils
mailコマンドでメールが送信できる前提での、
動作サンプル:本文+添付ファイル
$ (echo "mail_body"; uuencode file_path file_name) | mail -s 'mail_title' mail_address
見にくいので、ちょっと補足すると、
mail_body : 本文
file_path : 添付するファイルのpath
file_name : 添付ファイル名
mail_title : メールの件名
mail_address : 宛先メールアドレス(to)
ちなみに、日本語とか文字化けするので、
mailコマンドに渡す前に、nkf -j をパイプで通すとよい。
2013年4月16日火曜日
シェルスクリプトで自身のフルパスを取得
T/Oです。
いっつも忘れるので。
[bash]
#!/bin/sh
hoge=$(cd `dirname $0`; pwd)/`basename $0`
echo $hoge
[/bash]
こんな感じで。
いっつも忘れるので。
[bash]
#!/bin/sh
hoge=$(cd `dirname $0`; pwd)/`basename $0`
echo $hoge
[/bash]
こんな感じで。
2013年4月7日日曜日
スタンドアローンで動作する祝日判定スクリプト
タイトルどおりなんですが、仕事で必要なので作ってみました。(ついでに社内のレポートもあったので)。
でも、最近仕事が忙しくて、悲しいかな業務時間に作業してないので、せっかくなのでブログにも置いときます。
社内のレポートは業務時間を使ってもいいことになっているので、有難い制度なんですけどねー。
日本の祝日を判定したい
スタンドアローンということで、何らかの元データをローカルに保持しないといかんわけで、今回はGoogle カレンダーのAPIを利用しました。
詳細は、Google Calendar API v2 Atom Referenceを。
[python]
#!/usr/bin/env python
from xml.dom.minidom import parse
import sys
import re
def get_parse(fileName):
try:
obj = parse(fileName)
except IOError:
obj = 0
return obj
def get_arg2(arg2):
pattern = re.compile("^\d{4}-\d{2}-\d{2}$")
matched = pattern.search(arg2)
if matched:
argDate = arg2
else:
argDate = 0
return argDate
def main():
fileName=sys.argv[1]
obj = get_parse(fileName)
if obj == 0:
print "file not found"
return 1
argDate = get_arg2(sys.argv[2])
if argDate == 0:
print "argument is unjust. ex)2013-01-01"
return 1
obj_list = obj.getElementsByTagName("gd:when")
for i in obj_list:
if argDate == i.getAttribute("startTime"):
return 0
print "unmatch holiday"
return 2
if __name__=='__main__':
sys.exit(main())
[/python]
[bash]
shase$ ./holidayCheck.py japanHoriday.xml 2013-10-15
unmatch holiday
shase$ ./holidayCheck.py japanHoriday.xml 2013-05-05
shase$ echo $?
0
[/bash]
でも、最近仕事が忙しくて、悲しいかな業務時間に作業してないので、せっかくなのでブログにも置いときます。
社内のレポートは業務時間を使ってもいいことになっているので、有難い制度なんですけどねー。
やりたいこと
日本の祝日を判定したい
1.元データ
スタンドアローンということで、何らかの元データをローカルに保持しないといかんわけで、今回はGoogle カレンダーのAPIを利用しました。
今回利用したXMLリクエスト
http://www.google.com/calendar/feeds/outid3el0qkcrsuf89fltf7a4qbacgt9@import.calendar.google.com/public/full-noattendees?start-min=2013-01-01&start-max=2013-12-31
リクエストパラメータの意味
詳細は、Google Calendar API v2 Atom Referenceを。
outid3el0qkcrsuf89fltf7a4qbacgt9@import.calendar.google.com | 比較的信頼度が高いとされる、mozillaプロジェクトの祝日一覧(mozzila Calendar Project) | |
full-noattendees | full版からgg:whoを抜いたもの(今回は不要なので) | |
start-min=2013-01-01 | 期間の始まり | |
start-max=2014-01-31 | 期間の終わり |
2.実際のコード
[python]
#!/usr/bin/env python
from xml.dom.minidom import parse
import sys
import re
def get_parse(fileName):
try:
obj = parse(fileName)
except IOError:
obj = 0
return obj
def get_arg2(arg2):
pattern = re.compile("^\d{4}-\d{2}-\d{2}$")
matched = pattern.search(arg2)
if matched:
argDate = arg2
else:
argDate = 0
return argDate
def main():
fileName=sys.argv[1]
obj = get_parse(fileName)
if obj == 0:
print "file not found"
return 1
argDate = get_arg2(sys.argv[2])
if argDate == 0:
print "argument is unjust. ex)2013-01-01"
return 1
obj_list = obj.getElementsByTagName("gd:when")
for i in obj_list:
if argDate == i.getAttribute("startTime"):
return 0
print "unmatch holiday"
return 2
if __name__=='__main__':
sys.exit(main())
[/python]
3.ざっくり仕様
- 第一引数に元xmlのファイルパス
- 第二引数に確認したい日付をyyyy-MM-ddにて渡す
- 祝日であれば、0、祝日でない場合は2、その他のエラーは1を返す
4.動作イメージ
[bash]
shase$ ./holidayCheck.py japanHoriday.xml 2013-10-15
unmatch holiday
shase$ ./holidayCheck.py japanHoriday.xml 2013-05-05
shase$ echo $?
0
[/bash]
2013年3月26日火曜日
Linuxでのhostsの反映
前に、macでのhostsの変更の反映メモを書いたけど、Linuxでも似たような話があるので、メモ代わりに。
Linuxはリゾルバキャッシュがありましぇーん、とかよく(古い)記事とかであったりしますが、最近のディストロだとだいたい、nscdっていうネームサービスキャッシュデーモンたんが動いており、時々、hostsやらpasswdやらの変更が反映されないみたいな悪さをしてくれやがります。(LDAP関連のトラブルでもよくでてくるんじゃないかな?)
余談だけど、最近のFreeBSDでも動いてるらしい(余談おわり)。
詳細は「man nscd」してもらえればいいんですが、とりあえずhostsのキャッシュをクリアしたいとき(nscdの再起動:nscd restartでもいけるけど)。
とかすればおk
Linuxはリゾルバキャッシュがありましぇーん、とかよく(古い)記事とかであったりしますが、最近のディストロだとだいたい、nscdっていうネームサービスキャッシュデーモンたんが動いており、時々、hostsやらpasswdやらの変更が反映されないみたいな悪さをしてくれやがります。(LDAP関連のトラブルでもよくでてくるんじゃないかな?)
余談だけど、最近のFreeBSDでも動いてるらしい(余談おわり)。
詳細は「man nscd」してもらえればいいんですが、とりあえずhostsのキャッシュをクリアしたいとき(nscdの再起動:nscd restartでもいけるけど)。
/usr/sbin/nscd -i hosts
とかすればおk
登録:
投稿 (Atom)