http://cedec.cesa.or.jp/2016/session/PRD/11836.html
Ruby で長い時間掛かるかも知れない処理のタイムアウトを行うにはこんな感じにします。 require 'timeout' begin Timeout.timeout(3) do # 3秒でタイムアウト hoge # 何かの処理 end rescue Timeout::Error puts 'なげーよ' # タイムアウト発生時の処理 end Timeout.timeout はブロック開始時にスレッドを作成し、そのスレッドで指定された秒数だけ sleep して、sleep から復帰してもまだブロックが終わってなければ作成元のスレッドに対して Timeout::Error 例外を発生させます。 指定時間以内に処理が終わる場合: timeout(X) │ スレッド作成 ─┐ │ │ ブロック実行 sleep X │ │ スレッドkill→ 🕱 │ timeout復帰 指定時間以内に処理が終わら
一昔前、「厚い財布」は、お札をどっさり入れて高級店に出入りする「お金持ち」の象徴だった。貨幣と交換でモノやサービスを買う社会では、お財布の厚みによって受け取れるモノやサービスの量が決定されたからだ。 しかし、クレジットカードや電子マネーが普及して高額の現金を持ち歩く必要性がなくなった現在では、厚い財布は「スマートさに欠ける人」を指す表現になっている。大量の現金を持ち歩くのは不用心だし、クレジットカードやポイントカードなどで財布が膨らんでいると「お得」や「特典」といった言葉に踊らされている人だと思われがちだからだ。 情報システムの納品物となるドキュメントも、かつてはその厚みが数億円ものコストを象徴していた。基幹系システムなら、ドキュメント一式でキャビネットが数段占有されるのが当然のことだった。 しかし、いまや紙のドキュメントはお荷物。更新が大変なのでソースコードと乖離しやすいうえ、同時に複数
original: The Product Management Triangle (by Dan Schmidt) (translated by ninjinkun, reviewed by Kosuke) はじめに プロダクトマネジメントは多くのソフトウェア企業が重要だと認識している役割だ。それにもかかわらず、「プロダクトマネジメント」を正確な言葉で定義することは驚くほど難しい。自らを「プロダクトマネージャー」と呼ぶ人々は、企業ごとに全く違うことをやっている。彼らは異なるタイプのプロダクト、異なるタイプのチーム、異なる組織構造の中で働いている。このプロダクトマネジメントの立場の違いは、とても不毛だ。外の立場から見ていると、同じ肩書きの仕事を参照する際に、誤解を引き起こしているように見える。全てのプロダクトマネジメントの仕事を統合して、共通の話題を抽出しようとすると、価値を説明しようとし
数学 - 線型代数 - JavaScript - 複素数、複素ベクトル空間(複素数, 計算)
まず、私が先日公開したブログ記事 (英語) に寄せられたあるコメントを紹介しましょう (たくさん寄せられたうちの 1 つで、その記事のコメント欄でご覧いただけます)。 Btw, "until I realized that the Solution Explorer tree nodes are searchable." This one is a saver ! (訳: ところで、「ソリューション エクスプローラーのツリー ノードが検索可能…」と書かれてていますが、こういうヒントは助かります!) この記事の中で何気なくソリューション エクスプローラーのテキストが検索可能であることに触れたのですが、それがコメントの投稿者である Sam さんの目に留まったようです。このようなちょっとした小ワザは Visual Studio にたくさんあり、中には熟練の開発者ですら知らないものもあります。こう
Question regarding writeboost and MYSQL · Issue #146 · akiradeveloper/dm-writeboost · GitHub 最近ライトブーストを試し始めたユーザだが、他人に対するリスペクトがないため「お前の質問には一切答えない」と言って打ち切った。出来るだけそういうことはしたくなかったため、過去に同様のことをした時は忠告する程度に止めていたが、再発したため追放することとした。(Issue 141でも同様に、foolなど罵る言葉を使っていたため忠告した) OSSでは、会ったこともなく、それこそ本名も知らない人がコミュニケーションをとることになる。言語は英語だが、お互いにネイティブである方が稀である。そこで大事なのは、他人をリスペクトする気持ちだ。まじでリスペクトする必要はない。本当にリスペクト出来ないなら去ればいいだけだし、リスペ
サイボウズ・ラボの光成です。 今回はC/C++用文字検索ライブラリmie_stringを紹介します。 mie_stringはテキストの中から複数文字のいずれかが存在する場所を高速に検索する関数を提供します。 本文ではその使い方と性能を紹介します。また後半ではSIMD命令を使うときに悩ましい端数処理について詳解します。 準備 mie_stringではCのintrinsic関数(SSE4.2)を使ったものとアセンブリ言語で書いたものの二つを用意しました。 intrinsic関数を使う場合はMIE_STRING_INLINEを定義してからmie_string.hをincludeしてください。 これ以外のファイルは不要です。C/C++のどちらからも使えます。 includeするだけでつかえるので簡単ですね。 なお、コンパイルオプションにはgcc/clangなら-msse42や-mavx、Visua
B! 10 0 0 0 シェルスクリプトをif文を書き換えてる時に気づいた点についての備忘録。 if文を短く書き換え 終了ステータスが違う おまけ: 三項演算子にしてしまう if文を短く書き換え シェルスクリプトで 1 2 3 4 5 n=2 if [ $n -eq 1 ];then echo "n is 1" fi echo $? みたいな文をAND(&&)を使って 1 2 3 n=2 [ $n -eq 1 ] && echo "n is 1" echo $? こんな風に短く出来ます。 終了ステータスが違う 上の二つは同じ様な機能を持つので、 この切替はなんとく見た目が良い感じになるように、の程度でやってましたが、 nが1でない時に終了ステータスが変わります。 上の場合はif文にはnが整数である限り間違いはないのでこの部分は正常終了し if文後は$?が0になってます。 一方、下の方は最初
こんにちは。プレイドの野田(@positiveflat)です。 弊社株式会社プレイドでは、ウェブ接客プラットフォームのKARTEというサービスを開発・提供しています。今回は、私たちのチームの開発方針に触れ、その方針を実現するための取り組みの一部として行っている、我々の製品の品質を維持するGUIテストの仕組みについてご紹介いたします。 目次 プレイドの開発方針とGUIテストの位置付け GUIテストの自動化が進むにつれて起こる問題 CircleCI上でのテストの並列実行による総実行時間の短縮 CircleCI Enterpriseの導入によるテストの高速化 Ghost Inspectorを使ったGUIテストスクリプト開発の高速化 課題 最後に プレイドの開発方針とGUIテストの位置付け 弊社の開発チームでは、以下の方針のもと、フラットな組織でスピード感のある開発を目指しています。 全員が自分で
2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、 ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一本化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、 ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod
転職活動でもお世話になったCodeIQで↓のような問題があったので回答を出したところ、 レビュー会への招待が来ていたので行ってみた! codeiq.jp 問題 出題はじゃんけんを行うプログラムをリファクタリングするという問題。 「標準入力として与えられた文字列を2人分のじゃんけんの手として解釈して勝敗を標準出力する」というもの。 元はnode.jsだったのだが、僕はjsが不慣れだったりもするのでperlで再現。 sub func02 { my ( $a, $b ) = @_; if ( $a eq 'g' ) { if ( $b eq 'c' ) { print "win"; } elsif ( $b eq 'p' ) { print "lose"; } else { print "draw"; } } if ( $a eq 'c' ) { if ( $b eq 'p' ) { print
正規表現を書く際、どのようなパターンにマッチさせるか、どこをキャプチャするかという視点で記述することはあっても、パフォーマンスを考えて記述するというのはある程度知っている人でなければ忘れがちな視点です。 このエントリでは、バックトラックをメインに正規表現がパフォーマンスに及ぼす挙動について見ていきます。 対象の正規表現エンジン ここでは、従来型 NFA を対象としています。具体的には、PHP の preg_ 関数で利用している PCRE や mb_ereg 関数が利用している鬼車です。Perl や Ruby、Python、Java、.NET でも従来型 NFA を採用しているので、似た挙動となるでしょう。 「従来型 NFA」や「バックトラック」などの用語については、「詳説 正規表現 第3版」のものを用いています。 バックトラックによるマッチ探査 正規表現エンジンでは、指定された文字列が、パ
本当にScala化できるんですか? 増井:今日は、チャットワークをPHPからScalaに切り替えるお話を伺うためにやって来ました。 山本:はい。 増井:僕がこの話を知ったのは、ちょうど2年ぐらい前に読んだブログのエントリだったんです。いきなり失礼なんですが、僕はこの話を知って、ぶっちゃけアホじゃないかと思ったんですよ。 山本:あはは(笑) 増井:基本的に開発言語やフレームワーク、方法論を同時に変えるって結構大きな変更ですよね? 山本:そう思います。 増井:それなのに、この決断を発表された当時、御社にはScalaエンジニアがいなかったそうじゃないですか。「本当に大丈夫なのかな?」と思って、気になってたんです。昨年春には「Scala採用を決めて一年たった、CTOの雑感」というエントリをポストされていましたが、さらに1年経った今はどんな状況なんですか? 山本:ひと言で申し上げると「絶賛移行中」と
事前に会員登録する 全国一斉プログラミング模試はCodeIQへの登録が必要です。 まだ会員でない方は上記から事前に会員登録を行ってください。 模試が開始されたらお知らせ致します。 事前に会員登録する 全国一斉プログラミング模試はCodeIQへの登録が必要です。 まだ会員でない方は上記から事前に会員登録を行ってください。 模試が開始されたらお知らせ致します。 受付期間 2016年8月30日 ~ 2016年9月16日 参加資格 どなたでも参加頂けます。 参加方法 このページの「受験する」ボタンをクリックしてください。※問題の閲覧と解答にはCodeIQのアカウントが必要です。CodeIQの利用規約等に従ってご参加ください。 試験内容は6部門、各分野の受験目安時間は10分です。 試験を一度スタートするとすべての分野が終了するまでタイムカウントは継続されます。 試験は何度でも挑戦できます。
もうかなり前の話になってしまうのだが、C言語における『未定義動作』の存在を知った時は衝撃を受けた[本の虫:Old New Thing: 未定義動作はタイムトラベルを引き起こす(他にもいろいろあるけど、タイムトラベルが一番ぶっ飛んでる)、Success is a Journey, not a Destination:全てのCプログラマが未定義な振る舞いについて知っておくべきこと #1/3]。以降、gccのWstrict-aliasingオプションは必ず付けるようにしているし、ポインタの怪しい型キャストはしないようにしている。 それなりに親しんでいるつもりのテクノロジでも、重要なことを知らないまま使っていて、落とし穴にはまることがままある。必要と思ってはいても、つい仕事が忙しい、探して手に入れるのが面倒であるなどを理由にして、Webの断片的な情報や入門書で用を足し、言語仕様書などを読まないで済
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Webでのプッシュ技術 HTTPはクライアント(ブラウザ)からリクエストしてサーバからレスポンスが返る一問一答型のプロトコルなので、基本的にはサーバ側からブラウザに新着情報をリアルタイムで通知(プッシュ)できるようにはできていません。 しかしそれでもプッシュをしたいという場合にどうするかという話が出てきます。やり方には以下のようなものがあります。 ポーリング クライアントからサーバに定期的に新着を問い合わせるようにします。 最も原始的かつ確実なやり方。欠点は、最大でポーリング間隔の分だけ通知が遅延しうることです。 ロングポーリング(“C
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く