Posts Tagged ‘コンピューター’

WordPressでMarkdownを使ってみた

11月 20th, 2015

以下のような記述をすると

#### Markdownテスト
- Jetpackに付属しているmarkdown機能を使ってみるテスト
- セットアップはJetpackで有効にするだけ
- 投稿の設定にmarkdownの設定とかは見つからなかった
- コメントの設定にはmarkdownの設定があった。
- さて、**プレビュー**してみるか。

[Markdown](https://ja.wikipedia.org/wiki/Markdown)

段落がいまいちよくわからない。空行で段落分けになるはずだけどならないし。

引用はこんな感じか。

> " Markdownは、文書を記述するための軽量マークアップ言語のひとつである。もとはプレーンテキスト形式で手軽に書いた文書からHTMLを生成するために開発された。現在ではHTMLのほかパワーポイント形式やLaTeX形式のファイルへ変換するソフトウェア(コンバータ)も開発されている。各コンバータの開発者によって多様な拡張が施されるため、各種の方言が存在する。)"

以下のような出力になりますよ。

Markdownテスト

  • Jetpackに付属しているmarkdown機能を使ってみるテスト
  • セットアップはJetpackで有効にするだけ
  • 投稿の設定にmarkdownの設定とかは見つからなかった
  • コメントの設定にはmarkdownの設定があった。
  • さて、プレビューしてみるか。

Markdown

段落がいまいちよくわからない。空行で段落分けになるはずだけどならないし。

引用はこんな感じか。
> " Markdownは、文書を記述するための軽量マークアップ言語のひとつである。もとはプレーンテキスト形式で手軽に書いた文書からHTMLを生成するために開発された。現在ではHTMLのほかパワーポイント形式やLaTeX形式のファイルへ変換するソフトウェア(コンバータ)も開発されている。各コンバータの開発者によって多様な拡張が施されるため、各種の方言が存在する。)"

追記(2016/9/16)

  • functions.phpに以下のコードを追加しないと段落が生成されない。(テーマが更新されてない?)
        remove_filter('the_content','wpautop');
        add_filter('the_content','wpautop_nobr');
    
        function wpautop_nobr($txt) {
        return wpautop($txt, false);
        }
        

追記(2019/3/22)

markdownで入力しても、保存するとHTMLに変換されるクソ仕様なので、こんなゴミは使ってられない。markdownはmarkdownで保存されなければならない。

さらに追記

  • htmlで書いた記事にmarkdownで追記すると、markdownの部分はhtmlに書き換えられるようだ。
  • すべてを markdown で書いた場合は、htmlに書き換えられることはないようだ。
  • 必要なら、html を markdown に書き換えろってことか。

WP Editor.md

  • こちらのマークダウンエディタを使う方がよさそう。これはMarkdownを勝手に変換したりはしない。

Vagrant(ベイグラント)は便利です

11月 19th, 2015

vagrantがいかに便利かを説明します。開発者にはとても便利なツールです。

Vagrantを使って仮想マシンを作るのってこれだけですよ。これだけ。

$ sudo pacman -S virtualbox       #virtualboxパッケージのインストール
$ sudo pacman -S vagrant          #vagrantパッケージのインストール
$ vagrant plugin install vagrant-vbguest vagrant-share #プラグインのインストール
$ mkdir -p ~/dev/vagrant/jessie64 #作業フォルダ作成
$ cd ~/dev/vagrant/jessie64       #作業フォルダに移動
$ vagrant box add debian/jessie64 #仮想イメージのダウンロード
$ vagrant init debian/jessie64    #仮想環境の初期化
$ vagrant up                      #仮想環境の起動
$ vagran ssh                      #仮想環境へのログイン

次にまた起動したいときもこれだけ。

$ cd ~/dev/vagrant/jessie64       #作業フォルダに移動
$ vagrant up                      #仮想環境の起動
$ vagran ssh                      #仮想環境へのログイン

lxcを使うときもこんだけ

$ pacman -S lxc arch-install-scripts #パッケージのインストール
$ vagrant plugin install vagrant-lxc #プラグインのインストール
$ mkdir ~/dev/vagrant/jessie64lxc    #作業フォルダ作成
$ cd ~/dev/vagrant/jessie64lxc       #作業フォルダに移動
$ vagrant init glenux/jessie64-lxc   #仮想環境の初期化
$ vagrant up                         #仮想環境の起動
$ vagran ssh                         #仮想環境へのログイン

(lxcを使えるようにするまでは、もう一手間必要ですが。それでも素のlxcを使うよりは断然楽です)

Vagrent – Archlinux

「debian/jessie64」「glenux/jessie64-lxc」とかは、「Base Box」といって、以下のサイトのリストからよさそうなものを選びます。

Vagrant Cloud

ちょろっと見てみましたが、
「dpsxp/windows-ie10」とか「dpsxp/windows-ie9」とかもあるのですね。ボリュームライセンスがあれば、テストがはかどりそうですね。

追記

作った仮想環境の削除方法

$ cd ~/dev/vagrant/jessie64lxc #作業フォルダに移動
$ vagrant destroy              #仮想環境の停止と削除

インストールすると、Base Box が保存されるので、そのファイルは上記コマンドでは削除されないので、手作業で削除します。場所は「~/.vagrant.d/boxes」です。これを知らずに、知らぬまにハードディスクの残り容量が0になってことがありました。

Pebbleアプリを公開しました

10月 27th, 2015

3

BSO Baseball Indicator

GitHubリポジトリ

野球の審判のためのインジケータを作成しました。

ボール・ストライク・アウトをカウントして表示するだけのアプリです。

ぶっちゃけ、HelloWorldに毛が生えた程度のシロモノですが、実際に使うとかなり便利で、普通のインジケータより使い勝手のよいものになりました。

名前を半角カナで入力してしまった

9月 3rd, 2015

名前欄に半角カナを入力してしまった。半角カナが悪いわけではないが、いろいろと面倒なので全角に戻したい。

新規に入力する際には全角で入力してもらうが、すでに登録済のデータをどうするか迷った

今回使用しているデータベースはPostgresql。これには便利なConvert関数などはないので自力でなんとかするほかないのだが、探してみると使えそうなストアドプロシージャーがあったので利用させてもらった

PostgreSQL でカタカナ変換(ユーザ定義関数)
http://qiita.com/gold1/items/5b54761697b4ade1f8e9

ローカルのデータベースで動作確認して、次は本番環境での実行。

本番環境はDockerで動かしているので、一手間必要だった。

この際に参考にしたのは以下のサイト。

DockerでWebサーバー/コンテナホストからDBサーバー接続
http://qiita.com/tsutorm/items/9a707e38038daa6002c0

コンテナのIPアドレスを調べて、そのポートに対して接続する


$ docker inspect (コンテナの名) | grep IPAddress
$ psql -U postgres -h (コンテナのIPアドレス) -p 5432 (データベース名) < mb_convert_kana.sql
database=# update (テーブル名) set name = mb_convert_kana(name, 'KV');

うん、手打ちで入力して方が早かったね。

メール送信管理アプリを作成しました

8月 26th, 2015

メールからの情報漏洩が騒がれる今日このごろですが、ちょうどそれに対応するアプリを作成しました。

Windowsのアプリケーションで、メール送信すると、送信内容をチェックして、設定済みのルールに合致するメールの場合は、ポップアップ表示を出して注意を喚起したり、送信メールを管理用サーバーに送信して、履歴を残すといった処理を行います。

メールの受信には Willpe/SMTP を使用

https://github.com/willpe/SMTP

受け取ったメールのパースには MimeKit を使用

https://github.com/jstedfast/MimeKit

メールの送信には MailKit を使用

https://github.com/jstedfast/MailKit

これらのライブラリを使うことで、メール固有のノウハウにはあまり触れることなく実装することができました。

デバッグ中に MimeKit の不具合を発見して、プログラムを一部修正して、githubにフォークしたプロジェクトを変更したところ、オリジナルの作者の jstedfast 氏が日本語の適当なコメントにもかかわらず反応してまして、おわっ、これはマズいと再度適切な文章を同僚に作成してもらってコメントを追加して、ようやく作者さんにも問題を理解してもらい、最終的にはオリジナルのプロジェクトの方も修正してもらえたのは、貴重な体験でした。

https://github.com/kusanaginoturugi/MimeKit/commit/3f1d0c9c83a2fb46d51d82446afd4869a069839a#commitcomment-12613986

オープンソースプロジェクトはこうして使われていく事で磨かれていくのだなと実感しました。

今回は Windows のクライアントアプリだけではなく、サーバーサイドのプログラムも実装しました。サーバーサイドはRailsで作りました。

このあたりにも技術的に面白い話はたくさんあるのですが、長くなるので割愛します。

次もこんな開発をやりたいものです。

AmazonEC2上でDockerを使ってRailsアプリを構築しました

4月 9th, 2015

いやあ、紆余曲折ありましたがようやくAWS上にRailsアプリを構築する事ができました。

ちなみに紆余曲折とは以下の通り。

  1. heroku用に作っていたRailsアプリをDocker用の修正
  2. ローカル環境下でDockerで動くことを確認
  3. AWSでDockerを動かすならElasticBeastalkやでと聞く
  4. Beanstalkだと一つのインスタンスで複数のDockerコンテナを収容できないことが判明
  5. さらにRDSを使って設定を間違えて無駄に費用を発生させてみたり
  6. EC2でUbuntuを立ちあげてみる
  7. おう、Ubuntuに入っているDockerのバージョンが1.01。こんな化石使えるかい
  8. 不安にかられながらもAmazonLinuxに移行
  9. おー、AmazonLinuxはDocker1.5だわ。ふつうにDockerが使える幸せ
  10. PostgresをDockerのオフィシャルリポジトリからコンテナ起動
  11. RailsアプリのためにDockerfileを数行書いてposgresにリンクしてコンテナ起動

でな具合です。

わかっていれば、数分の作業に随分時間を取られてしまって残念感たっぷりですが、BeanstalkからRDSまで一通り試せたので経験値がっぽり稼げた感じですね。

Beanstalk+RDSはアプリの規模がスケールアップした時は楽だろうと思いますが、今回の案件は小規模なので不要でした。(ebコマンドの手探り感というか暗中模索感というかかゆいところに手が届かない感がつらかった。ebコマンド使うくらいならec2で直接dockerコマンドを使った方が良いです)

一応、将来の拡張時の保険にはなったので良い勉強でした。でも一年も立つとまた更に便利でパワフルなサービスが出てくるかもしれないので、たいした保険にはならないとは思いますが。

エンジニア的には、サービスをあれこれ使うより、コンソールに入って何でもできる方が効率が良いですね。

EC2も二年前に試した時からパワフルになっていて、コンソールでのレスポンスも良いです。

今回、Dockerを使用したのですが、Dockerを使う事により、サーバー上でのRubyのセットアップ等の作業がまったく必要なく、今後のバージョンアップや更新時にもそのあたりの構築やらなにやらの手間がほぼなくなったのは非常に良いですね。構築スクリプトとか構築手順書とはおさらばです。

Gnucash使ってますか?

3月 8th, 2015

Gnucashとはフリーの財務ソフトウェアです。
http://www.gnucash.org/index.phtml?lang=ja_JP

確定申告の時期になると(というかその時期だけ)とても利用頻度の高まるアプリケーションです。
私も使いはじめて今年で三年目となります。

さすがに三年目ともなると、使い方にも慣れてはくるのですが、
どうしても許せない点があります。

それは日付入力時にキーボードのプラス(+)を押すと日付が一週間後になるという点です。テンキーでの動作は問題ないのですが、Shiftキーと併用して入力するプラスの場合だけ動作がおかしいのです。
確定申告の締切直前にこんなことを調べてしまう私もバカだと思いますが、ソースを調べてみましたよ。
たしかにこれだとJISキーボードの場合に+を押すと一週間後になってしまいますね。さらに=の場合も一週間後なので、JISキーボードの場合は一日後を押せるキーがないというオチ。JIS配列が腐ってるのも確かだけど、このコードの書き方はないわ。英語キーボード使ってないやつなんているの?って事じゃないか。

ソースに注意書きは書いてはあるものの直っていない様子だし。
とりあえず7日後は必要ないので、7を1に変えてビルドしなおして今日のところは気持ち良く作業を進めたいと思います。(実はこの場所を探すのにえらく手間取りました)

src/gnome-utils/dialog-utils.c

/*
* Check those keys where the code does different things depending
* upon the modifiers.
*/
switch (event->keyval)
{
case GDK_KP_Add:
case GDK_plus:
case GDK_equal:
if (event->state & GDK_SHIFT_MASK)
g_date_add_days (&gdate, 7);
else if (event->state & GDK_MOD1_MASK)
g_date_add_months (&gdate, 1);
else if (event->state & GDK_CONTROL_MASK)
g_date_add_years (&gdate, 1);
else
g_date_add_days (&gdate, 1);
g_date_to_struct_tm (&gdate, tm);
return TRUE;

http://gnucash.sourcearchive.com/documentation/1:2.4.2-1ubuntu1/dialog-utils_8c_source.html

PayPal支払いを追加しました

12月 10th, 2014


PayPal employee shtuttle / Richard Masoner / Cyclelicious

PayPal(ペイパル)支払いを追加しました。

こちらから支払いが可能です。支払い前にメールで申し込みをお願いします(見積りも作成いたします)。


Web Site Maintainance




Excelのアドインを作成しました

10月 10th, 2014


Excel / Jon Juan

システムのバージョンアップに伴ない、アプリケーションのテストを実施する事になりました。

この作業は動作確認をしつつ、ひたすら画面のキャプチャーを取得してExcelに貼りつけるという単純な作業になります。とはいえ、完全に自動化して実施できるほど簡単でもなく、何度もやる必要のない仕事です。

そこで、すこしでも楽をしようとExcelのアドインを使って、キャプチャーした複数の画像ファイルをエクセルに一括で貼りつけるアドインを使用しました。
アドインを使うと、提出用のExcelブックをマクロで汚すことなく、マクロと同じように作業を自動化できます。

もっともアドインを作って登録するまでが、かなり煩雑な手順が必要なのですが…。

ポイントとしては最近のExcelだと画像を挿入すると、画像そのものが貼られるのではなく、画像のリンクが貼られてしまうので、そのままでは提出用としては使いずらいものとなります。そこで一度貼りつけた画像をクリップボードにコピーして、再度同じ場所にペーストする事で、画像がリンクになる事を回避しています。(Excel上では後からではリンクを内部画像に変換できないようです)

元ネタはどこかの掲示板で取得したマクロです。先人の努力に感謝です。
以下にそのソースを掲載します。

» Read more: Excelのアドインを作成しました

C言語の #if 0 を使ったおもしろ技

3月 23rd, 2014
$ cat ./hello.c
#if 0
gcc -o hello hello.c
./hello
exit
#endif

#include <stdio.h>

int main( void )pre {
  printf( "Hello, World!\n");
  return 1;
}
$ chmod +x hello.c
$ ./hello.c
Hello, World!

C言語なのにスクリプト言語のように実行できるところが面白いですね。