読者です 読者をやめる 読者になる 読者になる

API Key認証付きのAPI GatewayからS3へリダイレクトしたい(できない)

こんにちは、AWS担当のwakです。 概要 表題の通りです。できない理由を書きます。また、ついでにSame-Origin PolicyとCORS (Cross-Origin Resource Sharing)についても簡単に解説します。 猫もおてあげ やりたかったこと とあるデータ(刻々と追加されていき…

Slackにスレッド表示機能が追加されました

こんにちは、Slack大好きなwakです。Slackにスレッド表示機能が追加されたと聞いてさっそく使ってみた雑感を書きます。 概要 これまでと画面が大きく変わるわけではありません。 スレッドの始まりとなる発言(誰のものでもOK)を選択する コメント1を追記す…

石器時代みたいなWebアプリ開発をしていたエンジニアがReact.jsに導かれて2016年にやってきた話

はじめに 社内向けのシンプルなWebアプリケーションを作成することになりました。 求められているものはサービスそのものであり、実装方式については全て自分で決めていいわけですが、この際なので2016年のモダンな開発方法で書こうと思い立ちました。そこで…

LINEのMessaging API WebhookをAPI Gatewayで受ける

こんにちは、AWS担当のwakです。 最近LINE botがMessaging APIとしてリニューアルしたとのことで、同僚が面白がって触っていたので説明してもらいました。聞くところによると、LINEのbotを友達登録したりメッセージを送ったりアンケートに答えたりすると、そ…

ASP.NET Webフォームプロジェクトでwebフォームの内容をhtmlファイルにしてダウンロードさせる

井上です。 いまだASP.NET Webフォームを用いているシステムも多々あると思います。 弊社もWebフォームのシステムがあり、そこで普段やらないことをやりましたのでそれをまとめておきます。 こんな処理を書くことはそうそう無いのですが何かの役に立つかもし…

ASP.NET Webフォームプロジェクトでオートコンプリートのドロップダウンを実現する

井上です。 ASP.NET Webフォームのドロップダウンコントロールでオートコンプリートをやろうというお話です。 ちょっとと面倒だったのでまとめておきます。 環境 .NET Framework 4.5.1 ASP.NET Web Form C# 参考 jqueryui.com やりたいこと オートコンプリー…

grepコマンドとPowerShellのsls (Select-String)の比較

こんにちは、PowerShellが好きなwakです。以前書いたこちらの記事をリライトします。 tech.sanwasystem.com はじめに grepとの比較表 1件のファイルから検索をする場合 -i : 大文字・小文字を区別したい/区別したくない -e : 正規表現を使いたい/使いたくな…

SGMLReader + XPathでスクレイピングする

C#

こんにちは、今日もWebを見ながら生きているwakです。表題通りのことをやりました。 はじめに 目的 HTMLはXMLじゃない SgmlReader SgmlReaderの使い方 導入 読み込み 文字列→XDocument XPathEvaluate()で型を指定する 例 ドキュメント全体から要素を検索する…

API Gateway + LambdaでSlackのCustom Commandを作る

こんにちは、AWS担当のwakです。先日このような記事を書いたので、表題通りAPI Gateway + Lambdaで実装するサンプルを作ります。 tech.sanwasystem.com 鋭い眼光でエラーを見逃さない猫(多分) はじめに 暇なWebサーバーは無駄 SlackのCustom Commandsは、…

SlackのSlash Commandで既存システムから必要な情報を取得する

弊社の1システムとしてゴルフシステムがあります。当然ユーザー様は日本全国のゴルフ場なわけですが、ゴルフ場は基本郊外にありますのでネットワーク回線が不安定なことがあります。そのような理由からネットワークが不通となっても動作できるようオンプレ…

SlackのCustom Commandsことはじめ

どうも、Slack大好きなwakです。今日はSlackで自作コマンドを作ることができるCustom Commandsの話の導入をします。 Slash Commandsってなに Slackには/inviteや/remindなど、/から始まるいくつかのコマンドがあります。スラッシュから始まるのでSlackではSl…

Slackを使ってバグ管理ィィィィィ

こんにちは。ジョジョ4部アニメが開始して毎週金曜が楽しみでたまらないおいかわです。 ある自社サービスのリリース直前なのですが、現在最後のバグ出し合宿をしているところです。そこでやっているバグ管理について紹介します。 今回のバグ管理のポイント …

AWS LambdaからGoogle APIを呼び出す

こんにちは、AWS担当のwakです。間が空いてしまったので、今回は簡単な記事を書いて隙間を埋めることにします。 背景 何をするか プロジェクトの準備 プロジェクト作成 OAuth2.0のおさらい 認証画面設定 認証&トークン取得 初回認証 トークン2種類を取得 AP…

Google Apps APIで新入社員対応(ユーザー追加+組織・グループに追加)

こんにちは井上です。 Google Appsでユーザーを追加する時って、大抵の場合グループにもそのユーザを参加させると思うんです。グループ管理は煩雑になりやすく、役割が重複したものやメンバーの差異がほとんどないものなど、数多くのグループが作られがちで…

MySQL Workbenchでデータベースの差分を調べてを更新する方法

こんにちは、ごじぽんです。 今回は MySQL Workbench でデータベースの差分を調べて更新クエリを作成する方法を紹介します。データーベースの差分を埋めたい場合、「CREATE文を出力」→「CREATE文の差分をとる」→「変更クエリの作成」という手順でデータベー…

.NETでのAPI作成におけるDelegatingHandlerの利用

こんにちは、久しぶりに和朗です。 ASP.NETのControllerの承認フィルターAuthorizeAttributeにはOnAuthorizationメソッドがあり、ここで認証を行うことができますが、 今回は、なんでもできちゃうDelegatingHandlerを利用して認証ロジックの組み込みを行って…

AWSの社内勉強会を開きました

AWS

こんにちは、AWS担当のwakです。 AWSを弊社で利用し始めて2年ほど経ちますが、未だにEC2やRDSのみしか念頭に置いていないメンバーがいるのも事実です。「AWSにはこんな機能もあるよ!」「これを使うとシステム構築が楽になるかも!」「できることに幅が広が…

ASP.NET Web APIでログを綺麗に出す

井上です。 Web Request/Responseのログをお手軽に出しましょうというお話です。 ログ出力のサンプルは多々あるのですが、パラメータを全部出していたりとかはあんまりないというところから。 環境 Json.NETをGetする ログ出力クラスを作る コントローラーの…

Slackのリマインダー機能まとめ

こんにちは、家でも会社でも実家でもSlackばかり使っているwakです。会社でSlackのリマインダー機能について聞かれたのでまとめておきます。元ネタは公式です。 とにかく /remind リマインダーはSlackの標準機能のひとつです。チャット欄(どこのチャンネル…

Twilioを使ってWeb API経由で電話をかける(前編)

こんにちは、AWS担当のwakです。 【インデックス(予定)】 CloudWatchの監視結果をSlackに流す(AWS Lambdaバージョン) AWS LambdaでWebサイトの死活監視を行ってSlackに結果を流す DynamoDBにパラメーターを入れてハードコードをなくす CloudWatchの監視…

Google Chromeアプリ[Postman]の使い方メモ

井上です。WEB API作成時にとても便利なPostman。その使い方についてです。 Postmanとは 実際に公開APIを呼んでみる! Postmanを便利に使う! コレクションの活用 よく使うものをコレクションに登録する 説明文を追加する 登録したコレクションを更新する コ…

AWS LambdaのパラメータをDynamoDBで管理する

こんにちは、AWS担当のwakです。前回に続きAWS Lambdaの話をします。 【インデックス(予定)】 CloudWatchの監視結果をSlackに流す(AWS Lambdaバージョン) AWS LambdaでWebサイトの死活監視を行ってSlackに結果を流す AWS LambdaのパラメータをDynamoDBで…

Node.js+Dynamo DBでレコードを検索する

こんにちは、AWS担当のwakです。 前回・前々回の記事ではLambdaからSlackへの通知を行いましたが、そこではスクリプト内部にパラメーターをハードコードしていました。これを改善するためにDynamoDBを使おうと思ってコードのサンプルを探してみたのですが、…

AWS LambdaでWebサイトの死活監視を行ってSlackに結果を流す

こんにちは、AWS担当のwakです。前回に続きAWS Lambdaの話をします。 良い角度を知っている猫 【インデックス(予定)】 CloudWatchの監視結果をSlackに流す(AWS Lambdaバージョン) AWS LambdaでWebサイトの死活監視を行ってSlackに結果を流す(今回) Dyn…

CloudWatchの監視結果をSlackに流す(AWS Lambdaバージョン)

こんにちは、AWS担当のwakです。 自分が書いた過去の記事を読み返していたところ、 tech.sanwasystem.com AWS Lambdaが使えるようになった今となっては、こちらの記事の内容は既に用済みになっていることに気付きました。今回は表題通り、連携サーバーのかわ…

Oracle12C プラガブル・データベースの自動起動設定

こんにちは。山内です。 この前、Oracle12Cを開発用にPCへインストールしたのですが、インストールした翌日にPCを起動して開発を始めたところ、データベースに接続できない状態が発生いたしました。調査したところ、Oracle12Cのプラガブル・データベース(以…

ネットワークの基礎(全4回) 第1回 ネットワークの環境及び接続形態

はじめまして、ゴルフ場基幹システム開発担当している茨城出身のかたちんです。 書かせて頂く内容としては、インフラ及びセキュリティ関連になります。 初回はネットワークにおける環境や接続形態を書きます。 目次 ネットワークの基本環境 スタンドアローン…

VisualStudioチームエクスプローラーでのGit設定

井上です。 Visual StudioでのGit設定についての備忘録です。 この手のものは最初しかやらないだけに、次回やるときに忘れていることが多いので。 環境 自身で作成したソリューションをリモートリポジトリに紐付ける GitBucketの設定 Visual Studioの設定 既…

PowerShellでDynamoDBにJSONドキュメントを格納する

こんにちは、AWS担当のwakです。 さて最近はMongoDBとお友達になりつつあったのですが、「AWS担当の」と言いつつDynamoDBを全く触っていないというのは良くないのではないかと思い始めました。皆様ご存知の通り、DynamoDBはAWSの提供するNoSQLデータベースサ…

C#でEF+LINQを用いてMySQLを使用するメリット・デメリット

C#

井上です。 SQL Server同様、MySQLでもEntity FrameworkとLINQを用いて当然やりたいですよね。 環境 .NET Framework 4.5.1 MySQL Entity Framework 6 MySQL 5.6 C# Entity Framework・LINQを用いるメリット 何故Entity Frameworkを使いたいかとなると、以下…

CrystalReportsの印字位置をC#側で直接指定する

C#

はじめまして。ゴルフ場基幹システム開発とリラックマ担当のむとうです。 ほぼ生粋の茨城出身です。業務では主にC#とSQLServerを触っております。どうぞ宜しくお願いします。 今回のテーマ 弊社の基幹システムでは帳票出力にCrystalReportsを使用しています…

C#で他アプリケーションを操作するための基礎知識

こんにちは、大昔はVC++でWindowsプログラミングをしていたwakです。先日業務でC#のコードから他のWindowsアプリを強制的にコントロール(メニューをクリックしたり、キー操作を行ったりといった手動操作をエミュレートしてアプリを制御する)して処理を自動…

EPPlusで作成したOpenXmlの構成

前回はOpenXmlをラップするEPPlusでExcel作成しました。 今回は作成されたOpenXMLの中身を確認してみます。 tech.sanwasystem.com フォルダ構成~セル値 作成されたダウンロードファイル名.xlsxの拡張子を変更しダウンロードファイル名.zipにし解凍します。 …

StatusCakeでサイト監視してSlackへ通知する

こんにちは。ジョジョ4部アニメ化決定に歓喜しているおいかわです。 弊社で提供しているWebサービスは殆どがAWSへ移行しています。その場合は監視もCloudWatchで行いSlackへ通知しています。 tech.sanwasystem.com ですが、他のサーバーで運用しているものや…

TOTP: Time-Based One-Time Password AlgorithmのRFC 6238を読んだ

AWS

こんにちは、AWS担当のwakです。 弊社のAWSのIAMユーザーアカウントは(もちろん)スマホアプリを使った2段階認証で保護しています。また、ルートアカウントは(もちろん)ハードウェアMFAデバイスを使った2段階認証で保護しています。しかしこのMFAデバイス…

新規AWSアカウント作成時にまずやること

AWS

こんにちは、AWS担当のwakです。先日社内でAWSアカウントを新規に作成してリソースの引っ越しをする機会がありました。良い機会ですので、AWS新規アカウントを作成して最初にすべきことをまとめます。 なお、現時点ではAWSの日本語にはあちこち若干怪しい箇…

ASP.NETでExcelファイルを作成・ダウンロードさせる

こんにちは井上です。 ASP.NETでのEXCEL作成はネット上で検索すると結構ヒットするのですが、今回用いるパッケージについては情報量が比較的少なく、比較的頻度の高いプロパティ等に触れられていないケースが多かったので備忘録がてら纏ました。 パッケージ…

PowerShellでhashを書いてさくっとJSONを生成する

こんにちは、PowerShellが好きなwakです。 kimoto.hatenablog.com こんな記事を読んだので、さくっとPowerShell版も書いておきます。 ねこのひらき(を再度閉じたやつ) やってみる 何も考えずにPowerShellを立ち上げて、以下のブロックをコピペしてください…

AWSで全ユーザーに割り当てる権限

AWS

こんにちは、AWS担当のwakです。AWSで新しくIAMユーザーを作ったときに割り当てるべきポリシーを整理したので書くことにします。 大好物の高級かりかり欲しさに芸をするかわいい猫 ポリシーの内容 まずポリシーの内容を記載します。3つのパートに分けていま…

OpenSSLコマンドでオレオレ証明書を作り、ルート認証局としてサーバー証明書を発行する(IIS編)

こんにちは、前回の記事で少しはOpenSSLと仲良くなれた気がするwakです。 tech.sanwasystem.com 前回に続き、この証明書をWindows 2012 R2上のIISにインポートしてHTTPSのWebサイトをホストしてみます。これがうまく行けば、クライアント側で初回にルート証…

RIPSでPHPのプログラムの脆弱性をチェックする

罰金担当の高橋です。今までは動作しているWebアプリについて、セキュリティチェックを行うツールを紹介してきましたが、今回はソースコードに対してセキュリティチェックを行うRIPSツールを紹介します。 RIPSとは RIPSとはPHPのソースコードの静的分析ツー…

SlackからHubotを経由してDBを参照する

こんにちは、95(くごー)です。前回の記事にも書きましたが、私のチームではタスクのご褒美にマクベ似のBOSSから黒糖を頂けます。多分この記事のご褒美に頂けるかと思うんですが。。。 さて、今回はSlackからでデータベースの値を簡単に取得してみようという…

Arduinoに興味があったので...

こんにちは。ゴルフおじさんです。 前からArduinoというものに興味があったので、シルバーウィークに買ってみました。こういった電子工作については中学の授業でやったなーくらいの素人なのですが、環境がすごく整っておりとてもわかりやすく進めることがで…

LINQ(メソッド構文)を用いた複雑めなSQL発行時のメモ

C#

こんにちは!井上です。 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.Tabl…

MapBoxで自作スタイルを作るとき最初に読むページ

こんにちはでらぽんです。 最近、休日にMapBoxという地図サービスをいじっています。MapBoxの特徴はいくつかありますが、その一つに地図デザインのカスタマイズができることです。地図サービスといえばGoogleMapが有名ですがスタイルのカスタマイズはできま…

RDS(MySQL) slow_log を slack に通知!

こんにちは。平尾です。 今回はSlackネタです。DB(MySQL)のslow_logが出たらSlackに通知させるってやつです。slow_logって気づくのが遅かったりしますよね、この機能を使えば出たらすぐにSlackに通知されるので、「リファクタリングしなきゃいかん」と思うわ…

GoogleSpeedInsightsを利用してWEBページをチューニングする

こんにちはでらぽんです。 先日、管理しているWEBページの速度を少しでも早くしてほしいという依頼があり、時間をかけずに行いたかったのでGoogleが提供する GoogleSpeedInsights というサービスを利用してチューニングを行いました。今回はその備忘録もかね…

ノンプログラミングでGoogleフォームの回答をMongoDBに保存する!

こんにちは。おいかわです。 Googleフォームって知ってますか?。簡単にアンケートフォームが作れてしまうんです。しかもノンプログラミングで出来てしまうんです。すごいですね!このただでさえ便利なGoogleフォームをさらに便利に使うためにMongoDBと連携…

CSSで横スクロールテーブルをつくる

こんにちは、95(くごー)です。私のチーム内では最近、タスク完了のご褒美にBOSSから黒糖をもらうのが風習になっています。頂けるのは大変うれしいのですが、食べ物を長く放置する癖がありまして若干食べ物を頂くときに不安を感じます。。まさにジョジョのチ…

MySQL Workbench 便利機能

こんにちは。おにぎりエンジニアひらおです。最近ギターをまた弾きはじめました。あまりの弾かなさに自分がギターを弾ける事を忘れそうになってました。 では今回はMySQL Workbenchでの便利な機能を紹介します。 動作環境 MySQL Workbench 6.3 早速紹介して…