slim記法を使ってtumblrのテーマを書こうと思うと、slimのシンタックスで書けなくて不便だったので、簡単なヘルパを書いて誤魔化します。 別な応用例として、ちょっと改変すればWordPressやMovableTypeのテーマを作る時にMiddlmanのようなruby界隈の仕組みの恩恵が受けられるでしょう。 middlemanでslim使ってる前提で書きます。
nginxで動的プロキシ環境を作ります バックエンドのアプリはdockerを使用してバックエンドで動くwebサーバーコンテナを立ててそれを動的にプロキシしてみます。 システム構成 OS ubuntu 14.04 LTS Middleware nginx リクエストを受けてバックエンドへプロキシします docker バックエンドのアプリを動かす環境として使用します redis ドメインとバックエンドのアプリのポートを紐付けます lua nginxの設定ファイルの中でredisに接続して動的に値を返す役割 まずはubuntuの設定 # アップデート apt-get -y update && apt-get -y upgrade # 必要なパッケージをインストールします apt-get install -y build-essential autoconf libssl-dev curl lib
[Linux-kernel] Advanced Sector Protectionの機能がついてるNORフラッシュのロック・アンロック対応Linux しょっぱなからマニアックな誰得投稿です。 LinuxでAdvanced Sector Protectionの機能がついてるNORフラッシュのロック・アンロック対応してないっぽいので最近のU-bootを見ながら書きました。 NORフラッシュにはいろいろロック形式はありますが、とりあえずSPBだけ対応してます。 これを当てるとmtd-utilsでNORのセクタロック・アンロックが出来るようになります。 つまり、U-boot上でロックされたセクタをアンロックしたり、その逆がLinux上のコマンドで出来るようになります。 もしかしたら最近のカーネルではすでに対応しているかもしれません。 (この記事は私が書いた https://gist.github.
こんにちはほそ道です。 前回はGruntを掘り下げてみましたが今回は別のビルドツール gulp を取り上げてみます。 複数扱う事で理解や幅が広がりますしね。 最終的には2つを対比したいと思いますので、前回同様に概要を探り、サンプルを作り、アーキテクチャを掘り下げてみたいと思います。 バージョンは下記です gulp version 3.6.2 CLI version 3.6.2 目次はこちら gulp概要 gulpはどういう特徴があるんですかね? 読みは「ガルプ」のようです。「グイグイ飲む」という意味らしいです。 gulpのgithubを見てみるとgulpは 「The streaming build system」 らしいです。streamingの部分がちょっと何言ってるかわかりません。 gulpサイトを見ると下記のような売り文句ですね。 「速い、高品質、習得が楽」 のような事が書いてありま
こんにちはほそ道です。 今回は「jQueryコードハックするならこの仕組み知っとくといいかも」というネタを紹介します。 目次はこちら jQueryの取得先 jQueryコードを入手する場合さまざまなルートがあります - 公式サイトからダウンロード - CDNにホストされたjQueryをダウンロード - githubからclone 今回は3番目のgithub上のjQueryを取り上げます。 こちらはjQueryそのものの開発プロジェクトですね。 Gruntが採用されていてjQueryカスタムビルドを行ったり、 テストを実行する事も出来ます。(コミッターになるなら必須ですね) Gruntわかんねーという方は以前まとめておりますのでご一読くださいませ。 github上のjQuery取得とシンプルなビルド ソースコードの取得とjQueryビルドは下記のように行います。 2系のビルド
現象 pip コマンドを実行すると、 pkg_resources.DistributionNotFound: pip==1.5.4 のようなエラーが表示されて何もできない。 再現手順 Homebrew で Python をインストールする 新しい pip がある状態で pip install --upgrade pip する brew install python すると、 ==> Caveats Setuptools and Pip have been installed. To update them pip install --upgrade setuptools pip install --upgrade pip のように表示されるのですが、この通りに pip をアップグレードすると pip が動かなくなります。 pip がアップグレードされたのに /usr/local/bin/p
Packerを使えばDockerのイメージをDockerfileを使わずビルドすることができる つまり,Dockerfileの特有な記述を使わず,今まで慣れ親しんできたChefやPuppet,Ansibleのようなプロビジョニングツールを使ってDockerのイメージをビルドできる. とのことなので Dockerfile 書かなくても良いじゃん? という。 Packer サンプル試した のサンプル試してみる このサンプルはEC2 $ packer build \ -var 'aws_access_key=XXXXXXXXXX' \ -var 'aws_secret_key=XXXXXXXXXX' \ example.json amazon-ebs output will be in this color. ==> amazon-ebs: Creating temporary keypair:
こんにちはほそ道です。 前々回のGruntと前回のgulpにてそれぞれの基本構造を掘り下げてみたので 2つを対比した感想を述べてみたいと思います。 なお、ほそ道の独断と偏見により書き連ねて参りますので いずれかのツールのファンの方はお気を悪くされないでくださいませ。 目次はこちら 概念図から比較する Grunt gulp 結論、短時間での概念習得に関してはgulpの方が理解し易く、その気になればカスタマイズなども重くなく出来そうです。 gulpは手続型っぽくgulpコマンドのgulp.js内で何となくのシーケンスが把握できます。 図の単純な作成時間は「どうやってまとめよっかなー」的な検討時間も含め Gruntは4時間ほどかかり、gulpは2時間ほどでした。 Gruntの方がオブジェクト指向的な抽象化が多く細かな責務を分担しており、読み解きに手こずったのが原因かと思います。 ただ、更に理解を
「jQueryいつ使うの!?」 「今でしょ・・・?」 こんにちはほそ道です。 というわけで今回からjQueryに取り組みます。 ですが、いきなり飛びつかない! まずはライブラリを疑うところからはじめていきたいと思います。 昨今、とりあえずサイトにjQuery入れとけ的なアプローチだったり ネイティブJSで書ける処理をわざわざjQueryで書いているような開発者を目にする事があります。 あえて始めに言わせていただきたい! JSライブラリを使う事のメリット/デメリットを強く意識しましょう! ライブラリ使う前にネイティブJS書けるようになりましょう! 目次はこちら jQueryとは? いつものごとく公式ページから拝借・意訳します。 高速・軽量・リッチなJavaScriptライブラリ。 様々なブラウザ環境で簡単なAPIからイベントハンドリングやアニメーションやAjaxがうまいこと実現できる。 多彩
はじめに Atomエディタにatom-project-managerを入れれば、Sublime Textみたいに複数のプロジェクトを登録して簡単に切り替えられるようになります。 インストール手順 Atomエディタのインストール Atomのリリースページからatom-mac.zipをダウンロードして展開し、出来たAtom.appをFinderで/Applicationsに移動します。 atomとapmコマンドのインストール Atomを起動し、[Atom]/[Install Shell Commands]メニューを実行します。 atom-project-managerのインストール ターミナルで以下のコマンドを実行します。 使い方 プロジェクトの登録 Atomエディタの[File]/[Open]で自分のプロジェクトファイルがあるフォルダを開いておきます。 [Packages]/[Project
動画ファイルなどの、メモリ量に対して巨大なファイルをアップロードする場合、ファイルを全て読み込んで送信/受信を行うとメモリを圧迫してしまうため問題がある場合があります。 こういう場合はメモリの使用量は一定範囲に抑えるために、バッファに少しづつ読み込んでは送信し、送信できたら次を送信し、あるいは少し受け取ったらファイルシステムに書き出し、書き出したら次を読み込むといったことをやることになります。 rubyでこれを行う場合にどういう方法をとればいいのかについて確認したのでまとめてみました。 結論 送信(クライアント側) net/http を使う場合は Net::HTTPGenericRequest#body_stream= で読み出し可能な File や IO を渡す。 HTTPClient を使う場合はデータとして読み出し可能な File や IO を渡す。 RestClient は1.7.
Ruby 標準添付ライブラリの CSV で Windows-31J (Shift_JIS でも良いけど) な CSV を作っていたのだけれども、特定の文字が含まれていると Encoding::UndefinedConversionError になってしまう。 irb(main):011:0> CSV.open(File.join('/var/tmp/hoge.csv'), 'w', encoding: 'Windows-31J') do |csv| irb(main):012:1* csv << %w( d é f ) irb(main):013:1> end Encoding::UndefinedConversionError: U+00E9 from UTF-8 to Windows-31J irb(main):014:0> CSV.open(File.join('/var/tmp/h
Chef リポジトリは C:\Chef に配置することにします。 続けて Berkshelf は Chef に同梱されている gem でインストールします。 where gem // C:\opscode\chef\embedded\bin\gem // C:\opscode\chef\embedded\bin\gem.bat gem install berkshelf インストールはとにかく時間がかかります。暴走したかと思うくらいかかるので気長に待ちましょう。 (MacBook Air 2012 Middle で30分くらい?) 現時点では Windows + Berkshelf の組み合わせは問題があり、失敗例がいくつか見つかります。 3.x 系のインストールに時間がかかるのでキャンセルして、 2.X 系のインストールも試したりしたところ、こちらは失敗しました。その後気長に待ったところ
以下は私の .zshrc から z.sh の動作に必要な部分を抜粋したものです。古いバージョンの zsh でも動作させるため、直接スクリプトの動作に関わりの無い部分も記載しています。 スクリプトは $ZDOTDIR/z/z.sh に配置 z だとタイプしづらいので j に変更 記録ファイルは $ZDOTDIR/.z に変更 :a や :A などの変数展開制御編集子が使用できないバージョンでは独自にフック関数を定義 autoload -Uz is-at-least # Treat hook functions as array typeset -ga chpwd_functions typeset -ga precmd_functions typeset -ga preexec_functions # Simulate hook functions for older versions if
Github製エディタのAtomがちょくちょく流行って来てますね。 Atomはパッケージ追加で機能拡張出来るのでターミナルをエディタ内部で動かすことが出来るterm2というパッケージを入れようとしたときの話です。 参考: Term2 環境 Mac os X 10.9 $ apm install term2 ✗ > pty.js@0.2.4 install /private/var/folders/p2/m_drpl6s76d21shvl3h4njnh0000gn/T/apm-install-dir-11456-17734-1rq00kf/node_modules/term2/node_modules/pty.js > node-gyp rebuild CXX(target) Release/obj.target/pty/src/unix/pty.o npm http GET https:/
srcの中のソース書き換えると自動でサーバに反映されるので楽~ Leiningenをインストール 必要なら環境変数HTTP_PROXY, HTTPS_PROXYを設定 lein new compojure sampleweb1コマンドでプロジェクト作成(最後は適当なプロジェクト名) cd sampleweb1で作成したプロジェクトに移動 lein ring serverでサーバ起動 おわり Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
iOSアプリを作る場合、blocksを使い非同期処理後にViewControllerなどでその処理の実行内容から任意の処理を実行する場合があった。Swiftではクロージャ(closures)を使い同じような処理を行うための実用的な方法を書いておく。 シンプルなクロージャの記述 まずクロージャの記述 override func viewDidLoad() { //クロージャ let example = { println("exampleじゃけん"); } request(example) request({ println("そのまま渡すこともできるけえの") }) } //クロージャを引数として渡したいメソッド func request(completion: () -> ()) { //渡されたクロージャを実行する completion() //しかしこれはクロージャcompletio
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く