nakeddiverのブックマーク (2,522)

  • よいユニットテストを書くには

    テストを小さくする。適切なツールを使う。プログラマとテストがペアになる。これらは、よいユニットテストを書くための、Adrian Bolboaca氏からの提案だ。 ユニットテストは、プログラミングとテストが混ざり合ったものだ。プログラマは、テスタと共に作業することで、お互いに学び合い、視野を広げることができる。 Adrian Bolboaca氏は、Mozaic Worksの組織と技術に関するコーチであり、ヨーロッパテストカンファレンス 2017において、様々なタイプの自動テストについて話す予定だ。 InfoQは、このカンファレンスについて、Q&A、要約、記事で扱う。 [ヨーロッパテストカンファレンス]は、専門家や実践者が一緒に話し、学び、テスト技術を実践するところです。 私たちは、テストをもっと効果的にするために、先進的な新しい方法を詳しく調べ、より強いコミュニティに成長する基的な方法を十

    よいユニットテストを書くには
  • GCP HTTP(S) load balancing 配下のnginxでクライアントIPを取得する方法 - Hateburo: kazeburo hatenablog

    GCP HTTP(S) load balancing の X-Forwarded-For ヘッダは少し変わっているのでメモ。 X-Forwarded-For とクライアントIP ELBや他のproxyを使って、その配下のサーバにリクエスト元のIPアドレスを伝える際には、X-Forwarded-For ヘッダが使われます。 X-Forwarded-For: $remote_addr リクエストにすでにX-F-Fヘッダがあった場合は、後ろに追加します。 X-Forwarded-For: $http_x_forwarded_for, $remote_addr となります。 X-F-Fを受け取ったサーバでは、アクセス元のIPが信用できるIPアドレスまたはIP帯域の場合に、X-F-Fの最後のIPアドレスを、remote_addrとして利用します。 nginxでは ngx_http_realip_mo

    GCP HTTP(S) load balancing 配下のnginxでクライアントIPを取得する方法 - Hateburo: kazeburo hatenablog
  • どれだけ速く文字列からスペースを削除できるのか | POSTD

    時によってプログラマは文字列から不要な文字を取り除きたい場合があります。例えば、テキストの一部からすべての行の末尾文字を削除したいとします。 その時、全スペース(‘ ‘)や改行コード(‘\n’および‘\r’)を削除する問題を考えてみましょう。 効率的に実行するにはどのような方法がいいのでしょうか。 size_t despace(char * bytes, size_t howmany) { size_t pos = 0; for(size_t i = 0; i < howmany; i++) { char c = bytes[i]; if (c == '\r' || c == '\n' || c == ' ') { continue; } bytes[pos++] = c; } return pos; } 上記のコードはUTF-8でエンコードされた文字列で動作します。UTF-8がASCII

    どれだけ速く文字列からスペースを削除できるのか | POSTD
  • 元SIエンジニアが、Web系に転職しても役立ったスキル5つ - paiza開発日誌

    Photo by Maryland GovPics こんにちは。谷口です。 エンジニアが自社サービス開発企業に転職する場合、「とにかく技術力が必要」だと言われがちです。paizaでも、よく「自分は自社サービスの開発経験がないので、転職は難しいですよね……」といった相談を受けることがあります。 エンジニアとして転職するのであれば、もちろん開発技術はとても重要です。ただ、実際に転職した人にとって「前職で身につけたスキルで、転職後も役立っているのは開発技術だけなのか?」と言うと、決してそうではありません。 実際、paizaでは業務経験がない分野への転職を叶えている方もたくさんいます。 さらに言うと、むしろ異なる分野の企業にいたからこそ身についたスキルが、転職先で重宝されている……という方も意外と多いのです。 そこで今回は、SIerから自社サービスを開発している弊社へ中途入社したエンジニア2人に、

    元SIエンジニアが、Web系に転職しても役立ったスキル5つ - paiza開発日誌
    nakeddiver
    nakeddiver 2017/02/22
    あんまりエンジニア関係ないことが多いw
  • Python(boto3)でS3にデータをファイル保存せず直接アップロードする方法 | DevelopersIO

    こんにちは、臼田です。 Pythonを利用してS3にデータをアップロードする際、boto3を利用することになると思いますが、検索するとファイルからアップロードする方法がいっぱい出てきます。 でも、私はスクリプトの中で作成したjsonデータを直接S3に格納したかったんです。 なぜなら、Lambdaで処理したデータをjsonにして格納することが目的だったので、一時的にファイルで保存するなんてことは考えられないからです。 boto3の事、よくわかっていなくてハマってしまったので共有したいと思います。 執筆時のboto3のバージョンは1.4.4です。 PythonLambda前提の2.7です。 S3へ直接保存する方法 boto3のドキュメントのclass S3.Objectのput()メソッドには、下記のように記載があります。(ver.1.4.4現在) Request Syntax respon

    Python(boto3)でS3にデータをファイル保存せず直接アップロードする方法 | DevelopersIO
    nakeddiver
    nakeddiver 2017/02/22
    “というわけで、わざわざbytearrayに入れなくても、下記のような形で直接データを送れます。 ”
  • OpenSSLの脆弱性(CVE-2017-3733)に見られる仕様とcastの落とし穴 - ぼちぼち日記

    0. 短いまとめ OpenSSL-1.1.0dに脆弱性(CVE-2017-3733)が見つかり、Encrypt-Then-Mac と renegotiation を組み合わせて crashさせることができました。 この脆弱性は、仕様の準拠不足や不適切な変数の cast などが原因でした。 TLS1.3ではこういう落とし穴が少なくなるよう機能の根的な見直しが行われています。 1. はじめに 先週 OpenSSL-1.1.0d に対してセキュリティアップデートがあり、 Encrypt-Then-Mac renegotiation crash (CVE-2017-3733)という脆弱性(Severity: High)が公開されました。 対象となった 1.1.0 は、昨年2016年8月にリリースされたOpenSSLの新しいリリースブランチです。1.1.0ではAPIの大幅変更もあり、まだあまり普及

    OpenSSLの脆弱性(CVE-2017-3733)に見られる仕様とcastの落とし穴 - ぼちぼち日記
  • JavaScriptの「this」を「HUNTER×HUNTER」で理解 - Qiita

    記事は下記を参考に漫画、「HUNTER×HUNTER」に置き換えながら説明する内容となっております。誤字脱字、間違い等ありましたらコメントを頂けますと幸いでございます。 JavaScriptの「this」は「4種類」?? javascriptの「this」は「念能力者」?? この記事ではベースとなる4種類の「this」を念能力者として紹介します。 念能力者を理解できれば他もすぐに理解できます。 thisの4種類のパターン 1:メソッド呼び出しパターン(キャラの自己紹介) 2:関数呼び出しパターン(パクノダで考えよう) 3:コンストラクタ呼び出しパターン(具現化系能力者で考えよう) 4:apply,call呼び出しパターン(クロロ=ルシルフルで考えよう) メソッド呼び出しパターン(キャラの自己紹介) メソッド呼び出しパターンはキャラの自己紹介 var ゴン=フリークス = { 系統: '強

    JavaScriptの「this」を「HUNTER×HUNTER」で理解 - Qiita
    nakeddiver
    nakeddiver 2017/02/22
    わからない(´・ω・`)
  • GitHubアカウントがバンされた - 人権喪失メンヘラワンダーランド

    仕事しようとしたらGitHubアカウントがBanされた回 pic.twitter.com/IQzl6J5ECQ— Yu SERIZAWA (@upamune) 2017年2月19日 簡単に,出来事を時系列順に並べてみる. 時刻 出来事 2/19 11:29 GitHubのアカウントがバンされていることに気づく 2/19 11:38 GitHubのサポートに助けてと送信 2/19 11:42 バンされた原因がなんとなく判明 2/20 02:05 GitHubからバン解除したとのメールが届く 2/20 08:03 自分でGitHubアカウントがバン解除されていることを確認 バンされた原因はおそらくこれ. たぶん uProxyとGitHub連携したときにfileという名前のGistを連投されたのが原因だと思う https://t.co/l1e46Ys7Bd— Yu SERIZAWA (@upam

    GitHubアカウントがバンされた - 人権喪失メンヘラワンダーランド
    nakeddiver
    nakeddiver 2017/02/22
    日曜日wwww
  • アラサーSEが組織を変える存在に

    必要なスキルはチームによって異なる 持っているスキルを成果に結びつけるためには、チームとして動かなければならないことがほとんどだろう。 連載の最初でパッション+スキル+スモールチームが重要という話を書いた。パッション(情熱)はその人の体験から湧いてくるものなので教えられないが、これがなければ困難を乗り越えて仕事を成し遂げられない。 しかし、スキル(技術)は教えられる。連載ではスキルの見える化の方法としてスキルマップを紹介した。そして、成果を出すためには、チームとしてスキルを組み合わせる必要がある。スキルマップはチーム自身が作り、メンテナンスするべきだ。スキルを活用してチームとして勝つためのパターンについても簡単ではあるが、連載で触れた。 成果を出すためには「チームで取り組む必要がある」「周りの同僚が重要だ」という話は昔から変わっていないが、当にチームについて分かってきたのは最近のこと

    アラサーSEが組織を変える存在に
    nakeddiver
    nakeddiver 2017/02/22
    “ よくある助言はこうだ。「とにかく上司や周りを説得して許可をもらおう」。しかし、ちょっと待ってほしい。相手はあなたより技術に詳しいだろうか。あなた自身はその技術を理解し、習得するのに必要なスキルを持
  • Googleカレンダーと完全同期する「紙」の カレンダー「Magic Calendar」

    スマートフォンなどのデジタルツールによって便利な世界になりましたが、依然として媒体としての「紙」の優秀さは変わることがありません。そんな紙の持つ良さにデジタルツールの強みを組み合わせることで、「紙がインターネットにつながる未来」を実現するカレンダー「Magic Calendar」が登場しました。 Magic Calendar https://www.android.com/object/vote/magic-calendar/ Magic Calendarがどんなツールなのかは、以下のムービーを見れば一発で理解できます。 Android Experiments OBJECT グランプリ : Magic Calendar - YouTube Magic Calendarの開発者の坪井浩尚さん。Googleカレンダー愛用者の坪井さんはスケジュールを家族とも共有しているとのこと。 Magic C

    Googleカレンダーと完全同期する「紙」の カレンダー「Magic Calendar」
    nakeddiver
    nakeddiver 2017/02/22
    何だこれ最高かよ
  • シリコンバレーの日本企業が陥る、10のワーストプラクティス

    世界はシリコンバレーブームに沸いている。あらゆる業界の企業が調査や新規事業開発のため、シリコンバレーに拠点を開設している。日企業も同様だ。シリコンバレーに進出した日企業数は過去最大を記録。日企業のミッションの多くは、シリコンバレーの調査、スタートアップとのコラボレーションの実現である。しかし実際のところ、その試みはうまくいっているのだろうか。日企業はシリコンバレーに貢献し、その存在感は高まっているのだろうか。前回の記事でシリコンバレーのエコシステムを解説したスタンフォード大学の櫛田氏が、日企業に共通する課題点を指摘する。 1978年生まれ、東京育ち。2001年6月にスタンフォード大学経済学部東アジア研究学部卒業(学士)、2003年6月にスタンフォード大学東アジア研究部修士課程修了、2010年8月にカリフォルニア大学バークレー校政治学部博士課程修了。情報産業や政治経済を研究。現在は

    シリコンバレーの日本企業が陥る、10のワーストプラクティス
    nakeddiver
    nakeddiver 2017/02/22
    言語問題とかクリアしていないところも結構多そう
  • 「フロントエンドエンジニアに伝えたいインフラの話」にて登壇させて頂きました。 | DevelopersIO

    まとめ 普段あまり接することのない、フロントエンドの方とお話しする機会ができ貴重な経験となりました。 懇親会に参加できなかったのが残念でした。

    「フロントエンドエンジニアに伝えたいインフラの話」にて登壇させて頂きました。 | DevelopersIO
    nakeddiver
    nakeddiver 2017/02/22
    AWSがすごいという話
  • 東芝が上場廃止をすると、日本経済には一体どんな影響があるのか(田中 博文) @gendai_biz

    東芝だからこそ上場廃止にするべき 改めて、オリンパスの時に東証が判断した項目を参考にして、以下の7項目を過去事例にも当てはめてみたものを再掲しておく。 1.決算修正すると上場基準に抵触するか 2.赤字を黒字にみせかけていたか 3.虚偽の有価証券報告書を使って金融市場より資金調達を行っていたか 4.業の収益を偽っていたか 5.不正は組織ぐるみだったか 6.刑事罰となったか 7.課徴金となったか 大きく分けると「形式基準」と「それ以外」の2つに分けられ、「形式基準」には西武鉄道とカネボウが分類される。 1から5までは内部管理体制が構築されていれば防げる論点であり、6と7はその結果としてのペナルティである。 今回その規模、上場廃止の俎上に上がる深刻度を勘案すれば、東芝はカネボウのケースに近い。 東芝は巨大な企業であるため、上場廃止になると影響が大きいとか、株主に多大な迷惑が掛かるという意見もあ

    東芝が上場廃止をすると、日本経済には一体どんな影響があるのか(田中 博文) @gendai_biz
  • ゼロから学ぶ! Single Page Applicationの特徴と主なフレームワーク5選

    Backbone.jsは、2010年10月に初回リリースされたクライアントサイドMVCフレームワークです。古くから存在するフレームワークですが、シンプルでカスタマイズ性が高いため根強い人気を持っています。 ReactVue.jsといった他のViewライブラリと組み合わせて利用されることが多く、大規模なJavaScriptのアプリケーションを作る際に、Viewライブラリ単体では煩雑になりがちなプログラムを構造化するための仕組みが提供されています。 具体的には、状態を保持する役割を担うModelと状態を基にUIを描画するためのViewを明確に分離し、疎結合を実現するためのアプリケーション構造を提供しています。 その他、下記のような特徴があります。 フレームワークの仕組みがシンプルであり、実装時の制約が少なく自由度が高い あくまで骨組みを提供するためのフレームワークであるため、データバインディ

    ゼロから学ぶ! Single Page Applicationの特徴と主なフレームワーク5選
  • javascriptプログラマのレベル10 : tech.kayac.com - KAYAC engineers' blog

    週末料理をしていて足を切ってしまいました。agoです。 以前Perlは書いていたんですが、その頃以下の記事を読んで非常に感銘を受けました。 Perlプログラマのレベル10 - Perlプログラミング救命病棟より - naoyaのはてなダイアリー 当時あまりコミュニティとのつきあいがなかったので、「自分のスキルの絶対位置」、「次のレベルへ行くために必要なもの」を知ることで非常に安心感を感じた記憶があります。 いま確認したところ、「JavaScriptプログラマのレベル10」はないようなので書いてみました。 Perlプログラマ Schemeプログラマ Rubyプログラマ (家に直接リンクできるURLが無かったため、参照ページへリンクしています) haskellプログラマ 堕落したCプログラマ HTML知識レベル プログラマレベル 企業法務 JavaScriptの業務スキルレベル 判別表 (5

    javascriptプログラマのレベル10 : tech.kayac.com - KAYAC engineers' blog
    nakeddiver
    nakeddiver 2017/02/22
    4くらい
  • Firebase, React, FluxでWebアプリ作って思ったこと - Qiita

    ここで書いてること タイトルの構成でWebアプリ作った際に思ったこと 作り方ではないのでコードは一切書いてない 作り方的なのも書きたいけど多分無理 きっかけ 2016年は結構ダラダラしてた 仕事以外ではほとんど何も書いてない 夏以降は筋トレのことばっか考えてた おかげで筋肉はついたよ そろそろ何か始めようかと思った 何を作ったか 何をはさほど重要ではなかった 今回重視したのは何を触るか Redux(Flux) React Webpack Firebase postcss 結局作ったのはメモ帳でした Redux ReduxというかFluxでちゃんと作ってみたかった Reduxのチュートリアルはやった 公式ドキュメントは読んだ Fluxを調べる内に@azu_reさんの10分で実装するFluxに辿り着いた これで良いじゃない Fluxの実装面をちゃんと理解して書ける 別にReduxを使わなくても

    Firebase, React, FluxでWebアプリ作って思ったこと - Qiita
    nakeddiver
    nakeddiver 2017/02/22
    “嬉しい”
  • 型クラスはインターフェースとどう違うのか | POSTD

    (注:2017/02/27、いただいたフィードバックを元に翻訳を修正いたしました。) Haskellの型クラスは、Haskellを学び始めたばかりの多くの人にとっては難しい概念です。たいていの言語はこれを表すことが全くできませんし、それに近い概念も持っていません。多くのオブジェクト指向型の言語にとっては、利用可能なものの中では Interface が最も近い言語要素でしょう。Rubyの modules は似たような役割を持っています。しかし、この概念は両方とも、名前の多重定義と一種のポリモーフィズムをアドレスするので、型クラスが提供するパワーの一部を欠いています。 この記事は、型クラスに興味を持っている人向けです。Haskellや関数型プログラミングの予備知識は必要ありません。JavaやC言語のような静的な型付き言語に慣れていれば、役に立つでしょう。 型クラスについての概要/要約 型クラス

    nakeddiver
    nakeddiver 2017/02/22
    むじー
  • Amazon S3 静的ウェブホスティングの継続的デリバリ | DevelopersIO

    こんにちは、藤です。 先日、Amazon S3 の静的 Webホスティングにコンテンツをデプロイする方法が気になったので考えてみました。ちなみに静的ウェブホスティングだけじゃなく、S3 バケットと Git リポジトリの連携全般に利用できます。 概要 AWS 上で Webシステムを構成する際に、CloudFront のパスルーティングで、静的コンテンツは S3、動的コンテンツは EC2(前段に ELB)にアクセスすることで、低コスト、高可用性な構成を組むことができます。(静的コンテンツのみであればEC2レス) デプロイツールが発展してきて、CIツール、CIサービスを利用することでデプロイの自動化を簡単に実装することができるようになりました。AWS でも CodeDeploy を利用することで、EC2 へのデプロイが自動化できます。最近では Blue/Green デプロイ機能が追加され、既存

    Amazon S3 静的ウェブホスティングの継続的デリバリ | DevelopersIO
  • 第39回 MySQLのドキュメントを探しにいこう | gihyo.jp

    MySQLのドキュメント MySQLのドキュメントを活用していますか? MySQLのドキュメントといえば日語版 MySQL 5.6 リファレンスマニュアルを想像されるかと思いますが、MySQLのドキュメントにはその他のものも数多くあります。通常の場合、検索エンジンなどを経由してたどり着く、Webページになっている日語版のリファレンスマニュアル(オンラインリファレンスマニュアル)で十分な情報が得られるでしょう。 今回はそんなオンラインリファレンスマニュアルを探索するTIPSを紹介します。 リファレンスマニュアル以外のドキュメント ドキュメントのトップページを見てみましょう。 このページにリストされている文書は大きく分けて「リファレンス」と「リリースノート」があります。 リファレンスには「MySQL Server⁠」⁠、「⁠MySQL Enterprise⁠」⁠、「⁠MySQL Workb

    第39回 MySQLのドキュメントを探しにいこう | gihyo.jp
  • 「私、生理痛がひどいんです・・・」 女性部下から告白されて困った #ladiesbeopen

    2016年の暮れ、ハフィントンポスト編集部の新人エディター、井土亜梨沙に「私、生理痛がひどいんです」と告白された。働き方の相談があると言われたので、会議室で対面したときのことだ。

    「私、生理痛がひどいんです・・・」 女性部下から告白されて困った #ladiesbeopen
    nakeddiver
    nakeddiver 2017/02/22
    性差をしっかり考えられるマネジメントはこの先必須なんだろうな。。。