2013年11月29日金曜日

Web技術者が知っておく必要があるガイドライン

Web制作者が必ず目を通しておく必要がある(と自分では思っている)ガイドラインです。

W3Cが勧告し、公開しており、日本語訳もあります。


ウェブコンテンツ・アクセシビリティ・ガイドライン (WCAG) 2.0
http://www.jsa.or.jp/stdz/instac/commitee-acc/W3C-WCAG/WCAG20/



日本では、「使いやすいウェブコンテンツのあり方を示したガイドライン」として
JISX8341として定められており、現在は2010年版が公開されています。

JIS X 8341-3:2010 解説
http://waic.jp/docs/jis2010/understanding.html


上記情報を踏まえ、富士通がわかりやすい形でまとめています。

富士通ウェブ・アクセシビリティ指針
http://jp.fujitsu.com/webaccessibility/

2013年11月26日火曜日

テキストファイルの行数をカウントする

パソコンで作業をしていると、ふと、テキストファイルの行数を
数える必要が出てくるタイミングがあります。

これが、忘れたころにやってくるので、都度「どうやってたかな」と
思い出しながらやるという悪循環。

で、残しておくことにしました。



コマンド

------------------------------------------
del count.file
for /F %i in (*.txt) do type "%i" | find /c /v "" >> count.file
ren count.file count.txt


解説

for で全てのファイルに対し、
type で、ファイル内容を標準出力し、
find /c /v で、読み取ったデータの行数をカウント


2013年11月25日月曜日

スマートフォン + アプリでカード決済できるサービス(square,paygate,PayPal Here)

スマートフォン + アプリでカード決済できるサービス (2013年11月版

気になったので調べてみると、いくつかありますね。

square


手数料が3.24% その場で領収書発行可能

https://squareup.com/jp

3.5mmのイヤホンジャックがインターフェース。


paygate


http://paygate.royalgate.co.jp/#mov

こちらはBluetooth通信
プリンタとの連動も容易


PayPal Here

あのPayPalのモバイル決済版
https://www.paypal.jp/here/



アプリをインストールしていればカード不要とか、それぞれ独自色を出してますね。
これからは格好いい決済が増えるかもしれません。


2013年11月22日金曜日

Android端末におけるRAMとROMの違い

パソコン知識をベースに見てしまうとおかしなことになってしまうのでまとめ。

PCの場合
ROM・・・READ ONLY MEMORY

一旦書き込んだら読みだす事しかできないデータの総称
例) CD-ROM とか


RAM・・・RANDAM ACCESS MEMORY

一般的に「メモリ」と言われるやつですね。
http://ja.wikipedia.org/wiki/Random_Access_Memory


Androidの場合

RAM・・・パソコンと同義
ROM・・・内蔵ストレージ


って、紛らわしい。なんでこうなってんでしょうかね。

PC上でAndroidを動かすエミュレーター[bluestacks]

特長

  • Android4.0(ICS)
  • 画面の回転も可
  • GooglePlayも可
http://www.bluestacks.com/index.html

さっそくインストールして使ってみようとしたら、アプリを起動すると
OSが強制的に再起動してしまい、使えませんでした。

ちなみに、[Windows8.1Pro](Win8からのUpgrade) + [デュアルディスプレイ環境]
色々とアプリも入っているので競合したのかな?と思いつつ、一旦放置

追記:

その後、アップデートをしたら動くようになったので
ひとまずホーム画面を自分用にするまでをやってみました。

インストール後の画面、しばらく時間がかかります


勝手にOSをアップしてくれるようです


立ち上がりました。ホーム画面のようです


設定は普通のAndroidのような感じです


GooglePlayを起動してみます。


自分のアカウントを入れて、ログイン


画面が開きました。いつもの見慣れた感じです


ホームアプリを自分がいつも使っているものにしてみようと思います。
検索して、インストール


ホームボタンを押したらホームアプリの選択が出たので、いつものを選択



ホームが変わりました。



ひとまず、自分環境ができたので、これから色々と試してみようと思います。


2013年11月20日水曜日

ASP.net MVCのとっかかり

ふと入ってきた情報によると、モデルファースト、エンティティファーストで
Webサイトが容易に作れるらしい。

ライトランゲージではできるフレームワークがあるのは知っていたけども
マイクロソフトが出してきたってのが興味深い。

業務システムを提供している立場である以上、Microsoft製品の選定は避けられない。



詳細な説明は、検索すれば主要なものが出てくるので割愛するけども、
MVCの設計思想とMS製品の使い方が分かれば、単純な画面くらいは
さらっとできそうな感触。

「30分で作る、マスタメンテナンス画面」なんてお題で社内プレゼンしてもよいかも。


正しく理解して実装に使用すれば、生産性アップは間違いない。
とはいえ、業務システムという性質を考えると、複雑な処理は保守性を
下げる可能性があるのでケースバイケースとなりそう。


まだ実業務で使うケースは出てきていないのですが、出てきたらまたまとめます。


とっかかりサイト
http://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_07/aspnetmvc3_07_01.html


以下、自分ブックマーク

-----------------------------------------------------------------
@IT
第1回 Mono×LinuxでASP.NET MVCを動かすまで (1/2)
http://www.atmarkit.co.jp/ait/articles/1303/15/news069.html

msdn

ASP.NET MVC3 の@ModelTypeについて
http://social.msdn.microsoft.com/Forums/ja-JP/9eb7eb05-4403-4bef-989a-e4e692cb1145/aspnet-mvc3-modeltype?forum=vbgeneralja


しばやん雑記

DisplayFor/EditorFor と DataType の不文律
http://shiba-yan.hatenablog.jp/entry/20110912/1315837010


2013年11月19日火曜日

ASP.netでブレイクポイントを置いても止まらない件

いくつかのプロジェクトを経験していくなかで、人により、または
開発環境により、ブレイクポイントを置いても動かない現象があったので
その時の対処の一つとして。

注:根本的な解決ではない気がするので、一時的な処置と捉えてください。


  1. プログラムをビルドして実行
  2. メニューより「ツール」⇒「プロセスにアタッチ」を選択して、起動しているサービスを選択
  3. 「アタッチ」を押す
これにより、デバッグが可能となります。


通常はおそらくVisualStudioがよきに計らってくれているはずなのだけども。。。

Console.WriteLineで出力コンソールへ出力されない場合の対処

Console.WriteLine(value)で、出力コンソールに値が出るのは周知ですが、
ASP.net (WebService)にて同様の処理を書いても出力されませんでした。
と思ったら、c#で出て、vb.netだと出ない?という違いかも。(未検証


この場合、

System.Diagnostics.Debug.WriteLine(value)

で出力されます。

2013年11月18日月曜日

【TOPICS】店員もバーコードもいらない“未来のレジ”、NECが参考出展

バーコードも店員も不要とのこと。

画像認識で認識率は90%以上

http://www.itmedia.co.jp/news/articles/1311/14/news050.html

実用化されるとシステム的な影響も相当あるな~と。


2013年11月15日金曜日

2013年11月14日木曜日

日本郵政の郵便番号データをまとめて使う方法

システム開発屋であれば、運用方法等踏まえた上で
最適な提案をするのが筋ですが、とりあえず簡単にやるときに
使えそうな手順を

1.日本郵政のサイトより、郵便番号データをダウンロード

http://www.post.japanpost.jp/zipcode/dl/kogaki.html

2.ダウンロードしたデータを展開して、同じフォルダに格納。

3.コマンドプロンプトを立ち上げて、上記フォルダへ移動後、以下コマンドを実行

 del list.csv
 dir /b *.csv > list.txt
 del result.csv
 ECHO "全国地方公共団体コード","旧郵便番号","郵便番号","都道府県名カナ","市区町村名カナ","町域名カナ","都道府県名","市区町村名","町域名","一町域複数郵便番号区分","小字毎番地起番区分","丁目有町域区分","郵便番号複数町域区分","更新表示","変更理由" > result.csv
 for /F %i in (list.txt) do copy result.csv + %i result.csv

 これで、result.csvというデータに、全国のデータが入りました。

 あとは、取り込んで使うなど、好きに加工

2013年11月13日水曜日

Raspberry Piを使ってできそうなこと

ネットで漁っているといろんな使い方がありそうですが、
自分がイメージしやすいかたちを幾つか。

アプローチ1:普通にLinuxの機能を乗っけて使う

  • Webサーバ
  • メディアサーバ
  • ファイルサーバ(容量と静音が課題か)

アプローチ2:ソフトウェアを作って、便利に使う

  • 各種サーバから自動的にログを収集して管理
  • NASと接続して統合ファイル管理のフロントエンドとして
  • 無線LANの通信速度を監視して遅くなったら勝手に再起動してくれる
  • DDNSクライアント
  • 不正アクセス監視

アプローチ3:多種多様なハードウェアとの組み合わせで、市販品と同等機能を構築

  • USB接続な案)
  • 電子工作込な案)
    • カメラモジュールつけて
      • ストリーミング配信
      • セキュリティ監視
    • GPSモジュールをつけて
      • 簡易GIS
      • 車載器
    • 温度湿度計をつけて
      • 定期監視かつアラーム

ここの領域は、費用対効果はともあれ市場にある製品と同じことができる気がしてます。

USB給電が可能なため、用途が相当広がりますね。

ExcelでASCII文字からASCIIコードを取得する(VBA関数)

文字列の先頭文字に対応する ASCIIまたはJISコードを返す
=CODE(文字列)

指定した数値をASCIIコードとみなして対応文字を返す
=CHAR(数値)

ClickOnceで必要となるデジタル証明書の有効期限を伸ばす

既定では、VisualStuduiの発行で利用される証明書の期限は1年のため
運用を続けていくとある日いきなり有効期限切れが発生するようなケースがあります。

有効期限が切れると、プログラムの再発行ができなくなってしまいますので
以下方法により、有効期限を伸ばします。

※私の環境では運用アプリケーションには影響がありませんでした。


※2016年9月15日に記事を更新しました

やりかた

  1. atmarkitから証明書更新のソースを取得
  2. プログラムを作成
  3. プログラムに引数を指定して実行
RenewCert.Exe 旧pfxのフルパス、新pdxのフルパス "CN=署名の情報をそのまま"

これで、5年に伸ばせました。
※リンクにある元ソース上で"5"と決め打ちしている所を可変にすれば、指定した年数で
 有効期限を更新することも可能となりそうです。

作成した証明書の確認方法

※利用しているブラウザおよびバージョンにより、下記方法ではNGかもしれません
  1. PFXファイルをダブルクリックしてインストール開始
  2. 【次へ】【次へ】で【完了】まで持っていく
  3. 「インストールしていいか?」と聞かれるので「OK」
  4. ブラウザを開き、「インターネットオプション」から「コンテンツ」タブを選択し、「証明書」ボタン
  5. 出てくるウインドウの中で、「個人」の所に、作成した証明書が出てくるので確認

証明書を作成した後

  1. VisualStudio管理配下のPFXファイルを上書き
  2. 証明書の設定画面で、再度同じファイルを選択

これで、運用中のアプリケーションに対する署名情報を変更せずに
有効期限のみを更新できます。



2013年11月11日月曜日

名刺サイズのLinux搭載可能パソコン(Raspberry Pi)

格安
http://jp.rs-online.com/web/generalDisplay.html?id=raspberrypi

色々と用途が広がるかもしれないのでしばらくウォッチ

Raspberry Piを使うための準備


  • 本体

これがないと始まらない。

  • SDカード

個人的には16GBくらい欲しい。Class10で。

  • 電源

MicroUSBに給電できるタイプのアダプタ
既存のものがあればそれでもいいかと思います。

  • キーボード

ネットワークでつながってしまえばターミナルでもなんとかなりそうですが
初期セットアップなど諸々の想定をすれば必要。

1)USBキーボード
2)USB BluetoothドングルでBluetoothキーボード

  • マウス

CUI前提なので考慮外。
GUI動かすならキーボードと同じ要領で。

  • LAN環境

私の使いたい用途だとローカルOnlyってのは考えづらいので
USBの無線LANドングルを用意

  • USBハブ

キーボードと無線LANでUSBポートが埋まってしまうのは悲しいので
余裕があればセルフパワーのUSBハブなどあると用途が広がります。
手持ちがあればバスパワーでもいいかもしれません。
一時の辛抱であれば、なくても良いですね。

  • HDMIケーブル

インストールの時にはあったほうがよいですね。RCAでもいいですが。
RCAで利用するのであれば音声出力用のミニジャックも。


これくらいあれば、ひとまずは物理的には足りそうです。

2013年11月8日金曜日

あなたの「欲しい情報」を見つけてくる[Gunosy]

アカウントを登録するだけで、「欲しい情報」を見つけてきてくれるサービス[Gunosy]

http://gunosy.com/



Twitterアカウントか、Facebookアカウント、メールアドレスで登録可能。

Androidアプリもありました。

どうやって探してきてくれるかは「自分自身の過去のポストやソーシャル上のアクティビティを分析対象」とのことで、詳細は企業秘密との事

アカウントを公開している人であれば、その人が何に興味を持っているかも見れる。

ホリエモンこと、堀江貴文さんのGunosyはこちら[http://gunosy.com/takapon_jp]

Web上で仮想環境でクロスブラウザの確認ができるサービス

Web上で、複数のブラウザによる動作検証ができるサービスです


無償で利用できそうなのでしばらく使ってみます。





【動作イメージ】


Webで仮想環境を利用できるほか、VMをダウンロードしてローカルでも実施可能

こちらも参照
http://www.modern.ie/ja

Microsoft提供です




2013年11月7日木曜日

無料でWebサイトができる?イスラエル発のwebサービス"wix"

Webからのドラッグアンドドロップ操作などで、Webサイトが出来てしまう模様

http://ja.wix.com/

まだ試していませんが、ざっくりいうとこんな感じの模様です

  1. デザインを選んで、簡単にWebサイトを作れる
  2. Webサイトのデザイン変更なども、画面上から直感的に操作可能
  3. アプリを追加することにより、ECサイトなど様々なWebサービスをノンプログラミングで構築できる
  4. 広告を取り除きたい時には有料会員へ移行することで可能



思っていることを体系的に整理するときの便利ツール(マインドマップ)

思ったことを直感的に整理する「マインドマップ」

ツールがWebサービスとして公開されています。

アカウント登録不要でも使用可能。登録すればデータの保存も可能です。
Googleアカウントとリンクすれば、GoogleDriveへの保存も可

【初期画面】

【新規作成画面】

【使用中イメージ】

2013年11月6日水曜日

リモートデスクトップ環境でWindows7(Vista)を再起動する

リモートデスクトップで仮想環境にあるWindows7(またはVista)へ接続した場合、
通常の操作方法では「シャットダウン」「再起動」は選択できないため
以下の方法で行う


  1. スタートメニューから「Windowsセキュリティ」を選択
  2. 画面右下にある電源ボタンを選択して「再起動」
意外と落とし穴でした。

2003Server,2008,2012は問題なく可能。

詳しくはこちら
http://www.atmarkit.co.jp/fwin2k/win2ktips/1355rstrdc/rstrdc.html

複数のリモートデスクトップ接続を簡単管理 - Remote Desktop Connection Manager

今まで記憶でやっていたので、こういったツールでリモートの接続先を一元管理できるのは便利。


MS製品です。

http://blogs.technet.com/b/stanabe/archive/2010/05/28/remote-desktop-connection-manager.aspx

2013年11月5日火曜日

Oracleのシャットダウン

記憶ではSQL/Plusから実行するもんだと思っていたのですが、
改めて調べてみると、ツールからの設定でいけるということが判明



  • [コンフィグレーションおよび移行ツール]→[Administration Assistant for Windows]→「Administration Assistant for Windows」を起動
  • 「データベース」の下に作成されているデータベースで右クリック。「起動/停止オプション」→「起動/停止構成」画面を表示
  • 「サービス停止時にインスタンスを停止」にチェックを入れて、「即時停止(Shutdown immediate)」

注:Oracle 10.2.0.5 他は未確認

MySQLでProcedureを使って動的表を返す

開始年月と終了年月を指定すると、表にして返してくれるサンプルです

コード


DROP PROCEDURE IF EXISTS procedureName;
DELIMITER ;;
CREATE DEFINER=root@localhost PROCEDURE `procedureName`(in `arg_ym_start` varchar(10),in `arg_ym_end` varchar(10))
  READS SQL DATA
BEGIN
  -- 年月の開始と終了を指定することにより、年月の表を返す
  declare current_ym varchar(10);
  DROP TABLE IF EXISTS tmp_ym;
  CREATE TEMPORARY TABLE tmp_ym
  (
    title      varchar(100)
    ,yearmonth    varchar(10)
    ,ym_start     varchar(10)
    ,ym_end      varchar(10)
  );
  set current_ym = arg_ym_start;
  CREYMD : WHILE current_ym <= arg_ym_end DO
    INSERT INTO tmp_ym values (current_ym,current_ym,CONCAT(current_ym,'/01'), DATE_FORMAT(ADDDATE(ADDDATE(CONCAT(current_ym,'/01'),INTERVAL 1 MONTH),INTERVAL -1 DAY),'%Y/%m/%d'));
    set current_ym = SUBSTR(DATE_FORMAT(ADDDATE(CONCAT(current_ym,'/01'),INTERVAL 1 MONTH),'%Y/%m/%d'),1,7);
  END WHILE CREYMD;

  SELECT
  title  
  ,yearmonth
  ,ym_start
  ,ym_end 
  from
  tmp_ym;
  DROP TABLE IF EXISTS tmp_ym;

END;;
DELIMITER ;

実行結果例


mysql> call procedureName('2012/01','2012/12');
+---------------+-----------+------------+------------+
| title     | yearmonth | ym_start  | ym_end   |
+---------------+-----------+------------+------------+
| 2012/01    | 2012/01  | 2012/01/01 | 2012/01/31 |
| 2012/02    | 2012/02  | 2012/02/01 | 2012/02/29 |
| 2012/03    | 2012/03  | 2012/03/01 | 2012/03/31 |
| 2012/04    | 2012/04  | 2012/04/01 | 2012/04/30 |
| 2012/05    | 2012/05  | 2012/05/01 | 2012/05/31 |
| 2012/06    | 2012/06  | 2012/06/01 | 2012/06/30 |
| 2012/07    | 2012/07  | 2012/07/01 | 2012/07/31 |
| 2012/08    | 2012/08  | 2012/08/01 | 2012/08/31 |
| 2012/09    | 2012/09  | 2012/09/01 | 2012/09/30 |
| 2012/10    | 2012/10  | 2012/10/01 | 2012/10/31 |
| 2012/11    | 2012/11  | 2012/11/01 | 2012/11/30 |
| 2012/12    | 2012/12  | 2012/12/01 | 2012/12/31 |
+---------------+-----------+------------+------------+

2013年11月1日金曜日

TeraTermで複数ウインドウに一括でコマンドを実行

自分用のTipsです。管理しているサーバーの台数が増えてくると
同じ手順を複数台のサーバーへ適用する事も出てくるので、そういった時に重宝しそうです。
  • TeraTermでホストへログイン
  • メニューバーから「コントロール」→「ブロードキャストコマンド」

  • 接続しているホストの一覧から、送信したいホストを選択
  • 入力欄で入力を開始すると、選択したホストに対してリアルタイムでテキストが送信される
複数端末への同時ログインと組み合わせて使用しています。

【備忘録】Kanon(Trac統合パッケージ)をインストールしたときのLinuxのパス

困った時の備忘録

Kanon(Trac統合パッケージ)をインストールしたときに、色々と迷子になったので備忘録
※Kanonはデフォルトインストールしている状態です


サイトのLogoを変更するとき

【ファイル】 /var/opt/kanon/trac/[プロジェクト名]/conf/trac.ini
【変更箇所】 [header_logo]のsrc
【実態の置場】 /var/opt/kanon/trac/[プロジェクト名]/htdocs/your_project_logo.png
【その他】 高さと幅を変えたい時には同じセクションの以下を変更(ない場合には追加)すればOK
height = (数値の値)
width = (数値の値)


ログイン前のトップ画面から[Register]を消したい時

trac.iniに以下を記載(ある場合には変更)
[components]
acct_mgr.web_ui.registrationmodule = disable


svnリポジトリが既にあって、変更したい場合

trac.iniを変更後、以下を実行
# trac-admin /var/opt/kanon/trac/[プロジェクト名] repository resync [svnリポジトリのフルパス]


添付ファイルの最大値を変更する

[attachment]
max_size = 1048576