タグ

2014年8月30日のブックマーク (53件)

  • Python で HTTP/2 サーバーを書こう - Qiita

    nghttp2 に含まれる Python API を使って Python で HTTP/2 サーバーを書く方法を説明します. Python API は nghttp2 C ライブラリを使った拡張ライブラリとして提供されています. HTTP/2 サーバーを提供するコードが asyncio モジュールを使っているため, Python 3.4 以降が必要になります. 拡張ライブラリをビルドするには, Python 3.4 の開発パッケージと Cython が必要です. Ubuntu 14.04 LTS では, python3.4-dev と cython パッケージが利用できます. configure スクリプトは利用可能な Python 環境を自動で選択しますが, デフォルトの Python が 3.4 でない場合が多いと思いますので明示的に Python 3.4 のインタープリターのパスを

    Python で HTTP/2 サーバーを書こう - Qiita
  • 再考: GoF デザインパターン - Qiita

    投稿は私の主観によって書かれています。コメントは大歓迎です。もし長くなるようでしたら別途記事に投稿し、リンクを張っていただけると嬉しいです。 概要 GoFのデザインパターンは適当すぎるから、いい加減、修正されるべき。 参考までに各パターンに対するコメントを書く。 GoFのデザインパターン GoFのデザインパターンは適当であり、教科書通りに学ぶべきものではないように思う。 以下がGoFのデザインパターンの良くない原因だろう。 が出版されたのは1994年であり、Java(1995)が出てくるよりも前だった オブジェクト指向が未成熟な時代にカタログ化された 現代のプログラミングと合致しないものが多い 「オブジェクト指向における~」と断っている以上、OOPに絡める必要があった パターンのいくつかに「多態性を用いると便利」という蛇足がついている 挙げたパターンに根拠がない 「とりあえず、23個ほ

    再考: GoF デザインパターン - Qiita
  • pet-chicpicker – Unique taste, choose chicpicker, bring a distinct style to your pet!

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua

  • https://qiita.com/tokomakoma123/items/fb7530232912dc4176c4

  • 個人のリポジトリレベルの開発の話をしよう - ローファイ日記

    最近、個人のリポジトリレベルの開発でも、自分のためのIssueを立て、自分しか見ないPull Requestを作ったりしている。 docker-registry をインストールするぞ〜 · Issue #1 · udzura/docker-playroom · GitHub Install Ruby recipe by udzura · Pull Request #3 · udzura/docker-playroom · GitHub First version of ikachan module by udzura · Pull Request #1 · udzura/ikachan-node · GitHub この際気を付けていることとして: Issue、最初のdescriptionは最初のTODOへのポインタだけ書いておく プルリクエストは 生煮え の状態で出す 思ったこと、詰まった

    個人のリポジトリレベルの開発の話をしよう - ローファイ日記
  • リファクタリング・ウェットウェアを読んだよ - しかじろうがプログラム作るよ!

    英名 Pragmatic Thinking and Learning: Refactor Your "Wetware" 著者 Andy Hunt 他の著作に 達人プログラマー -"The Pragmatic Programmer"- がある。 このを紹介してくれたのはだれだったか覚えてないけど、1年くらい前に買った。すごく面白かったので再読し、メモにまとめてブログに書くことにした。 ほとんど自分用の備忘録なので、気になったらamazonGO! ウェットウェアとは"人間の思考方法" 著者は指摘する。 バグの数はここ40年あまり変わっていません。プログラミング言語や、プログラミング技術プロジェクト管理手法などの進歩にも関わらず、バグの発生率はほぼ横ばいのままなのです。これは恐らく我々プログラマーがお門違いのところに注力してきたということなのでしょう。 問題はやり方ではなく、人間にあった

    リファクタリング・ウェットウェアを読んだよ - しかじろうがプログラム作るよ!
  • DeviseとAuthlogicを使ってみる | DevelopersIO

    はじめに Railsでwebサイトを作成するにあたりログイン機能を実装することはよくあるかと思います。 そこで今回は良く使われているDeviseとAuthlogicを使ってみました。 まずはそれぞれの基機能について比較してみます。 開発環境 Mac OS 10.9 Ruby 2.1.1 Rails 4.1.0 DB SQLite3 Devise まずはDeviseの基機能からです。 Railsプロジェクトを作成した後にGemfileに以下を記述します。 $ gem 'devise' インストールします。 $ bundle install $ rails g devise:install インストールしたらgenerateコマンドを実行します。 引数にモデル名を指定します。ここではuserとします。 $ rails generate devise user 実行するとモデルの他にマイグレ

    DeviseとAuthlogicを使ってみる | DevelopersIO
  • 50代におすすめのマッチングアプリは

    病院は時間がかかりますが、皮ふ科に行ったら40代の人に今日は2時間以上かかると言われました。マッチングアプリ 50代というのは混むものだと覚悟してはいるものの、相当な会える人がかかるので、ホテルの中はグッタリしたマッチングアプリ 50代になってスタッフさんたちも平謝りです。近頃はマッチングアプリ 50代のある人が増えているのか、50代のシーズンには混雑しますが、どんどん人が長くなっているんじゃないかなとも思います。会える人は以前より増えて今年も近所に出来たのですが、ぼっちゃりの数が多すぎるのでしょうか。困ったものです。 先週、おかずの添え物に使うつもりでいたら、マッチングアプリ 50代を使いきってしまっていたことに気づき、かるめとパプリカと赤たまねぎで即席の付き合いたいを作ってその場をしのぎました。しかし20代にはそれが新鮮だったらしく、マッチングアプリ 50代なんかより自家製が一番とべ

  • テキストから辞書にある文字列をすべて取り出す簡単なプログラム (Pure Perl)

    テキストから辞書にある文字列をすべて取り出す簡単なプログラム (Pure Perl) 2014-05-09-1 [Programming][NLP] 機械学習のデータ加工用のスクリプト。辞書によりテキストから素性を抽出する簡単なプログラムです。先日ちょっと需要がありまして、Pure Perl で動くものを作りました。 あらかじめ用意された辞書(文字列とIDのペア)があり、テキスト中にその辞書の文字列が存在したら対応するIDを出力する、というタスクです。 辞書マッチは最長一致のみではなく、一部重なりや内包含むすべて。最長一致のみならば辞書エントリを長い順にならべてORでつなげた正規表現を作れば一発なのですが、すべて欲しいというわけで(疑似)TRIEを採用。ハッシュで TRIE という懐かしい実装です(初期のJUMAN風)。 ■辞書の例 (fepp-dic.txt)。フォーマットは「^エントリ

    テキストから辞書にある文字列をすべて取り出す簡単なプログラム (Pure Perl)
  • ActiveRecordのSQLインジェクションパターン

    (Last Updated On: 2018年10月7日)Railsで多用されているActiveRecordのインジェクションパターンを簡単に紹介します。出典はrails-sqli.orgなのでより詳しい解説はこちらで確認してください。特に気をつける必要があると思われる物のみをピックアップしました。 Exists?メソッド User.exists? params[:user] params[:user]などの使い方は危険です。RailsPHPなどと同様にuser[]というパラメーターで配列化します。 ?user[]=1 が入力の場合、 SELECT 1 AS one FROM "users" WHERE (1) LIMIT 1 となり不正なクエリが実行されます。 Calculateメソッド CalculateメソッドはSQLの集約関数を実行するメソッドです。average、calcula

    ActiveRecordのSQLインジェクションパターン
  • ブロックチェーンをもう一段深く理解する - ワザノバ | wazanova

    http://www.igvita.com/2014/05/05/minimum-viable-block-chain/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 39分前 このブログでGoogleのIlya Grigorikが言及している、 (ビットコインの)デジタル貨幣という側面より、もっと興味深く大きな意味をもつイノベーションは、その土台となっているブロックチェーンのテクノロジー。 という考え方は、いまやベイエリアの中心的な論調。ですので、ビットコインの貨幣的側面の規制を当局が検討したり、それがメディアで報じられても、まったくひるまずに、昨年後半あたりはブロックチェーン周辺のスタートアップにかなり投資がされています。 それらのスタートアップのサービスがこれから世の中に順次でてくるので、ブロックチェーン

    ブロックチェーンをもう一段深く理解する - ワザノバ | wazanova
  • 手書きメモについて。プログラム以外を写経したっていいじゃない - 勘と経験と読経

    ちょっと前に書いた記事に、普段書いている手書きの読書メモをついでに貼り付けておいたらそっちへのツッコミが多かったでござるの巻。というわけで手書きメモについて。 はてなブックマーク - いまさら「ドメイン駆動設計」を読み終えた - 勘と経験と読経 photo by dmelchordiaz 手書き読書メモがキレイと言われるとびっくりする。分厚いは何度も読み返すのが嫌だからメモをとる。メモはあとで見るために書いてるので丁寧に書く。読書をするのにPC持ち歩くのは不便だから手書き。ただそれだけ。メモとりながらじゃないと整理もできないという性格もあるけど。— Kent Ishizawa (@agnozingdays) 2014, 4月 30 写経、視写 プログラマの勉強法のひとつに写経というものがある。技術書などに書かれているサンプルプログラムをそのまま入力して動かしてみるというやり方だ。 写経で

    手書きメモについて。プログラム以外を写経したっていいじゃない - 勘と経験と読経
  • Linuxカーネルハックに興味があるけど特にネタが無いんだよな〜って人向けの小ネタ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    Linuxカーネルに興味があるんだけど特に作りたいものってないんだよなーなんて割とあると思う訳です。俺とか。。。 まあ、kernelnewbiesのメーリングリストでもよく見る話題かと思います。この辺なんかもそうですね。 で、そんな時にオススメできるのがkmemleak。カーネルに組み込まれたメモリーリーク検出ツールです。 使い方は至って簡単でカーネルのコンフィグレーションにあるKernel memory leak detectorを有効にしたカーネルを普通に使えばOK。カーネルはメインラインのrcでもtipでもlinux-nextでも何でも良いと思います。 設定の場所はKernel Hacking -> Memory Debugging -> Kernel memory leak detectorにチェックをするのと、 その下のMaximum kmemleak early log ent

    Linuxカーネルハックに興味があるけど特にネタが無いんだよな〜って人向けの小ネタ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • RubyでAmazon Product Advertising APIを再び使ってみる - プログラマでありたい

    ちょっと必要になって、再びAmazonのProduct Advertising APIを触ってみました。このAPIは、Amazon謹製のAPIで、商品検索や個別商品情報の取得が出来ます。元々このAPIの名前は、Amazon アソシエイト Web サービスといって、AWSと呼ばれていました。クラウドの方のAWSが出る前の話ですね。その後、クラウドの方がAWSという名称になり、こちらのAPIの名前がProduct Advertising APIに変わっています。 ちなみに、Amazon Web サービスというサービス名は、現在もクラウドのAWS単体を指すのではなく、AmazonAPIを使って提供しているサービス全体を指す言葉のようですね。ややこしいけど、全く必要としない豆知識でした。 Product Advertising APIを操作するRuby Gemを選ぶ Product Advert

    RubyでAmazon Product Advertising APIを再び使ってみる - プログラマでありたい
  • CPythonのgrennlet(グリーンスレッド)の実装について - mfumiの日記

    OSが管理するスレッドと違って,ユーザのプログラムによって管理されるスレッドのことをグリーンスレッドといいます.他にもマイクロスレッドとか軽量スレッドとかいったりすることもあるようです.ネイティブスレッド(OSが管理するスレッド)と比較したときのグリーンスレッドの特徴として. ・スケジューリングをユーザプログラム自身がおこなう ・一般にスレッドの切り替えコストはネイティブスレッドより低い ・一つのプログラム内において実行されるグリーンスレッドは一つ (マルチコアでも,OSから見るとあくまでユーザプログラムは一つなので,グリーンスレッドが並列実行されることがない)などが上げられます. greenletとは,PythonのC言語実装であるCPythonにおけるグリーンスレッドの実装の一つです.(2014/4/29現在,greenletはpython2.xのみをサポートしています.また,以下での

    CPythonのgrennlet(グリーンスレッド)の実装について - mfumiの日記
  • Procを制する者がRubyを制す(嘘)

    RubyのProcの説明は巷に溢れているから今更感があるけどここ数回Procを使ったネタを書いていたらProcがかわいくなっちゃってもっとみんなにもProcのこと知ってもらいたいという欲求が生まれてきたからProcについての基的なことを僕なりのやり方でここに書くよ。長いよ。 Rubyの関数(メソッド) Rubyにおいて関数(メソッド)はファーストクラス(オブジェクト)ではありません。つまり文字列や数字や配列などの他のオブジェクトとは異なって、Rubyではそれを直接変数に代入したり、他の関数に渡したりすることはできません。 def square(n) n * n end sq = square # squareメソッドを変数sqに代入してみる # ~> -:1:in `square': wrong number of arguments (0 for 1) (ArgumentError)

    Procを制する者がRubyを制す(嘘)
  • designmap.info

  • A Vim + Haskell Workflow

    A Vim + Haskell Workflow This post is out of date and has been updated for modern workflow.This page is left for posterity. Hoogle Hoogle is a Haskell type search engine which can be used online or installed locally.

  • ブロックをdo…endで書くか{…}で書くかにより挙動が変わる例 - Qiita

    Ruby - Nokogiriによるスクレイピング(YahooFinance) - Qiita のコメント欄を書いているときに、挙動の違いに改めて気付いたので挙げときます。 Enumerable#injectに限られる話ではないのですが、気付いたときに使っていたのがこのメソッドだったので。 先に結論を do…endで書くときには、返値確認用のpを直接使うな。 Enumerable#inject まず中括弧の場合。injectの例としてこちらから引用します。 ruby の inject をわかりやすく説明してみる - Λάδι Βιώσας

    ブロックをdo…endで書くか{…}で書くかにより挙動が変わる例 - Qiita
  • 知ってるようで知らないPythonの特殊コーデック - Qiita

    Pythonの文字列オブジェクトには、文字列を特定のコーデックでエンコード/デコード操作が可能ですが、その中で今まであまり知らなかったコーデックを紹介します。 base64 これはご存知の方が多いかと思いますが、文字列を Base64 文字列にエンコード/デコードします。

    知ってるようで知らないPythonの特殊コーデック - Qiita
  • リーダブルコード読んだ - にこにこインターネット

    リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典出版社/メーカー: オライリージャパン発売日: 2012/06/23メディア: 単行(ソフトカバー)購入: 68人 クリック: 1,802回この商品を含むブログ (116件) を見る このは,読みやすく理解しやすい良いコードを書くためのテクニックが書かれてる.4部構成になっていて, 表面上の改善 ループとロジックの単純化 コードの再構成 選抜テーマ から成る.エンジニアとして良いコードを書けるようになりたいけど,どんなコードが良いコードなのかいまいちまだ知らないし,しっかりと学んだことがなかったので,すごく勉強になった. 個人的に,このを読んで特に勉強になったことは,コメントアウトにつ

    リーダブルコード読んだ - にこにこインターネット
  • CreateJS のクラスを CoffeeScript 上で継承するには | DevelopersIO

    CoffeeScript には簡単にクラスの継承を実現できる機能が備わっていますが、こと CreateJS のクラスを継承する際には従来とは少し異なる手法で実装するがあるので、注意が必要です。 知ってしまえば大したこと無いのですが、ちょっとクセのあるテクニックなのでサンプルを交えてその方法を紹介します。 例) createjs の Bitmap クラスを継承してみる 従来の継承 通常、CoffeeSctript でクラスの継承をするには以下のように記述します。 Animal クラス class Animal constructor: (@name) -> alive: -> false Dog クラス class Parrot extends Animal constructor: -> super("Parrot") dead: -> not @alive() Animal クラスを継承

    CreateJS のクラスを CoffeeScript 上で継承するには | DevelopersIO
  • Pythonのデコレータを理解するための12Step - Qiita

    古い記事なんですが, Pythonのデコレータの概念をつかむには良記事だったので和訳意訳してみました. http://simeonfranklin.com/blog/2012/jul/1/python-decorators-in-12-steps/ Step1. 関数 これは基ですね. Pythonにおいて関数はdefキーワードにより関数名とパラメータのリスト(任意)とともに定義できます.また括弧付きで名前を指定することで実行できます. Step2. スコープ Pythonでは関数を作ると新しいスコープが作られます.言い方を変えるとそれぞれの関数がそれぞれに名前空間を持つということです. Pythonではこれらを確認することのできる組み込み関数も用意されていて, locals()で自身の持つローカルな名前空間の値を辞書形式で返却します.

    Pythonのデコレータを理解するための12Step - Qiita
  • “binding.pry”って実際のところは何なのだろう - Qiita

    はじめに この記事はPryのコミッターであるkyryloが書いたso-what-is-binding-pry-exactlyを訳したものです。日語訳の公開を快く許可してくれたkyryloに感謝します。 Pryの使い方で一番最初に習うのは、“binding.pry”だと思います。この言葉をあちこちに埋め込むことで、幸せになれます。簡単にいうと、“binding.pry”を使うことで、日々の生活がだいぶ楽になります。あなたは“binding.pry”が何者なのか、不思議に思ったことはありませんか? 細かいことなので気にならなかったことだと思います。私がPryを使い始めたときは、これをおまじないの一種と考えました。“binding.pry”は不思議な魔法のようにみえたのです。魔法などでないことは、確かです。しかし、新しいことを学ぶとき、実際より不思議に思えてしまうことはよくあることです。この記

    “binding.pry”って実際のところは何なのだろう - Qiita
  • Pythonのcollectionsモジュールが地味に便利 - 唯物是真 @Scaled_Wurm

    PythonのcollectionsモジュールにはdefaultdictやCounterなどの便利なデータ構造があります。 いくつかメモ代わりに紹介しておきます defaultdict 辞書にキーが含まれない場合のデフォルト値を指定できます。 リストをデフォルトで持つ辞書などが作れます。 defaultdictへの引数としては初期値のものを返す関数を与えます from collections import defaultdict d = defaultdict(list) d['Hello'].append('World') 変わった使い方としては以前別の記事でも紹介しましたが単語にIDを割り振るのに便利です 単語などをIDにマッピングする - 唯物是真 @Scaled_Wurm 以下のようなコードを書くと未知の単語が辞書に与えられたら、その単語に新たなIDを振っていくことができます。 w

    Pythonのcollectionsモジュールが地味に便利 - 唯物是真 @Scaled_Wurm
  • 2010-12-26

    リアクティブプログラミングは、「時間とともに変化する値」=「振る舞い」同士の関係性を記述することでプログラミングを行うパラダイムです。 GUIなどのようにインタラクティブなシステムや、シミュレーションやアニメーションのようにダイナミックに状態が変化するようなシステムを宣言的に記述することができます。 これらの「変化する状態」や「外部とのやりとり」が支配的なシステムは、純粋関数型言語が、その強みを発揮しにくい部分でもあります。 稿では、リアクティブプログラミングが副作用を含む系を宣言的に記述することを可能にし、状態の管理という厄介な問題からプログラマを開放する可能性があることを示したいと思います。 (割と独自研究に基づく解釈ばかりなのでその点ご了承ください。あと例としてでてくるコードは、Pythonベースの擬似コードで具体的なライブラリに基づくものではありません。) Why Reactiv

    2010-12-26
  • プログラミング能力を向上させるコツは、筋トレと一緒かも? | mah365

    以前ちょっとお高いプライベート・ジムでトレーニングしていたことがあるのですが、筋力トレーニングって「あ、もうだめかも」というところからが勝負で、そこから歯をくいしばってどのぐらい行けるかが、効率よく筋力アップするコツだということを教わりました。 そういった意味では、プログラミング能力に関しても同じことが言えるのかも知れない、と最近思ったのです。 自分が最高だと思ったコードしかコミットしない 過去を振り返って、今いる会社ソニックガーデンに入社したとき、CTOであるmat_akiから、「自分が最高だと思ったコードしかコミットしないで下さいね」などと言われた記憶があります。 「えー、素早く確認してもらいたいときにそんなことこだわっていたら、スピード落ちない?」 みたいなことを言った記憶もあるのですが、 「いいえ。コードのクオリティは落とさないんです。クオリティは落とさずにスピードを上げるんです」

    プログラミング能力を向上させるコツは、筋トレと一緒かも? | mah365
  • Go言語のchannelって一体何よ ~基礎編~【golang】 - DRYな備忘録

    問題 Go言語をちゃんと学ぼうと思っていろいろ勉強してるのだけれど ダックタイピングって一体なんなのよ【golang】 - DRYな備忘録 Go言語に継承は無いんですか【golang】 - DRYな備忘録 Go言語のgoroutineって一体何よ【golang】 - DRYな備忘録 いよいよgoroutineの実践。 並行処理を書くうえで大きな課題のひとつはデータの共有らしいが、Go言語はこれをchannelというtypeで実装することを推奨している。 チャネル( Channel )は、チャネルオペレータの <- を用いて値の送受信ができる直通ルートの型です。 A Tour of Go ( ゚д゚)... は? しらべてみよう やっぱり Go の並行処理 - Block Rockin’ Codes が分かりやすい 並行処理プログラミングには、ざっくり分けて二つのアプローチがあります。 Sh

    Go言語のchannelって一体何よ ~基礎編~【golang】 - DRYな備忘録
  • GitHub - jamesrwhite/minicron: 🕰️ Monitor your cron jobs

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - jamesrwhite/minicron: 🕰️ Monitor your cron jobs
  • 可視化ライブラリD3.jsの設計が素晴らしすぎる。 | 三度の飯とエレクトロン

    最近名前を聞くことが多くなってきたD3.jsを試してみています。 まだ使い始めたばかりですが、D3.jsの設計の素晴らしさに感動しています。 データを与えればグラフが表示されるというような単純なものではないので、敷居が高く感じていましたが、設計を知るほどによく出来ていて驚きます。 D3.jsとは何か? そもそも、D3.jsとはなんでしょう? D3.js – Data-Driven Documents D3.jsは、データをブラウザで可視化するためのライブラリです。 単なるグラフライブラリではなく、もっと抽象的な「可視化」を扱うのが特徴です。 抽象的なレイヤーを扱うので、ライブラリと言っても機能より設計が重要で、D3.jsが支持されている理由はその設計の素晴らしさにあります。実際に描画しながら、その設計の違いについて考えていきます。 企業の時価総額と営業利益の関係をプロット 例題として、企業

    可視化ライブラリD3.jsの設計が素晴らしすぎる。 | 三度の飯とエレクトロン
  • Spockでデータベースが絡むテストを書くためにやるべきこと その1 - Qiita

    Spockとは SpockはJavaやGroovy向けのテストフレームワークです。 JUnitなどと比較して以下の点が使いやすいです。 データドリブンなテストが書きやすい Mockが書きやすい テスト結果が見やすい(PowerAssert) 基的な使い方はこちら方のブログにわかりやすく書かれています。 http://bufferings.hatenablog.com/entry/2014/01/17/234736 やりたいこと データベースにアクセスするテストコードを書く場合、テスト開始時にデータベースにテスト用のデータを流し、テストが終了したら元のデータを復元するということを行えると便利です。 しかし残念ながら、Spockにはその仕組みが用意されていないためDbUnitのようなデータベースを操作する仕組みが必要になります。 今回はSpockとDbUnitを連携させて、上記の仕組みを作っ

    Spockでデータベースが絡むテストを書くためにやるべきこと その1 - Qiita
  • HRTの原則 〜ソフトウェア開発はバーでしっとり語り合うように 〜 : 小野和俊のブログ

    「HRTの原則」という言葉をご存知だろうか。 これは書籍 Team Geek ―Googleのギークたちはいかにしてチームを作るのか で紹介されている言葉であり、書ではほぼ一冊すべてをかけてこのHRTの原則とその実践方法とを様々な角度から紹介している。 1. 謙虚(Humility) 2. 尊敬(Respect) 3. 信頼(Trust) の3つの価値が大切にされており、エンジニアとしてもチームや組織、顧客との対話においてこれらの価値を重んじていくことが成功につながる、というものである。 あらゆる人間関係の衝突は、謙虚・尊敬・信頼の欠如によるものだ Team Geek p.15 プログラマとして成功するには、最新の言語を覚えたり高速なコードを書いたりするだけではいけない。プログラマは常にチームで仕事をする。君が思っている以上に、チームは個人の生産性や幸福に直接影響するのである。 Team

    HRTの原則 〜ソフトウェア開発はバーでしっとり語り合うように 〜 : 小野和俊のブログ
  • オブジェクト指向設計とは - @ledsun blog

    オブジェクト指向という言葉には オブジェクト指向分析(OOA) オブジェクト指向設計(OOD) オブジェクト指向プログラミング(OOP) の三つの意味があります。 オブジェクト指向初心者泣かせです。 ここではオブジェクト指向設計を説明します。 ソフトウェアの設計 ソフトウェアの設計には二つの側面があります。 作成するソフトウェアの共通部分を探し出しモジュール化する 作成するソフトウェアが将来変更される部分を抽象化し変更しやすくする 一つ目のモジュール化は構造化設計からある手法です。 オブジェクト指向設計で特に取り上げる点はありません。 ここでは二つ目の将来の変更のために抽象化することに重点を当てます。 オブジェクト指向設計 オブジェクト指向設計とは多態を実装する部分を決めることです。 多態とはオブジェクト指向言語を活用した次のものです。 変更可能な点に抽象クラス*1 (オブジェクト指向言語

    オブジェクト指向設計とは - @ledsun blog
  • 俺とScala(関数型とオブジェクト指向の融合について) | PAB@やっぱり求職中なんだよなあ…

    求職活動中とありますが、活動報告というよりは、技術の話題を多めでいきます。Scalaが大好きなので特にScalaの話が中心になると思います。 プロフィールにも書いてあるとおり、僕は最近私用のプログラムはScalaを使うことが多いのですが、 今回から自分がScalaのどういうところに惹かれたのか、 どういうふうに使うようになっていったのかについて書いていきたいと思います。 最初にScalaに触ったのは結構早くて、2008年くらいだったでしょうか。 まあ、知ったのが早いというだけで、別に何かやったというわけではないんですが。 まずScalaを見て惹かれたところは、Scalaの一番目立つ特徴である「関数型とオブジェクト指向の融合」でした。 関数型とオブジェクト指向の融合については色々な意見があると思います。 そもそも参照透過性を重視する関数型と、 状態と振る舞いをセットに考えるオブジェクト指向を

  • 職業Web系エンジニアに必要なこと - Qiita

    学生時代まで一人でしかコードを書いてこなかったひよっこエンジニアが、「企業で、チームで作るってこんな別種の大変さがあるのか!」とビクンビクンした話です。僕がある企業のAPIエンジニアとして1年間学び、そこで得たことを書こうと思います。 目次 チームで作るということ 障害との向き合い方 新しい技術の導入に必要なこと チームで作るということ 優先度と見積もり 「俺が作りたいもの作るぜ!!俺様の気の向くままに気が向いたときに作るんだURYYYYY!!」みたいなノリは当然ダメです。つらいですね。 (社内の立ち位置によっては許されるかもですが) やるべきタスクは何か? 優先度は? それぞれの見積もりは?リリースはいつか? タスクの依存関係は? 今は進捗遅れてるの?遅れてるとしたらどうするの? 僕らの労働時間はリソースなので、これらをチーム内にもチーム外にも説明できるようにしておかないといけません。

    職業Web系エンジニアに必要なこと - Qiita
  • 世の中のCSSプリプロセッサーがどれもクソだから自作したった - morishitter blog

    タイトルは釣りです。Stylusは最高だと思うし、Sassはいつも使っています。Lessは…うん、いい感じだと思います。 Yet Another CSS Preprocessor YACP(Yet Another CSS Preprocessor)という、CSSプリプロセッサーを作った。名前は考えるのめんどうだったので適当に付けた。作ったと言っても、前回のブログを書いたときに作ったrework-rule-bindingを使ってreworkでビルドしただけ。 インストールはnpmから。 $ npm install -g yacp autoprefixerを組み込んでいるので、ベンダープレフィックスを気にしなくていい。SassみたいにCompassのCSS3のmixinを@includeする必要もない。 他にはrework-varsも使っていて、W3Cの変数定義の構文が使える。 /* inpu

    世の中のCSSプリプロセッサーがどれもクソだから自作したった - morishitter blog
  • OpenGLベースのテキストエディタKashiki - mitoma_ryoの日記

    KashikiというOpenGLベースのテキストエディタをかれこれ一年ほどチマチマ開発している。 これが動作画面 バイナリ置き場のURL(Windows/Linuxで動作確認済みバイナリがあります(Java8のインストールが必要)) http://kashiki.tombo.in/ ソースコードはgithubにあります https://github.com/mitoma/kashiki ローカルのgitの記録を見たら2013年05月29日が初回コミットだから、当にチマチマとした開発だ。それなりに実用できて世に出せるレベルになったら公開して…なんて考えていたら全然開発が進まず今まで来てしまった。自分一人でemacsキーバインドの実装を考えたりOpenGLの基礎から調べて…、なんてやってるのだから一年たってもお察しの通りの完成度だ。 30もとうに過ぎたオッサンが一年近くソースをいじくり回して

    OpenGLベースのテキストエディタKashiki - mitoma_ryoの日記
  • Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist

  • jsdo.it を1年間続けて分かったこと - CX's Hatena Blog

    ドット絵は進化するようです。 「2次元」→「2次元+物理演算」→「2.5次元」→「3次元」→「3次元+物理演算」 2次元 2次元+物理演算 2.5次元 3次元 3次元+物理演算 その他の次元(0次元とか1次元とか) まとめ ということで、1年を通して jsdo.it で色々なドット絵の表現を試してみました。 このように JavaScript を通して、何か表現をしたいという人にとっては、jsdo.it は最高の遊び場かと思います。 興味がある方は、試してみては如何でしょうか? 追記 使用したライブライブラリは、 jsdo.it で試してみたライブラリの一覧 - CX's Hatena Blog に、カテゴリ別にまとめてみました。

    jsdo.it を1年間続けて分かったこと - CX's Hatena Blog
    sh19910711
    sh19910711 2014/08/30
    おもしろい
  • 関数型言語F#を使ったDDDとCQRS

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    関数型言語F#を使ったDDDとCQRS
  • Makefileの書き方に関する備忘録 - minus9d's diary

    ※この記事は続き記事になっています 第1回:この記事 第2回:Makefileの書き方に関する備忘録 その2 - minus9d's diary 第3回:Makefileの書き方に関する備忘録 その3 - minus9d's diary 第4回:Makefileの書き方に関する備忘録 その4 - minus9d's diary makeの使い方を復習しました。今更makeかよと思われそうですが、曖昧に覚えているところも多く、よい勉強になりました。参照したテキストは、オライリーがオープンブックとして公開しているManaging Projects with GNU Make, Third Edition(GNU Make 第三版)。今回の記事はほぼ全部これが出典です。 最初の一歩 makefileに以下の内容を書いて保存。コマンドラインでmakeと単に打つと、このmakefileが実行対象とな

    Makefileの書き方に関する備忘録 - minus9d's diary
  • Big Sky :: プログラミング言語の作り方

    Big Sky :: プログラミング言語の作り方(2) Big Sky :: プログラミング言語の作り方(3) Big Sky :: プログラミング言語の作り方(4) Big Sky :: プログラミング言語の作り方(5) githubtrending を見てたら面白い物を見つけた。 orangeduck/BuildYourOwnLisp - GitHub Learn C and build your own programming language in under 1000 lines of code! https://github.com/orangeduck/BuildYourOwnLisp 手順にそってC言語で lisp を実装する手順を見せるという物なのだが、その教材の一部としてパーサのコードが含まれている。 このパーサ部分だけ別のプロジェクトとして外出しされている。 o

    Big Sky :: プログラミング言語の作り方
  • Javaでクローラを実装する - Qiita

    なにかライブラリが無いかと思ってcrawler4jに行き着きました。 使用準備 http://code.google.com/p/crawler4j/ のサイドバーにある[Downloads]からcrawler4j-3.5.zipとcrawler4j-3.5-dependencies.zipをダウンロードする。 htmlのパースにはjsoupを使うので、ここからダウンロードしておく。 eclipseだと[ビルドパスの構成]>[ライブラリー]から[外部jar追加]で全てのjarファイルを追加する。 これで準備完了のはず? そろそろmaven使おう 大体の実装としてはBasic Crawlerで十分だと思う。 BaseCrawler.javaでOverrideしてあるvisitとshoudVisitでは、クロールするurlの絞り込みや、実際の処理を記述出来る。 BaseCrawlControl

    Javaでクローラを実装する - Qiita
  • JavaScriptでカスラムエラーをどう作るか - rikubaのブログ

    はじめに:IE 11、Firefox 28、Chrome 34で試している JavaScriptErrorオブジェクトにはstackプロパティにコールスタックを表す文字列がセットされる。これは現行のECMAScript仕様では規定されておらず、実装によって違いがある。 function foo() { bar(); } function bar() { baz(); } function baz() { throw new Error('X'); } (function main() { try { foo(); } catch (error) { console.log(error.stack); } })(); Chromeでのコンソール出力の例。 Error: X at baz (http://localhost/CustomError.html:8:24) at bar (htt

    JavaScriptでカスラムエラーをどう作るか - rikubaのブログ
  • mrubyを読む準備 - けいぞうのメモ帳

    mrubyコードリーディングが楽しいので準備から考えたこと、調べたことを纏めていきたいと思います。 まず、準備とmrubyの周囲についてを纏めてみました。 きっかけ 大学が春休みになった("14/3/1時点~)。あと、OSSだった。 プログラミングできないのがつらいから出来る人のコードを読みたかった。 こういう記事を書いたら後戻りできなくなるかなと思った。(続けるために) 呟く mruby コードリーディングな記事。ないな。ないか。— keizo (@keizo_bookman) March 6, 2014 するとね @keizo_bookman こんなのどうでしょう? http://t.co/XgaoOKZUU0— Yukihiro Matsumoto (@yukihiro_matz) March 6, 2014 @keizo_bookman このような記事もありますね。残念ながら止まっ

    mrubyを読む準備 - けいぞうのメモ帳
  • 開発用ローカルサーバを立ち上げる方法 - Qiita

    はじめに Webアプリケーション開発の動作確認用にファイルシステムの一部をローカルサーバに立ち上げてブラウザからアクセスするにはどうしたらよいか、できるだけ初歩的に説明します。 Pythonの場合 Pythonが動作する環境であればこれが簡単です。Pythonの標準ライブラリには専用モジュールがありコマンドラインから直接起動できます。Python2と3でモジュール名が異なりますのでそれぞれ説明します。 Python2ではSimpleHTTPServerを使います。ポート番号を省略すると8000が用いられます。

    開発用ローカルサーバを立ち上げる方法 - Qiita
  • 「UNIXという考え方」を読んだ - その手の平は尻もつかめるさ

    「UNIXという考え方」をAmazonのwish listに入れていたらid:kenjiskywalkerさんが贈ってくださったので読みました.お陰でUNIXという考え方を学べました.ありがとうございます! 書では一貫して「プログラムを小さく作る」という事と「1つのプログラムには単一のことだけを上手くやらせる」という事について言及されています. プログラムを小さく作るということによって,そのプログラムはコンピュータのリソースに対して優しくなり,なおかつ巨大なプログラムと比較して人間が理解するのが簡単になるので保守がしやすくなり,かつ他の部品と組み合わせやすくなるという論旨です. プログラムを小さく作ると,必然的にそのプログラムは多くの責務を負えなくなる為,自然とプログラムは単一の機能のみを持つようになります.従ってこれら2つの考え方は対になっていると言えるでしょう. 書で言われている「

    「UNIXという考え方」を読んだ - その手の平は尻もつかめるさ
  • ソフトウェアと彫刻と版画とオリンピックとABテストのポエム - hitode909の日記

    最近書いてるコード、難しいことをしていて、先週からやってるけど、なかなかうまくいかなくて、疲れる。先週うまくいかなくて帰って、週末酒飲みまくったらいろんなことを忘れたけど、朝来たらいろいろ思い出した。うまくいかなくても、とりあえず書くことはできて、気は進まないけど、とりあえず書いてみると、よく考えるとここでこういうことをするのはおかしい、とか気づいて、ちょっと戻ってなんとかしたりする。先に見通しが立たないのに書き始めるのどうかという感じだけど、能力が低くて、計画も立てられないような感じなら、とりあえずやってみるしかない。ソフトウェア作ることに関して言えば、間違ったら戻せるし、戻った時には、こっちはおかしいっていうことが分かってるので、戻った時にはもうちょっとましになってる。ので、とりあえず迷ったら作ってみるほうがよい。そもそも必要な知識が足りないとかなら、地道に勉強するしかないけど、そうで

    ソフトウェアと彫刻と版画とオリンピックとABテストのポエム - hitode909の日記
  • 男なら潔くC言語書けよと言われた話。〜mod_db,mod_dbdの実装〜 - Y's note

    C実践プログラミング 第3版 作者:Steve Ouallineオライリー・ジャパンAmazon 恩師に言われた言葉 Geek女優の池澤あやかさんに会いたいと思っている@yutakikuchi_です。 池澤さんはRubyが出来てSFCで女優さんなんて羨ましいですね〜。僕なんてRubyは得意じゃないし東京とは言えないような都心から離れた場所の地味な国立大だし、何よりお金も無いパンピーだしね〜。 僕の学生時代にもRubyはあったんですけどRailsはまだ出始めでそんなに流行っている雰囲気は無かったし、Webを書くには面倒くさいJSP/ServletかPerlかって感じでした。ApacheのModuleでWebを書ける事も学生ながら知っていたんですが、ポインタ、メモリの動的確保/解放の間違いが頻発して開発効率が落ちるから極力Javaで、どうしてもCを書かなければ行けない時はC++で逃げてました。

    男なら潔くC言語書けよと言われた話。〜mod_db,mod_dbdの実装〜 - Y's note
  • Rubyのメソッド引数は奥が深い

    Rubyのメソッド引数は、デフォルト値がセットできたり、可変長引数にできたり、キーワード引数を渡せたり、多彩なわけですが。今日、tcoというターミナル出力に色を付けるライブラリのソースを眺めていたら、面白い引数の使い方に出会って。ちょっとこれ問題にしてみようかと。もしかしたら常識かもしれません。 ─ 問題1 ─ 配列を取り最初の3つの要素だけを返すメソッドfirst_threeを定義しなさい。具体的には、以下の挙動になる。 first_three 1 # => [1, nil, nil] first_three [1] # => [1, nil, nil] first_three [1, 2] # => [1, 2, nil] first_three [1, 2, 3, 4, 5] # => [1, 2, 3]

    Rubyのメソッド引数は奥が深い
  • JNIとC++例外 - meryngii.neta

    JNI関連の話が続きます。 今日は短いですが、JNIとC++例外について。 最近ではAndroid NDKもC++の例外(やRTTI)に対応していて、そのおかげで例外が必要なSTLなどのライブラリを自由に使えるようになっています。しかし、Java側はC++の例外を理解してくれないので、もしJNIを介した関数がネイティブ領域で例外をキャッチし損ねると、すぐにSegmentation Faultで落ちます。 解決策としては、JNIから呼び出されたC++側の内部処理を、noexceptな関数に閉じ込めてしまえばよいわけです。もちろんエラーが発見できないのもまずいので、JNIを使ってJava側の例外に変換してしまいます。 JNIEXPORT void JNICALL Java_Foo_bar (JNIEnv* env, jobject thisj) { jni_util::convertExcep

    JNIとC++例外 - meryngii.neta
  • String repeat のアルゴリズムとパフォーマンス - hogehoge @teramako

    ES6になると、String.prototype.repeatのメソッドが追加されるわけだが、そのアルゴリズムとパフォーマンスを追ってみている。 ES6 String.prototype.repeat の仕様では以下の様な感じでシンプルな書き方をしている。 countが 0 より小さい、または 無限大である場合は RangeError count 0 ならば、空文字列 そうでない場合は、count回、文字列を繰り返して連結する 単純に実装すれば、以下の様な感じで済む。 String.prototype.repeat = function (count) { if (count < 0 || !Number.isFinite(count)) throw new RangeError(); var result = "", str = this; for (var i = 0; i < cou

    String repeat のアルゴリズムとパフォーマンス - hogehoge @teramako
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer