タグ

ブックマーク / qiita.com (269)

  • メール運用がロストテクノロジーになっていく話

    クラウドワークス Advent Calendar 17日目担当のSMTPおじさんの記事です。 時間の無い人のために3行でまとめますと以下のコンテンツでお送りします。 大規模なメール配送を安全に行うには特別なノウハウがあり罠も多い SendGrid便利です 当たり前になった技術は空気のように見えなくなってインフラ化する。それがある日突然失われたときの被害は甚大。インフラ技術をキャッチアップして備えよう メール配送今昔 さて、メール配送といえば古くはSendmailを使っていました。多くのUnixディストリビューションに標準でインストールされており、使うのが当たり前で選択肢も少なかった時代です。 Sendmailは開発が重ねられることで複雑化しセキュリティホールが頻発しました。また設定ファイルのsendmail.cfはチューリング完全であるほど高機能で複雑でまた長くなりがちでもあり今でも書きた

    メール運用がロストテクノロジーになっていく話
  • あるエンジニアの緩慢な死、あるいはエンジニア35歳定年説。 - Qiita

    エンジニア35歳定年説」が許されるのは小学生までだよねーとか思っていたら、実際にはそんな感じになってしまったあるエンジニアの半生を振り返ります。ご参考まで。 第一期 サービスリリース前 自分でサービスをガリガリ作っている というかサービスを作ることしかしていない 1日16時間くらい仕事をしても、プログラミングしかしていないので疲れない 仕様の検討をしながら作るので、基全ての時間は開発をしているという認識 フルスタックエンジニアというある種の全能感を満喫する 第二期 サービスリリース後 運用(ユーザーサポートなども含む)が入ってくるのでサービス開発のスピードが落ちる エンジニアを採用(業務委託含む)する 仕様の調整やコードレビューなど、開発以外の仕事が少しずつ増えてくる でもまだまだ自分が圧倒的にメイン開発者 コードレビューやマージ、リリースは自分が全てやる システムの全体からディテール

    あるエンジニアの緩慢な死、あるいはエンジニア35歳定年説。 - Qiita
  • 【たのしいな】様々なコマンド達を何も考えずにつないで遊ぶ - Qiita

    きっかけ matsuya-generator-rubyが、cowsayコマンドと組み合わせるとシュールこの上ない。 pic.twitter.com/gxaudeU377 — ぐれさん (@grethlen) 2015, 12月 6 もっと色々やってみたい。 あれ?Shell Script Advent Calendar 2015の22日目の枠残ってるじゃん。 じゃあやろう。 環境 Mac OSX Yosemite 10.10.5の端末上で実施。 zshを使って動作確認してますが、多分bashでも動きます。

    【たのしいな】様々なコマンド達を何も考えずにつないで遊ぶ - Qiita
    mapserver2007
    mapserver2007 2015/12/22
    これはワロタ
  • StackPHPとミドルウェアについて調べてみた - Qiita

    ちょっとStackPHPについてを調べたので、まとめを書いてみます。 Middlewareとは何だろうと思い、調べているとStackPHPのウェブサイトやスライド(Do You Stack Up? (slideshare))が出てきます。考え方もコードも実に簡単なのですが、今ひとつ重要性がピンと来ませんでした。 が、このブログ「HttpKernel middlewares」を読んだら腑に落ちました。ということで、このブログを元に自分なりに理解した内容をまとめます。 HTTPの動作を理解する HTTP HTTPの基は何でしょう? 簡単にPHPで表すと… function call($request) { /* do something */ return new Response($contents); } これだけ! HTTPのリクエスト($request)を受け取り、結果をRespon

    StackPHPとミドルウェアについて調べてみた - Qiita
  • C# プロパティのSetアクセサを使わないという提案 - Qiita

    C#のプロパティって便利ですよね。 VisualStudioでpropまで打ってTab,Tabってやれば まで自動で作ってくれるので楽なんですけど、このプロパティのsetアクセサを(Binding目的以外で)使うのをやめて、必要な場合はSetHoge(int value)みたいなメソッドにしませんかという提案。 以下理由です。 IDEで追いづらい VisualStudioで「すべての参照の検索」から、setしてる箇所だけを抽出することができない。(実は方法ある?) setアクセサを別メソッドにしておけば、そのメソッドに対する参照だけ抽出できるので そのほうが管理しやすいと思う。 Bindingで更新されるものと区別がつかない xaml系アプリに限った話になるけど、プロパティはBinding用のI/Fとしても使われるので、setアクセサがpublicになっていたときに、それがViewからバイ

    C# プロパティのSetアクセサを使わないという提案 - Qiita
    mapserver2007
    mapserver2007 2015/12/22
    Get,Load,Download/Set,Save,Upload の命名はなるほどと思った。
  • 民の例外の投げ方 - Qiita

    C# Advent Calendar 2015 17日目の記事です。主は来ませり。 戒めの言葉 コーディングとはコミュニケーションである。 人と実行環境(以下「主」)とのコミュニケーションであり、また、主を介した人と人とのコミュニケーションである。 つまりコーディングとは、読み手と書き手とで成されるコードのキャッチボールであり、キャッチボールであるからには、たとえ例外を投げる場合であっても、それが悪送球であってはならない。 第一に既存の例外クラス利用を考える MSDN「スローする正しい種類の例外の選択」には以下のようにあります。 他の既存の例外とは異なる方法でプログラム処理できるエラー条件がある場合は、カスタム例外を作成してスローします。 それ以外の場合は、既存の例外のいずれかをスローします。 チームの例外を所有するという目的のためだけに、新しい例外を作成してスローしないようにします。 俺

    民の例外の投げ方 - Qiita
  • Arduinoを自作して量産して販売する(超小型Arduino互換機 8pinoを例に) - Qiita

    田中章愛と申します。友人の高橋良爾とVITROというデザインユニットで作品を作ったり、品川周辺の仲間と放課後ものづくりコミュニティ品モノラボで活動しています。普段はメーカーでハードウェアエンジニアをしています。 このAdvent CalendarはArduinoがテーマと言うことで、読者の皆様はすでに一連の連載でArduinoの使い方はある程度ご存じなのかなと思い、今回はいざという時に役立つArduinoの自作・販売方法について説明したいと思います。 ちなみに書いてみるとかなり長文になってしまったのでご注意ください。。 記事のテーマと対象範囲 自作と言っても普通に手作りする例はネット上にたくさんある(1、2)ので、この記事では 1. 独自の要素を加えた自作Arduinoの回路を試作・量産設計する 2. 深センの工場(SeeedStudio)で量産する 3. オンラインストア(Switch

    Arduinoを自作して量産して販売する(超小型Arduino互換機 8pinoを例に) - Qiita
  • 究極のファイルダウンロード - Qiita

    アップロードと比較するとタイトルは釣り気味なのですが、ダウンロードにまつわるパターンをまとめます。 ふつうのダウンロード アップロードほど考えなきゃいけないことは多くないですが、ハマりポイントはいくつかあります。 ファイル名 何も対策せず日語をファイル名にすると、当然のように化けます。

    究極のファイルダウンロード - Qiita
  • Javaで業務系システムを開発するときの鉄板構成(2015年12月版) - Qiita

    はじめに Javaにはたくさんのフレームワークやライブラリがあります。 新規のプロジェクトでは何を採用するか検討する必要がありますが、最近Javaを始めた人や長い間レガシーなシステムをやっていて新しい技術に触れる機会がなかった人にとっては、たくさんの候補の中から選択していくのは大変なのではないでしょうか。 そこで、大部分のプロジェクトで無難に対応できるような鉄板ともいえる構成をまとめてみました。 想定システム 業務系システムと呼ばれるもの。金融系、人事系など、比較的お堅い感じのシステム メンバーが複数人で中規模以上のプロジェクト Webアプリ+バックエンドのバッチ 対象外 比較的カジュアルなWebサイト(そういうサイトでJavaを採用する事自体少ないですし) メンバーが一人で個人の趣味でプロダクトを自由気ままに選択できるようなプロジェクト Androidアプリ デスクトップアプリ 自分が鉄

    Javaで業務系システムを開発するときの鉄板構成(2015年12月版) - Qiita
  • システムエンジニアのカレンダー | Advent Calendar 2015 - Qiita

    About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)

    システムエンジニアのカレンダー | Advent Calendar 2015 - Qiita
  • SpringのDIとAOPの簡潔な説明 - Qiita

    前提 記事は「Spring3 入門」(通称:緑)を参考にしました Spring:Java言語のフレームワーク Springの肝はDIとAOP 【DI】(Dependency Injection) 〜概要〜 日語訳すると「依存性の注入」です。 SpringのDIコンテナの利点は大きく2つあります。それは、 クラスからnew演算子を消せる インスタンス化を1回で済ませられる(Singleton) です。 〜実装〜 実現する方法は2通りあります。 アノテーションを使う Bean定義ファイルを使う です。 アノテーションベースの方のみ説明書きます。 インスタンス変数(注入先の変数)の前に@Autowiredをつけると、@Componentアノテーションのついたクラスの中から該当するものを探し、newしてインスタンスを突っ込んでくれます! ▼(実装例) (パッケージ名やimport文は省略)

    SpringのDIとAOPの簡潔な説明 - Qiita
  • [Vagrant]2つのゲストOSを同時に立ち上げる(※別のVagrantfile) - Qiita

    別々のVagrantfileで管理しているゲストOSを同時にvagrant upしようとしたら、sshポート(hostにforwardする方)が重複して失敗した。 (デフォルトはhost: 2222) Vagrantはデフォルトだと、ホストの2222番にゲストの22番をフォワードするらしい。(1.4.3時点) このホストのポート番号を2222番以外にする事で、2つのゲストOSを起動する事に成功した。 前提 Mac Vagrant 1.4.3 現象 フォルダ構成は以下。名前は気にしないでください。 /path/to/vagrant-elasticsearch /path/to/vagrant-elasticsearch/Vagrantfile /path/to/vagrant-fluent /path/to/vagrant-fluent/Vagrantfile /path/to/vagran

    [Vagrant]2つのゲストOSを同時に立ち上げる(※別のVagrantfile) - Qiita
  • 多い日も安心設計 - Qiita

    アプリケーションエンジニアの多くは、眠れない夜を過ごしたことがあるでしょう。特に月に一度の…「月末締めバッチ」の日は。 そんなデータ量の多い日や、初モノのバッチが動く日でも安心して眠れるためのバッチ設計を考えてみます。 ログの設計 まず何はなくともログです。きちんとしたメッセージを出せていれば、専任の人がリカバリ可能にもなるってものです。 Audit用のログなど業務要件の強いものを除いては、だいたい3種類に分けるようにしています。 プログレスログ リカバリログ 例外ログ(調査のため) この分類でファイル単位も分けます。ログを必要とする人が、それぞれ異なるからです。 プログレスログ プログレスログは、特に長時間かかるバッチに対して、現在どのくらいまで処理が出来ているのかを目的として出力します。 トラブル発生時や、大規模移行作業時には、バッチの定期的なモニタリングと報告の必要が出てきます。「あ

    多い日も安心設計 - Qiita
  • Varnish入門と仕組み - Qiita

    Varnish入門と仕組み Agenda Varnishとは 仕組み 入門 ベンチマーク Reference Varnishとは 2005年に作成 ライセンス BSD cache機能を持つリバースプロキシとして知られるOSSのHTTPアクセラレータの一つ(Squid cache等) プロキシについて フォワードプロキシ Clientの前段に配置して不特定多数のサイトに代理でアクセスしにいくこと リバースプロキシ Serverの前段に配置して不特定多数のクライアントからアクセスしてきたのを代理レスポンス返す WHY プロキシ? 負荷分散 セキュリティ向上 コンテンツキャッシュによる応答の高速化 どこで使われてる? Fastly Cookpad Hatena 大規模サービス技術入門より 某アイドルの投票 過負荷に耐えるWebの作り方より Varnishのキャッシュについて Varnishはキャ

    Varnish入門と仕組み - Qiita
  • IntelliJ をテキストエディタとして使ってみる - Qiita

    IntelliJに手が馴染んでくると、いつも使うテキストエディタとしても使いたくなってくる。 そのユースケースで必要な設定やキーマップ(ショートカット)などをまとめてみた。 個人的な要望としては、JetBrains社にプログラミング機能を除いたコアな部分をシンプルなエディタとして提供してほしい。 前提 通常のエディタに比べて決して軽いソフトではないが、昨今のマシンであれば気にならない範囲だと思う。 とはいえ、もちろん最初の起動はそれなりに遅い。よっぽどでないと使い続けるには至らないと思われる。 一ヶ月ほど使い続けてみて書き溜めてみた。まだあるはずなので、適当に更新したい。 フォントなど外観の話はそれぞれの好みだと思うのでここでは触れない。 基デフォルト設定で。 ショートカット操作などは、Macのものしか書いていない。ごめんなさい。 Version IntelliJ IDEA 14.1.4

    IntelliJ をテキストエディタとして使ってみる - Qiita
  • 忙しい人のためのIntelliJ IDEAショートカット集(´-`) - Qiita

    新卒で入社してもうすぐで一年を迎えようとしている大久保です。(´-`) 最近ジョインしたプロジェクトでIntelliJ IDEAを使っているのですが、あまり機能を使いこなせていないなと感じたので、IntelliJ IDEAのショートカット調べました。(´-`) 自分がググったとき、ショートカットキーだけじゃなくて、Gif画像付きで使用例も見れたらうれしいので可能な限り作ってみました。(´-`) 例で使用しているコードの言語はScalaです。 現在使っているのがMacなので記述はMac版のショートカットのみです。 WindowsのIntelliJ IDEA使っている方がいましたらWindowsのショートカットキーについての編集リクエストいただけると嬉しいです。(´-`).。oO(他力願) @data9824 さんにWindows版のショートカットを追加していただきました! Git機能につい

    忙しい人のためのIntelliJ IDEAショートカット集(´-`) - Qiita
  • Ansible 2.0 変更点まとめ - Qiita

    Ansible 2.0 変更点まとめ Ansible 2.0のアルファ1.0がリリースされましたね! (2016.01.13追記: Ansible 2.0出ました。Qiita上ではリリースニュースを Ansible 2.0リリース! という記事で訳していただいています。) まだ開発中ではありますが、CHANGELOGを元に大きめの変更点をまとめてみます。 (よく使われそうと主観的に思うものと、個人的によく使うものについての記述粒度が細かくなってます。) 下記情報は全て2015年8月28日時点での公式ドキュメント・リリースノート・git issue・もしくはコードにもとづいてます。2.0の正式版リリース時の情報と変更される可能性はまだあるかもですが、大きな変更は一緒なはずです。 記事の内容に間違っているものなどあれば、ご指摘いただけると嬉しいです! 大きめの変更 CHANGELOGより抜粋。

    Ansible 2.0 変更点まとめ - Qiita
  • Ruby のココがダメ - Qiita

    タイトルは釣りです。Ruby に盲目的に惚れている迂生には Ruby の痘痕(あばた)はエクボです。 それはともかく。 メソッド名の別名がありすぎ 「あなたは map 派? それとも collect 派?」っていう問いがまず嫌い。 いや,別名にも意義があるとは思うんだけど,記憶の負担が大きい。 自分では map しか使わなくても,他人のコード読むんだったら collect を知っていなくちゃならない。 しばらく前に reduce っていうメソッド見て,そんなのあったっけ?と思ったら inject の別名だった。 map/collect と inject/reduce の名前とその背景にある発想については,Rubyist Magazine に良い記事がある: そうかと思えば,Array#delete_if と Array#reject! みたいに,働きは基的に同じだけど,削除が行われなかっ

    Ruby のココがダメ - Qiita
  • C# の enum に関連する小技。 - Qiita

    enum の値を対応する任意の文字列に変換する 画面に表示や印刷するときなど、enum値を文字列に変換したいときがあります。 そういうとき、C#ではenumに対しても拡張メソッドを定義することが可能なので、enum値を表示用の文字列に 変換する拡張メソッドを定義しておくと便利です。 例えば、

    C# の enum に関連する小技。 - Qiita
  • RSpecのshouldはもう古い!新しい記法expectを使おう!

    というように書くようになりました。 別にshouldを使った記法がなくなったわけではありませんが、 https://github.com/rspec/rspec-expectations のREADME.mdには、もう新しいSyntaxの説明しか載っていないし、今後はexpectの方を使っていくほうがいいでしょう。 http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax には、新しいSyntaxを導入した背景が説明されています。 簡潔に書くと、shouldだとBasicObjectを継承したクラスのテストを書くときに不具合が起こるみたいですね。 移行方法 基的には、上に書いたように、 foo.should を expect(foo).to に foo.should_not を expect(foo).

    RSpecのshouldはもう古い!新しい記法expectを使おう!