‘未分類’ カテゴリーのアーカイブ

CentOS上でSeleniumRCとPHPUnitを使ってfirefoxを操作する

まずはSelenium-RCをダウンロード。

http://docs.seleniumhq.org/download/
Selenium Server (formerly the Selenium RC Server)の、selenium-server-standalone-2.x.x.jarを。
CentOS上の適当な場所に設置します。

(さらに…)

Facebooktwitterlinkedintumblrmail

TrelloにAPIからカードを追加する

まずは、テスト用に以下のようなフォームを用意します。

<form method="post"
 action="https://api.trello.com/1/lists/[list_id]/cards?key=[api_key]&token=[token]">
<input name="name" value="テスト">
<input name="desc" value="細かい説明">
<input type="submit" value="カード作成">
</form>

(さらに…)

Facebooktwitterlinkedintumblrmail

md2reviewで箇条書きの入れ子に対応していただきました

前の記事「md2reviewでMarkdownからRe:VIEWに変換すると箇条書きの入れ子は無視される」を見た@takahashimさんが即対応してくださいました!

md2review 1.2.0 で修正されています。

Markdownで書いた記事をRe:VIEWで利用するのがとても楽になりました。


以下、余談です。

修正されたソースコードを見てあまりの簡潔さに「マジすか!」と思いました。

前の記事、解析時にMarkdownの箇条書き入れ子の仕様について間違った認識をしていたために混乱していたようです(コードがクソなのは書捨てということで許して)。

@takahashimさんとやりとりしているときに教えていただいたのですが、入れ子のときには4スペースインデントしないとエンジンによっておかしくなることが多いそうです。

私は調査時2スペースでインデントしていたのでおかしなことになっていたというわけ(Mouではちゃんと表示されるので気づかなかった)。エンジンによるようですがインデントは4の倍数かタブにしておくのが良いようです。

Facebooktwitterlinkedintumblrmail

md2reviewでMarkdownからRe:VIEWに変換すると箇条書きの入れ子は無視される

※2014年7月頭の状況です(解決済です次の記事をご参照ください)。

MarkdownとRe:VIEWを知っている方しか見ない記事だと思うので細かい説明は抜きでいきます。

ソフトウェア技術者だと最近はMarkdownで資料を書くことが多いのではないかと思います。
私もそうなのですが、Markdownで書いたお資料を印刷する際に困っていました(客様に渡す報告書等)。

いろいろ試した結果Mou(Mac用のMarkdownエディター)で印刷していたのですが、フォントが中国系になるという不満点がありました。

そこでmd2reviewでMarkdownからRe:VIEWに変換してPDF化するというフローを試したところかなりいい感じに出力できたのですが、私にとっての大問題が判明しました。

そう、 「md2reviewでMarkdownからRe:VIEWに変換すると箇条書きの入れ子は無視される」 のです。

番号付き箇条書き(Decimal型)についてはRe:VIEW側が対応していないのでしょうがないのですが(個人的にあまり使ってないですし)、普通の箇条書き(Disc型)の入れ子は多用しているので大変厳しい。

そこで、改造して Pull Request 出したろう!と着手したのですが、

  • md2review調査
    • かなりの部分redcarpet依存であると判明。
  • redcarpet調査
    • 「メイン処理はCで書かれてるのかよ〜」と思いつつ読んだ結果、簡単には対応できそうもないと判断。なぜmd2reviewが箇条書きの入れ子に未対応なのか、納得する。
  • 残念対応
    • md2reviewで変換したRe:VIEWの箇条書き部分に入れ子の状態から挿入される空行に規則性があるようだったので、これを解析したらどうにかならないか?と思う。
    • redcarpetにpostprocessというレンダリングの後処理を行うための仕組みがあったのでそこで処理してみた。
    • 作ってみた結果、以下の問題がある残念なものが出来上がった。
      • 入れ子2段までしか判断できないため3段以上は正常に動作しない。
      • 箇条書きの最後のアイテムについては判断できないためとりあえずワーニングコメント#@warn(CONFIRM NEST!)を出力する(確認しやすくはなった)。

という残念な結果に終わりました。

残念対応ですが無いよりはマシですので公開しておきます。

md2reviewのreview.rbに以下のpostprocessを追加します。

def postprocess(full_document)
  # レンダリング結果を解析して順番なし箇条書きのインデントを反映する。
  # ただし2段までしか判断できないため3段以上は正常に動作しない。
  # また、箇条書きの最後のアイテムについては判断できないため
  # ワーニングコメント#@warn(CONFIRM NEST!)を出力する。

  # 無効化するときは次の行のreturnを有効化する。
  #return full_document
  require 'set'

  lf_del_set = Set.new
  lf_ins_set = Set.new

  pre_ul_flg = false
  pre_emp_flg = false
  ul_level = 1
  
  lines = []
  full_document.split(/\n/).each_with_index do |line, i|
    if line == "" || line[0, 3] == " * " 
      if line == ""
        if pre_emp_flg && pre_ul_flg
            line = "\#@warn(CONFIRM NEST!)\n"
        elsif pre_ul_flg
          lf_del_set.add(i)
          if 1 < ul_level
            if lines[i - 1][0, 2] == " *" && lines[i - 2][0, 2] == " *"
              lines[i - 1] = " #{'*' * (ul_level - 1)} " +
                lines[i - 1][(ul_level + 2), lines[i - 1].length]
              ul_level -= 1
              lf_ins_set.add(i - 1)
            end
          end
        end
        
        pre_emp_flg = true
      else
        if pre_ul_flg && pre_emp_flg
          ul_level += 1
        end

        line = " #{'*' * ul_level} " + line[3, line.length]

        pre_ul_flg = true
        pre_emp_flg = false
      end
    else
      pre_ul_flg = false
      ul_level = 1
    end
    
    lines.push(line)
  end
  if pre_ul_flg
    lines.push("\#@warn(CONFIRM NEST!)\n")
  end
  
  ret_document = ""
  lines.each_with_index do |line, i|
    if lf_ins_set.include?(i)
      ret_document += "\n"
    end
    if !lf_del_set.include?(i)
      ret_document += line + "\n"
    end
  end
  ret_document
end

以上まではほぼMarkdownで記述し改造版md2reviewで変換した後、箇条書き部分の入れ子が3段の箇所と箇条書きの最後をて修正したRe:VIEWファイルから出力したHTMLです(ソースコード掲載の箇所はハイライト表示の関係で書きなおしました)。

同じファイルから作ったPDFが以下のファイルです(単純なレポート用に調整した設定を使用しています)。
report.pdf

EPUBも作ったんですが、セキュリティ制約でアップロードを弾かれちゃいました。残念。

このように様々な出力が可能という利点はあります。

余談ですがEPUB出力するのはとても簡単です。PDF出力はLaTeX環境をつくらなければならないのでやや面倒でした。

Facebooktwitterlinkedintumblrmail

PhpStorm(IntelliJ)のクリップボードマネージャ

PhpStormにはクリップボードマネージャ機能があり、クリップボードの履歴からペーストしたりすることができます。しかし私は別のクリップボードマネージャアプリを使用しており、そのアプリから貼り付けたいのですが、機能がバッティングしてしまいうまく動作しません。

調べたところシステムのクリップボード領域とPhpStormのクリップボード領域を同期する設定をすることで正しく動作するようになりました。

idea.use.alt.clipboard.sync=trueを/Applications/PhpStorm.app/bin/idea.vmoptionsに追記するだけでOKです。

参考

Switching clipboard content with system clipboard manager does not work in rubymine (Ubuntu)

Facebooktwitterlinkedintumblrmail

SourceTree for Windowsで秘密鍵と公開鍵を生成!

前回は SourceTree for Windows をインストールしましたが、それだけではGitは使えません~。
ほとんどのGitサーバーでは、SSHの公開鍵認証を使用しています。

SourceTreeでは「秘密鍵」と「公開鍵」を簡単に生成することが出来ます。
以下手順です。

1、”Tools” > “Create or Import SSH Keys”を選択します。

2、PuTTY Key Generatorが開くので、”Generate”ボタンをクリックし、鍵を生成します。


“Generate”ボタンをクリックすると、鍵が生成されるはずなのですが…


なんだこれ…すっごい遅い…ウ ゴ カ ナ イ !
と思ってたら、乱数を作るためにマウスでこの辺りを


ぐるぐるぐる~ぐちゃぐちゃ~っっとやると、あっという間に終わります(笑)
最初はこれを知らずに、無駄に待ち続けました…。

3、”Save Private Key”をクリックし、秘密鍵を保存します。


私は”id_rsa.ppk”という名前で保存しました。
特に決まりはないそうですが、自分がわかりやすいものでいいと思います。

秘密鍵は、その名の通り自分以外には知られてはいけません。秘 密 で す (*_*)
人に見せたり、紛失したりしないよう管理しましょう。

4、”Save Public Key”をクリックし、公開鍵を保存します。


こちらも特に決まりはないので、”id_rsa.pub”という名前で保存しました。

コメントの記入やパスワードの設定を行いたい場合は
“Key comment”、”Key passhrase”に、それぞれ入力してください。


5、鍵を登録します。
“Tools” > “Launch SSH Agent(pageant)”を選択します。
先ほど保存した秘密鍵(“id_rsa.ppk”)を選択すると、鍵が登録されます。
(パスワードを設定した場合はパスワードの入力を求められます)

サクサクサクっと鍵の設定完了ですー(´∀`)

Facebooktwitterlinkedintumblrmail

SourceTree for Windowsをインストールしました!

SourceTree for Windowsがリリースされたのでインストールしてみましたー。

beta版の試用を申し込んだまま、作業に区切りがつくまでは…とか言ってズルズル放置してましたが
やっとインストールしました~(´∀`;)

GitGuiもGitHubもソースの一部が消失するなどのトラブルが続いたのでもうさよならバイバイ。
Git初心者な私にとっては、トラブルは避けたいところなのです(;´Д`)

ちなみにWindows7以上でないとインストールできないようです。
折角なのでインストールの一連の流れを、私のような初心者のために…。

SourceTree for Windowsをインストールするにあたり、とりあえずGitと名の付くものは
片っ端からアンインストール+削除しました。

さっぱりしたところで、SourceTree for Windowsのインストーラーをダウンロードします。

以下のページからダウンロードできます。
http://www.sourcetreeapp.com/

インストーラーを起動すると「Git本体はどうしますかー?」と聞かれます。

私は既に全部削除しちゃったので、一番上の
“Download an embedded version of Git for SourceTree alone to use”を選択しました。
既にインストールしている場合はスルーされるようです。

Git本体のインストールを行うとセットアップ画面が表示されます。

名前とアドレスを入力し、規約に同意できれば”I agree to the SourceTree license agreement”
にチェックを入れ、”Next”をクリックします。

AtlassianのBitbucket, Stashを使用している場合は、そのままアカウントのサインアップができます。

使用してなければ”Finish”をクリックし、インストール完了です!!

次回は「鍵」を作成します(´∀`)ふっふっふ。

Facebooktwitterlinkedintumblrmail

Androidアプリのメモリリークを調査する

Androidでメモリリークを調査することがあったので手順を記述します。

1.Eclipseをダウンロードします。
    そこから!?と思うかもしれませんが一応書いておきます。

    http://www.eclipse.org/downloads/

    ここからEclipse Classic 4.2.1をダウンロードします。

    (※http://developer.android.com/sdk/index.htmlここから、
    EclipseとSDKが一括のものがダウンロード出来ますが
    プラグインが上手く入らなかったのでこれは使いませんでした。)

2.ADTをインストールします。
    1)Help→Install New Software
    2)addボタンを押して、以下のように設定します。
    3)適当に必要なものをインストールします。

3.BIRTプラグインをインストールします。
    1)Help→Install New Software
    2)Work withで「Juno – http://download.eclipse.org/releases/juno」を選択します。
    3)BIRTEnginをチェックします。
    4)インストールします。

4.Memory Analyzerプラグインをインストールします。
    1)Help→Install New Software
    2)Work withで「Juno – http://download.eclipse.org/releases/juno」を選択します。
    3)Memory Analyzerをチェックします。(Generale Purpose Toolsの中にあります。)
    4)インストールします。

5.DDMSのPerspectiveを開きます。
    1)対象のプロセスを選択して、「Dump HPROF file」を押します。
    2)表示されたダイアログで「Leak Suspects Report」をチェックし、「Finish」を押します。

メモリリークの詳細が表示されます。

Facebooktwitterlinkedintumblrmail

Eサイクルがやってきた

『CEATEC JAPAN 2012』長崎県ブースに一緒に出展した有安オートさんのEサイクル「ISOLA」。
一目惚れして即発注でした。

本日、ついにやって来ました。折りたたみにパワーアップして!

折りたたんだ状態はこんな感じ。

組み立てた状態のは私(murave)の、折りたたみ状態のはminemazさんのです。

有安オートさんのページ
https://sites.google.com/site/ariyasuauto/

Eサイクル「ISOLA」のページ
http://www.isola-japan.com/

Facebooktwitterlinkedintumblrmail

いらっしゃいませ OSC2012福岡

ブースこんな感じです。エレベーターで上がってきたらすぐというナイスポジション。
「受付ですか?」と言われガチなのがたまに傷デス。

あと喫煙所(屋上?)へもウチのブースの横から出れますヨ。

セミナー関係は14時からは @minemaz が

『県庁並行稼働中!OpenCOBOL汎用機ダウンサイジングでのハマりどころ』

というセミナーを行います。

また、12時からの

『OSS九州サミットあげいん ~横の連携、深めていきますよぉ~』

にも @minemaz がパネリストとして登場します。

よろしくお願いします。

おまけ。缶バッチ((C)みさくらなんこつ・JACUG)に侵略された自由配布ブース。

Facebooktwitterlinkedintumblrmail