ブックマーク / bugrammer.hateblo.jp (33)

  • 日報: とある企業に面接に行ってきた(1) - Line 1: Error: Invalid Blog('by Esehara' )

    今日の風景 転職しようとする人のモノマネです 文 シリーズもののように、連番は付けているが、これが続くかどうかはわからないが、感触からすれば続くだろうなと思ったので連番にしようと思った。 一般的に、最近の企業ならば、面接者にコードを書かせるかと思われる。とある企業では、事前に聞いていたテストだったので、ここで種あかしするのは野暮であり、と同時に一部には「とある企業」の「とある」が分かってしまうので、曖昧にぼかすのだけれども、基的に自分はREPLに甘やかされていて、それで通らないコードを提出してしまった。 なので、今からでもいいから「そのソース書きなおさせろ」と殴りこみをかけたいものだが、良識を分きまえているつもりなので、それは知なかったが、動かないコードが、あとから動かないと気がついて、面接会場から出るというのは、当に恥かしい経験で、穴があったら入りたいどころか、穴二つ分作りたい気分

    日報: とある企業に面接に行ってきた(1) - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/10/24
    `str.chars.each_slice(2).map(&:first).join` で良さそう
  • 日報: 治安の悪い「オッ」界隈について - Line 1: Error: Invalid Blog('by Esehara' )

    「オッ」界隈とは何か 「オッ」界隈とは、簡単に言ってしまうならば、Twitter上で、何らかの発言や記事に対して「オッ」とだけ返す界隈が存在していることを指している。例えば、「お腹すいたな」という発言をすると、「オッ」とだけリプライが返ってくる、そういう界隈である。 来ならば、そういう発言に関しては、お気に入りに入れてほんわかと見守るのが、インターネット上のマナーとなるわけだが、「いいね」とすることが、どちらかと言えば消極的な返事に対し、「オッ」と返すことは積極性を反映し、興味関心が非常に強いということを相手に伝え、繋がりが薄いと言われている現代社会に強い絆を作りだすと同時に「お前を見ている」というビックブラザー効果が期待できるということらしい。 上が、そのようなビックブラザー性を象徴する「オッ」界隈の画像である。 要するに「オッ」と言われたら「オッ」と返ってくるようなインターネット、こ

    日報: 治安の悪い「オッ」界隈について - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/10/24
    オッ
  • 日報:「会」をやる - Line 1: Error: Invalid Blog('by Esehara' )

    今日の風景 最近の、ごくごく一部のエンジニア界隈では、言葉を短縮する傾向にあり、例えば「気持ち」だとか、あるいは「やっていく」とか、そういった雑な言葉が日々誕生している。その理由を察するに、基的には曖昧さとか雰囲気とか、あるは日語の乱れとかそういうことなのだろうと思う。そういう言葉使いが好きな人は小林銅蟲先生の「めしにしましょう」という料理漫画が近日発売されるので、予約購入するといいのではないか、と思う。 めしにしましょう(1): イブニング 作者: 小林銅蟲出版社/メーカー: 講談社発売日: 2016/11/22メディア: コミックこの商品を含むブログを見る で、その文脈を補強した上で、さらに曖昧な形で、知人達がやっている「サウ」という場所で、「JSの会」、通称「会」というのをプライベートでやったりした。「サウ」とは下のような場所である。 「サウ」というのは「サマーウォーズ」の略で、

    日報:「会」をやる - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/10/18
    煙そう
  • Rubyのグラフライブラリ(gnuplot)で砲台ゲームを実装しよう - Line 1: Error: Invalid Blog('by Esehara' )

    今日の風景 寿司の電子工作 はじめに 今は廃刊してしまった、昔懐しい『ベーシックマガジン』という雑誌には、大抵簡単なゲームのコードが載っていた。俺を含めたパソコン少年は、そのコードを見ながらパチパチとコードを打っていたわけだが、そういったサンプルコードリストの一つに、大抵は「砲台ゲーム」というものが存在していた。 仕様としては、ある範囲が的になっており、角度と強さを指定し、投射線を描写する。的の範囲に入っていたら的中となり、的の外になっていたら外れということになる。 大抵、このゲームに関しては、30代から40代にBASICを触っていたおじさんであるならば、何処かで見たことがあると思うのだけれども、舞台がWebになった現代には、このような「砲台ゲーム」を作るといったようなサンプルを見ることは殆どなくなった。 で、前回にRubyからgnuplotを触るエントリを書いたわけだけれど、「あれ、グラ

    Rubyのグラフライブラリ(gnuplot)で砲台ゲームを実装しよう - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/10/13
  • 日報: 「0点を50点にする人」と「50点を100点に近づけていく人」 - Line 1: Error: Invalid Blog('by Esehara' )

    今日の風景 プロトタイプとプロダクトの違いを視覚化したものです 雑談 今現在、プログラミングのリハビリもかねて、自分のできる範囲で知人のプロダクトを手伝っている。進捗的にはそこそこ理想的な進捗になっている。これはVue.jsのおかげであるのが殆どで、たぶん、普通にjQueryでスクラッチで書いたら、今の工数の5倍はかかっていたと思う。それだけ、UI周りの挙動をライブラリに丸投げできることは、とてもいいことである。そのあたりについては、過去のエントリに書いたので参考にしてもらえれば、と思う。 「日報」という題名が付いているときは、大抵は証拠の無いことを、自分が思ったままに書くエントリということになるんだけど、今回もそういったエントリになる。最近ちょっと思ったのは、いわゆるWeb系エンジニアと呼ばれる人達には、プロトタイプを作るのが得意な人と、プロダクトとしてリリースするのに品質を上げていくの

    日報: 「0点を50点にする人」と「50点を100点に近づけていく人」 - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/10/09
    わしが前者で同僚が後者という感じで助かってる
  • アナグラムを素数の積で求めると簡単(ではないけど)判定できるよって話 - Line 1: Error: Invalid Blog('by Esehara' )

    今日の風景 つくりおきはじめました。 はじめに 元々は 永和システムマネジメントの技術面接で出された問題らしい。こく難しく言えば「ある文字列」(この文字の集合をAとすると)と「ある文字列」(この文字の集合をBとする)とした場合、このAとBの文字の集合が一緒であるかどうかをどのように判定するか、という問題らしい。もうすこし簡単に言えば、Bの文字列はAの文字列かどうかをどのように判定するかということである。 この問題の解き方は簡単で、先に言ってしまえば次のようになる: def anagram(s1, s2) s1.chars.sort == s2.chars.sort end これは、順序を考慮しない集合の場合、同じ要素が一対一になっていればいいということなわけだから、とてもシンプルでわかりやすい解答である。ただ、元のエントリが「Scheme」で書かれているので、Redditの日語Lispコ

    アナグラムを素数の積で求めると簡単(ではないけど)判定できるよって話 - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/10/05
    なるほど
  • 明日は誕生日なので本当の乞食というものをお見せしますよ - Line 1: Error: Invalid Blog('by Esehara' )

    今日の風景 今年も生き伸びてしまった。 誕生日 in 山谷 とうとう33歳となった。33歳といったところで特別に何かが変わるわけではない。変ったことと言えば、山谷のドヤ街でゴロゴロし、隙間から這い出る虫(具体的な名前は付せる)の姿を見るにつけて、侘しい気持ちになったりするくらいのものである。そんな暮しとはいえ、パソコンさえあれば、プログラミングができるので、それで時間を潰し、その知見というものをブログに書くという日常を送っている。 時折、酒で酔っぱらった老人の唸り声が、薄い壁越しに聞こえてはくるが、文明の力であるところの耳栓があれば解決する。耳栓は下のものを使っている。しかし、半日ほどつけているため、耳の垢が貯まるのが唯一の弱点である。 MOLDEX 使い捨て耳栓 コード無し 6620 Goin'Green 10ペアパック 出版社/メーカー: MOLDEX(モルデックス)メディア: ヘルス

    明日は誕生日なので本当の乞食というものをお見せしますよ - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/10/01
    食べ物の差し入れをした
  • 運気を上げるために魔方陣を作る(初級編) - Line 1: Error: Invalid Blog('by Esehara' )

    今日の寿司 中身が気になる御歳頃。 はじめに 最近運気が悪く、悪夢も良くみるようになったので、これは邪気を払う必要がある。なので、そういうのに使えそうなものと言えば何か考えたら、魔方陣ではないか、ということを考えていた。 昔の夢は何だったか思い出すと、科学者か魔法使いになりたかった思い出があり、極まったプログラマというのはWizardと呼ばれる。さすがに、自分がそのレベルに達しているとは思えないが、どうせだし、魔法陣くらいは作れるようになりたいと思ったので、今回のエントリを書く。以下、『魔方陣の世界』という参考書(エントリの最後に記述する)を元に書く。 魔方陣とはなにか とはいえ、魔方陣とは何かについて、最初に書いておかないといけない。魔方陣とは、1から始まる連続した異なる自然数を碁盤の目状に並べて、それぞれの列、それぞれの行、そして対角線の数の和が一緒であるものを指す。具体的には、下のよ

    運気を上げるために魔方陣を作る(初級編) - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/08/09
  • YAPC8oji用に80枚まで作ったけど、没になったスライド 「プログラミング言語処理入門以前」 を公開します - Line 1: Error: Invalid Blog('by Esehara' )

    今日の料理 はじめました。 没になったスライド プログラミング言語処理入門 (YAP(achimon)C::Asia Hachioji 2016 没スライド) from Esehara Shigeo 理由 YAPC8ojiでトークをすることになったので、登壇初心者のみなさんへというページを読んでいたら、「同僚や友人やぬいぐるみなど相手に練習するのは良いことです。」という、いいことが書かれていた。なので、友人にスライドを発表した結果、そのフィードバックとして 話題がとっちらかりすぎていて、話についていけない 今、何が主題になっているのかよくわからない ただいろんな言語を知っていることを自慢したいだけでは 30分で90枚は、お前は時間というのをナメている という、極めて理知的なフィードバックを頂いた。で、今回はちゃんとした成果物があるわけだから、それが動く様子をきちんと紹介したほうがいいのでは

    YAPC8oji用に80枚まで作ったけど、没になったスライド 「プログラミング言語処理入門以前」 を公開します - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/06/27
    たしかに早口で読み上げるだけでもタイムアップしそうだw -> "30分で90枚は、お前は時間というのをナメている"
  • 今日のポエム: 「内側」から攻めるか、「外側」から攻めるか - Line 1: Error: Invalid Blog('by Esehara' )

    今日の料理 100円の餃子は著しくコストパフォーマンスが高い。 Re: 一つの言語に集中できない phaendal.hatenablog.com を読んだ感想です。 多分、多言語をいちらかしているような人間からすると、同じような悩みを持っていると思う。自分も、最近はRubyとRacketに落ちつきつつあるけれども、OCamlに興味が出てきたらOCamlに突っこんでいくし、Smalltalkに興味が出てきたら、Smalltalkに突っこんでいくということを繰り返していたりする。 自分の強迫観念というか、それこそ自責することの一つに、「こんなお金にできない言語をやっている暇があるんだったら、SQLの一つくらい覚えたほうがよほど金になる」というのがある。そういう現実主義的な自分がいてクラクラしそうになる。 簡単に言ってしまえば「気質の問題」というか「飽きっぽさ」という単純な解答はあるんだけど、

    今日のポエム: 「内側」から攻めるか、「外側」から攻めるか - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/06/22
    SQL 、簡単すぎるので、サッと覚えてしまうといい -> "「こんなお金にできない言語をやっている暇があるんだったら、SQLの一つくらい覚えたほうがよほど金になる」"
  • オオギリダイバーという大喜利イベントに人工知能を持ちこんで参戦した話 - Line 1: Error: Invalid Blog('by Esehara' )

    今日のラーメン 人工知能は人間がボドルネックだった 日曜日は、オオギリダイバーというイベントがあり、それに『大喜利β』という人工知能が参戦すると聞いてきたので、元エンジニアで、ふらふらと大喜利に参加していた身としては、そりゃ参加しなきゃいけないだろうということで、人工知能のメカ大喜利くんを持ちこんで参戦してきた。どういうイベントかというと、こういう奴。 オオギリダイバー“フォース”Ⅱ【2ndステージAブロック】サツマカワRPG vs 能登たわし vs アキヤマ vs 俺スナ 結論から言うと、惨敗。でも、惨敗の結果は、結構面白い。 人工知能が意味不明なボケをだして滑る、というところの惨敗の結果ではなかった。実際のところ、システム上では、観客席から見ていた身からすると、確実に「大喜利β」の打率というか精度は抜群だったように思う。 どこで負けたかというと、事前に人工知能用に出されたレギュレーショ

    オオギリダイバーという大喜利イベントに人工知能を持ちこんで参戦した話 - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/06/20
    入力辛い
  • PythonからRubyに移行した人間の印象 - Line 1: Error: Invalid Blog('by Esehara' )

    今日の料理 安物のねぎとろは、納豆と良くあう。 前提 はじめてのにき(2016-06-16) より。 このエントリの立ち位置について 元々はPythonを勉強していたのだけれども、仕事の関係上、Rubyを主軸にすることにした人間のエントリです。ちなみに、PythonRubyの立ち位置には詳しくなく、主観を元に構成されているので、客観的な部分に関しては弱いことをお断りしておく。また、現時点での知識が2.7になっているので、3.5では多少違う点があるかもしれない。 なぜならPythonのほうが「わかりやすかった」から まず最初に、Pythonのほうが機械科学系の人に支持されやすい傾向としてあるのは、Pythonのライブラリ、例えばNumpyであったり、Scipy、または各種機械学習系のライブラリなどの影響が大きいのは間違いない。最近の機械学習ブームのせいなのか、Pythonも「エモい人(エモ

    PythonからRubyに移行した人間の印象 - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/06/17
    なるほどー -> "「ビールを飲んで『マッドマックス 怒りのデス・ロード』を見て、JavaScriptエンジンを称える」ようなものであるかもしれない(念のため、「V8」をかけている)。"
  • Rubyで書いていたら破滅したので、Lisp/Racket で書きなおしたお話 (『プログラミング言語の基礎概念』について) - Line 1: Error: Invalid Blog('by Esehara' )

    今日のアート mograg garageで行われたKYOTAROさんという方が描かれた絵です。 手帳にも描いてもらいました。ありがとうございます!! 概要 タイトルが釣りっぽくなって申しわけない(だったらやらなきゃいいじゃん……)。 普段は練習にRubyを利用しており、あるコードを規則に従ってステップを作成するプログラムを作っていたところ、とてもではないが、メンテすることが不可能になってしまった。なので、Lispの方言の一つであるところのRacketを使ったところ、サクサクと実装できるようになった。なぜこの違いが生まれてしまったのか、できるだけプログラミング言語の特性に依存せずに、この違いを語ろうと思う。 はじめに つい最近、知人と出あったところ、『プログラミング言語の基礎概念 (ライブラリ情報学コア・テキスト)』が話題にのぼった。このテキストはオンラインによる問題集が付属しており、知人に

    Rubyで書いていたら破滅したので、Lisp/Racket で書きなおしたお話 (『プログラミング言語の基礎概念』について) - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/06/02
  • SKIコンビネーター入門以前(ついでに、PythonでSKIコンビネーター学習用ライブラリを書いた) - Line 1: Error: Invalid Blog('by Esehara' )

    今日の料理 博多のソウルフードです。 サンポー品 焼豚ラーメン 94g×12個 出版社/メーカー: サンポー品メディア: 品&飲料この商品を含むブログを見る 概要 ラムダ計算を学習する上において、コンビネーターというものが登場する。これは、変数が全て束縛変数となっているラムダ項で定義できるものを指す。その中で特に重要なものとして、SKIコンビネーターが存在している。このSKIだけで、基的なラムダ計算を実装することができる。そこで、今回そのSKIコンビネーターを勉強するためのライブラリを作るのに失敗したので、その経緯を説明する。 難解関数型プログラミング言語 プログラミング言語界隈には、難解プログラミング言語というものが存在する。この難解プログラミング言語は、実用を目指したものではなく、遊びか、あるいは理論的な側面に基づいたプログラミング言語である。その中で有名でかつ、実装しやすいも

    SKIコンビネーター入門以前(ついでに、PythonでSKIコンビネーター学習用ライブラリを書いた) - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/05/25
  • フェルマーの小定理を使った素数テストを追う - Line 1: Error: Invalid Blog('by Esehara' )

    今日のラーメン 稲荷屋 概要 素数を検査する方法には、いわゆる「ふるい法」と呼ばれる方法を使った決定的な方法と、「だいだいこのような式に該当するならば、素数だろう」といった推測に基づく、確率的な方法がある。確率的な方法の一つに、「フェルマーの小定理」を利用したテスト方法がある。しかし、これは「カールマイケル数」と呼ばれる合成数が引っかかる。 はじめに 暫らくの間、『はじめての数論』を読みながら、素数判定について調べていた。そして、素数チェックの方法として有名な「フェルマーテスト」が紹介されていた。そういえば、この「フェルマーテスト」について調べたことなかったな、と思ったので、改めて実装しながら理解したことをメモしたいと思う。 フェルマーの小定理 まず、「フェルマーテスト」の方法は、「フェルマーの小定理」から作られたものである。 「フェルマーの小定理」は次のようになる。素数になる任意の数(こ

    フェルマーの小定理を使った素数テストを追う - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/04/28
  • 余は何故キーボード配列をqwerty配列からColemak配列にしたか - Line 1: Error: Invalid Blog('by Esehara' )

    簡単な概要 普段使うキーボード配列をcolemakに変更した。採用した理由としては、colemakが、qwerty配列を改良したものであるという理由からた。ただし、キーボード配列を変更することは、多くのデメリットがある。例としては、他人に自分のPCを利用することが困難になること、そしてまた自分もキーボード配列を1から覚えなおす必要が出てくることである。 はじめに qwerty配列はタイプライターのときから使われている標準的なキーボード配列である。とはいえ、このキーボード配列がタイピングにおいで、果たして最適な配列かといわれると、以前から疑問視はされている。例えば、この配列がタイプライターをあまりにも早く打ちすぎると、文字を打つ金具がこんがらがる、という都市伝説が説得力を持って流布されているように。とはいえ、配列にも、時代に即した最適化の限界というものはきっと存在している。 だからこそ、時代

    余は何故キーボード配列をqwerty配列からColemak配列にしたか - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2016/04/07
  • 何故、「そのプログラミング言語」で関数型プログラミングをするのが難しいのか - Line 1: Error: Invalid Blog('by Esehara' )

    近況 未来が脅す右手の指 ナイフが滑る左手首 朦朧と過ぎる日曜日 消えた秒針 数えた生久伸 このままでいいのか 俺はお前は 迷路の中 IT'S MY WORLD ――『KOKORO WARP』SHAKKAZOMBIE 問題 多くの人々にとって、既存の慣れ親しんだプログラミング言語で、最新のスタイルを身に着けたいと思うのが人の常だと思う。今宵、流行りのスタイルと言えば、恐らく「関数型プログラミング」になると思う。 混乱を避けるために、ここで一つ定義をする。ここで言う「関数型プログラミング」の定義とは、「副作用を出来るだけ避け、関数の連続によって書くプログラミング手法」という風にする。そして、このときの「関数」とは、「ある入力に対して、一定の出力を返すもの」という風に定義することが出来る。 さて、ここで二つの主題がある。まずひとつに、「副作用を出来るだけ避ける」という点と、「関数の連続によって

    何故、「そのプログラミング言語」で関数型プログラミングをするのが難しいのか - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2015/08/12
  • 今日のポエム: なぜ、その抽象化は失敗してしまうのか - Line 1: Error: Invalid Blog('by Esehara' )

    近況 打ち捨てられた過去について 要旨 この記事を興味深く読む一方で、やはり違和感を覚える人も多くいるようで、自分もその一人だった。恐らく、この違和感は、「抽象化」が「具体性を奪取していくもの」といったような対立項として述べられているからだ、というように思われる。しかし、果たして具体性無しに「抽象化」することが有益なことなのだろうか。それが一つの違和感のように思われる。 文 プログラミングの世界には、YAGNI原則(You ain't gonna need it)というものがある。また、YAGNIという言葉を使わなくても、「過度な汎用化が足を引っ張る失敗例」というのは、プログラマとしての心構えを書いたの中で、ちらほらと自嘲気味に述べられることがある。 僕も、一度そのような失敗例を見たことがあるけれど、なぜこういう失敗が起こるのか。確かにデザインパターンで組み立てられたアーキテクチャは「

    今日のポエム: なぜ、その抽象化は失敗してしまうのか - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2015/08/05
  • 定時を超えるとBotに罵倒される社内文化 - Line 1: Error: Invalid Blog('by Esehara' )

    近況 これはPKSHA Technology Inc.で行われたもくもく会の様子です。 はじめに 株式会社ログバーでは、フレックスタイム制が導入されていて、だいたいコアタイム時間中勤務して、かつ全体の労働時間が8時間になれば良いという運用になっている。とはいえ、フレックスタイムであったり、こういうベンチャーだったりすると、ついつい時間の感覚が無くなって何時までも働いてしまったり、ダラダラとオフィスに残ってしまったりする。 問題は、そういう風にダラダラとやってしまうと、集中して働いたら6時間で終わるようなことをつい10時間かけてしまうことになったりする。なので、だらだら働いていると怒るような役割が必要だったりする。 それを人間がやると刺が立つのだけれど、Botだと、割りときついことを言われても、「Botだから」というわけで、上手い具合に刺が立たない。一時期、各エンジニアがHubotを持つとい

    定時を超えるとBotに罵倒される社内文化 - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2015/06/26
    前職では 18:00 に「蛍の光」流してましたね
  • REPLと共に寄り添う生活 - Line 1: Error: Invalid Blog('by Esehara' )

    近況 概要 だいたいのプログラミング言語には、REPL(Read-eval-print loop)がある。簡単に言うと、ワンラインで動作を確認できるような対話型コンソールのことだ。Rubyならpryが有名だろうし、PythonならIPythonがある。 そこで、最近はREPLをちょっとだけリッチなシェルとして使ったりしている。もちろん、ちゃんと実行ファイルにして、パスを通せば、シェルで共通的に扱うことが出来るのがわかっているのだけれども、しかし最近はREPLに閉じこもるのもいいものだということで、REPLに寄り添う生活を提案したいというのが、今回の記事になる。 実例: Emacs + Slime ログバーでは、最近は、開発陣はSlackを使うようになっている。だけど、開発中にSlackの画面に移動してフォーム入力するのは面倒くさいなーと思ったりしていた。どうせなら、普段、開発環境として使っ

    REPLと共に寄り添う生活 - Line 1: Error: Invalid Blog('by Esehara' )
    koyancya
    koyancya 2015/06/22