サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大阪万博
tech.sanwasystem.com
こんにちは、AWS担当のwakです。 弊社では全社的にG Suiteを導入しています。そこで社内向けWebサイトをS3+Lambda+API Gatewayで構築し、G Suiteのアカウント+AWS Cognitoで弊社社員のみ利用できるような認証をかけようとしたところ、何点かハマるポイントがあったので手順を書いておきます。 実現したこと 前置き: AWS Cognitoって Google側の準備 プロジェクト作成 プロジェクト初期化用コード取得 Google認証をONに 承認済みドメインを追加 OAuthクライアントID確認 AWS側の準備 IDプール作成 ロール作成 IDプールID(Identity pool ID)をメモする ドメイン制限をかける ロールに権限を追加する Web側の準備 ポップアップまたはリダイレクトで認証を行うパターン サインインボタンを表示するパターン OAut
こんにちは、wakです。秋ですね。寒いですね。 さて、今日もどこかから「英語は1文字1バイト、日本語は2バイト」といった雑な話が耳に入ってきて、「UTF-8で日本語はだいたい1文字3バイト!」と抗議していたのですが、エンジニアとして「だいたい」という言葉を使うのもまた雑な話です。どんな例外があるのかをまとめておくことにしました。 1匹あたり数兆個の細胞からなる猫 基礎知識 コードポイント Unicodeでは世界中全ての文字に個別のコードを振っています(これをコードポイントと呼びます)。アルファベットでもひらがな・漢字でも、絵文字でもヒエログリフでも全部です。このコードポイントは通常16進数で表し、 U+FFFF の形式で書きます。たとえば「A」なら 0x41 なので U+0041*1、「あ」なら U+3042 です。JavaScriptでは "\u0041", "\u3042" などと書け
こんにちは、久しぶりに和朗です。 サービススタート時など、Google アナリティクスの情報を見ていると面白い!!とは思いつつも、他の仕事をしているとなかなか毎日の変化に気づけません。 アナリティクスの情報を定期的にかつ視覚的に見る方法はないものかと考えました。 そこで、毎日使っているSlackとAnalyticsの間にspreadsheetsとapps scriptをいれてグラフ表示を実現しました。 Google Analytics の情報を取り込む アドオンの入手 GAの情報をスプレッドに取込み 日毎に最新情報を取り込むようにスケジュール グラフ作成 グラフをSlackへポストする Slackにアクセスするためのトークンを用意 スプレッドのグラフをファイルデータにする Slackにポスト 日毎に最新情報をポストするようにスケジュール 完成 まとめ 参考サイト Google Analyt
こんにちは、ごじぽんです。 今回は MySQL Workbench でデータベースの差分を調べて更新クエリを作成する方法を紹介します。データーベースの差分を埋めたい場合、「CREATE文を出力」→「CREATE文の差分をとる」→「変更クエリの作成」という手順でデータベースを差分を埋めていましたが、もう少し簡単にできる方法を探したところ、MySQL Workbench で簡単に出来たので備忘録込みで書きました。 環境 MySQL Workbench 6.3E(Windows版) 接続設定の作成 前準備として、比較対象の2つのデータベースへの接続設定を作成しておきます。 出力手順 メニューから File -> New Model を選択し、新規モデルの画面を立ち上げます。次に メニューから Model -> Synchronize With Any Source を選択します。 Introdu
こんにちは、AWS担当のwakです。間が空いてしまったので、今回は簡単な記事を書いて隙間を埋めることにします。 背景 何をするか プロジェクトの準備 プロジェクト作成 OAuth2.0のおさらい 認証画面設定 認証&トークン取得 初回認証 トークン2種類を取得 APIコールを試す access token更新 AWSの準備 トークンをDynamoDBに入れる 更新用Lambdaを用意する 定期的に実行する トークンを使って何かする まとめ 背景 世はSlackが大流行ですが、未だにエラー通知メールという仕組みも残っており、これを無視するわけにはいきません。そこで、Gmail(Google Apps)に届いたエラーメールを担当者がいるSlackのチャンネルに流す連携を作りました。今回はGoogle APIを呼ぶための仕組みと、AWS Lambdaから呼び出す手順について説明します。 何をする
こんにちは、95(くごー)です。私のチーム内では最近、タスク完了のご褒美にBOSSから黒糖をもらうのが風習になっています。頂けるのは大変うれしいのですが、食べ物を長く放置する癖がありまして若干食べ物を頂くときに不安を感じます。。まさにジョジョのチョコラータとセッコみたいな感じです。 さて、今回の記事の内容ですが、業務内で横スクロールのテーブルを作成したので記事にしたいと思います。 今回行うこと テーブルの一部分を固定して横スクロールのテーブルを作成したいと思います。 変更前のテーブル 変更後のテーブル 横スクロールのテーブルの作成 変更前のテーブルを横スクロールのテーブルに変更するにあたって、htmlをまず固定したい部分(画像赤枠部分)とスクロールしたい部分(画像青枠部分)を分けて記述します。 実際のソース上での変更は以下です(ポイントだけ記述したいので一部省略します)。 <!-- 変更前
はじめに 社内向けのシンプルなWebアプリケーションを作成することになりました。 求められているものはサービスそのものであり、実装方式については全て自分で決めていいわけですが、この際なので2016年のモダンな開発方法で書こうと思い立ちました。そこでReact.jsを採用します。今回の記事はその日記のようなものです。 はじめに この記事のまとめ まずReact.jsについて React.jsってなに DOM 一方通行 JSX JSX→JavaScriptの変換をしたい ここでちょっとnpmについて インストール プロジェクト作成 パッケージ取得・インストール Babel導入 ES2015? ES2016??? gulp導入 試しに使ってみる gulp + Babel ファイル監視 Browserify 古き良き時代 Node.jsではどうやっているか そこでBrowserify 例1 例2
こんにちは、罰金担当の高橋です。 最近、弊社のリリースしたサービスで本番環境で特定のブラウザでは表示されないという事象が発生しました。原因を調査すると、サーバー側のSSLの設定によりアクセスができないというのが原因でした。再度同じ事象をおこさないように、SSLの設定の確認方法と、SSLの設定に対応するブラウザの調査方法をまとめました。 現在のSSLの設定を確認する 初めに、現在のサーバーのSSLの設定を確認します。確認にはNmapを使用します。Nmapとはセキュリティスキャナで、ポートスキャン機能だけでなく、OSやバージョンの検出機能、サービスおよびそのバージョンの検出機能を備えています。また、Nmap Script Engineというネットワーク処理を自動化するスクリプト機能を備えています。今回はデフォルトで用意されているssl-enum-ciphersを使用します。 環境設定 今回はW
どうも、Slack大好きなwakです。今日はSlackで自作コマンドを作ることができるCustom Commandsの話の導入をします。 Slash Commandsってなに Slackには/inviteや/remindなど、/から始まるいくつかのコマンドがあります。スラッシュから始まるのでSlackではSlash Commandsと呼んでいます。/remindコマンドの使い方については以前まとめました。 tech.sanwasystem.com コマンドを自作しよう さて、このSlash Commandsはユーザーが自作することもできます。これがCustom Commandsです。 自作するとどうなるのか? 公式ドキュメントを読むのが手っ取り早いのですが、動作イメージは 開発者が/addnekoコマンドを用意する ユーザーが/addneko tama buchi kuroと入力する Sl
こんにちは、PowerShellが好きなwakです。以前書いたこちらの記事をリライトします。 tech.sanwasystem.com はじめに grepとの比較表 1件のファイルから検索をする場合 -i : 大文字・小文字を区別したい/区別したくない -e : 正規表現を使いたい/使いたくない -v : パターンにマッチしない行を探したい -A / -B : パターンにマッチした前後の行も出力したい 文字エンコーディングを指定したい 複数のファイルから検索する場合 ワイルドカードを使いたい 特定の複数のファイルを指定して検索したい ディレクトリを再帰的にたどって検索したい 特定の拡張子のファイルは除外したい 検索対象のファイルを別のテキストファイルから与えたい 出力の書式や出力先を変える 結果だけを画面に出力したい 結果だけを画面に出力したい マッチした部分だけを出力したい ファイル名(
こんにちは。おにぎりエンジニアひらおです。最近ギターをまた弾きはじめました。あまりの弾かなさに自分がギターを弾ける事を忘れそうになってました。 では今回はMySQL Workbenchでの便利な機能を紹介します。 動作環境 MySQL Workbench 6.3 早速紹介していきます。 SQL実行(1件)ctrl + enter カーソルから前の1件のSQLが実行されます。 SQL実行(複数件*実行注意)ctrl + shift + enter SQLエディタに書いてあるSQLが全て実行される ※書いてあるSQLが全て実行されるので注意が必要です。 SQL実行(選択実行*実行注意)ctrl + shift + enter ↑の複数件実行と同じですが、選択された部分だけ実行されます。 SQL整形ctrl + b 整形したい部分を選択状態にし、ctrl + b で整形してくれます。私はデバッグ
こんにちは、AWS担当のwakです。 【インデックス(予定)】 CloudWatchの監視結果をSlackに流す(AWS Lambdaバージョン) AWS LambdaでWebサイトの死活監視を行ってSlackに結果を流す DynamoDBにパラメーターを入れてハードコードをなくす CloudWatchの監視結果をTwilioに流して電話をかける(前編)(今回) CloudWatchの監視結果をTwilioに流して電話をかける(後編) SlackからEC2インスタンスを起動・停止するコマンドを作る APIで電話をかけよう Twilioというものがあります。これは電話に関する諸々をWeb APIでコントロールできるサービスで、電話を受ける・かける、録音する、SMSを送信するといった面倒そうな処理の面倒をまとめて見てくれる優れものです。 今回はこのサービスの機能のうち、 電話をかける 指定した
こんにちは!井上です。 EF&LINQでちょっと複雑なSQLを書きたいときのメモ。 環境 .NET Framework 4.5.1 Entity Framework 6 MySQL 5.6 C# こちらの続きです。 tech.sanwasystem.com 複数テーブルの結合(INNER JOIN) var lists = db.TableA .Join(db.TableB, a => a.id, b => b.id, (a, b) => new { a.id, a.value1, b.value2 }) .Join(db.TableC, ab => ab.id, c => c.id, (ab, c) => new { ab.id, ab.value1, ab.value2, c.value3 }); 結合を先に書くパターン var lists = db.TableA .Join(db.T
こんにちは、今日もWebを見ながら生きているwakです。表題通りのことをやりました。 はじめに 目的 HTMLはXMLじゃない SgmlReader SgmlReaderの使い方 導入 読み込み 文字列→XDocument XPathEvaluate()で型を指定する 例 ドキュメント全体から要素を検索する ドキュメント全体から何かを検索する 特定の要素の下から何かを検索する Chromeのコンソールと注意点 Chromeの$x()でお手軽XPath Chromeが勝手に要素を補う場合 SgmlReaderが補完に失敗する場合 おわりに はじめに 目的 任意のHTMLをSystem.Xml.Linq.XDocumentに格納してXPathで目的の要素を探してスクレイピングすることです。 HTMLはXMLじゃない HTMLはXMLではありません。したがって、 <link href="myst
こんにちは、大昔はVC++でWindowsプログラミングをしていたwakです。先日業務でC#のコードから他のWindowsアプリを強制的にコントロール(メニューをクリックしたり、キー操作を行ったりといった手動操作をエミュレートしてアプリを制御する)して処理を自動化する必要に迫られ、頑張ってそんな感じのコードを書きました。今日はそのための基礎知識とサンプルコードをご紹介します。 もくじ Windowsの仕組み ウィンドウハンドルとメッセージ メッセージの内容 電卓を例にしたサンプル 猫は操作できません Windowsの仕組み……Windowsはウィンドウでできている まずWindowsでは、 ウィンドウ(の外枠) ボタン テキストボックス ラベル デスクトップ タスクバー といった要素はすべて「ウィンドウ」です。要するに「ウィンドウ」という基底クラスを継承したオブジェクトが様々な外見や機能を
こんにちは。ジョジョ4部アニメが開始して毎週金曜が楽しみでたまらないおいかわです。 ある自社サービスのリリース直前なのですが、現在最後のバグ出し合宿をしているところです。そこでやっているバグ管理について紹介します。 今回のバグ管理のポイント 通常弊社ではBacklogを使っているが、もっとさくっと簡単にやりたい スクショを簡単に貼り付けたい スピード重視で管理と情報共有を同時にしたい で、思いついたのがコレ。 Slackを使って簡易的なバグ管理をする! 以下説明します。 ルール バグ管理用のチャネルを1つ作成 バグを上げる場合はどんなものでもスクショをとって画像で上げる(スレッド形式でコメントできるから) 画像のタイトルでバグの名前をざっくり書く、またタイトルの先頭に【機能名】をつける バグを上げたらピンでとめる 基本的にはスクショのコメントでバグのやり取りをする バグ修正後にテストサイト
こんにちは、AWS担当のwakです。 前回・前々回の記事ではLambdaからSlackへの通知を行いましたが、そこではスクリプト内部にパラメーターをハードコードしていました。これを改善するためにDynamoDBを使おうと思ってコードのサンプルを探してみたのですが、古い記事や新しい記事が入り交じっていて何が最新なのかよく分からなくなってきたためまとめることにします。 この記事の内容 AWS Lambda(Node.js)からSDKを使ってDynamoDBを利用する際、クライアントオブジェクトを生成するためのやり方がいくつかあります。その内容について説明しています。 前提条件 以下のコードは全てDynamoDBにアクセスする権限のあるロールでLambdaから実行しています。また、DynamoDBには事前にテーブルを作成し、数レコードのデータを投入してあるものとします。 DocumentClie
こんにちは。山内です。 この前、Oracle12Cを開発用にPCへインストールしたのですが、インストールした翌日にPCを起動して開発を始めたところ、データベースに接続できない状態が発生いたしました。調査したところ、Oracle12Cのプラガブル・データベース(以下:PDB)は デフォルトではサーバーやPC起動時には自動で起動するようになっていないため、サーバーやPC起動時に手動で起動を行うか自動で起動するように設定が必要であることが判明しました。 同じようなことで困った人もいるかと思いますので、サーバーやPC起動時にPDBが自動で起動するように設定した方法を以下に記載いたします。 環境 PDBについて Oracle12.1.0.2での設定方法 1. sysdbaでsqlplusにログイン 2. 設定を行うPDBに接続先を変更 3.PDBを開く 4.PDBの自動起動設定 Oracle12.1
こんにちはでらぽんです。 最近、休日にMapBoxという地図サービスをいじっています。MapBoxの特徴はいくつかありますが、その一つに地図デザインのカスタマイズができることです。地図サービスといえばGoogleMapが有名ですがスタイルのカスタマイズはできません。今回はそんなMapBoxで地図を作ってみる記事です。 基本機能でこのような地図を作成することがきます。GoogleMapにとても似ています。サイトに埋め込む事も可能です。 アカウント MapBoxのサイトでアカウントを作成します。これが無くてははじまりません。無料プランと有料プランがありますが、無料プランでスタイルのカスタマイズと全APIは使用でき、50,000View/月 まで使用できるため、まずは無料プランで充分かと思います。(2015/09現在) MapBoxのページ https://www.mapbox.com 地図の表
こんにちは、95(くごー)です。前回の記事にも書きましたが、私のチームではタスクのご褒美にマクベ似のBOSSから黒糖を頂けます。多分この記事のご褒美に頂けるかと思うんですが。。。 さて、今回はSlackからでデータベースの値を簡単に取得してみようという記事になっています。 対象 非エンジニアでも特定のコマンドを実行する事でデータベースにある最新情報を取得する仕組みを作ります。そのような事をしたい方は是非参考にしてください。 今回行うこと 過去に平尾さんがSlackからHubot経由でサーバのシェルを実行しました。これを利用して今回はSQLを実行します。 環境 ・CentOS 6.4 構成図 実行するSQLはシェルに直接記述しています。これは特定のSQLのみを実行させる役割があり、余計な処理をさせないためにそうしています。また、出力もSlack上に残していいような内容に加工しましょう。 実行
井上です。WEB API作成時にとても便利なPostman。その使い方についてです。 Postmanとは 実際に公開APIを呼んでみる! Postmanを便利に使う! コレクションの活用 よく使うものをコレクションに登録する 説明文を追加する 登録したコレクションを更新する コレクションをダウンロード / アップロード テスト 期待値チェック 一気にテスト実行 Postmanとは Google Chromeのブラウザ上からWEB APIを呼び出すことができるアプリです。 公開APIを用いたシステムを開発の際に実際に呼び出して確認したり、自社で提供するWEB APIを作成した際にドライバ替わりに使ったりできるので開発者にとって大変利便性の高いアプリとなっています。 Postman 実際に公開APIを呼んでみる! 郵便番号検索APIに記載のリクエスト例をPostmanで呼んでみます。 美しく結
こんにちは、家でも会社でも実家でもSlackばかり使っているwakです。会社でSlackのリマインダー機能について聞かれたのでまとめておきます。元ネタは公式です。 とにかく /remind リマインダーはSlackの標準機能のひとつです。チャット欄(どこのチャンネルでもいいです)に/remindから始まるコマンドを入力すると、Slackが指定した日時にメッセージを送ってきてくれる便利機能です。忘れっぽいあなたには必携と言えるでしょう。また、通知先として自分以外にも他の人を指定できたりします(後述します)。 日時の指定方法にはいくつかのバリエーションがありますが、どの場合でもその場で通知スケジュールが表示されます。 間違えていたら「Cancel」をクリックすればキャンセルできます。 1回だけの通知 1回だけ通知を送る場合、通知先には自分自身、他ユーザー(@yamada、@tanakaなど)、
ども、三和システムおちゃらけ担当uozy☆です。 もうすぐ7月ですね、いよいよ夏の到来です!!6歳から少年野球をやっていたuozy☆としては、夏といえば「野球」です!炎天下での地獄のノック、バッティング、ベーランからの粉ポカリ(濃い目)、これは格別でしたね。そしてスポーツ大好き三和システムには野球チーム「エナサンズ」があります!そしてそして、この「エナサンズ」はこの度草野球大会にエントリー致しました\(^o^)/ヨッ!!この大会、平日朝6:30プレイボール8:00終了というなんともアレなスケジュールなのであります。頑張ろう。。。 http://www.kusaon.jp/s/leagues/asakatsuwww.kusaon.jp さて、今日はデータ圧縮に関するお話です。最近弊社で管理しているDBサーバーのディスク空き容量が足りなくなるという事象が発生しました。通常データ領域が足りなくな
こんにちは、AWS担当のwakです。 弊社のAWSのIAMユーザーアカウントは(もちろん)スマホアプリを使った2段階認証で保護しています。また、ルートアカウントは(もちろん)ハードウェアMFAデバイスを使った2段階認証で保護しています。しかしこのMFAデバイス、割と頻繁に認証に失敗して再同期が必要となってしまいます。月に1回~2回程度は使っているためか、こちらの記事のように qiita.com 「再同期が出来ず、Amazonに電話で連絡」するような状態に陥ったことはないのですが、それにしてもなんでこうなるのか、また再同期とは何をしているのかとは少し疑問に思っていました。 ……という前振りのもと、時刻ベースのワンタイムパスワードアルゴリズム(TOTP: Time-based One-time Password Algorithm)について定めたRFC 6238を読んだのでネタにします。 ちゃ
こんにちは。ジョジョ4部アニメ化決定に歓喜しているおいかわです。 弊社で提供しているWebサービスは殆どがAWSへ移行しています。その場合は監視もCloudWatchで行いSlackへ通知しています。 tech.sanwasystem.com ですが、他のサーバーで運用しているものや弊社で管理しているクライアントのサイトなどはそういう訳にも行きません。 そこで今回はサイト監視サービスのStatusCakeとSlackを連携させてサイトがダウンしてる場合などに通知させる方法をご紹介します。今回もノンプログラミングです! StatusCakeとは StatusCakeはWebサイトの死活監視やパフォーマンス監視なども行える無料のWebサービスです。1アカウントで複数のサイトを監視出来ます。 では連携の準備を進めていきましょう。 StatusCakeの準備 アカウント作成後、画面の「CREATE
こんにちは、AWS担当のwakです。 自分が書いた過去の記事を読み返していたところ、 tech.sanwasystem.com AWS Lambdaが使えるようになった今となっては、こちらの記事の内容は既に用済みになっていることに気付きました。今回は表題通り、連携サーバーのかわりにAWS Lambdaを使ってCloudWatchの監視結果をSlackへ流すための方法について書くことにします。 監視猫(watchcat) AWS Lambdaについて AWS Lambdaとは、JavaScript(Node.js)、Python、Javaで書いた任意のコードをAWS上で実行するための仕組みです。「AWS上で」とは、つまり「EC2インスタンスを含むサーバーなしで」を意味し、課金はコードを実行するために消費されたCPU時間に応じて行われます。具体的なユースケースは非常に多岐にわたりますが、今回の
こんにちは、AWS担当のwakです。前回に続きAWS Lambdaの話をします。 良い角度を知っている猫 【インデックス(予定)】 CloudWatchの監視結果をSlackに流す(AWS Lambdaバージョン) AWS LambdaでWebサイトの死活監視を行ってSlackに結果を流す(今回) DynamoDBにパラメーターを入れてハードコードをなくす CloudWatchの監視結果をTwilioに流して電話をかける SlackからEC2インスタンスを起動・停止するコマンドを作る 今回の目的について 前回に続いて、Lambda (Node.js)を使ってWebサイトの監視を行います。 任意のWebサイトにアクセスし、HTTP 200が返るかどうかを確かめる その結果をSlackで通知する この処理をN分おきに実行する(cron形式でスケジュールを設定可能) これに似たサービスはいくらで
こんにちは、最近あまりWebの話をしていないwakです。IISをあれこれ触ってリハビリをしようと試みていたのですが、同僚がSSL回りで苦しんでいたので復習がてら表題の件を試してみました。 通信の盗み見、改竄、なりすまし、おいしくないカリカリを許さない鋭い視線の猫 1行でまとめると こういう証明書を作成するのが目的です。 まずは基礎知識 SSLの目的と機能 SSLには2つの機能があります。 通信を暗号化して、のぞき見や改竄を防ぐ 通信相手が本物であることを保証する たとえば公衆Wi-Fiに紛れて偽Wi-Fiアクセスポイントを設置した悪者がいたとします。このアクセスポイントは悪者の支配下にありますから、ここに接続してしまった人は全ての通信内容を見られてしまいますし、通信内容は改竄され放題です。「mizuhobank.co.jp」にアクセスしていたつもりなのに、実際にはフィッシングサイトに接続さ
こんにちは、AWS担当のwakです。先日社内でAWSアカウントを新規に作成してリソースの引っ越しをする機会がありました。良い機会ですので、AWS新規アカウントを作成して最初にすべきことをまとめます。 なお、現時点ではAWSの日本語にはあちこち若干怪しい箇所があるので画面キャプチャでは言語設定を英語にしています。操作を行う際はもちろん日本語で構いません。 猫スリバチ の中でご満悦のかわいい猫*1 2段階認証 まずルートアカウントを2段階認証で保護しましょう。ルートアカウントは全ての権限を持っていますから、万が一乗っ取られたりすると 勝手にAWSの契約を解約されて全てのリソースを失った 勝手にインスタンスを山ほど起動されてビットコインに採掘に利用され、高額な課金だけが残った 個人情報が全て流出した といった悲劇につながります。2段階認証を導入するとこの危険を著しく軽減することができます。公式ド
次のページ
このページを最初にブックマークしてみませんか?
『Sanwa Systems Tech Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く