タグ

ブックマーク / docs.komagata.org (16)

  • blockで設定するヤーツ - komagataのブログ

    (ハライチ感) Foo.configure do |config| config.name = "foo" config.email = "foo@example.com" end こっちでもかけたりする。 Foo.config.name = "foo" Foo.config.email = "foo@example.com" こういうやつ。 実装は大体こういう感じになってる。 module Foo class << self def configure yield config end def config @_config ||= Config.new end end class Config attr_accessor :name, :email def initialize @name = "no name" @email = "default@example.com" end e

  • Getting Real的なものとそうでないもの - komagataのブログ

    BasecampのHEYがリリースされましたね。 見れば見るほどBasecamp社のWebアプリの作り方をまとめたであるGetting Realの内容に従って作られてるアプリだなとGetting RealをバイブルにしてWebアプリ作成を仕事にしてきた我々としては嬉しくなってしまいます。(2007年のなのに!) ただ、業界内で「Getting Real良いですよね、私もすごく好きです。」という人は多いですが「え?あんたの作ってるアプリ全然Getting Real的じゃなくない?」ということがしばしばあります。 フィヨルドブートキャンプの最終課題の「自分で考えたWebサービスを作る」ではGetting Realを読んでからどういうサービスなのかを表現するエレベーターピッチを作ることになっています。 しかし「これってGetting Realに書いてあることと真逆じゃない?ホントに読んだ?」

  • わからないときの心持ちについて - komagataのブログ

    プログラミングスクール(フィヨルドブートキャンプ)で勉強している方へよくお話している内容なのでここに書いておきます。 わからない、ツラい プログラミング(に限らず新しいこと)を勉強してるときに、 「何がわからないのかもわからない。ツラい。」 ってときがあると思います。 わからなくて1日何も進まなかったらとてもツラいと思います。1週間何も進まなかったらもっとツラいと思います。 この「何がわからないのかもわからない」というやつ。これはすごくツラいですが、プログラマーにとっては非常によくある状態です。 全然気に病むことはないです。 「ドンマイ、ドンマイ、締まっていこうー!」 ぐらいの感じです。 日々新しい技術を覚える必要があるプログラマーには頻繁におきます。 プログラマーとして働いている人はこの状態のプロです。 むしろ「これが飯の種になる」と考えている節があります。 この状態からの抜け出し方を知

  • 人事リセット問題 - komagataのブログ

    人事リセットとは イベントなどで経営者や現場の人間と意気投合し、是非にと言われて面接に行ったら人事の人には何も話が通ってなくて、 「履歴書・職務経歴書について説明してください。前職ではどのような役割を・・・」 みたいなこと言われて、 「え、知ってて誘ったんじゃなかったの?あれだけ盛り上がったのに無かったことになってる・・・?」 となって意気消沈し、一次面接を通過したのに、 「会社の雰囲気が思ってたものとちょっと違った」 という理由で応募者が二次面接を辞退してしまう現象を言います。 面接を受ける人も紹介する人も経営者も人事も全員不幸になってる気がする。これどうにかなんないの・・・? 人事リセットはネガティブなことか そもそも面接というのはいかに良くない人を落とすかが目的で、その為には入社するべき良い人が多少落とされてしまっても仕方ないという考えもあります。 しかし、市場環境的に現在はプログラ

    fumikony
    fumikony 2019/10/26
  • どの人がプログラマーになれそうかはわからない - komagataのブログ

    フィヨルドブートキャンプというプログラミングスクールをやっていますが、最初の印象で 「この人は良いプログラマーになれそうだな」 とか 「こういう感じの人は続かなそうだな…」 とかそういう先入観は僕らにももちろんあります。 しかし、今までの経験上、そういう先入観ってあんまり当てにならないなと感じます。 良さそうだな〜と思ってた人が全然続かなかったり、逆にすぐに辞めちゃいそうかも?と思ってた人が気づいたら長く続いていて、スキルもしっかり付いていたり。 僕の先入観なんてそのぐらい当てにならないので、今は「ごちゃごちゃ言わずとにかく暖かく見守ろう」というのが新しく入ってきた人へ思うことです。 僕がどう思ってようが1ヶ月ぐらい経ったら答えが出てます。1ヶ月以上続いてる人はみんなすごいと思う。 僕が「英語1ヶ月みっちりやれ」と言われてもできる気がしないし。

  • オブジェクト指向に至るまで流れ - komagataのブログ

    フィヨルドブートキャンプで、オブジェクト指向プログラミングが難しいと感じている人が多いようなので、そこに至るまでの流れを正確さは度外視してざっくりお伝えします。 昔 1 # xxxまでfile読み込みの処理 2 # ... 3 # ... 4 # ... 5 # ... 6 7 goto 1 # read処理の行番号 8 9 goto 101 # write処理の行番号 10 11 goto 201 # delete処理の行番号 同じ処理を呼び出すにはそれが書いてある行へジャンプする命令を呼んでた。 関数の時代 同じ処理をまとめて名前つけて呼び出せたらいいよね。(終わったら自動で戻ってくる) def file_read(filepath) # ... end def file_write(filepath, data) # ... end def file_delete(filepath)

  • 父親に聞いた管理職として「ダメなチームをデキるチームにする必勝パターン」 - komagataのブログ

    もう定年してますが、郵便局の管理職歴うん十年の父親に社会人の大後輩として、 「管理職としてダメなチームをデキるチームにする必勝パターンみたいなのってあるの?」 と聞いたら 「あるよ」 とあっさり。その話が面白かったので紹介します。 背景父親は郵便局員で公務員だった。郵政民営化する前の話。公務員は一般企業と違い犯罪でも犯さない限り首にならない。(管理の難易度が高い)郵便局の仕事は大きく「郵便」「貯金」「保険」の3つに分かれている。父親は「保険」のセールスマンの管理職を長年やっていた。郵便局の管理職は3年(?)毎に別の局(調布市郵便局とか)に移動する。 1. 新しい職場(チーム)に赴任したらそこの中心人物の協力を取り付ける中心人物:顔役的な人で大抵が年長者やリーダー気質の人。どこの組織にも必ずいて、誰にでもすぐに分かるそうです。(役職的には自分より下の人です。) 父「誰に聞いても山田(仮)さん

  • HABTM中間テーブルを間違えずに作る - komagataのブログ

    いつも忘れてググるので。 下記のようにmigrationを作るとcreate_join_tableを使ってくれる。 $ rails g migration create_join_table_user_team user team 下記のような内容でできる。 class CreateJoinTableUserTeam < ActiveRecord::Migration[5.0] def change create_join_table :users, :teams do |t| # t.index [:user_id, :team_id] # t.index [:team_id, :user_id] end end end indexは必要だったら作れということでしょう。(優しい) create_join_tableの良いところはテーブル名の順番をきにしなくて良いところです。この例でもus

  • railsのレールにどれだけ乗れてるかだけで判断するな - komagataのブログ

    長いことrailsばっかりやってると他人のコードを「Railsのレール(流儀)にどれだけ乗れてるか、どれだけ流行りの書き方してるか」だけで判断しがち。 見慣れない書き方だったり、他の言語っぽい書き方だったりするとボロカスに評価しているのを見かける。 Railsに浸かり過ぎて、Railsっぽくないもの=悪。レールから外れている=ゴミ。そういった判断は楽だしRailsプロジェクトにおいては大抵あってる(Railsを理解するのを面倒臭がっているゴミコード)んだけど、対象のコードが持つ価値(どんなことをどういう方法で解決してるのか)を判断する力が衰える気がする。 Railsのレールや最近の流行りの書き方とは違うけど、一貫性のあるコードだったり、不具合が出づらく変更に強いコードってのはある。 特にRails経験は浅いけど他の言語・フレームワークに習熟してる人のコードにそういうものが多い。 手癖でやっ

  • 偽のシンプル、正しいシンプル - komagataのブログ

    組織論でもプログラムでもデザインでも「シンプルにしよう」とよく言いますが意味がフワッとしてるので自分的まとめを。 Rich Hickeyのシンプルの定義 シンプルさの必要性 | eed3si9n 上記の俺的まとめ。 simpleの対義語はcomplex。simpleを語源・対義語から考えると、多数のものを組み合わせてない・一つのものという意味になる。それに対してeasyを語源から考えると、近くのものという意味になる。 complexこそが悪。 easyだけどcomplexなもの = 甘え hardだけどsimpleなものを恐れない。simpleなものはしばしばeasyでない。 命名 上記を使いやすくするために、easyでcomplexなもののことを偽のシンプル、hardでsimpleなもののことを正しいシンプルと名付ける。 simpleでeazyが最良でcomplexでhardが最悪だが、

  • 会社をプログラマー目線でチェックする - komagataのブログ

    9月1日から株式会社Blaboで週2日で働いています。Blabo開発、開発チーム構築、プログラマーのリクルーティングがお仕事です。流行りの暫定CTO的なやつです。1ヶ月で開発が回るようになってきたのでプログラマーの募集を開始しました。 しかし、人事部の出すプログラマー募集っておれら/おまえら的に嘘くさいし、知りたい情報じゃなかったりするので、 「プログラマーとして入社を検討している会社について知りたいこと」 という視点から独自の調査をしていきたいと思います。 RubyRailsのバージョン 100人中65535人のRailsプログラマーが、会社を選ぶ時は給与や福利厚生ではなく、ましてや会社のビジョンでもなく、 「使っているRubyRailsのバージョンで決める」 と答えています(確信) Gemfileを見てみました。 source "https://rubygems.org" ruby

  • レガシーPHP改善日記シリーズ - komagataのブログ

    「FRINGE/フリンジ」の J.J. エイブラムスと「ダークナイト」の脚家ジョナサン・ノーランが贈るわけではない、IT業界のタブーに切り込んだサスペンス実話。 (私人は真剣にレガシーPHPに取り組んでおります。) シーズン1 エピソード1 エピソード2 特別編1 レガシーPHPプロジェクトあるある エピソード3 特別編2 phpプログラマーの募集 エピソード4 エピソード5 エピソード6 エピソード7 エピソード8 特別編3 PHPMatsuri2012 エピソードLAST シーズン2 エピソード0 エピソード1 エピソード2 エピソード3 番外編1 ピクルス原理を誤用(応用)する エピソード4 エピソード5 エピソード6 PHPの落とし穴 PHPの落とし穴1 ツール レガシーPHP診断 レガシーPHP診断 - みんなの診断結果 レガシーPHP改善・コンサルティングはこちらから承って

  • 何故S3(オブジェクトストレージ)を使わなければいけないのか - komagataのブログ

    怖話を作っていてインフラを含めた設計で迷っている箇所がいくつか溜まってきたのですが、もしいい方法があったら教えて欲しいという点をブログに書いていきたいと思います。 前提 エンジニアは僕一人だけなので極力手間を減らしたい怖話は広告モデルなのでアクセス辺りの収益が低い。なるべく安く(できれば無料に)したいデザイナーやインターンの人も開発するので複雑にしたくない(例えば怖話をローカルで開発する環境を作るのにredisとかfluentdとかいろんなサーバープロセスを立てないと画面が確認できないとか) 画像の置き場所に困る怖話はアクセス負荷的にappサーバーの2台目が必要かな?ぐらいの状態にあります。 appサーバーが複数台になると画像などのアップロードされるファイルの置き場を共通にする必要が出る。 一度はappサーバー2台でS3 + CloudFrontにしましたが、転送料が高いからappサーバー

  • rbenvでrubyを入れた時にbundlerも自動で入れる - komagataのブログ

    定期購読しているWeb+DB Press vol.82 ”切りひらくRuby”を読んで知りました。(俺はタバコ吸わないので仕事の休憩時は適当に置いてある雑誌を読む) 今はbrewで入るみたい。rbenvとruby-buildに依存してるからこれからrbenv入れる時はこっちを入れれば一発で全部入りますな。 $ brew install rbenv-default-gems $ vi ~/.rbenv/default-gems bundler rbenv-rehash 中身はbash scriptで俺の知らないテクがたくさんあってよくわかんなかった。

  • logentriesでnginxのエラーを監視する - komagataのブログ

    小さいrailsサービスあるある railsで何かサービスを作ったとする。ExceptionNotificationも入れた。NewRelicで5分毎に死活監視もしてる。なのに「落ちてるみたいです」とTwitterで言われる。 nginx + unicornの組み合わせでアクセスが増えた時、大抵真っ先に起こるのがunicornのtime out。 2013/02/08 18:36:10 [error] 20932#0: *3506622 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 〜ってやつ。 重いDBのクエリとかでアクセスをさばくスピードより接続数が増えてきて起こる。railsアプリまで処理が行かないのでExceptionは起こらない

    fumikony
    fumikony 2013/02/12
  • phpunit + selenium rcで自動テストMac編 - komagataのブログ

    Selenium RCをインストール。 PHPUnitをインストール。 PHPUnit_Seleniumをインストール。 % pear install phpunit/PHPUnit_Selenium testを書く(ファイル名はクラスと同じCamelCase) test/integrations/LoginTest.php <?php require_once 'PHPUnit/Extensions/SeleniumTestCase.php'; class LoginTest extends PHPUnit_Extensions_SeleniumTestCase { protected function setUp() { $this->setBrowser('*firefox'); $this->setBrowserUrl('http://foo/'); } public functi

  • 1