Gitの使い方を覚えるにあたって、まず知っておきたいのは――git-cloneだのgit-commitだのは当然として――「操作をミスったときにどのように回復するか」である。それを実現するのは、次の3つのコマンドだ。 git-commit --amend git-reset git-reflog git-commit --amend あるファイルをコミットしたとしよう。 $ (edit...) $ git commit -am 'メッセージ生成処理を実装したよ。'しかし、しばらくして彼は気づいた。 def create_massage(param) ...typoしてる!massageじゃない、messageだ!マッサージを作ってどうする! 慌てるな。まずは直してステージに上げるんだ*1。 def create_message(param) ...$ git add .そして…。 $ gi
このまえ登り坂の途中でロードバイクのタイヤが破裂しました。ながたです。 今回はバッチ処理について書いてみようと思います。 バッチ処理? Webサービスの処理開始条件は、大まかに次の2つに分けることができます。 ユーザーのアクションに起因するもの ユーザーのアクションに起因しないもの このうち後者の処理をバッチ処理が担当することになります。 バッチ処理の担当分はさらに、 特定の条件(時間やサービスの状態)で実行するもの 手動で実行するもの の2つに分けられます。 今回はこの「手動で実行するもの」について書きたいと思います。 バッチを手動実行するのはどんなとき? バッチ処理を手動で実行するのは、十中八九イレギュラーな状況が発生したときです。 ルーチンワークや実行の条件が決まっているものは何らかの方法で自動化できるはずです。 そしてイレギュラーな状況のほとんどは不具合が発生したとき。 つまり 重
VimでCSSを編集中に色をインライン・プレビューしてくれるCSS color previewというスクリプトをrgb()に対応させてみた。一応rgba()にも対応しているような感じで、透明度を無視してプレビューされる。hsl()とかも対応しようと思ったのだけどRGBからHSLへの変換が面倒になってすぐに諦めた。hsl()とか使わねーよ。 Download: rgb()/rgba()に対応したCSS color preview インストールは$HOME/.vim/after/ftplugin(Windowsでは$HOME/vimfiles/after/ftplugin)にcss.vimとしてコピーするだけ。インストールしてCSSファイルを開くと、 というように背景色でインライン・プレビューされる。プレビューの通りrgba()の透明度は反映されない。matchlist()で書こうとしたのだけ
[GDC 2012]Valve,データベースを使ったファジーな会話システムを紹介するレクチャーを実施。シンプルな原理で,複雑な会話も可能に 編集部:松本隆一 ValveのElan Ruskin氏 Valveは,以前からキャラクター同士の会話を重視するメーカーだった印象が強い。代表的なのは「ハーフライフ 2」だろう。カリフォルニア医科大学と協力して,表情の変化やリップシンクを行う専用エンジンを開発し,それにより,キャラクターの会話シーンをより実感を伴うものにしている。そんなValveがGame Developers Conference 2012で行ったレクチャーが,「AI-driven Dynamic Dialog through Fuzzy Pattern Matching. Empower Your Writers!」だ。直訳すると,ファジーなマッチングシステムを使ったAI駆動の動的会
印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます ここ数年、ソフトウェア開発の世界は比較的穏やかだった。しかし、HTML5が地歩を固め、Windows 8がWindowsの開発シーンに大きな変化を迫っている今では、ジェットコースターの日々が戻り、スピードはますます上がってきている。もし最先端に居続けたいのなら、少なくともこの記事で挙げる10のソフトウェア開発スキルを身につけることを検討すべきだ。 1.モバイル開発 モバイル開発を学ぶのに時間を割く価値などないと考えているのなら、考え直した方がいい。2011年のAndroid携帯の世界出荷台数は、ほとんどPCの販売台数と同じだ。他の有名なモバイルデバイス(iPhone、iPad、そして「瀕死状態」のRIMデバイス)を加えれば、販売台数で見
[GDC 2012]「SimCity」のリードデザイナーが教える,ゲームデザインの基礎 編集部:荒井陽介 Stone Librande氏(EA/Maxis) 前作のリリースから10年ぶりの新作発表ということで話題を呼んだ「SimCity」(関連記事)。そのリードデザイナーであるStone Librande氏が,GDC 2012で「Designing Games for Game Designers」というセッションを開いた。 このセッションは,Librande氏が講師を務めているゲームデザインのワークショップでどんなことが行われているかを紹介するもので,ゲームというものがどのような要素から成り立っているのかが分かりやすく説明されていた。以下にその模様をお伝えしよう。 Librande氏は,Cogswell Polytechnical Collegeや,自身が所属するMaxisで,ゲームデザ
「Git」使ってますか? 近年、分散バージョン管理システム「Git」が急速にシェアを伸ばしています。筆者は、チケットシステムやバージョン管理の勉強会などを開催したりしていますが、Gitユーザーがかなり増えてきていると感じます。 しかしながら、そのような勉強会でアンケートを取ってみると、実案件では半分以上の人がSubversionを利用しており、Gitの導入はまだまだ進んでいません。移行コストが掛かったり、プロジェクトマネージャ層への知名度がまだまだ低いというのもありますが、理由の1つとして、ユーザー管理が煩雑であったり、アクセス制御に関する情報が不足しているということもあると思います。 そういうわけで本稿では、Gitリポジトリのユーザー管理やアクセス制御を簡単に行う「Gitolite」を紹介します。 なお、本稿ではGitの利用方法については紹介しませんので、Git自身の使い方については改め
みなさん、Git使ってますか?僕はまだメインのVCSがSubversionなのもあって、なかなか慣れません。せっかくGitを使っているのに、ちょっと不便なSubversionくらいの位置づけです。でも、同じような理解度の人って多いんじゃないでしょうか。 一方で、最近はGitHub管理のオープンソースプロジェクトが増えてきました。バグレポートを送るにしてもpull request*1が前提のような空気があり、Git初心者には少し敷居が高い印象があります。 そんな僕も先日初pull requestをしてみたんですが、色々な失敗の積み重ねで残念なpull requestになってしまいました。その反省を元に、本稿ではpull requestする際のベストプラクティスを紹介します。これは「Git Workflow」をベースにコマンド例などを加筆したものです。 概要 pull requestする際は、
joelthelion/autojump - GitHub zsh補完関数の書き方をいろいろ調べていたら、autojump-zshというパッケージを発見。 気になって使ってみたらめちゃくちゃ便利で、久々に感動したので紹介。 autojumpはcdコマンドの拡張的なコマンドで、移動したディレクトリを記録し、 ディレクトリ間を行ったり来たりするときに絶大な効果を発揮します。 公式wikiに書いてあるよう コマンドライン作業の10〜20%はcdコマンドのため、ディレクトリ移動の動作が 改善すると必然的に作業効率も向上するということです。 実際私もautojumpを使い出してから、作業効率が上がりました。 それでは早速autojumpの説明を。動作検証環境は下記です。 Mac OSX 10.7.3 Fedora 16 Scientifix Linux 6.1 導入方法 autojumpを利用するに
Google+チームに所属するエンジニアのMark Knichel氏が、Google+の高速性を実現するためにどのようなテクニックを使ったのかについて、Google+のページで解説しています。 (1) Mark Knichel - Google+ - Hi everyone! I’m an engineer on the Google+ infrastructure… 最新のWebサービスでどのようなJavaScriptのテクニックが使われているのかを垣間見ることができる説明になっていますので、見出しを中心に紹介しましょう。 1) We <3 Closure 私たちはClosureが大好きだ(<3は横向きのハートマーク) Closure(クロージャ)とは、オライリーの書籍「初めてのJavaScript」の解説を借りれば、関数の「入れ子(nesting)」です。(追記、このクロージャじゃなく
2009/12〜2010/06 くらいまでの案件で Git を使ってみたので、その感想その他です。毎度長くてごめんなさい。 Subversion の経験はそこそこある状態でのスタートです。 リポジトリ構成のポイント ソースコードは Git、ドキュメントは Subversion で Git はファイル名をバイト列で管理するので、Windows と Linux の両方で使いたい場合は日本語名のファイルは使えません。(今のところ対応予定もないとのこと。ファイルのコンテンツやコミットログについては UTF-8 で統一できるので問題ありません。) ソースコードについては日本語名のファイルは含まれないので Git 管理でいいと思いますが、ドキュメントに関しては難しいので Subversion 管理にしました。 リポジトリの単位は細かく Git では Subversion と違ってリポジトリの一部をチェ
High Scalability - High Scalability - Tumblr Architecture - 15 Billion Page Views a Month and Harder to Scale than Twitter を読んだ。すごく面白かった。 Kindle で引用したところを中心にメモ。 Tumblr のソーシャルグラフの特徴 The graph for Tumblr users has hundreds of followers. This is different than any other social network and is what makes Tumblr so challenging to scale. Tumblr だと follower が数百人いるユーザーはザラにいる。 follower の多いユーザーの post は多くのユーザ
LinuxカーネルやRuby on Rails、Perlなど、近年多くの大規模プロジェクトで採用されているバージョン管理システムが「Git」だ。Gitには非常に多数のコマンドが用意されているが、日常的に使用するコマンドは20個程度と言われている。本記事では、Gitを使いこなすために覚えるべき20個のGit基本コマンドを紹介する。 LinuxカーネルやRuby on Rails、Perlなど、近年多くの大規模プロジェクトで採用されているバージョン管理システムが「Git」だ。Gitには非常に多数のコマンドが用意されているが、日常的に使用するコマンドは20個程度と言われている。本記事では、Gitを使いこなすために覚えるべき20個のGit基本コマンドを紹介する。 なお、Gitの基本的な考え方や使い方については分散バージョン管理システムGit入門でも紹介しているので、そちらも参照してほしい。
Debian GNU/LinuxのRuby関連パッケージのメンテナだったフランス人のLucas Nussbaumさんが、Rubyパッケージの作成・管理に関わるのをやめると宣言しました。その理由を、やや感情的にブログに列挙したことをキッカケに、日本語・英語のコミュニケーションギャップの問題、OS(ディストリビューション)とRubyなどの言語処理系のパッケージシステムの不調和の問題、コミュニティ運営の成熟度など、さまざまな議論が巻き起こっています。 多くの論点を含みつつ議論が展開 念のために先に指摘しますが、Debian上(Ubuntuでも同様)のRubyパッケージの今後については、Lucasさんのほかに、まだ2人、やまだあきらさんと、森脇大悟さんが関わっているので(リンク)、今回の騒動によってRubyパッケージがDebian上でメンテナンスされなくなったり、将来が不安だということはないと思い
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Microsoftから、Visual Studioでの開発をゲーム化するプラグイン「Visual Studio Achievements」のベータ版が公開された(Visual Studio Achievements、 GeekWireの記事、 本家/.)。 プラグインを導入すると、コンパイル時にバックグラウンドでコードが分析され、内容に応じて実績(Achievement)がアンロックされる。また、特定のイベント発生時や操作時にアンロックされる実績もある。実績のアンロック時にはポップアップで通知されるという。実績は6種のカテゴリーに分かれており、アンロックするたびにカテゴリー別のバッジを獲得できる。また、各実績には0~10のポイントが割り当てられており、獲得ポイント順にMSDN Channel 9のLeaderboardに掲載される。実績の例としては、「Lonely (週末の夜にコードを書い
分散バージョン管理システムのGitには様々なサブコマンドがありますが、その中の1つである git filter-branch を使用すると、過去のコミットを完全に無かった事にしてしまうなどの強力なコミット履歴の編集が可能となります。大きなリポジトリの特定のディレクトリ以下の内容をコミット履歴付きで別の小さなリポジトリとして取り出したり、ファイルの中に書かれていた生のパスワードを履歴の中から消去したり、というのはよく紹介される例です。 このエントリでは別の例として、コミットメッセージだけを後からまとめて修正する手順をご紹介しましょう。 元々非公開なプロジェクトとして開発を進めていたものを、公開リポジトリに移動したいとなると、やはり機密情報は完全に取り除いておく必要があります。リポジトリに格納されているファイルそのものの内容の編集方法については上記の例で解説されていますが、それ以外の場合として
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く