2017/02/03 JaSST’17 Tokyo
![受け入れテストの自動化 ~ OpenCVの「眼」で捉え、Pythonの「脳」が思考し、Appiumの「指」で動かす - Speaker Deck](https://cdn-ak-scissors.b.st-hatena.com/image/square/fb04e18f70666cc8f0eab6488620880bc96826a5/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fa85475f5760345d8b19a02cced0516ae%2Fslide_0.jpg%3F7525512)
会話を続けましょう。Android スマートウォッチで WhatsApp が利用できるようになりました。スマートフォンなしでも安全にメッセージを送受信したり、電話に出たり、チャットでおしゃべりしたりできます1。 ダウンロード
ソフトウェアエンジニアは、本屋になってはいけないという話をする。Amazonのことではない。 私には、わりと本を買い漁ってしまう癖というか衝動がある。始まりは大学生の頃に遡る。京都に住んでいた私は、大学生協書籍部、四条にあるジュンク堂、丸善、それから大学の近くにある古本屋などへ行っては、数学や物理学の本を衝動的に買い漁った。まともに読みこなせたものは数少ないので、とんだ散財癖でしかなかったわけだが。この衝動の原因は、自分の根っこにあるコンプレックスが影響しているのだと分析してはいるが、その話はまた別の機会にしよう。 時は移り20代中盤、プログラマーになってみようと決意した私の衝動の対象は、ソフトウェア関係の書籍になった。現在は絶版になっている書籍を、その頃にたまたま購入していたりして、ラッキーだったと思えるものもなくはない。しかし、Windows 32 APIリファレンスなど、ほとんどは本
sumはファイルのチェックサムを計算するコマンドだ。 チェックサムとは、データ全体を特殊な計算アルゴリズムで算出し、導きだす数字のことで、ファイルの内容が同じであれば同一のチェックサムになる。 昔の通信方法では、ファイルを相手に送った際に、コピーミスや転送漏れによりファイルが正しく届かなったこともあった。その時に、チェックサムも同時に送ることで、送信側、受信側でチェックサムが同一であれば、ファイルは正しく送信されたと判断できた。 今日においては転送漏れなどが発生することは少なくなったが、転送経路の中で、ファイルを改ざんされるという事件がまれに起きる。 このような改ざんを防止することや、そもそもファイルの送り間違いなどの人的ミスもチェックサムの活用によって防ぐことができる。 sumコマンドの基本 コマンドの基本動作 使い方は、次のとおりだ。 $ sum ファイル名 テキストファイルw.dat
みなさんこんにちは。まだまだ寒い日が続き豆腐が美味しい季節になってきましたね。カヤック・オルタナティ部のカワナクションです。今回は、巷で話題のMicrosoft Hololensについてご紹介します。 1:Hololensってなんじゃ? Hololensは、ホログラフィックコンピューティングができるゴーグルデバイスです。ワイヤレスで、実空間にデジタル表現を重ねることができ、 指のジェスチャーなどで操作できるのです。まずは、映像をごらんください。 Microsoft HoloLens: Skype そんな、Hololensで簡単な制作過程を今回はご紹介いたします。早速いってみましょう! 2:Hololensの環境設定 今回は以下のように開発環境を設定しました。 Windows 10 Unity 5.5.0p2 Visual Studio 2015 HoloToolkit-Unity さっそく
FRESH!で再生が止まってしまったときに、Chrome DevToolsのNetworkタブを見ていたところ、.m3u8というファイルの取得に失敗していることが分かりました。そこから、.m3u8ファイルと.tsファイルを用いて実現されるライブ動画配信の仕組みHTTP Live Streaming (HLS)の挙動について調べ、実際の通信内容と比較して、クライアント側の動作や、ファイルの内容などの仕組みが見えてきました。 その基本的なところについての理解を図解してみたので、ここにメモ&紹介しておきます。 実際の挙動については、サイバーエージェントの動画配信サービス「FRESH!」および、「AbemaTV」の挙動を参考にしました。 目次 1. HTTP Live Streaming (HLS)2. 2種類のファイルを用意して動画配信する2.1. .tsファイル(動画)2.2. .m3u8(プ
時によってプログラマは文字列から不要な文字を取り除きたい場合があります。例えば、テキストの一部からすべての行の末尾文字を削除したいとします。 その時、全スペース(‘ ‘)や改行コード(‘\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
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の大幅変更もあり、まだあまり普及
概要 Vim 8.0 では、Vim 本体にプラグイン/パッケージを扱うための機能が追加され、さらに外部プロセスを実行して非同期に通信を行う、ジョブ・チャンネル機能が追加されました。 今回、これらの機能を活用した Vim 8.0(およびNeovim)用のプラグインマネージャを作ってみました。 プラグインマネージャの歴史 本題に入る前に、Vim のプラグインマネージャの歴史を軽くおさらいしてみましょう。(以下の分類は、私による勝手な分類です。) 第 1 世代 Vim には、Vimball と GetLatestVimScripts という標準プラグインが付属しており、これを使えば対応プラグインを簡単にインストールしたり、更新することができました。 しかし、これらに対応していないプラグインの管理は困難でした。'runtimepath' の管理は手動だったため、すべてのプラグインを単一ディレクトリ
エンジニアの方でなくても、一度は聞いたことがあると思います。JavaScriptは、HTMLやCSSに負けないくらい有名で、世界中の人々に愛されている言語です。stackoverflowの2016年の調査によると、JavaScriptは地球上で最も一般的に使用されているプログラミング言語だそうです。
テストを小さくする。適切なツールを使う。プログラマとテストがペアになる。これらは、よいユニットテストを書くための、Adrian Bolboaca氏からの提案だ。 ユニットテストは、プログラミングとテストが混ざり合ったものだ。プログラマは、テスタと共に作業することで、お互いに学び合い、視野を広げることができる。 Adrian Bolboaca氏は、Mozaic Worksの組織と技術に関するコーチであり、ヨーロッパテストカンファレンス 2017において、様々なタイプの自動テストについて話す予定だ。 InfoQは、このカンファレンスについて、Q&A、要約、記事で扱う。 [ヨーロッパテストカンファレンス]は、専門家や実践者が一緒に話し、学び、テスト技術を実践するところです。 私たちは、テストをもっと効果的にするために、先進的な新しい方法を詳しく調べ、より強いコミュニティに成長する基本的な方法を十
Leo(@Akamaru12mg)はPureCSSでワケの分からないものを作るのが大好きなフレンズなので、けものフレンズのタイトルロゴをCSSのみで作ってみました。 ちなみに制作時間は約6時間!貴重な休日が潰れちゃったね!しにたーい! 参考にしたのはけもフレ公式サイトのこれ↓ この画像を参考にしながらpositionで無理矢理レイアウトを組み立てました。見ての通り、「の」と「ズ」の部分は鬼畜です。CSSって丸っこい形は作りにくいんだよね… 「まぁ、どうにかなるっしょ」と甘い考えで作り始めた結果が、6時間という制作時間です。諦めなかった自分を褒めてあげたい。そして皆に「すっごーい!」って言ってほしい。 Kemono Friends Title Logo 完成品がこちらです。 See the Pen LxKNPm by Kuzlog (@Kuzlog) on CodePen. 最初は「綺麗なコ
この記事について Pythonを使って、CSVなどのデータを分析・可視化する方法を紹介します。 今回は、インタラクティブにデータの分析ができるJupyter Notebookというツールの使用方法をインストール段階から解説していきます。 目次 この記事について 目次 Jupyter Notebookとは? インストール方法 使用方法 pandas.DataFrameと相性がいい グラフも表示できる 関連記事 Jupyter Notebookとは? Jupyter Notebookは、Pythonなどを使ってインタラクティブにコーディングができる環境のことです。 何のことかよくわからないと思うので、実際に動いている様子をご紹介します。 まずJupyter Notebookを開いてノートを作成すると、次のような画面が表示されます。 画像中のテキストボックスに、Pythonのコードを描いていきま
今回はジェネリックスの不変、共変、反変について書いてみた。 本当は Effective Java 「項目25:配列よりリストを使う」の予定だったんだけど、不変、共変、反変あたりの話がでてきて、 ここらへんは以前からまとめておきたかったし、ちょうどよいと思って記事にした。 不変、共変、反変 不変、共変、反変とはそれぞれ、ジェネリクスの性質を指す用語です。 話を具体的にするため、例として List<E> と、Object、String を使って説明します。 Java の Object、String には以下のような関係があります。 Object は String のスーパータイプである この時、Object と String に対してパラメータ化された型である List<Object> と List<String> の関係性はどうなるでしょうか? 可能性として、以下のような組み合わせを考えるこ
CTOの河合(@neuecc)です。グラニもエンジニアブログはじめました!グラニの中心的テクノロジーであるC#関連は元より、Unity関連やUniRx、最近力を入れているVR関連についての情報を色々と発信していけたらと思っています。私自身は、思いたったときが書き時ということで、私が社内にふっと流したくなったものを、外向けに発信していこうかな、と思っています。 さて、今回のテーマはswitch文のコンパイル結果について。C#は割と素直なコンパイル結果(ILへの変換)を得られるのですが、一部のものはアグレッシブな変換を行います。有名所ではラムダ式のクロージャなどは、隠れたクラスを作ってくれる、作ってしまうなど、コードの見た目からイメージした通りではない結果を出力しますが、実はswitch文もかなりアグレッシブな変換を行います。そこで、今回はそうしたswitchの最適化を見ていきましょう。 なお
はじめに Udacityというネット上のビデオを視聴する形で受講できる講義を提供しているサイトがあります。 Learn the Latest Tech Skills; Advance Your Career | Udacity サイトや講義は英語なのですが、その中で Machine Learning for Tradingという講義を見つけました。 この講義は主に3つのパートに分かれています 金融データをPythonで操作する コンピュータを使った投資 取引に使う機械学習アルゴリズム 1つ目のパートを視聴したので、Pythonの基本的な知識の部分で知らなかった点を、実際のデータを操作する中で紹介しようと思います。 2つ目と3つ目はまた後日にでも。。 目次 はじめに 目次 今回使用するデータとJupyter Notebook データの読み込み 移動平均の計算 pandasのrollingを使
Chainerを使った深層強化学習ライブラリChainerRLを公開しました. https://github.com/pfnet/chainerrl PFNエンジニアの藤田です.社内でChainerを使って実装していた深層強化学習アルゴリズムを”ChainerRL”というライブラリとしてまとめて公開しました.RLはReinforcement Learning(強化学習)の略です.以下のような最近の深層強化学習アルゴリズムを共通のインタフェースで使えるよう実装してまとめています. Deep Q-Network (Mnih et al., 2015) Double DQN (Hasselt et al., 2016) Normalized Advantage Function (Gu et al., 2016) (Persistent) Advantage Learning (Bellemar
皆さんはMilanote(ミラノート)とかいうオンラインで使用できるノートサービスをご存知でしょうか?僕も最近知って、使い始めたばかりなのですが、これがなかなか秀逸なノートサービスで、100ノートまでなら無料で使うことが可能です。一言で言うと『無限に広がり、さらに無限に掘れるホワイトボード』だと思っていただければOKです!...って逆に分かりづらいですよね(笑) てなわけで、あんなコトやこんなコトが書かれている僕の個人的なMilanoteを見せるのは、こっ恥ずかしいので、新たにMilanoteのアカウントを作成して、どんなノートサービスなのか皆さんにご紹介したいと思います。見たら絶対に使いたくなること間違いなしですぞ! MilanoteはGoogleやAppleの中の人も使うスゴいツール? Milanote(ミラノート)の使い方 Milanoteの登録方法 さっそくMilanoteを使って
こんにちは、VOYAGE GROUP システム本部の @s-tajima です。 PHPカンファレンス2016 の「老舗メディアが改善に取り組んでいる話」でもお話した通り、長年オンプレミス環境で稼働してきたECナビを、AWSに移転しようというプロジェクトが進行しています。 そしてなんと先日、約24時間のメンテナンスを経てECナビの本体(Webサーバ, 管理画面サーバの一部, データベースサーバ)がAWSに移転しました! AWS移転において得た知見, 構築したシステム等は数多くありますが、今回はCloudFormationとTravis CIを用いて 生産的 で 安全 で 手軽 なAWSのCI環境を構築したお話です。 背景 ECナビは、500万人を超える会員を抱えたVOYAGE GROUPが運営している中でも特に大きなメディアの1つです。 今回、そんなECナビのインフラ調達期間の削減、検証環
なぜDMMがweb3に参入したのか。Seamoon Protocolが目指す新たなエンタメ体験の未来とは
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く