目的 Dockerでコンテナイメージをビルドする環境の都合上、 同一Dockerfileを使いながら内部のパラメータを変更したいことがある。 そんな事象にどうやって対応するかを説明。 前提 Ubuntu 16.04.1 Docker 1.13.0 概要 Dockerfileの中でARG句(?)を用いることで --build-argによる設定を受け付けられるようにでき、 コンテナイメージをビルドする際に任意のパラメータを含めることができる。 具体例
最近ずっと開発中の「静的型PerlのVM実装 static-perl」で、akinomyougaさんに、Makefileを作っていただいたのだけれど、そこで学んだことを少しメモしておく。 以下がstatic-perlのがMakefileだね。 https://github.com/yuki-kimoto/static-perl/blob/master/Makefile .PHONYを使うと、同名のファイルが存在していても、大丈夫なよう。Makeは、たとえばcleanというファイルの名前があると、それが存在しているとみなされて、Makefileの中のcleanが実行されない。「これは思ってもみないことだ」 これを防いでくれるのだ。うれしいね。
κeenです。先日、Kubernetesの開発者が書いたKubernetes: Container Design Patternsというのを教えてもらって、面白かったのでそれを紹介します。 ただ漫然とコンテナを使っているだけでは気付かない使い方があったのでコンテナに興味のある方は是非一読下さい。 序論 オブジェクト指向が出てすぐにオブジェクト指向デザインパターンが産まれたように、分散システムにもデザインパターンが必要となってきました。 分散システムのデザインパターンの萌芽はHadoop/MapReduceに見ることが出来ますが、Javaに限られていました。 ところがここ数年の(Linuxの)コンテナ技術の躍進により欠けていたピースが埋まりました。分散システムパターンへのデプロイの抽象化です。 依存モジュールも一緒にデプロイ出来ますし、デプロイの状態も成功/失敗の二値になります。 それだけで
TL;DR Kubernetes でマルチコンテナな Pod はよく使われる Cloud SQL Proxy はサイドカーコンテナとして動く前提 Job の完了には Pod を構成するプロセスが完了する必要がある PID Namespace は未実装 シグナルが送れない 完了しないと不意に再開する サイドカーコンテナを殺すためのプログラムを書いてみた サイドカーコンテナパターン Kubernetes は複数のコンテナからなる Pod を最小の単位として扱う。Google の社内コンテナ管理システムの Borg にも同様の仕組みがあり、その経験から「Design Patterns for Container-based Distributed Systems」でコンテナデザインパターンとして複数コンテナの連携のパターンを定義している。 このコンテナデザインパターンの中でも頻出するのが、メイン
ES6を使う機会がありそうで、Promiseについて全然知らなかったので、実際に書きながら勉強してみたときのメモ。 なお、以下を参考にさせて頂きました。 0から勉強する時でもとても分かりやすかったです。 JavaScript Promiseの本 環境 Node.js v4.2.2 Promiseとは 非同期処理を操作できる 非同期処理の成功時(resolve)、失敗時(reject)の処理を明示的に書くことが出来る 非同期処理を平行・直列に実行させることが出来る とりあえずやってみる とりあえず、参考にさせて頂いたサイトのコードを書いてみました。 function asyncFunction() { // Promiseオブジェクトを返却する.処理成功時にはresolveが呼ばれる return new Promise(function (resolve, reject) { setTim
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。情報システム本部の伊藤(@koh110)です。 社内システムの開発、運用を担当しています。 今回、担当しているシステムをNode.js LTS(v4.x)へバージョンアップしました。 それに伴い実施したES6対応の中から3つの事例を紹介したいと思います。 varを撲滅しよう arrow functionを使おう callbackを撲滅しよう varを撲滅しよう varをlet, constに置き換えます。基本はconstに置き換えます。 メリットは以下の点で、コードの品質向上につながると思います。 プログラム中で変更不可である事を明示的に示せる。 誤った使い方をした時にバグとして検出される。 varを利用するとブロック
2017/10/12 追記: API.AIのサービス名はDialogflowに変わりました。 API.AIのContextsとWebhookでChatOps環境を作ってみます。 https://docs.api.ai/docs/concept-contextsdocs.api.ai 今回は、SlackのChatbotとやりとりし、「管理者モード開始」から「管理者モード終了」までのやりとりの間に操作コマンドを実行できるようにします。 インテントを用意する インテントは『管理者モード開始』、『管理者モード終了』、『stats』の3つを用意します。 『管理者モード開始』は、Output contextに「administrator」、User saysに「管理者モード開始」、アクションに「enter_administration」、パラメータとしてpasswordを@sys.anyエンティティで
2017/10/12 追記: API.AIのサービス名はDialogflowに変わりました。 Slackのbotなどを作るときに、API.AIを使うと面白いか便利かもねという話を聞いたので試しています。 api.ai API.AIってどういうものか API.AIの概要は公式ドキュメントの説明がわかりやすいのでそちらを読むのをオススメします。 Basics | Dialogflow 自分が思った要点はこのあたり: 自然言語のテキスト入力を解析、パラメータに変換して外部のWebhookに流せる 日本語にも対応している 定型文で返すのならWebhookに流さなくてもできる感じ SlackなどとのインテグレーションはAPI.AI側でやってくれる Webhookでは簡単なJSONレスポンスを返すことで、api.ai側からインテグレーション先への応答を返してくれる 音声読み上げとの連携もしやすい
株式会社wevnalでCTOを務めている木曽です。近年、チャット利用者の入力した文章や音声からその内容を汲み取って適切な応答を返す仕組み、このようなものがWebサービスとして昨今いくつも立ち上がっています。 今回は、ここ数年の技術系トピックとしてNo.1と言っていい「AI」や「Chatbot」について、ユーザーの皆さんにもプログラミングなしでその片鱗に触れていただけるような内容をお届けしていきます。 特に、その中でもFacebook系のサービス「wit.ai」を実際に使う手順をご紹介しながら、日本語の自然言語処理について触れていただきたいと考えています。 Wit.aiならブラウザ上で自然言語学習やChatbotの構築が可能 Wit.aiとは、Chatbot、モバイルアプリ、音声デバイスなどと連携した"自然言語処理を支援する無償のサービス"です。 Wit.aiは2013年に創業したのち、20
自動会話について 最近AIなどの話題がつきませんが、普通のディベロッパーでも使えるようなAPI・ライブラリ・サービスが国内でも出てきています。 もしかしたらBOT開発などで使用する人もいるかと思うので、ここでまとめておきます。 ユーザーローカル人工知能ボットAPI ユーザーローカルというビッグデータ解析を得意とする企業が作成したAPI。 法人と個人では申請の仕方が異なり、法人は要相談だが個人だと必要な情報を入れて申し込むと、APIキーと共にAPIの使用が開始できる。 <特徴> 料金:無料 API制限:1時間あたり500回まで使用可能(それ以上は有料に) メッセージ文字数:最大1000文字まで その他:自動会話APIだけでなく、キャラクター会話変換API、氏名自動識別API、形態素解析APIなども同時に使用開始できる。 (使用イメージ)(9/17追記) 結構畜生な性格の持ち主(あまり使い物に
API.AIってなに? API.AIは自然言語で会話できるボットを作るためのツール(API)を提供するサービスです。2016年9月にAPI.AIのチームをGoogleが買収しました。 API.AIを育てると頭が良くなる! 自然言語には、分かりにくい表現や特定の環境でのみ使用する言葉が存在します。こういった微妙なニュアンスの違いや、業界用語、方言などをAPI.AIに学習させれば適切な処理を行う手助けをしてくれます。 API.AIのすごいところ ★SDKが豊富 以下のプラットフォームのSDKを提供しています。 - Android - iOS / Watch OS / Mac OS X - Ruby - Webkit HTML5 - Javascript - Node.js - Cordova - Unity - .NET(WP8,W10) - C++ - Xamarin - Python -
Google I/O 2017 Dialogflow(旧:API.AI) のセッションのベーグル注文を日本風で試してみる #dialogflowioapi.aiGoogleIO2017dialogflowGoogleCloud Google I/O 2017 API.AI セッション Google I/O 2017 API.AIのセッションでベーグルを注文するデモが行われました。Google Assistant、Slackなどのチャットベースでベーグルを注文していきます。こちらのデモをそのまま紹介してもいいのですが、ベーグルではなくお寿司を注文するデモに変更したいと思います。一部日本語では対応できない機能もありますが、別の方法で対応してみたいと思います。 API.AIの紹介とデモはこちらで見れます。 Building Rich Cross-Platform Conversational U
SREの@deeeet です。 MercariではSlack Botを使い様々な業務の自動化を行っています。例えばメインのAPIのReleaseはBotによる自動化がされており、JPとUSとUKの3拠点で1日に10回以上のReleaseをSlack上で実現しています(これ以外にも多くの事例があります)。 これまでのSlack Botは基本的には文字ベースでのやり取りが普通でした(グラフなどの画像を返答として利用することはあります)が、SlackはよりInteractiveなやりとりを実現できるInteractive Messageという仕組みも提供しています。これによりButtonによる決定やMenuによる選択といったアクションをユーザにとらせることができるようになります。 Buttonの仕組み自体は古くから提供されていましたが他のTeamへの配布が前提でありOAuthの仕組みを準備する必
KubernetesのRBAC(Role-based access control)の設定用にAPIリソースについてまとめました。Kubernetes v1.4時点での情報になります。 KubernetesのAPI KubernetesのAPIは、API ResourceとNon-Resource URLの2つに分けられます。 API Resource Kubernetes上で扱われる情報(Pod, Service等)はapiserver上ではAPI Resourceとして定義されています。kube-schedulerやkubelet、kubectlなどKubernetesのコンポーネントはこのAPIリソースをHTTPで操作することでPodの配置などの実際の操作を行います。(参考: Kubernetes: コンテナが起動するまでの各コンポーネントの流れ パスの形式例(requestinfo
Kubernetes: v1.6 の Role-Based Access Control (RBAC) を minikube で試すkubernetes Kubernetes 1.6 で Role-Based Access Control (RBAC) が beta になり、デフォルトのロールの拡充や kubectl からロールの紐付けができるようになったりと大幅にアップデートされました 。以下は v1.6 の RBAC と minikube で試す際のメモになります。 v 1.6 での RBAC の主な変更点 デフォルトロールの拡充。汎用的に使える読み取り専用ロール (view) や 書き込み権限ロール (edit) などが用意されました。 kubectl のサブコマンド create rolebinding/clusterrolebinding が追加され簡単にロールの紐付けができるよ
サービスアカウントは個人ではなくアプリケーションやVMに属する特別なアカウント。サービスアカウントは0以上のサービスアカウントのキーペアを持ち、Googleの認証に使用する。 サービスアカウントを使用する時、以下の点を明確にしておく必要がある。 - どのリソースにアクセスできるようにすべきか - どのパーミッションが必要か - どこでそのコードは実行されるのか。(GCP or オンプレなど) サービスアカウントの特徴の一つとして、サービスアカウントをリソースやIdentityとして扱うことができる。 - サービスアカウントをIdentityとして扱う時、リソースにアクセスするためのロールをサービスアカウントに与えることができる。 - サービスアカウントををリソースとして扱う時、サービスカウントにアクセスするためのパーミッションをユーザに与えることができる。Owner,Editor,View
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く