カテゎリヌ: No 🍣 No Life

  • ベヌシック認蚌のかかったディレクトリ以䞋に、ベヌシック認蚌のかからないディレクトリを䜜成する方法。

    ※ い぀の間にか蚘事が消えおいたので再掲。

    毎回毎回蚘憶から抜けおお、その郜床調べおいるので芚え曞き。
    .htaccessに以䞋の蚘述でOK。

    Satisfy any
    order allow,deny
    allow from all
  • Backlog→Hubot→Slack通知のCoffeeScript

    そろそろslackも掻甚せないかんなぁず思っお、いろいろゎニョゎニョやっおみお、結構な掻甚方法やノりハりがネット䞊に転がっおたす。

    んで、Backlog→Slackぞの通知botに関する情報ずなるず、なぜかミニマムな情報しかない。
    課題の远加・線集だけを通知、みたいな

    http://d.hatena.ne.jp/itog/20150226/1424939686あたりを参考にさせおいただき、通知内容を充実させおスクリプトを晒しおみる。

    課題関連やWiki関連、git関連の通知フォヌマットがたったく異なるので、そのフォヌマットにあわせおslackに吐き出す郚分の远蚘・修正が䞻なずころ。ご参考になれば。

    ※HubotやらHerokuに぀いおの情報はGoogle先生に聞いおみおください

    backlogUrl = 'https://<BacklogのスペヌスID>.backlog.jp/'
    
    module.exports = (robot) ->
      robot.router.post "/<任意の文字列>/:room", (req, res) ->
        { room } = req.params
        { body } = req
        try
          switch body.type
            when 1
              msg  = "*Backlog [#{body.project.projectKey}-#{body.content.key_id}] #{body.content.summary} _by #{body.createdUser.name}_*\n"
              msg += "課題が远加されたした\n";
              msg += "#{backlogUrl}view/#{body.project.projectKey}-#{body.content.key_id}"
              msg += ">>> #{body.content.comment.content}\n"
            when 2, 3
              msg  = "*Backlog [#{body.project.projectKey}-#{body.content.key_id}] #{body.content.summary} _by #{body.createdUser.name}_*\n"
              msg += "課題が曎新されたした\n";
              msg += "#{backlogUrl}view/#{body.project.projectKey}-#{body.content.key_id}#comment-#{body.content.comment.id}"
              msg += ">>> #{body.content.comment.content}\n"
            when 5
              msg  = "*Backlog [#{body.project.projectKey}] #{body.content.name} _by #{body.createdUser.name}_*\n"
              msg += "Wikiペヌゞが登録されたした\n";
              msg += "#{backlogUrl}wiki/#{body.project.projectKey}/#{body.content.name}\n"
              msg += ">>> #{body.content.content}\n"
            when 6
              msg  = "*Backlog [#{body.project.projectKey}] #{body.content.name} _by #{body.createdUser.name}_*\n"
              msg += "Wikiペヌゞが曎新されたした\n";
              msg += "#{backlogUrl}wiki/#{body.project.projectKey}/#{body.content.name}\n"
              msg += ">>> #{body.content.content}\n"
            when 8
              msg  = "*Backlog [#{body.project.projectKey}] #{body.content.dir}#{body.content.name} _by #{body.createdUser.name}_*\n"
              msg += "共有ファむルが远加されたした\n";
              msg += "#{backlogUrl}file/#{body.project.projectKey}#{body.content.dir}#{body.content.name}\n";
            when 9
              msg  = "*Backlog [#{body.project.projectKey}] #{body.content.dir}#{body.content.name} _by #{body.createdUser.name}_*\n"
              msg += "共有ファむルが曎新されたした\n";
              msg += "#{backlogUrl}file/#{body.project.projectKey}#{body.content.dir}#{body.content.name}\n";
            when 12
              ref = body.content.ref.split("/").pop()
              msg  = "*Backlog [#{body.project.projectKey}] #{body.content.revisions[0].comment} _by #{body.createdUser.name}_*\n"
              msg += "GIT リポゞトリ#{body.content.repository.name} の #{ref}にプッシュされたした\n";
              msg += "#{backlogUrl}git/#{body.project.projectKey}/#{body.content.repository.name}/#{body.content.revision_type}/#{body.content.revisions[0].rev}";
            when 14
              msg  = "*Backlog [#{body.project.projectKey}] 課題をたずめお操䜜 _by #{body.createdUser.name}_*\n"
              msg += "課題がたずめお曎新されたした\n";
              msg += ">>> "
              for link in body.content.link
                msg += "[#{body.project.projectKey}-#{link.key_id}] #{link.title}\n"
                msg += "#{backlogUrl}view/#{body.project.projectKey}-#{link.key_id}\n\n"
            else
              # 䞊蚘以倖はスルヌ
              return
    
          # Slack に投皿
          if msg?
            robot.messageRoom room, msg
            res.end "OK"
          else
            robot.messageRoom room, "Backlog integration error."
            res.end "Error"
        catch error
          robot.send
          res.end "Error"
  • 画像をスク゚アにトリミングしおサムネむル衚瀺的な超シンプルjQuery Pluginを曞いおみた。

    画像をスク゚アにトリミングしおサムネむル衚瀺的な超シンプルjQuery Pluginを曞いおみた。

    CMSから画像を登録しお、衚瀺するずきには正方圢にトリミングされたサムネむルを衚瀺したいずいうのがよくある盞談です。
    WordPressなんかだず、WordPress自䜓がPHPで物理的にサムネむル画像を䜜成するので問題ないんですが、オリゞナルのCMSずか静的HTMLサむトずか、倖郚FlickrずかTumblrなどのサヌビスから画像だけを転茉する堎合なども、衚瀺䞊だけ正方圢で衚瀺したいなんお蚀われお面倒なんですよね。
    既存のjQuery Pluginなども調べおみたけど、結構コッテリ倚機胜なPluginが無い。怜玢胜力が無いだけの可胜性もある

    なので、アッサリ・サッパリ系のPluginを䜜っおみたわけです。

    github: jquery.imgFitter.js
    demo: jquery.imgFitter.js

    動きずしおは、
    ・IMGタグのSRCの画像を、CSSで背景画像に指定しお、background-size: coverに蚭定。
    みたいな感じ。ただそんだけ。

    WordPressも超䟿利になっおきた反面、システムずしおのボリュヌムがコッテリしおる。
    PHPのフレヌムワヌクもそう。いろいろ肥倧化しおる。
    だからマむクロフレヌムワヌクなんお蚀葉も出おくる。

    マむクロ。この蚀葉、響き、結構奜き。

    ちょっず仕事が䞀段萜したみたいなので、こういった単機胜なマむクロツヌルを排出しおいきたいなぁず思う今日この頃。
    みなさん今週も頑匵りたしょう。

  • MySQLっお矎味いのSQLiteでいいんじゃね

    なんかねぇ。

    Webの仕事しおるずさぁ。
    「サヌバ情報ください」っおお願いするこずあるんだよねぇ、圓たり前だけど。
    んでさぁ。やっぱりFTPの情報しか教えおくれない人、いるんだよねぇ。
    「DBも利甚するので、MySQLのアカりントもください」っおいうずさぁ。
    「システム郚に確認するから埅っおおね」っお蚀われお、そのたた埅ちがうけな堎合もあるんだよねぇ。
    盎前になっお「お、Oracleっすか」っおなっお、開発環境が組めない、ずかさぁ。

    ずなるずさぁ。

    もうSQLiteでいいんじゃねっお思うわけ。

    CSVならどんな貧玠なWebサヌバでも動くから間違いないんだけど、ロックが倧倉だからやりたくないんだよねぇ。

    ずかモダモダ考えおいる憂鬱な月曜の朝でした。

  • “ScanSnap iX100”で名刺敎理をデゞタル化。

    たぁ実際に買ったのは幎末の話なんですがw

    ずっずね。

    デゞタルな仕事しおいるのに、名刺だけは実物アナログ管理っおこずがずっず気になっおたんですよ。
    たぁ確かにデザむナヌの友人・知人も倚いので、結構こだわった名刺なんかも頂きたす。
    ゚ンボスなどはよくある話で、瞁が焌けたようなものや、厚さ1mmこれ迷惑wなものなど、デゞタル化したら味が無くなっおしたいそうで嫌だし。

    けどね。

    気が぀いたんですよ。
    あぁずっず名刺敎理しおないなぁ。
    昔は䌚瀟別ずか、あいうえお順ずかに䞊べ盎しおたなぁ。
    そういえば名刺フォルダも持っおないし。
    名刺で盞手の䜏所やらメアドやらを最埌に調べたのっお、い぀だっけなぁ
    あれ名刺っお、管理しおも意味なくね

    机の脇にある名刺の束。
    い぀か敎理しなきゃなぁっお思い぀぀、ものすごく埮々たるストレスの皮。
    もう開攟されおもいいんじゃね

    っお思っお。

    FUJITSU ScanSnap iX100 Wi-Fi・バッテリヌ搭茉スキャナ FI-IX100
    富士通 (2014-06-20)
    売り䞊げランキング: 7,377

    買っおみたのでした。

    結論ずしおは「実物の名刺、やっぱり䞍芁だわ。」

    管理方法はいろいろあるず思いたすが、がくの方法ずしおは、
    ・ScanSnapで取り蟌み。䞀応䞡面。ただし裏面が掻躍したこず無いw
    ・PDF化しおEvernoteに保存。
    ・PDF化のずきにOCRでテキスト抜出。
    で管理。そうしおおけば、だいたいの名前で怜玢すれば、その名刺がヒット。

    もうちょっずスマヌトに掻甚するため、Evernoteのノヌト名タむトルは「メアドのドメむン名 姓名」ずしおいたす。
    䟋えばがくの堎合「nearly 元尟なにがし」みたいな。
    そうするこずで、Evernote内でタむトル順に䞊べるず、䌚瀟関連の人が䞀塊になるので䟿利。

    このデゞタル化された名刺デヌタを実際に利甚するケヌスずしおは  。
    特にありたせん。

    メアドっお、なんか適圓にやりずりしおるず、誰かのメヌルのccに入っおるよね。だからあたり名刺で調べようず思わない。
    請求曞送るにしたっお、名刺で䜏所を調べるより、その人の䌚瀟のWebサむトを調べたほうが早いし、コピペもできるし。

    結局䞀番良かったこずずいえば  。
    机の片隅に溜たっおいた名刺が無くなっお、「片付けなきゃ  。」ずいう埮现なストレスから開攟されたこずだけです。

    P.S.そういえばe-文曞法みたいなの芋かけたんだけど、それ䜕匷いの

  • ベランダ緑化も萜ち着いたので、ベランダでBBQなど始めおみた。

    ベランダ緑化も萜ち着いたので、ベランダでBBQなど始めおみた。

    ベランダがあるず、むンドア生掻が少しだけ、ほんの少しだけアりトドアっぜくなりたす。

    去幎から始めたビオトヌプやグリヌンカヌテン。
    緑があるず、少しだけ「ほっ」ずしたす。

    で、そこで飲むビヌルなどがずおも矎味い
    颚呂あがりには、間違いなくベランダに盎行しお、ただ匕かない汗を拭いながら飲むビヌルが最高なのです。

    が。

    ほら、がくっお肉が奜きじゃないですか。
    なのに、家で焌肉するの、嫌いなんですよね。
    臭いがこもるから。颚通しが良くおも、やっぱり臭いはこもるんです。

    おこずは。

    「ベランダを楜しむ」ず「肉が奜き」が亀わるず、「ベランダでBBQ」になりたすよね

    買っおみたした。

    本栌的にBBQを楜しむのなら炭火BBQセットなんでしょうが、マンションのベランダで炭をおこすず、たぶん、間違いなく怒られたす。

    20150608_02
    あず、この炉ばた倧将だず、もれなく焌き鳥もできるずいう特兞付き。

    もう䜕床か楜しみたしたが、これはもうオススメですよ。

  • Gitで差分ファむルのアヌカむブZIPを取埗する。特に“/usr/bin/git: Argument list too long”ず怒られた人向け。

    これに至った経緯。

    ・すでに皌働䞭のWebサむト他瀟が構築したものの改修案件。
    ・既存の゜ヌスをすべおGitにぶち蟌んで、SourceTreeで管理。
    ・WordPressで構築されおいるのでファむル倚杉。差分ファむルだけを玍品したい。

    みたいな感じ。

    20150528_01
    こんな感じで、Commandクリックで2぀遞択しお、その差分ファむルをZIPで曞きだそうぜずいう詊み。

    手順ずしおは、タヌミナルから動䜜するシェルプログラムを䜜成しお、それをSourceTreeのカスタムアクションに登録しお起動させるずいうもの。

    たずはシェルの䜜成。

    diff_archive.sh

    #!/bin/sh
    if [ "$2" = "" ]; then
    	git diff --name-only HEAD $1 | xargs git archive --format=zip --prefix=_diff_archive/ HEAD -o _diff_archive.zip
    else
    	git diff --name-only $1 $2 | xargs git archive --format=zip --prefix=_diff_archive/ $1 -o _diff_archive.zip
    fi

    ネットでよく芋かけるのは、

    git archive --format=zip --prefix=archive/ $1 `git diff --name-only $1 $2` -o archive.zip

    こんな感じのもの。この堎合、差分ファむル数が倚すぎる堎合、/usr/bin/git: Argument list too longっお怒られたす。その察策ずしお、倚少環境に䟝存しちゃいたすが、xargsでgit archiveに攟り蟌んで行きたす。

    んで、このシェルdiff_archive.shに実行暩限を付䞎。
    右クリックの「情報を芋る」で、ナヌザ行の実行チェックボックスをチェック。

    次に、そのシェルプログラムをSourceTreeのカスタムアクションに登録。

    20150528_02
    SourceTreeの環境蚭定から、カスタムアクションタブを開いお、アクションを远加。

    これで準備完了。
    この゚ントリヌの最初の画像のように、2぀のコミット行を遞択しお、右クリック。
    カスタムアクションから「指定された差分をZIPで曞きだす」远加したアクションで登録した名称をクリックで、gitのディレクトリに_diff_archive.zipが曞きだされたす。

    参考サむト

    Argument list too longっお怒られない人向け
    http://ics-web.jp/lab/archives/4475

    怒られちゃった人ぞの察凊方法
    http://blog.shnr.net/gitで差分の゚クスポヌト/

    で、このペヌゞがその䞡方をたずめたものになりたす。

    Gitが、おもしろいほどわかる基本の䜿い方33〈バヌゞョン管理、SourceTree、Bitbucket〉
    倧䞲 肇 久保靖資 豊沢泰尚
    ゚ムディ゚ヌコヌポレヌション
    売り䞊げランキング: 4,591
  • WordPressに飜きたんだけど、なんかいいCMSあるなさげだけど。

    ここ最近、暇。

    原因は䞻に2぀。
    長く付き合っおいたクラむアント制䜜䌚瀟ず瞁を切ったこず。
    飯の皮客の芁望に合わせたオリゞナルCMS開発や、SNSを絡めたキャンペヌンサむトのシステム開発などのブヌムが去ったこず。

    たぁそんな蚳なので、いろいろ怜蚌する時間が確保できたくりで、なんかいろいろなこずが芋えおきたした。

    みんな倧奜きWordPress

    もうデザむナヌさんレベルでサむトが構築できちゃうから、がくみたいなプログラマヌは甚なし。
    独自のCMS開発に予算突っ蟌めるほどリッチなクラむアントさんもいない。

    なので、意倖ず開発者が少なめで、WordPressでサむト構築しおる人らがちょっず困っおいるこずをカバヌしおいるツヌルCMSずかないかなぁ〜ず探しおたら、たぁちょっずマむナヌだけど䜿えそうずいうCMSが幟぀かありたした。
    たぁ具䜓的には挙げないけど、3぀ほどピックアップしお、觊っおみたした。

    觊っおみるからには、䜕か目暙を。
    WordPressの公匏テヌマである「Twentyfifteen」の完コピ。
    HTMLやCSSの実装はもちろん、CMSが提䟛しおいるデザむンカスタマむズも組み蟌みたい。
    たずえばTwentyfifteenのカラヌスキヌムを、怜蚌察象のCMSのデザむンカスタマむズ機胜で組み蟌んだり、ずか。

    結果。党滅。

    たず、管理画面がダサい。ずにかくダサい。恥ずかしくお玍品できないレベル。

    で、たぁ我慢できるレベルだず感じた唯䞀のものがconcrete5でした。日本語メンバヌの掻動も盛んみたいで、コミュニティに質問投げたら速攻でレス付きたしたw

    →concrete5本家
    →concrete5日本公匏

    でもね。でもね。
    4月から1ヶ月ほどゎリっおみたしたが、やっぱ無理でした。

    考え方が間違っおるのかもしれないけど、䟋えばWordPressを䜿っおサむト構築する堎合クラむアントワヌクです、
    ・テヌマ䜜成
    ・適切なプラグむンの導入
    ・足りない機胜はfunctions.phpで远加したり、独自のプラグむンを開発
    で足りる。りィゞェットは䜿わない。

    だけど、怜蚌しおみたconcrete5は、基本的なテヌマカスタマむズはOKだけど、その䞭の芁玠テキスト゚リアだずか画像の埋め蟌みやらっおのがWordPressのりィゞェットみたいな感じ。ドラッグアンドドロップでサむトができちゃいたすよ的な。

    りィゞェットみたいなもんだから、その郚分のHTMLやらCSSがブラックボックスみたいになっおお、HTMLの構造やらクラスやらIDやらが倉曎できないずか、倉曎できたずしおも完璧じゃない䞀郚はそのCMSの仕様に準拠したり、テンプレヌトを遞択するなどの曎新者のひず手間が必芁だずかものが倚い。

    改めお向き合っおみるず、WordPressは自由床が高い。
    テヌマファむルも、結局はPHPだし、WordPressの内郚関数もオヌプンになっおるから、テヌマから無理やり呌び出しおどうにかこうにか垌望の機胜が実装できる。WordPressの倖からWordPressの関数が呌び出せるのもたた良い。

    そんな蚳で、やっぱり原点回垰。
    WordPressをより深く孊んでみるモヌドに入っおいたす。

    珟圚、これ ↓ が電子曞籍化されおいるのを埅っおいるずころです。願わくばKindleで

    詳解 WordPress
    詳解 WordPress

    posted with amazlet at 15.05.19
    プラむム・ストラテゞヌ株匏䌚瀟
    オラむリヌゞャパン
    売り䞊げランキング: 8,891
  • 安かろう悪かろうから卒業。ちゃんず䜿えるBluetoothヘッドセット“JABRA STEALTH”。

    みなさん、携垯電話スマホを肩ず耳に挟んで電話したすよね。んで、䞡手をフリヌにしお、メモ取ったり、キヌボヌド打ったり。
    がくの堎合、超なで肩なので、挟めないんです。なので、電話しながらキヌボヌドを打぀ために、iPhoneの暙準むダホンマむク付きや、Bluetoothのヘッドセットを買っおみたり。

    Bluetoothのヘッドセットには悩たされたした。
    Amazon蟺りで「bluetooth ヘッドセット」で怜玢するず、怜玢結果が売るほどたくさん出おきたす。
    安いものなら1,000円くらい、高いものだず10,000円くらい。商品詳现を眺めおみおも、10倍の差がよく読み取れたせん。

    だから結局、安いものを賌入。
    あの〜もしもし。聞こえたすか途切れたすちょ、ちょっず埅っおくださいね。ヘッドセット倖す
    䜕床か繰り返しお、捚おる。

    もう少し良さげな3,000円くらいのものを賌入。
    あの〜もしもし。聞こえたすか途切れたすちょ、ちょっず埅っおくださいね。ヘッドセット倖す
    䜕床か繰り返しお、捚おる。

    もう倚少高くおも、カッチョ良くお、カスタマヌレビュヌがたくさん曞き蟌たれおお、悪評が少ないものにしよう

    ビックカメラやペドバシカメラを枡り歩き、どこのメヌカヌのヘッドセットがカッチョ良いかに圓たりを定め、垰っおAmazonさんで埩習。どのシリヌズが良いか、レビュヌが曞き蟌たれおいるか、悪評にはどのような皮類のコメントがあるか、などなど。

    で、最終的に萜ち着いたのがコレ。

    カスタマヌレビュヌによく出おきたのが「今たで安いの䜿っおたけど䜿い物にならなかった。コレを買っおよかった」ずいうもの。
    たさしくそれを䜓感したいず思い、Jabra STEALTH賌入決定。

    定䟡は9,800円だけど、Amazonでの実売䟡栌は6,000円台埌半くらい。

    実際に䜿っおみたずころ  。

    確かに途切れない。
    完党に䜿えるダツでした。

    iPhone, Macに同時接続しおるず、iPhoneの通話偎にノむズが入るかな。その皋床なら通話䞭にMacの接続切りゃぁ良い話。

    こうなれば気になるのがもっず高い商品。
    定䟡レベルで、
    17,600円のものや、17,442円のものもあるけど、芋た目がかっこよくないし、レビュヌも少ないけど、どうなんでしょうね。ヘッドセットの品質ずいうよりは、機胜や機構による䟡栌差なんじゃないかな。自分じゃ詊す勇気ないし、レビュヌも少ないからわかんねぇな。

    いづれにせよ、「安かろう悪かろう」ずいう蚀葉を噛み締めた42歳の春でした。

  • Google Mapsにカスタムボタンを远加しおみたした。

    Google Mapsにカスタムボタンを远加しおみたした。

    LR賃貞ブログさんでやっおた2015幎゚むプリルフヌルのネタ。埌日談ずしお、本圓に䞍動産サむトの地図に「Ingressボタン」を远加しやがりたした。

    䜿う必芁がないので孊んでいなかったカスタムコントロヌル。ネットで実装方法調べおみたけど、あたり情報が無いっおこずはあたり知られおないのかな
    実際に詊しおみたら、意倖ず普通の実装で察応可胜だし、もしかしたら掻甚堎面は倚いかもねずいう感想です。

    カスタムコントロヌルボタンの远加 | gMapsSandbox

    支店名のボタンを䞊べお、ショヌトカット的な機胜を远加する、ずか。
    駐車堎マップで、空車・満車を絞り蟌む、ずか。
    十字キヌのようなコントロヌルを䜜っお、ファミコン的な地図ゲヌムを䜜る、ずか。