Photo by Mike Goren 秋山です。 皆さんは「アルゴリズム」という言葉を聞いて何を思い浮かべますか? 最近では機械学習や人工知能(AI)、ビッグデータなどが話題になっているので、ディープラーニング、ニューラルネットワーク、クラスタリング、グラフ理論などなど…難しい用語を思いつく方も多いかもしれませんが、初心者にとってはハードルが高いですよね。 アルゴリズムについて勉強したことがない人は、気になってはいるものの、各プログラミング言語の書き方やフレームワークの使い方などを学ぶことに手一杯でつい後回しになっている…という方も多いと思います。 今回は、アルゴリズムの初歩的な話と、アルゴリズムを学べるサイトと本をご紹介します。 ■そもそもアルゴリズムってどういうこと? ■アルゴリズムが学べる書籍とサイト ◆paizaラーニング「アルゴリズム入門編」 ◆VisuAlgo ◆SORTIN
こんにちは。Typetalkチームの永江です。今回は4月にリリースした、BacklogとTypetalkの連携機能である「Backlogカード」の実装の際に行った クリックジャッキング対策 について説明します。 Backlogカードとは Backlogカードは、Typetalkのトピック内にBacklogの課題やコメントをカード形式にして表示する機能です。Backlogの課題キーや課題のURLを貼り付けるだけで、以下の画像のように表示できます(※詳しいご利用方法についてはこちらの「Typetalkのトピック上で課題の詳細を見られる Backlogカード をリリースしました!」をご参照ください)。 Backlogカードの実装は、TypetalkからBacklogに用意した埋め込み用の課題ページを<iframe>で表示するというものです。このような実装にしたのは、もともとBacklogに<if
概要 先日、Tech Night @ Shiodome # 4というイベントに参加して、LTをしてきました。 どんなイベントか 「DevOpsと自動化」をテーマに、事例・知見を共有する場でした。 もとはソフトバンク様の社内勉強会で「外部ゲストを呼ぶ → 公開イベントになった」とのことです。 社会にシェアする姿勢が素敵だと思いました。 他の参加者の発表 あたりまえのことをあたりまえにやる難しさ AWS ECS (EC2 Container Service)を用いた AWS へのDocker コンテナデプロイ 自動化におけるコード管理 送信メールサービスをユニットテストしてみた DevOps、本当のところ こちらのConnpassのページに資料が上がっています。 どんな話をしてきたか こちらが当日の発表資料になります。 ざっくり説明すると DevOps(全体最適化)の前に、業務標準化(ドキュメ
There are a set of rules to keep in mind: Perform work in a feature branch. Why: Because this way all work is done in isolation on a dedicated branch rather than the main branch. It allows you to submit multiple pull requests without confusion. You can iterate without polluting the master branch with potentially unstable, unfinished code. read more... Branch out from develop Why: This way, you can
こんにちは、ハートビーツの宮越と滝澤です。 2017年6月20日〜22日にサンノゼで開催されたO'Reilly Velocity Conference 2017 San Joseに参加してきました。 Velocity Conferenceは日本では馴染みがないカンファレンスですが、主に運用やSREやDevOps向けのイベントになります。 本記事では興味深かったセッションをいくつか紹介します。 なお、内容については紹介している資料を確認してください。聞き間違えたり、認識が違っているかもしれないためです。 コンテナ Container orchestration wars スライド: Container Orchestration Wars (2017 Edition) (SlideShare) MesosphereのKarl Isenberg氏によるContainer orchestrati
Rails の master で Bundler 2 を許可するようになった ので、手元の Rails アプリケーションで Bundler 2 を使ってみることにした。 RubyGems にはまだ Bundler 2 は公開されていないため、ソースコードからインストールする必要があるので、その手順を記しておく (もっとクールなやり方あるかもだけど、他のアプローチは分からない) 。 bundler/bundler の master のソースコードにある version.rb のバージョンを 2.0.0.dev にする。Bundler の実装としてメジャーバージョンが2であれば、Bundler.feature_flag.bundler_2_mode? の値で true を返して Bundler 2 モードなるので、それを有効にするためとなる。 % git diff diff --git a/l
リレーショナルデータベースで管理しているデータを Elasticsearch で検索・分析したい場合、Logstash が便利です。 Logstash とは?Logstash はオープンソースのサーバーサイドデータ処理パイプラインです。様々な数のソースからデータを取り込み、変換し、指定された任意のストア先にデータを格納することができます。 処理の内容はシンプルで、Input ステージでソース元の接続先情報を管理し、Filter ステージで変換をし、Output ステージで格納先接続先情報を定義します。Input 及び Output プラグインはデフォルトで様々なソースをサポートしています。そのため、Logstash を使えば、プログラミングレスで MySQL のデータを取り込み、変換し、Elasticsearch へインデックスすることができるのです。 事前準備MySQL と Elasti
みなさんさようなら.インフラ部の@h3_potetoです. CrowdWorksは大きなRailsアプリケーションですが,最近ではこの大きさで管理していくのもう無理な気がしてきて,マイクロサービスっぽくしていこうという動きがあります(が,まだ全然マイクロサービスではないです). それでも一部を切り出すことには成功していて,多少なりともマイクロサービスの運用っぽいことも必要になってきました. で,今回は僕の趣味のデプロイの話です. サービスはDockerに載せたいよ CrowdWorks本体は,Docker化まで程遠い感じがしているんですが,切り出したマイクロサービスなら,最初からDocker前提で作ることが出来ます. これなら楽にDockerで本番運用まで行けそうな気がしていました. 他のサービスを色々AWS上に構築していることから,Dockerでアプリケーションを動かすのもAWSでなんと
20 Nov 2014 This post is based on the talk of the same name I gave at the Arrrrcamp conference in Ghent, Belgium on October 2nd, 2014. You can find the slides here and the video recording here. Unicorn is a webserver written in Ruby for Rails and Rack applications. When I first used it I was amazed. This is magic, I thought. It had to be. Why? Well, first of all: the master-worker architecture. Un
Open Source Summit Japan 2017 で聞いた話に shiftfs の話があって、興味を持ったので試してみました。この機能の前提機能なんかに関する前提知識に欠けているため、以下には間違いが含まれている可能性が大きいです。是非指摘を頂きたいと思います。試してみただけで内部の処理とかは書いてませんよw 下に関連情報を挙げておきます (こちらを直接見たほうがいいかも)。 Container Interfaces for Storage - Are We There Yet? (Open Source Summit の James Bottomley 氏のスライド) shiftfs: uid/gid shifting filesystem (s_user_ns version) (lwn.net) Unprivileged Build Containers (James Bo
日報一覧画面最近、プライベートな時間をつかってRepostというオープンソースの日報共有アプリケーションを開発しています。 投稿した日報に対して、コメントや絵文字でリアクションすることでチームでのコミュニケーションを活性化させることを目的としています。日報版Slackのようなイメージです。 まだ開発着手から1ヶ月ということもあり、バージョン0.0.1でまともに稼働できる段階ではないですが、開発のモチベーションを高めるためにも記事を書いてみました。 技術スタック チャンネル作成画面RepostはフロントエンドにReduxを採用し、SPAとして構築しています。APIサーバとしてのバックエンドはRuby on Railsで開発しています。また、エディタ部分はDraft.jsを用いてMarkdownエディタを実装しているところです。 Draft.jsについては、過去にとあるプロダクトに採用した経験
おはようございます。一番よく使うemojiは 👀 (:eyes:) のうなすけです。 さて弊社では、最近社内Railsアプリをひとつ構築しました。それをECSで運用することにしたので、そこに至るまでの経緯、つまづき、これからの課題などなどを記事にしていこうと思います。上の図は現時点での簡単なAWS上での構成図です。 以下、見出しは時系列順でやったことを記録していきます。 社内Railsアプリ、一体どんなもの? ここで新規に構築することになった社内Railsアプリですが、特に凝ったことはしていない単純なRailsアプリです。初めからECSで運用することにしていたので、開発環境も全てDockerで構築しています。Railsのバージョンは5.1.0、Docker imageのFROMにはruby:2.4.1-silmを採用しています。 Docker imageのtagについて developm
bashで変数から部分文字列を取得する方法まとめ パラメータ展開を利用して部分文字列を取得する オフセットと長さを指定して文字列を取得する #!/bin/bash HOGE="abcdef" # オフセット位置から長さ分を取得 echo ${HOGE:0:2} # -> ab echo ${HOGE:2:2} # -> cd echo ${HOGE:4:2} # -> ef # 長さを省略した場合はオフセットから最後まで出力 echo ${HOGE:2} # -> cdef # 長さにマイナスを指定した場合は最後からマイナス分引いた位置までの長さになる echo ${HOGE:0:-2} # -> abcd # オフセットの位置にマイナスを指定した場合は文法として別のパラメータ展開になる(デフォルト値の指定) # 指定した変数が空文字列の場合は右に指定した文字が入る echo ${HOGE
編集部注 : 社内で多くのアプリケーションやサービスが稼働するようになると、SRE(や運用)チームのサポートが追いつかないケースが出てきます。今回の『CRE が現場で学んだこと』シリーズでは、企業内のアプリケーションやサービスの中で何を SRE にサポートしてもらうかを、うまく原則に基づいて防御的に決める方法について見ていきます。 Google では幸いなことに、ストレージやネットワーク、ロード バランシングといった横断的なインフラはもちろん、Google 検索や Google マップ、Google フォトなどの主要なアプリケーションも含め、すべてを Site Reliability Engineering(SRE)チームがサポートしています。とはいえ、SRE にはソフトウェア エンジニアとシステム エンジニアの両方を組み合わせたスキルが求められるため、それを満たす人材を見つけて採用するの
4月に開催されたnetdev 2.1で面白いセッションがあったのでメモ。 Facebookが使用しているレイヤ4のロードバランサに関する発表で、従来はIPVS (LVS) を使用していたが、XDPベースで自ら開発したものに移行しつつある、という内容。 XDP Production Usage: DDoS Protection and L4LB (slide) www.youtube.com XDP (eXpress Data Path) については以前のエントリで簡単に紹介した。 yunazuno.hatenablog.com XDPを改めて簡単に紹介すると、Linuxカーネルのネットワークスタックの最下部 (NICに一番近い場所) でパケット処理を行う仕組みのことで、オーバーヘッドが非常に小さい高速パケット処理の実現を目的としている。XDPはeBPFを用いており、eBPFが提供するmap
ブログ、一ヶ月ぶりのようです。 @udzura です。ところでみなさんはコンテナですよね? そういう感じです。 ここ最近のアウトプットをまとめたりしておきます。先に行っておきますがどれもLinuxコンテナの話です。 6月半ばに、第11回 コンテナ型仮想化の情報交換会@大阪 にお呼びいただいて、話してきました。なぜか一時間話しました。 ct-study.connpass.com 割とこの時点での自分がHaconiwaとFastContainerでやってきたことの集大成を出せたみたいな感じで、なおかつ日本のオルタナティヴ・ロックの話ができたので良かったです。お呼びいただいた、 @TenForward さんに感謝です。 speakerdeck.com そろそろ numbergirl って名前のミドルウェアを書こうと思います。 コンテナ勉強会は、質問も前向きかつ深いものが多くて、また各社の現場のL
こんにちは、Retty.Inc ソフトウェアエンジニア兼データサイエンティストのchie(@chie8842)です。 好きなたべものは焼肉とみかんです。 現在Rettyでは、次世代分析基盤を構築しています。Rettyでは、サービス拡大に伴いログの急増や分析需要の拡大が見込まれるため、高いスループットとコストパフォーマンスを両立する、スケールするアーキテクチャ設計が求められています。 今回は、こうしたスケールするアーキテクチャ設計の実現のために理解しておくべきDWHのコア技術の一つである、カラムナフォーマットに焦点を当てて紹介します。 はじめに - カラムナフォーマットとは カラムナフォーマットとは、データベースの分析用途に利用されるファイルフォーマットの種類の一つです。大量のデータを扱う際に効率的に圧縮してストレージコストを下げたり、計算時に必要なデータだけを取り出して計算コストを小さくで
A blurb from Vaughn Vernon in Implementing Domain-Driven Design (2013) has a fantastic explanation to what Domain-Driven Design is: The software development approach called Domain-Driven Design, or DDD, exists to help us more readily succeed at achieving high-quality software model designs. When implemented correctly, DDD helps us reach the point where our design is exactly how the software works.
機械学習で色々やっていると、いろいろなモデルを複合したアンサンブルモデルなど、自分で新しい予測モデルを作りたい場合があります。 その場合自分でいちから作り上げても良いのですが、そうやって作ったモデルは、たとえば scikit-learn のパラメータ最適化モジュールである GridSearch や RandomSearch を利用することができなくて、少々不便です。 この際に scikit-learn の定義にしたがってモデルを定義すればうまく連携がとれて効率的です。以下では scikit-learn 準拠の予測モデルをどうやって作ればよいか、その際の注意点や推奨事項を取り上げます。 参考 Creating your own estimator in scikit-learn http://danielhnyk.cz/creating-your-own-estimator-scikit-l
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く