昨今のプログラム自動生成ツールについてです。
先日、ジェネクサスジャパン様のプレゼンを拝聴しました。
ジェネクサスジャパン様は、プログラム自動生成ツールを取り扱っており、
GeneXusというツールを使い、管理画面で各種設定をすることにより、
各種プログラムが自動生成されます。
対応しているプログラムは、Web,Windowsアプリ、iPhone,iPad向けアプリ、Android向けアプリと多様
最近はここまで来ているか。と感心したものですが、過去さかのぼってみると
昔からこの手の話題はありました。
いま改めて調べてみても、いくつかありましたので要約
※検証はしてません。
○blanco Framework
Excelから自動生成してくれる、オープンソースのツール
○MDFrame
別途XUpperという上流ツールが必要かもしれませんが、
同じく、ソースを自動生成してくれます。
○GeneXus
アジャイル向きという事でした。1つの設定でマルチプラットフォームへの
対応が可能なところには驚き。
ウルグアイで開発されているそうなので世界的な動きにも対応していそうです。
一方、基本機能で対応できない事をやろうとすると、専用の言語習得が必要。
※とはいえ、Excelライクな関数などだったのでさほど苦でもないかも。
○Wagby
Java用。Struts, Spring, Hibernateの構成で動作するソースを自動生成
社長様がGeneXusとの比較記事を書いていました。
その他、色々沢山ありました。が、時間の都合上省略します。
開発、運用をしている立場からの観点で気になった事としては、
「継続的に改修・改良に耐えうる仕組みであるか?」という事です。
継続的インテグレーションってやつですね。
作るのは1回でも、改修改良は、システムが使われる限り永続です。
私個人的には初期の開発より、改修改良に重きを置いて作り込みたいと思ってます。
今回丁度いいきっかけを頂いたので、今後、色々と使ってみたいと思います。
2014年3月17日月曜日
記事のラベルを整理する意味と勘所(私見)
日々何となく書いている記事なので、ラベルも何となくつけてます。
ようやく、100記事も間近となってきたので、記事を整理してみました。
○可能であれば、その上位の概念レベルの項目名もつける
派生として、ラベルで絞った時に、タイトルで記事にたどり着けるようにすること。
【整理して思ったこと】
意味なしラベル
○Microsoft,開発言語,データベース -> 広すぎて役に立たない
○.netとvb.net -> 混在でいいので.netへ統合 (vb.netに限らない記事も多いし)
※私の記事における意味なしです。念のため
逆に、あっていいなと思ったもの
○ツールや、言語、製品名を特定するもの(EclipseとかOracleとか
○言語名
きちんと設定して、使いやすくしておきたいと感じました。
ようやく、100記事も間近となってきたので、記事を整理してみました。
【結論】
○ラベルには、製品名、言語名など、ピンポイントの項目名をつける。○可能であれば、その上位の概念レベルの項目名もつける
派生として、ラベルで絞った時に、タイトルで記事にたどり着けるようにすること。
【整理して思ったこと】
意味なしラベル
○Microsoft,開発言語,データベース -> 広すぎて役に立たない
○.netとvb.net -> 混在でいいので.netへ統合 (vb.netに限らない記事も多いし)
※私の記事における意味なしです。念のため
○ツールや、言語、製品名を特定するもの(EclipseとかOracleとか
○言語名
きちんと設定して、使いやすくしておきたいと感じました。
2014年3月14日金曜日
GreaseMonkeyを活用する (初級編)
今までは、提供されていたものを使うだけだったのですが、
JavaScript,jQuery周りの知識がついてきたのと、Webの仕事が増えてきたので、
GreaseMonkeyを使って、自分でスクリプトを書いてみる事にしました。
GreaseMonkeyも覚えられて、jQueryも使う事ができるようになって、
仕事も効率化。と、いいことづくめになりそうです。
インストールなどの説明は省き、使っているケースの紹介です。
毎度入れるのが手間だったりするので、大助かり。
jQueryで値をセットしているだけですね。簡単です。
大事なのは、@requireを入れるところ。
jQuery対応していないサイトだったのですが、以下1文を入れるだけで
jQuery対応となります。CSSを読むには同じ要領で、@resourceを指定します
フィルタのボタンを入れる。(alertはダミーです
JavaScript,jQuery周りの知識がついてきたのと、Webの仕事が増えてきたので、
GreaseMonkeyを使って、自分でスクリプトを書いてみる事にしました。
GreaseMonkeyも覚えられて、jQueryも使う事ができるようになって、
仕事も効率化。と、いいことづくめになりそうです。
インストールなどの説明は省き、使っているケースの紹介です。
ケース1 :ログイン画面で、自動的にIDとパスを表示する
システム開発におけるテストとか、運用保守とかに使えそうです。毎度入れるのが手間だったりするので、大助かり。
// ==UserScript==
// @name IDを自動セットする処理
// @namespace domain.com
// @description 任意の文字
// @include 対象のurl
// @version 2
// ==/UserScript==
$("#txtloginID").val('loginid');
$("#txtfPASSWORD").val('password');
jQueryで値をセットしているだけですね。簡単です。
ケース2:ボタン機能を追加することで機能拡張
// ==UserScript==
// @name フィルタ機能の実装
// @namespace domain.com
// @description 任意の文字
// @include 対象のurl
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js
// @resource jQueryUICSS https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css
// @version 2
// ==/UserScript==
大事なのは、@requireを入れるところ。
jQuery対応していないサイトだったのですが、以下1文を入れるだけで
jQuery対応となります。CSSを読むには同じ要領で、@resourceを指定します
フィルタのボタンを入れる。(alertはダミーです
$(document).ready(function(){
$('input[name=RE]').after('<input type="button" name="filter" value="フィルタ" onclick="alert('');">');
});
ケース3:カスタムCSS
var cssValue = ".custBtn{color:blue;background-color:lightgreen;margin:0 2px 0 2px;}";
var style = document.createElement('style');
style.textContent = cssValue;
document.getElementsByTagName('head')[0].appendChild(style);
あとは通常のjavasscript(jquery)で何とでもなりそうです。
ラベル:
Javascript,
ツール
2014年3月13日木曜日
TeraTermでの複数ホスト接続をバッチ一発で実行
Linux機の運用を行っていると、複数端末に対してまとめて作業を
実施したいケースが出てきます。
仕組みを予め作り込んでおくことにより、使う時にはバッチ一発起動で
複数のホスト接続ができるようになります。
今回は接続までですが、改良する事によりそれ以降の処理も可能です。

実施したいケースが出てきます。
仕組みを予め作り込んでおくことにより、使う時にはバッチ一発起動で
複数のホスト接続ができるようになります。
今回は接続までですが、改良する事によりそれ以降の処理も可能です。
構成イメージ

概略
- URLリストを作る
- バッチでURLリストを読み込み、TTPMacroを繰り返しで呼び出し
- TTPMacroで、URLを受け取り、ユーザとパスワード等を使って組み立てて、接続
実行するバッチの記載例
#TTPMacro.exeが存在するパスを指定
SET MACROEXEPATH=c:\Program Files (x86)\teraterm
#TTPMacro.exeを指定(固定
SET MACROEXE=ttpmacro.exe
#マクロが存在するパスを指定します。(フルパス必須)
SET MACROPATH=%~dp0\loginall.ttl
#ディレクトリを移動
cd /d %MACROEXEPATH%
#urllist.txtを読み込んで、引数としてTTPMacro.exeを起動
for /F %%i in ( %~dp0\urllist.txt ) do start %MACROEXE% %MACROPATH% %%i
#元の位置に戻る
cd %dp~0
pause
実行するマクロの記載例
;パラメータ受け取り
HOSTADDR = param2
;ユーザー名とパスワードの定義(パラメータで受け取っても良いかも)
USERNAME = 'remoteuser'
PASSWORD = 'remotepassword'
;接続文字列の組み立て
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
;接続
connect COMMAND
;応答を待機
wait 'remoteuser@'
;マクロ終了
end
jquery 1行tips (入門編
自分用メモです。
select要素の値を設定する
$("select[name='selectname']").val(値);
イベントのバインド
$("#button").bind("click", function() {/*実行処理*/;});
要素の列挙(each)
$("select[name='selectname'] option").each(function()
{
alert($(this).val());
});
select要素の指定値を削除
$("select[name='selectname'] option[value=1]").remove();
配列の中を検索して結果を返す
var arr = [ 4, "Pete", 8, "Pete", "John" ];
if (jQuery.inArray("Johnnn", arr)
{
alter('not Found');
}
要素のコピー
$("#BackupArea").append($("select[name='MARKETCD']").clone(true););
要素のコピー(応用)
$("input[name='buttonname']").after('<div id="customBackupArea" style="display:none"></div>');
var backupElm = $("select[name='MARKETCD']").clone(true);
backupElm.attr('name','MARKETCD_BAK');
$("#customBackupArea").append(backupElm);
ラジオボタンの選択
$("input[name='name']").val(['0']);
ラジオボタンで選択されているものを取得
$("input[name='name']:checked").val();
ラベル:
Javascript,
jQuery
2014年3月7日金曜日
Windowsでコマンドを利用してネットワークドライブの割り当て
自分用備忘録。
画面からやるとエラーとなってしまうのでコマンドを使う事にしました。
'172.31.5.26' のユーザー名を入力してください:
172.31.5.26 のパスワードを入力してください:
サンプル上のネットワーク共有名は適宜書き換えてください。
管理者だと参照領域が違うようです。
画面からやるとエラーとなってしまうのでコマンドを使う事にしました。
構文
net use [ドライブ] [共有フォルダ名] [パスワード] [ユーザー名]Example
net use z: \\172.31.5.26\Repository password /user:domain\username
net use z: \\172.31.5.26\Repository password /user:username
net use z: \\172.31.5.26\Repository
ユーザー名とパスワードを聞かれるので、入力'172.31.5.26' のユーザー名を入力してください:
172.31.5.26 のパスワードを入力してください:
サンプル上のネットワーク共有名は適宜書き換えてください。
追伸
Windows8.1でいくらやってもきちんとつながらないな・・・と思っていたら、使っているコマンドプロンプトが管理者でした。管理者だと参照領域が違うようです。
2014年3月6日木曜日
ドメイン移管の簡単な方法(onamae.com)
ドメイン移管とは、ドメインの管理者を変更する手続きです。
時と場合により呼び方は様々ですが、
ドメインという商品の性質上、簡単にはできないようになってます。
特に、gTLDドメインなどでは、認証手続き(AuthCode)が必要で、
相手先とのやり取りが何度か発生し、それにより時間もかかります。
今回、お名前.comで提供している機能(方式)により、
簡単にドメイン移管ができましたので手順を残しておきます。
対象のドメインを、新しいお名前.comのIDへ移動
2) 新しいお名前.comのIDでログインし、同じく「お名前ID付け替え」機能を
利用して、対象のドメインを、移管先のお名前.comのIdへ移動
ざっくりいうと、ダミーのIDを作り、それを経由して移動する。という事です。
手順がお名前.comのサイトにありましたので公式。費用も掛かりません。
http://www.onamae.com/guide/details.php?g=27
・お名前ID/パスワードを移管元にお互い通知できない場合
http://help.onamae.com/app/answers/detail/a_id/8139
今後ドメイン移管の際には、管理しているレジストラがお名前.comかを聞くようにしようと思いました。
時と場合により呼び方は様々ですが、
ドメインという商品の性質上、簡単にはできないようになってます。
特に、gTLDドメインなどでは、認証手続き(AuthCode)が必要で、
相手先とのやり取りが何度か発生し、それにより時間もかかります。
今回、お名前.comで提供している機能(方式)により、
簡単にドメイン移管ができましたので手順を残しておきます。
前提
移管元、移管先の双方が、お名前.comを利用している必要があります。手順
1) 移動元のお名前.com管理画面より、「お名前ID付け替え」機能を利用して対象のドメインを、新しいお名前.comのIDへ移動
2) 新しいお名前.comのIDでログインし、同じく「お名前ID付け替え」機能を
利用して、対象のドメインを、移管先のお名前.comのIdへ移動
ざっくりいうと、ダミーのIDを作り、それを経由して移動する。という事です。
手順がお名前.comのサイトにありましたので公式。費用も掛かりません。
公式情報
・お名前ID付け替えhttp://www.onamae.com/guide/details.php?g=27
・お名前ID/パスワードを移管元にお互い通知できない場合
http://help.onamae.com/app/answers/detail/a_id/8139
今後ドメイン移管の際には、管理しているレジストラがお名前.comかを聞くようにしようと思いました。
2014年3月5日水曜日
管理者モードでのコマンドプロンプトの挙動に対する注意点
コマンドプロンプトを使っていると、
「この操作を実行するのに十分な特権がありません」
と出る事があります。
これは、WindowsVista以降で組み込まれたWindowsのユーザー・アカウント制御(UAC)による挙動で、
「Windowsにとって」特別な操作の場合、利用者への注意喚起を行う仕組みです。
本題ですが、これではまりました。
通常モードで実行できるコマンドを、管理者のコマンドプロンプトで
実行すると、通常の動作と異なる。
言い換えると、管理者特権が必要なアプリケーションにしか反映されません。
以下、net useコマンドで表示される結果
出てくる行数が違います。
管理者モードで net use ドライブ パス とやって、ネットワークドライブを作成しても、
エクスプローラ上には出てきませんでした。
当然、通常のモードのコマンドでも出てきません。
設定をかけてもうまくいかず、コマンドの構文なのか環境なのかと疑ってかかり、
たどり着いたのがこれという結果・・・
これからは必要な時にのみ使うようにします。
「この操作を実行するのに十分な特権がありません」
と出る事があります。
これは、WindowsVista以降で組み込まれたWindowsのユーザー・アカウント制御(UAC)による挙動で、
「Windowsにとって」特別な操作の場合、利用者への注意喚起を行う仕組みです。
本題ですが、これではまりました。
通常モードで実行できるコマンドを、管理者のコマンドプロンプトで
実行すると、通常の動作と異なる。
言い換えると、管理者特権が必要なアプリケーションにしか反映されません。
以下、net useコマンドで表示される結果
通常の権限で実行
ステータス ローカル名 リモート名 ネットワーク名
------------------------------------------------------------------------------
利用不可 M: \\192.168.1.201\music Microsoft Windows Network
K P: \\srv\Project Microsoft Windows Network
K Q: \\srv\common$ Microsoft Windows Network
K Z: \\srv\Repository
Microsoft Windows Network
------------------------------------------------------------------------------
管理者権限で実行
ステータス ローカル名 リモート名 ネットワーク名
------------------------------------------------------------------------------
K Z: \\srv\Repository
------------------------------------------------------------------------------
出てくる行数が違います。
管理者モードで net use ドライブ パス とやって、ネットワークドライブを作成しても、
エクスプローラ上には出てきませんでした。
当然、通常のモードのコマンドでも出てきません。
設定をかけてもうまくいかず、コマンドの構文なのか環境なのかと疑ってかかり、
たどり着いたのがこれという結果・・・
まとめ
日常的に管理者のコマンドプロンプトを使っていたのですが、これからは必要な時にのみ使うようにします。
2014年3月4日火曜日
【雑記】おつりが少なくなるように支払うことの意義
IT関連の記事ではありませんが、改めて考えさせられたのでまとめてみました。
長文になってしまったので結論から。
! お店ではつり銭にも経費かかります。できる限り協力したほうがみんな幸せ !
※決して、私がお店を経営しているとか、そういうわけではありません。
というわけで、本文
スーパーや飲食店、雑貨店のレジでよく「**が不足しています」というポップ(貼紙)を見ることがあります。
そのときには「ふ~ん」としか思っていなかったのですが、
先日、顔なじみの店で小銭で支払った時に「ありがとうございます。助かります」と言われ、ふと気づきました。
★銀行での両替には手数料が発生する
そういえば、数年前(ネットでさかのぼって記事を探すと10年前にはそうなっていた)に
そんなニュースを聞いたような覚えがあります。
それをふと思い出したのです。
銀行により手数料は無料の範囲などはまちまちのようですが、
ある一定の量を超えると累進的に手数料があがっていく。
それも、枚数により変わる。
気になってどうしようもなくなったので試算
※クリックして拡大
赤字で記している部分がきついところです。
枚数的にたくさん出ていく部分も利益に影響する部分だと思うのですが、
それよりも、10,000円で缶コーヒー、1,000円で缶コーヒー あたりの売上比がすごいです。
1,000円だと売上の2.8% , 10,000円だと売上の4.6%にものぼります。
消費税(5%)なみなので、日々数パーセントを意識して商売をなさっている方には辛い数字ですね。
とはいっても、お釣りをもらわない生活は実質的に不可能ですし、実現しようとしたら途方もないことになります。
おつり要らずといえば、クレジットカード(CMでもやってますね)
ただ、あれも加盟店手数料(3~6%と言われている)が取られるので結果変わらず、
Suica決済は2~4%とのこと。多少安いかな。
squareなどのモバイル決済だと、3.25%~
並べて比べてみるとなんてことないじゃんって話なのですが、
とはいえ、お店からしたら経費です。1円でも少ないに越したことはありません。
聖人君子のようにお店のことを考えるのは難しいとしても、
ちょっとした配慮でそのお店に貢献できるかな。と感じました。
ラベル:
雑記
2014年3月3日月曜日
EmEditorを持ち運ぶ(Portable化)
タイトルの通りです。
1) メニューバーより、
「ツール」→
「インポートとエクスポート」→
「USBドライブなどのリムーバブルドライブをセットアップしてすべての設定をINIファイルにエクスポートする」を選択
2) エクスポート先ディレクトリを選択
これだけで、持ち運び可能となります。
http://jp.emeditor.com/text-editor-features/versatility/portability-options/
インストーラからでもできるようですね。
1) メニューバーより、
「ツール」→
「インポートとエクスポート」→
「USBドライブなどのリムーバブルドライブをセットアップしてすべての設定をINIファイルにエクスポートする」を選択
2) エクスポート先ディレクトリを選択
これだけで、持ち運び可能となります。
http://jp.emeditor.com/text-editor-features/versatility/portability-options/
インストーラからでもできるようですね。
登録:
投稿 (Atom)
