タグ

ブックマーク / tech.nitoyon.com (28)

  • Git for Windows でレポジトリー上の CR LF を LF に変換する手順

    Git for Windows では改行コードが「レポジトリー上は LF」「ワーキング ディレクトリーは CR LF」となるように、git config の core.autocrlf が true となる状態でインストールされる (インストーラーでデフォルトの [Checkout Windows-style, commit Unix-style line endings] を選択した場合)。 Windows 以外の文化圏の人は CR LF を見ると CR がゴミに見えるので、妥当な設定だろう。 標準設定の autocrlf が true のときに、レポジトリー上に CR LF なファイルが紛れ込んでいないか調べたり、紛れ込んだ CR LF を LF に変換したかったのだけど、この手順が少しややこしかったので記事にまとめておく。 (autocrlf を false にして clone した

    Git for Windows でレポジトリー上の CR LF を LF に変換する手順
    Layzie
    Layzie 2014/03/28
    “Windows はつらいよ。”
  • Git にパッチを送って取り込まれた話

    Git の挙動に変なところを見つけたので、パッチを作って Git のメーリングリストに投げてみたところ、何度かのレビューを経て、無事に取り込まれた。 Git に貢献したい人とか、オープンソース開発の流れに興味がある人もいるだろうから、作業の流れを書いておくことにする。 1. バグを発見する 何はともあれ、修正したいところを見つけるところから。 先日、git difftool --dir-diff が便利すぎて泣きそうです という記事を書いたが、difftool --dir-diff の挙動を調べているうちに、一時ファイル書き戻し条件が変なことに気づいた。 手元のバージョンが古いのかとも思ったが、master ブランチでも再現したので、ちょっくら深入りしてみた。git difftool は Perl スクリプトだったので、ソースコードに print を追加しつつ挙動を探っていった。しばらく調

    Git にパッチを送って取り込まれた話
  • git difftool --dir-diff が便利すぎて泣きそうです

    Git の 1.7.11 から git difftool コマンドに --dir-diff というオプションが追加されたのですが、これがライフ チェンジングだと思ったので紹介します。 --dir-diff 登場以前の git difftool は「ファイルごとに順番に差分を表示していく」ことしかできず、使い勝手はいまいちでした。それが、--dir-diff オプションの登場で状況が一変したわけです。 こんな感じの使い心地だよ ある Git レポジトリーで dir1/a.txt と dir2/c.txt を編集したとしましょう。 この状態で git difftool --dir-diff または git difftool -d を実行してみると・・・。 はい、差分のあるファイルが一覧で表示されました。 (difftool に WinMerge を設定して、メニューから [ツリー表示] を有効

    git difftool --dir-diff が便利すぎて泣きそうです
  • Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話

    Node.js の次のメジャーバージョン 0.12 で yield が使えるようになります。 そのおかげで、JavaScript のコールバック地獄に光が差し込むのです。ああ、さようなら、コールバック地獄。 7 年ごしで実現した yield 2006 年、Firefox 2 のリリースと同時に yield は JavaScript 界に登場しました。随分と前の話ですね。 登場した当時は JavaScript 界隈でけっこう話題になっていました。 JavaScript 1.7 の yield が凄すぎる件について - IT戦記 Latest topics > JavaScript 1.7のyield文ってなんじゃらほ - outsider reflex JavaScript 1.7 の新機能: Days on the Moon 登場したときにはインパクト大きかったものの、結局 Firefox

    Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話
    Layzie
    Layzie 2013/06/27
    yield便利だなと思う反面、コールバックは地獄と思わない程度には訓練されてることに気づいた
  • ファイル編集したら即ブラウザー再読込させる LiveReloadX を作った

    Web 開発してると、ソースを編集して、ブラウザーをリロードして、という作業の繰り返しになりがちだ。ソースを編集したら、自動でブラウザーをリロードしてくれるような夢のツールがあれば便利そうだ。 この分野では CodeKit や LiveReload などが有名なんだけど、もれなく有料だったり GUI だったりする。そこで、LiveReload のオープンソースな部分を参考にしつつ、コマンドラインで使える LiveReloadX というものを作ってみた。 特長はこんなところ。 Node.js を使ってるので Windows/Mac/Linux 問わずに動かせる 開発環境のブラウザーだけでなくスマートフォンのブラウザーもリロードできる 無料 インストール方法 インストールは超簡単! Node.js をインストールする。 コマンドラインで npm install -g livereloadx

    ファイル編集したら即ブラウザー再読込させる LiveReloadX を作った
  • Node.js+CoffeeScript でソースマップを使ってデバッグを楽にする方法

    以前、jQuery 1.9 のソースマップ対応で圧縮版でもデバッグが簡単になった話 を書いたけど、Node.js でソースマップする方法を紹介する。 何がうれしいかというと、Node.js で CoffeeScript や TypeScript、JSX なんかを使ったときに、例外に含まれるスタックトレースに変換前の位置を表示できる。 やり方は簡単。source-map-support というモジュールを require() するだけ。 ためしに使ってみた GitHub に動かし方が書いてあるので、その通りにやってみる。 こんな感じの demo.coffee があったとする。 require 'source-map-support' foo = -> bar = -> throw new Error 'this is a demo' bar() foo() npm install sourc

    Node.js+CoffeeScript でソースマップを使ってデバッグを楽にする方法
  • jQuery 1.9 のソースマップ対応で圧縮版でもデバッグが簡単になった話

    jQuery 1.9 がリリースされました。1.9 の新機能の中ではあまり注目されていませんが、ソースマップに対応したのが地味に便利そうです。 というのも、圧縮版の jquery.min.js を使っていると 何か問題が起きたときにスタックトレースを眺めても jQuery の部分が意味不明 デバッガーで jQuery のソースにステップインしても意味不明 といった理由で、開発中には非圧縮の jquery.js を使うことが多かったわけです。 それが、1.9 からはソースマップに対応したので圧縮版のままでのデバッグが簡単になってます。 超簡単な使い方 ソースマップに対応したブラウザーは現時点では Google Chrome のみなので、Google Chrome の手順を説明します。 (Firefox はソースマップへの対応を計画中らしい) 事前準備を忘れずに Google Chrome

    jQuery 1.9 のソースマップ対応で圧縮版でもデバッグが簡単になった話
  • GitHub で clone するときは SSH じゃなく HTTP を使ったほうが高速

    GitHub には clone するための URL として [HTTP]、[SSH]、[Git Read-Only] の 3 つが用意されている。 いままで、SSH に慣れているという理由だけで [SSH] を利用していたのだけど、「SSH は転送速度が遅い」という問題がある。 SSH だとこんなに遅い… さっき、[SSH] で clone してみたら 20~60 KiB/s 程度の速度しか出なかった。 $ git clone git@github.com:nitoyon/tech.nitoyon.com.git Cloning into 'tech.nitoyon.com'... remote: Counting objects: 8856, done. remote: Compressing objects: 100% (2125/2125), done. remote: Total

    GitHub で clone するときは SSH じゃなく HTTP を使ったほうが高速
  • 俺の最強ブログ システムが火を噴くぜ

    ブログを「はてなダイアリー」から、自分のサーバーに移転しました。 せっかく移転するなら、2012 年の流行を取り入れた挑戦的なブログにしてみたい!と思い、構想から半年、ついにこの日を迎えることができました。 せっかくなので、凝ったところを自慢させてください。 これが俺史上最強のブログ システムだ ブログ システムとして Jekyll を採用 Jekyll のプラグインを自作 (はてな記法対応、英語ブログとの統合) 履歴管理は GitHub を利用、git push で自動でデプロイ コメント欄には DISQUS を採用、旧ブログへのコメントはインポート済み HTML5 マークアップ、CSS3、レスポンシブ Web デザインでのモバイル対応 盛りだくさんですね。 詳しく説明していきます。 ブログ システムとして Jekyll を採用 最近では WordPress を選ぶのが普通でしょう。Wo

    俺の最強ブログ システムが火を噴くぜ
  • 意外と多い!? Web フォントに対応していない環境 〜2012 年の Web フォント事情〜 - てっく煮ブログ

    html5Web フォントは「Web サイトにオリジナルのフォントを埋め込む」ための技術です。現行のブラウザーは全て Web フォントに対応している状況です。そんな状況であるため、絶対にコピペできない文章を作ったったwwww は Web フォントに依存したコンテンツでしたが、特別な配慮はせずに公開しました。しかし、公開後、Web フォントが適用されなかった複数の方から「コピペできるんだけどどういうこと?」「意味が分からない」というコメントがよせられました。そこで、Web サーバーのアクセスログを解析して「Web フォントに対応していない環境」がどの程度あったのかを調べてみました。4種類のフォーマット一口に Web フォントといっても、フォントのフォーマットは WOFF・TTF・EOT・SVG の 4 種類あります。今後は WOFF フォーマットが標準になっていくのですが、現在ではサポートし

  • 「コピペできない文章」がコピペできなかった理由 - てっく煮ブログ

    html5先日公開した 絶対にコピペできない文章を作ったったwwww はおかげさまで好評だったようで嬉しい限りです。「不思議!」「どういう仕組みなんだ?」という声も多かったので裏側を紹介します。コピペできない訳ではないタイトルは「コピペできない」としていいますが、実際にはコピペはできます。正確に表現すると「コピーすると違う文字になる」という状態になっています。 ではなぜ違う文字になるのでしょうか。結論をいってしまうと「そこにある文字が、人間の目に見える文字とは違う」からです。といっても、これでは分からないですね。今回のために作成された独自フォントトリックの肝は「フォント」です。フォントといえば、文字の見た目を変えるために利用するものです。たとえば、「ほ」という文字を「メイリオ」フォントで表示するとこうなります。フォントを変えて「HG創英角ポップ体」フォントで表示すると、ポップな雰囲気になり

  • msysGit(Git for Windows)がいよいよ公式に UTF-8 をサポート! - てっく煮ブログ

    git最近、Git について勉強しています。Windows で Git をやるなら Cygwin と msysGit(Git for Windows) がメジャーなようです。Cygwin Git のいいとこ悪いとこCygwin は UTF-8 な日語ファイル名にも対応しており、Cygwin の中で閉じて Git を使っている分には何不自由なく使えるのでお勧めです。ただし、次のような悲しいポイントがあります。 Cygwin 版 Git は、Windows 向けの GUI な Git ソフト(TortoiseGit や Git Extensions)との相性が悪い Windows のエディタやマージツールと連携しようとするとパスのポリシーが違うのでうまくいかないnkf を噛ませようとしても、Cygwin 用の nkf バイナリは公式配布されておらず、わざわざ Cygwin 上で make す

  • WinRT の async/await コーディングがおもしろい(のでJavaScriptで真似してみた) - てっく煮ブログ

    Windows 8 開発者プレビューでの開発を試していたところ、非同期プログラミングを簡単に書ける await キーワードが面白かったので紹介します。Windows 8 用に Metro アプリを開発する場合、WinRT(Windows Runtime)というフレームワークを使ってプログラミングします。WinRT では、UI 応答速度を上げるための工夫として、少しでも時間がかかる可能性のある処理は、非同期の API のみが提供されています。なんかめんどくさそうですよね。いえいえ、そんなことはありません。.NET 5 から導入される async/await キーワードでとても簡単に書けてしまいます。HelloWorld アプリケーションのサンプルたとえば、HelloWorld アプリケーションでは次のようなサンプルが紹介されています。 // UI を表示するページのコンストラクタ // UI

  • IE10 Metro 版では Flash が動かないので、いよいよ Flash 終わった感 - てっく煮ブログ

    win8, as3, msWindows 8 の情報がいろいろ出てきています。この中で気になるのが「Windows 8 の IE では Flash が動かない」という話です。ちょっと煽りすぎたかもしれないので、もう少し正確に説明してみます。2つの IE10Windows 8 には2つの Internet Explorer 10 が搭載されます。Metro 版 IE10従来版 IE10利用イメージ: Metro 版 IE10Metro というのは iOS や Android のようにタッチ端末でも使いやすいよう設計されており、Windows 8 の標準 UI に採用されています。Windows 8 を起動すると、タイル上のメニューが Metro で表示されます。タイルメニューの左上にある Internet Explorer を選択すると Metro 版 IE10 が回転しながら起動します。M

  • プログラマブルなコマンドライン ランチャー CraftLaunch 3 が楽しい - てっく煮ブログ

    CraftLaunch3自分はキーボード派なので、コマンドライン ランチャーを愛用している。歴史的には Moonlight → CraftLauch 2 という順に推移してきたのだけど、端末が変わったのをきっかけに CraftLaunch のサイトを見てみたら、いつのまにかメジャーバージョンアップして CraftLaunch 3 ができていた。この CraftLaunch 3 がなかなかプログラマ魂を刺激するもので、「設定ファイルは config.py」というアグレッシブなものになっている。ソースも公開されていて、コードのほとんど全てが Python で実装されている。ソースを参照しつつ config.py に拡張機能を書くことで、いろいろとカスタマイズできる。スクリプト言語でソフトウェアを作るということちょっと前に、「Lightroom は 40% のコードが Lua で、プラグインも

  • jQuery UI モーダルダイアログの仕組み - てっく煮ブログ

    JavaScriptjQuery UI の Dialog 機能はダイアログをモーダル表示することができる。サンプルを見ると、背景がグレーアウトされて、手前のダイアログしか操作できないTab キーを動かしてもダイアログからフォーカスを移せないといった動作になっている。いままでいろんなライブラリの擬似モーダル実装を見てきたが、Tab キーを押したらこっそり裏側の部分にフォーカスを移せるものばかりだったので、Tab キーにちゃんと対処していたところに驚いた。どうやって実装してるんだろうと思って jquery.ui.dialog.js を見てみたら、次のように泥臭く実装していた。 // prevent tabbing out of modal dialogs if (options.modal) { uiDialog.bind('keypress.ui-dialog', function(even

  • HTML5 雑感 - てっく煮ブログ

    twitter にちょぼちょぼ書いてたけど改めてまとめてみた。HTML5 の捕らえ方 HTML5 自体は Flash 対抗というよりも、Ajaxで作ってたようなサイトをより作りやすくするようなものなんだと解釈している。 2010-02-02 21:09:20 via web HTML5 vs Flash の話を見てて気になるのは、人によって Flash を何と捕らえるかが違うところ。videoタグで不要になるFlashは全体の一部だし、Flash使わなくてもできるようなところは既にHTML+JSに置き換わってる物も多い。 2010-02-02 21:09:33 via web JavaScript 使ってるだけで「Ajax だ」「Web2.0 だ」と言われた時代は去り、canvas つかってるだけで「HTML5 だ」と言われる時代がやってきました。 2010-02-11 10:10:53

    Layzie
    Layzie 2010/06/07
    まあ、対立って言うのも一部の人が騒いでるだけって感が。ジョブス樣が煽ってるけどな!
  • Skype Extension for Firefox と Security error" code: "1000 - てっく煮ブログ

    JavaScriptいままで動いていた自作の JavaScript が Firefox でいつの間にか動かなくなる現象が発生したので調べてみた。エラーを見ると Security error" code: "1000 とある。ぐぐってみると、どうやら CSS の insertRule に失敗したときに発生するエラーのようだ。(参考: (solved) Javascriptのエラー: Security error” code: ”1000 | anobota)HTML の構造を見てみるとFirebug で HTML の構造を見てみると、見覚えのない JavaScriptCSS が追加されている。名前から判断するに、Skype と一緒にインストールされる Skype Extension for Firefox が動的に挿入するもののようだ。どこが悪かったのかで、改めて自分が書いたスクリプト

  • jQuery と object タグの怪 (その2) - てっく煮ブログ

    JavaScriptjQuery と object タグの怪 の続き。コメントいただきましたコメント欄で id:coma2n さんのコメントを読んで Silverlight.js の存在を思い出した。Silverlight.jsのヘルパー関数を使えってことなのかなー。ちょっと調べてみます。Silverlight.js の存在を完全に忘れていたが、過去の自分が書いていた…。silverlight.js は SDK インストール時に C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Tools に展開されている。HTML で書くよりも細かな設定ができる印象だ。いくつかの付加機能も魅力的。Flash での swfobject みたいな感じ。Silverlight 2 開発のバリエーション - てっく煮ブログそういえばそんなものがあったなぁ。Silv

  • jQuery と object タグの怪 - てっく煮ブログ

    JavaScriptSilverlightコンテンツを埋め込むjQueryプラグイン - Programmable Life で困ってたので一緒に悩んでみた。でも何故かIEでは動かない。誰か動くようにしてけれ!Silverlightコンテンツを埋め込むjQueryプラグイン - Programmable Lifeobject を作れていない?手元に環境を作って動かしてみると、 に を追加するところで JavaScript エラーが出る。状況を切り分けるために、 を追加する部分をコメントアウトしてみた。IE DOM Explorer で眺めてみると DIV タグが追加されている。どうやら var obj = $('').attr({ ... }); のところで object タグが作られていないようだ。jQuery でよく見る現象だ。こういうときは閉じ括弧を入れてあげると大抵うまくいく。