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

RoundCubeのlabelの一部を上書きする

RoundCubeの各項目の名称を、書き換えるような事が何度かありました。
(受信箱や送信済みの名称について、古いメーラと合わせたいとか)
そういう時は、各言語のlabels.incやmessages.incを編集する必要が有りましたが、
1.0以降は、上書きする機能を提供しているようです。

(さらに…)

Facebooktwitterlinkedintumblrmail

Git リモートリポジトリをガツンと巻き戻す

かなり悩んで時間がかかったのでメモを残しておきます。
前提条件として、基本、Git Flowベースで作業しています。

不幸なことにガンガン開発を進めていたdevelopブランチをmasterブランチの状態まで巻き戻すことに。masterブランチにはhotfixが入ってたりもします。

調べて調べて、悩んで、相談して、調べて、以下のような手順で作業することにしました。

hotfix前のdevelopまで戻す。

$ git reset --hard 巻き戻すコミットのハッシュ

リモートのdevelopリポジトリを同じ所まで巻き戻す。

$ git push -f origin HEAD:develop

そして、hotfixについてはmasterから対象のコミットをチェリーピックでマージしてリモートリポジトリにpush(Souce Treeでやりました)。

そして、開発者諸氏にdevelopブランチをリモートから取り直すように連絡(忘れずに!)

加えて、このプロジェクトでは開発用サーバーにdevelopリポジトリから

$ git pull -rebase

でデプロイしているので、開発用サーバーのdevelopリポジトリもローカルと同じコマンドでリセットしてデプロイしなおしました。

Facebooktwitterlinkedintumblrmail

雑用係、来年もよろしくお願いしますm(_ _)m

文書を作る。
雑用係の仕事のひとつです。

法律用語とか雑用係にはよくわかりません。
仕事してる人なら当たり前に使うビジネス用語も使い分けに苦労します。
難しいです。
高卒の上に、高校ではデザインなんか勉強してたので、高3の頃なんか授業に理科系科目すらありませんでした(笑)

強いて言えば、本読みが好きなのと、小説家を目指していた黒歴史(´д`)があるので、一時期文章の勉強してたり、昔から割と平均的な読解力はあった方なので、なんとかやってます。

てことで。
言葉のマジックを少々。

(さらに…)

Facebooktwitterlinkedintumblrmail

雑用係、OSX Yosemiteインストールに苦戦する

雑用係、生意気にもMac使いです(´∀`)

IMG_6637
※ 職場の机はMacBookAir11と私物のiPadAirでこんな感じ。自宅はPro15。某マンガ&アニメキャラは無視してね。

もちろん、Yosemiteがリリースされてからサクッとアップデートしました。
んまー、フラットデザインけっこーイケるわぁーなんてホクホクしてました。

でもって、あまり機械モノが得意じゃない友人にも毎度のことと「とりあえず無料だから、今回もちゃんとアップデートしとけよ〜」と言ってしまったのが、題目の原因です(×_×)

メッセがきました。
友人A「インストール失敗しました、って、でるんだけど」

でるんだけど、と言われましても、失敗したことないので、雑用係には原因が全くわかりません。そもそも、私は単なる雑用係であって我が社の精鋭技術者のようなスキルはないんですYO!

メッセや電話で、どういう状況なのか、あれやってみてー、これやってみてーとやれども、同様の状況になったことのない雑用係は、何が一体どうなってるのかサッパリぽんです(´・ω・`)

仕方ないので、休みの日に友人Aの家へ出向きました。
奮闘の始まりです(´д`)

(さらに…)

Facebooktwitterlinkedintumblrmail

雑用係、ハロウィンを楽しむ

私がハロウィンを認識したのは某ホラー映画で、ハロウィンといえば「ブギーマンだよね!」な状態でした。
それが激しく間違ってる!と知ったのは、高校生の頃。
おかげで、ハロウィンといえば「ジャック・オー・ランタン」と頭を変換させるのに苦労しました。
E.T.もちゃんと映画館まで行って観てたハズなのに‥‥‥(´д`)

いいじゃん、ブギーマンで‥‥‥と、本気で思ってたですョ
もちろん、ジャック・オー・ランタンも可愛くて好きですけどね(笑)

我が家では、素焼きのジャック・オー・ランタンが大活躍しています。
IMG_4029

そういえば、ここ数年は仮装やコスプレを楽しむのも普通になってきて嬉しいですね。
私もプチ仮装程度は楽しんだりしますが、田舎ではなかなか難しいのもあってガッツリコスプレは(衣装ありますがw)やったことがありません。

ハロウィンだからって派手にコスプレするのは恥ずかしいけど、ちょこっと楽しんでみたい気もする!なら、アプリで遊べばいいいじゃない!
(※私、iPhoneユーザーですので、iPhoneアプリしか分かりませんw)

てことで。

まずは、某(笑)有名お菓子メーカーの「グリコハロウィーン」
定番の、フレームタイプの写真が撮れ(加工)できます。
フレームは数種類あるんですけど、選べないのが残念かな‥‥‥
IMG_6568
※モデルはにゃんこ。

次は「ハロウィンフェイス」
仮装させたい写真を選べば、勝手にやってくれる写真アプリ。簡単です。仮装変更もワンタップでOKなので気軽だし、集合写真で(たぶん)顔認識されれば衣装がポンっと乗るので面白い。
IMG_6566
※ 写真はプリインストールされてたものです。

この程度の仮装じゃ物足りないなら、「ハッピーハロウィン Place My Funny Costume」
ガッツリそれっぽいコスプレさせてみるなら、コレ。
童話から有名アメコミキャラのコスプレまで「やった気になれる!(笑)」
顔入れするだけなので、体型も関係ないです!最高!(笑)
でも、ここまでやりたいなら、リアルにコスプレデビューお勧めします\(^O^)/けどね!
IMG_6567
※顔は私w

そして、私のイチオシは「ゾンビブース」(たぶん、新しい版がでてます)
写真を選ぶと、目と口の位置を設定して、ほら貴方もゾンビの仲間入り♡
ぬぉー!っと動きます、指を与えるとガツガツ食べます♡
写真だけでなく、動画にもなります♡
屍系が苦手な方は、「呪顔」という幽霊系になれるタイプもあります♡(?)
IMG_6569
※怖いので自粛(笑)

楽しもうと思えば、いくらでも楽しめます!
Trick or Treat! Happy Halloween!!

Facebooktwitterlinkedintumblrmail

雑用係のむかしばなし

むかーし、むかしの目がテン?(゚Д゚)?なお話。

世の中は「ヘイヘイ!パソコンくらい扱えなきゃ、この世はもう暮らしていけないぜ!」政策で、無料で受講できるパソコン教室があっちにもこっちにもそっちにもどっちにも?開かれていた時代。

私、某所でPCインストラクターとして請負業務をやっておりました、ハイ。

もちろん、その某所には私の他にもPCインストラクターは20名近くが登録されていて、各市町村(その頃はまだ長崎にも村ありました)やらカルチャーセンター主催のパソコン教室へ派遣されていたわけです。
ほとんどの生徒はPC初心者。
教えるのは「電源の入れ方」から。
ぶっちゃけた話、初心者のコースを初心者(に毛が生えた)が教えていたんですよネー(´・ω・`)
噂だと、たった12時間のコースで最初の数時間はビデオを見せるだけ授業、とか。初心者コースを受講した生徒が、翌週にそのコースで教えてました?! とか。

てことで、私が目(耳)にした、トンでもインストラクター事例(笑)

(さらに…)

Facebooktwitterlinkedintumblrmail

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