サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
都知事選
d.hatena.ne.jp/kitokitoki
いちいちバカ騒ぎして喜んでないで、どうしたら直せるのか、どうしたら回避できるのかと発想して、淡々と取り組むのがよいのではないかと思います。仕事を依頼する側として期待するのは、依頼した仕事に対する成果です。ボクの実装がうまく動かない原因が、ボクのコード以外にあったら、みつけたときはそりゃーほっとするし、うれしいのですけど。信憑性のあやしい、「淡々と取り組むこと」のメリットは、気持ちが盛り上がってしまうと、そこで意識がとまるから、成長が止まる感覚があるというのもあります。
あらゆるコンテナでrenderしない。コンテナ自身はDOMを知らない。 https://github.com/stipsan/epic/blob/master/src/client/containers/Games.js https://github.com/stipsan/epic/blob/master/src/client/containers/Dashboard.js など。大胆だなー、こういうプルリクしてくる人と仕事したい、マージしたくないけど。といった程度の感想だったのだけど、 https://speakerdeck.com/koba04/reactfalsezui-xin-dong-xiang-tobesutopurakuteisu?slide=44 を読んでだんだん印象が変わっていった。 といったようなことを、今お世話になっている会社さんのチャットでつぶやいた。
List ディレクトリの直下に index.js を用意すると、 import の from のところを List というディレクトリ名の指定だけですませることで、index.js が読み込まれる。 だから、以下のような構造でモジュールがあるときには、 List ├── List.js ├── ListItem.js ├── MakeSelectable.js └── index.js index.js で以下のように記述すれば、 export List from './List'; export ListItem from './ListItem'; export MakeSelectable from './MakeSelectable'; export default from './List'; List, ListItem, MakeSelectable の取得を以下のように一行
~/.gitconfig [core] attributesfile = ~/.gitattributes ~/.gitattributes *.min.js binary *.min.css binary
自分が本気で興味のあることなら、ゴミクズみたいな実力のときに、他のエンジニアに教えて教えて教えて教えてって迫らないはず。ひとりで夢中になって取り組む時期があるんじゃないかなぁ、と思います。チームで仕事をするなら、まずは態度だけでもいいので、自分の成果物で他のエンジニアに迷惑をかけたり、足かせになるようなことはしないといった水準を目指すべきだと思いました。そういう心境になることが多いです。
Sirupsen/logrus でアクセスログとエラーログを別ファイルにするのに、それぞれに対して logrus.New() しました。呼び出しはそれをラップした関数を通して行います。 package main import ( "github.com/Sirupsen/logrus" // "github.com/k0kubun/pp" "fmt" "net/http" "os" ) var errorLog = logrus.New() var accessLog = logrus.New() func init() { accessLogFile, err := os.OpenFile("access.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { panic(fmt.Sprintf("[Error]:
github.com/BurntSushi/toml の設定ファイルを config.dev.toml, config.prod.toml などと用意して、 [server] port = "8080" [api] origin = "http://example.com" path = "/api/v1" 以下のようなコードで分岐して、ENV=dev go run main.go する。 import ( "github.com/BurntSushi/toml" "github.com/k0kubun/pp" "os" ) type Config struct { Server ServerConfig Api ApiConfig } type ServerConfig struct { Port string `toml:"port"` } type ApiConfig struct
リージョンを選択して、 M-x ucs-normalize-NFC-region ▼ 例文 データバインディング 参考リンク 紹介マニアどらふと版: Mac OS X におけるファイル名に関するメモ(NFC, NFD等)
git blame に対し、ネガティブなことを語っているのをたまに見かけます。それはその人の性格に起因するのではないかと思います。ソースコードを読んでいて意味不明な一行をみつけます。git blame して、対応するコミットのハッシュをみつけます。git show します。コミットメッセージを読んで意図を読み取ります。無理なら仕方なく表示された diff を全部みます。grep は便利です。プロジェクトのソースコードに grep -r するのに加えて、このようにいわば、時間の流れに対して grep できます。GitHub や GitLab には、メンバーのコミット量をチャート化する機能があります。あれはメンバーの精神性がそれなりに上等だったり、似ていたりしていない場合は、くだらないと思います。検索性や閲覧性を考えてコミットをつくるのがよいと思います。大量の JS 付きの有料テンプレートを取
method_missing を再定義したときは、respond_to? も再定義した方が良いのか検討すべきです。書籍「メタプログラミングRuby」でも指摘されています*1。 class Foo def initialize(bar_obj) @bar_obj = bar_obj end def method_missing(name) if name.to_s =~ /^(aaa|bbb|ccc)$/ @bar_obj.send("some_#{name}") end end def respond_to?(method) @bar_obj.respond_to?("some_#{method}") || super end end class Bar def some_aaa; "a"; end def some_bbb; "b"; end def some_ccc; "a"; end
app/models において、include ActiveModel::Model したクラスに、attr_accessor で追加したアトリビュートに、バリデーションエラー時などに、日本語名を割り当てるには、config/locales/ja.yml で以下のように指定します。 ▼ config/locales/ja.yml など activemodel: models: foo_table: フーテーブル attributes: foo_table: bar_column: バー 参考リンク http://www.tablexi.com/blog/2012/05/rails-active-model-and-localization/developers/ https://github.com/rails/rails/blob/v4.1.6/activemodel/lib/activ
has_secure_password で認証機能を実装していた パスワード変更機能を追加でつくることになり、パスワード変更画面で、現在のパスワード欄と、新パスワード欄と新パスワード確認欄を設けて、User モデルでいろいろバリデーションを書いた。 現在のパスワード欄の入力が妥当かは、 has_secure_password で使っている authenticate を利用した def authenticate(unencrypted_password) BCrypt::Password.new(password_digest) == unencrypted_password && self end うまくゆかなかった user オブジェクトに password を格納した時点で、user.password_digest が更新されているのかもしれないと思った 試しに以下のような befor
「週末は tmux のカスタマイズをします。screen はやめます!」と Qiita::Team か何かに書いた気がするのですが、色の設定をしているあたりから脱線して mlterm の導入作業をしていました。ありがちですが、趣味の時間だし、まぁいいか。そのときのメモです。 mlterm の sourceforge のページは、 http://mlterm.sourceforge.net/ です Ubuntu ならインストールは sudo apt-get install mlterm で OK です テキストファイルの編集で設定をするには、~/.mlterm ディレクトリをつくり、/etc/mlterm 以下を参考に上書きしたい内容を作成します /etc/mlterm /etc/mlterm/aafont /etc/mlterm/color /etc/mlterm/font /etc/ml
勤務先の凄腕ハッカーの方に、おおよそ次のような書き方を教わりました。考えろ! というかんじ。爽快な一日でした。 if [ `echo 'hogefuga' | grep 'fuga'` ] ; then echo 'ok' fi
BOOKSCAN プレミアム会員で月50以上電子書籍化してほしいとき、超過分の料金の払い方の情報はあるのに、金額がわからかったので、サポートセンターに問い合わせたところ、丁寧なご回答をいただきました。ブログに転載しても問題ないそうなので共有します。2014/4/13 の情報です。 ▼ 質問 超過分の料金につきまして 超過分事前振込みという仕組みがあることを知りました。 しかし、超過分の費用がわかりません(リンクなどがあると便利だと思います)。 たとえば、50冊超過ですと、プラス 9505 円でよいのでしょうか。 月 50 冊ペースではなく、一気に 200 冊程度したい、というのが背景にあります。 ご回答、よろしくお願いします。 ▼ 回答(2014年4月13日) お問い合わせありがとうございます。 > しかし、超過分の費用がわかりません(リンクなどがあると便利だと思います)。 > たとえば、
文字コード タイムゾーン 浮動小数点 てきとうなこと、書きました。次点はインプットメソッド。 こういうのが好物で、なおかつフルスタックエンジニアなら、君は CTO だ!
現象 $ vagrant up The guest machine entered an invalid state while waiting for it to boot. Valid states are 'starting, running'. The machine is in the 'poweroff' state. Please verify everything is configured properly and try again. 調査 VirtualBox から該当イメージを起動してもエラーになりました。 VT-x is disabled in the BIOS. (VERR_VMX_MSR_VMXON_DISABLED). 終了コード : NS_ERROR_FAILURE (0x80004005) コンポーネント: Console インターフェース: ICons
expect(subject) と書くのに違和感があるなと思ったら should でいいんじゃないですかねと myronmarston さんたちが議論済みだった。expect_it というのも検討したけどやめたとのこと。Qiita の Ruby - RSpecのshouldはもう古い!新しい記法expectを使おう という投稿のコメント欄でも議論があった。 ruby - Using implicit `subject` with `expect` in RSpec-2.11 - Stack Overflow Add support for `expect(value)` syntax. by myronmarston · Pull Request #119 · rspec/rspec-expectations せっかくなのでいろいろ読んでいると、rspec-core/lib/rspec/c
<%= link_to t('common.foo'), foo_path( ) # またはオブジェクト data: { confirm: t('common.bar') }, class: "btn btn-danger", method: :delete, remote: true %> def destroy return unless request.xhr? # render nothing: true #編集も in place edit で ajax なときは render json: { action: "delete" } とかで区別するといった工夫をする end $(document).on "ajax:success", ".js-tr", (event, data, status, xhr) -> $(event.target).closest('tr').fade
データベースのテーブル定義で、カラムの順番が重要になることなんてあるのかな、ドキュメントの生成かな、よく知らないけど。ぐらいの認識なのですが、CSV をそのままテーブルに対応させる場合に、プログラム側で都合がよいとこがありました。 あとになってカラムを追加することになった場合は、マイグレーション時の add_column で :after => :column_name と指定する ことでカラムの挿入場所を決めることができます。APIdock になくてググると stackoverflow に投稿がありました。手元の環境では MySQL を使っています。 class AddNewColToTableA < ActiveRecord::Migration # some_column の後ろに new_col, new_col_en を追加 def change add_column :tabl
課題 ransack gem で、Datepicker for Bootstrap を使い f.text_field で日付を検索するようにしました。すると、結果のフォームの表示が、"2013-12-25 00:00:00 +0900" などとなりました。"2013/12/25" としたいです。 対処 いくつか解法があると思いますが、以下で OK。ハッシュの入れ子で ActiveSupport の try みたいなことをする方法があれば、コメント下さい。 ▼ ビューのフォームの該当箇所 <%= f.text_field :created_at_lt, class: "datepicker", placeholder: "yyyy/mm/dd", value: fdate(params[:q] && params[:q][:created_at_lt]) %> ▼application_he
tmux で ls したところ色が付きませんでした。これは .bashrc の alias ls="ls --color=auto" が効いていなかったから。ということは、~/.bashrc が読み込まれなかったのか。対処方法を調べると、.bash_profile で ". ~/.bashrc" するという案もあったのですが、.tmux.conf へ次のようなの設定をすることにしました。 set -g default-shell /bin/bash 意味は、日本語版 man から引用しておきます。 default-command command 新しいウィンドウで使われるコマンドを command に設定します。 これには sh(1) コマンドの一種が指定 できます。 デフォルトは空文字列で、これは tmux に default-shell オプションの値をつかってログイ ンシェルを実行す
Kernel#warn じゃないんですね。 ▼ 呼び出し def rendered ActiveSupport::Deprecation.warn("response.rendered has been deprecated. Use template.rendered instead", caller) @template.instance_variable_get(:@_rendered) end ▼ 定義 module ActiveSupport module Deprecation class << self attr_accessor :silenced def warn(message = nil, callstack = caller) return if silenced deprecation_message(callstack, message).tap do |m|
正確には man lsof を参照して下さい。 $ sudo lsof -i TCP:8984 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 4914 m 114u IPv6 20871 0t0 TCP *:8984 (LISTEN) $ sudo lsof -i TCP:8000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME firefox 2534 m 88u IPv4 117673 0t0 TCP localhost:47075->localhost:8000 (ESTABLISHED) firefox 2534 m 91u IPv4 125698 0t0 TCP localhost:47712->localhost:8000 (ESTABLISHED) fire
foreman で呼び出すコマンドのラッパーシェルスクリプトの例で使われていた。 ▼ ddollar/foreman Wiki / Environment specific Behavior #!/bin/bash if [ "$RACK_ENV" == "development" ]; then exec bundle exec shotgun -p $PORT else exec bundle exec thin start -p $PORT -e $RACK_ENV fi ▼ exec - Wikipedia Unixシェルの多くにも exec という組み込みコマンドがあり、指定されたプログラムでシェルプロセスを上書きする。この機能は、環境変数などを設定して実際のプログラムを実行するラッパースクリプトによく用いられる。exec を使えば、実際に実行したいプログラムが起動した際にシェル
middleman-sync だと、手元の環境では dot を含むバケット名に sync できなかったので調査していて、たまたま middleman-s3_sync gem を見つけました。config.rb で s3_sync.path_style = true にしておけば、dot を含んでいてもアップロードします。ついでに標題の問題にも対応していました。 ;;https://github.com/fredjean/middleman-s3_sync#why-not-middleman-sync Why not Middleman Sync? Middleman Sync does af great job to push Middleman generated websites to S3. The only issue I have with it is that it pushe
Google Maps API v3 で 日本海(東海)と「東海」が併記されています。 これを避けるには region パラメータで JP を指定します。 ▼ 日本海か東海か Google Earthが海洋名の記載方針を発表 - ITmedia ニュース 米Googleが公式ブログで、Google Earthでの海洋名の表記方法に関する方針を明らかにした。今後、地名 の呼称の決め方や国境の位置の定め方、一部の地域や場所の画像が不鮮明になっている理由などについても 説明していくという。 ... また英語以外のバージョンでは、その言語で用いられいてる名称のみが表示されるようにした。例えば日本 語版Google Earthでは「日本海」とのみ表示され、韓国語版では「東海」とのみ表示される。このケースで も、クリックすると名称に関する政治的論議が表示されるよう設定されている。 ▼ Google M
slideshare, SpeakerDeck の URL でページ番号を指定するには slideshare は "/ページ番号" を付けます SpeakerDeck は "?slide=97" を付けます SpeakerDeck のページ番号は下部にあるプログレスバーにマウスオーバすると表示されます 例: slideshare http://www.slideshare.net/kotobuki/maker-faire-tokyo-2012/9 例: SpeakerDeck http://speakerdeck.com/embed/5055be2ab4dbee0002047985?slide=97
toolbelt.heroku.com の heroku コマンドインストールスクリプト が、sudo してコマンドを実行するシェルスクリプトの書き方の参考になりました。 # https://toolbelt.heroku.com/install-ubuntu.sh echo "This script requires superuser access to install apt packages." echo "You will be prompted for your password by sudo." # clear any previous sudo permission sudo -k # run inside sudo sudo sh <<SCRIPT # add heroku repository to apt echo "deb http://toolbelt.hero
次のページ
このページを最初にブックマークしてみませんか?
『d.hatena.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く