ブックマーク / dev.classmethod.jp (23)

  • [Windows8 モダンUI] IEでのスワイプ操作実装でヒストリー(戻る/進む)との競合を防ぐ方法 | DevelopersIO

    Windwos8のモダンUIモードでは左右のスワイプがヒストリー(戻る/進む)として割り当てられる スワイプ等の操作をWindows8のモダンUIモードでのIEで行わせる場合は注意が必要です。 モダンUIモードでのIEは左右のスワイプの挙動が履歴の前後の移動として割り当てられているため、操作が競合してしまいます。 例えば下記のような操作をユーザーに行わせようとすると、対象のオブジェクトの移動(送り)が行われずヒストリーの前後移動が行われてしまいます。 スライドを次々にスワイプで送って閲覧する 複数のサムネイルを横並びに配置して横スライドバーを表示する代わりにスワイプして送る 既に上記のような機能を実装しているサイトなどではモダンUI用に対応が必要になります。 解決策 IE10用のタッチに関するCSS プロパティ(-ms-touch-action)が用意されていますので、これを対象のエリアや

  • [小ネタ] mkdir したディレクトリに cd する方法 9 選 +1 (BASH) ※追記あり | DevelopersIO

    $ mkdir /very/_very/Very-long/directory_name/20170915 なんて操作をしたあと、そのディレクトリにcdしたい場合ってまれによくありますよね。 どんなやり方があるか考えてみました。 1. コピペする そのまんまですが、これをやりたくなくてこの blog を書いてます。 2. TAB 補完で頑張る これも無いわけではないですが、間違えたりすることを考えると正直あんまりやりたくないです。 3. 上矢印キーで前コマンドを呼び出し、右矢印キーで先頭に戻ってmkdirをcdに書き直す よく見る方法ですが、もうすこし少ない手数でできないでしょうか。 4. 上矢印キーで前コマンドを呼び出し、Ctrl-Aで先頭に戻ってCtrl-Dx5 のあとにcd BASH のキーバインドはデフォルトだと emacs モードなので、このやり方が出来ます。 でもまだちょっと手

    [小ネタ] mkdir したディレクトリに cd する方法 9 選 +1 (BASH) ※追記あり | DevelopersIO
  • ブログ記事内にカード型のリンクを貼る方法3選 | DevelopersIO

    ブログ記事内に他のWebページのリンクを貼る際、単純な文字列だけではなくリッチなカード型のリンクを貼るケースが増えています。カード型のリンクを貼る方法はいくつかありますが、当ブログでよく使われている3つの方法をご紹介したいと思います。 カード型のリンクを貼る方法 ブログ記事内に他のWebページのリンクを貼る際、単純な文字列だけではなくリッチなカード型のリンクを貼るケースが増えています。 このカード型のリンクを貼る方法はいくつかありますが、当ブログでよく使われている3つの方法をご紹介したいと思います。 はてなブログカード 主にはてなブログの記事のリンク向けに用意された機能ですが、はてなブログ以外からも利用できます。 コード <iframe class="hatenablogcard" style="width:100%;height:155px;max-width:680px;" title

    ブログ記事内にカード型のリンクを貼る方法3選 | DevelopersIO
  • TypeScriptの異常系表現のいい感じの落とし所 | DevelopersIO

    みなさんTypeScriptでサーバアプリケーション(Node.js)のロジックを書く時に、異常系の表現をどのようにされていますでしょうか?ここでいう異常系とは、仕様上想定される異常のことです。準正常系と言ったりもするかと思います。 私はJavaScriptの延長でTypeScriptをはじめたので、最初は null や undefined を返したり throw を用いるやり方をしていましたが、次第にTypeScriptが持つ型を生かし、できるだけ型安全に異常系を表現したいと考えるようになりました。そして試行錯誤した結果、いい感じの落とし所に落ち着いたので、その内容についてお伝えしたいと思います。 また記事の後半では、異常系の型を実装する中でハマった点についてもお伝えしたいと思います。 TypeScriptの異常系表現について 1. nullやundefinedを返す 冒頭でも述べたよう

    TypeScriptの異常系表現のいい感じの落とし所 | DevelopersIO
  • サーバーレスでもユニットテスト – TypeScript 製 AWS Lambda を Jest でテストする | DevelopersIO

    最近は Lambda Function を TypeScript で実装することが多く、テストツールとして Jest を選択しました。導入から基的なテスト、カバレッジ出力までやってみたので、その手順を記録します。 ユニットテストのモチベーション 変更に対する心理的な安全性を手に入れるため、という理由が大きいです。 たとえば API Gateway のバックエンドを Lambda Function で実装する場合。実装だけであれば、可能な限り any 型を使用せず、 interface や type の有効活用によりデータ型に起因する実行時エラーは大幅に少なくできます。 TypeScript を使うメリットのひとつですね。ではサーバーレスならではの難しいポイントはどこかというと、私の場合 前作った Lambda Function の挙動をすぐ忘れる ということがよくありました。それで、 L

    サーバーレスでもユニットテスト – TypeScript 製 AWS Lambda を Jest でテストする | DevelopersIO
  • コンセプトから学ぶAmazon DynamoDB【Amazon RDSとの比較篇】 | DevelopersIO

    よく訓練されたアップル信者、都元です。AWS上のシステム設計において、どんな時にRDSを選択するのか、そしてどんな時にDynamoDBを選択するのか。比較しながら見て行きたいと思います。 RDBとNoSQL ACIDなRDB 一昔前、一般的に「データベース」と言えば、多くはリレーショナルデータベース(RDB)のことを指していました。テーブルと呼ばれる「行とカラムで構成される二次元のデータ構造」に対して、SQLと呼ばれる強力なクエリ言語で操作を行い、データの一貫性(Consistency: どこから観測しても同じ値が得られること)や操作の原子性(Atomicity: 一連の操作を全て適用commitするか、全てキャンセルrollbackするかの二択として実現できること)を実現するモデルは、開発者を含むシステムの利用者にとって非常に理解しやすく、広く受け入れられて来ました。多くの方がご存知の通

    コンセプトから学ぶAmazon DynamoDB【Amazon RDSとの比較篇】 | DevelopersIO
  • AWS SDK for Node.js での DynamoDB と DynamoDB.DocumentClient の違い | DevelopersIO

    AWS SDK for Node.js での DynamoDB と DynamoDB.DocumentClient の違い はじめに おばんです、iOSエンジニアからサーバーサイドエンジニアに転向しつつある田中です。iOS/Objective-C/Swiftしかやってこなかったので新鮮デス。 ここ一週間はNode.js, AWSの学びはじめとして、先輩の書いた既存コードを読みつつ機能追加したりしているのですが、今日はそんな中で見つけたちょっとした書き方とその意味の違いについてまとめます。 DynamoDB();とDynamoDB.DocumentClient();という二つの書き方 結論から言うと、 この二つの違いはDynamoDBのレコードを操作するときに使う AttributeValue を省略できるところになります。 DynamoDB.DocumentClient(); の書き方の方

    AWS SDK for Node.js での DynamoDB と DynamoDB.DocumentClient の違い | DevelopersIO
  • LambdaからRDS/RDBを利用する際に意識したいポイント5選 | DevelopersIO

    こちらの記事はRDS ProxyがGAされる前に執筆した記事です。現在はLambdaからRDSを利用する場合、間にRDS Proxyを挟むという選択肢が増えているので、まずはRDS Proxyを使う/使わないの検討をお願いします。以後で紹介しているトピックの一部はRDS Proxy利用時は考え方が変わってきます。 CX事業部@大阪の岩田です。私が現在関わっているプロジェクトではLambda × RDSというアーキテクチャを採用して開発を進めています。開発を進める中でLambda × RDS(RDB)という構成についてある程度ノウハウが貯まってきたので、注意したいポイントやオススメの設定をTIPS的に紹介していきます。 環境 以後の説明では以下の環境の一部もしくは組み合わせを利用しています。具体的なコードやSQLの例はプログラミング言語やDBエンジンに依存しますが、根底の考え方はどの言語、

    LambdaからRDS/RDBを利用する際に意識したいポイント5選 | DevelopersIO
  • 手元の作業端末からAmazon RDSに接続する方法 | DevelopersIO

    手元の作業端末から、VPCに作成したAmazon RDSに接続したいケースがあります。 開発時にDBクライアントで接続するといった形です。 RDSには様々な方法で接続できます。パターンを整理してみました。 接続パターン Publicly Accessible オプションを有効化して接続する RDSをパブリックサブネットに配置し、Publicly Accessibleを有効にする方法です。 パブリックサブネットとは、インターネットゲートウェイへのルーティングが可能なサブネットです。 Publicly Accessibleを有効にすると、RDSのエンドポイントがパブリックIPアドレスに解決されます。 セキュリティグループでクライアントの拠点のIPアドレスだけ許可すれば、拠点からのみ接続できます。 番データを扱う場合などは、SSLを利用した暗号化を検討します。 踏み台サーバーのSSHポート転送

    手元の作業端末からAmazon RDSに接続する方法 | DevelopersIO
  • Amazon S3における「フォルダ」という幻想をぶち壊し、その実体を明らかにする | DevelopersIO

    よく訓練されたアップル信者、都元です。Amazon S3について細かい説明は不要かと思いますが、要するにファイルストレージです。HTTPベースでファイルをアップロードでき、そしてダウンロードできるサービスですね。 古くから、データはシリアライズされた形式でファイルという単位に格納し、管理されてきました。ローカルマシン内でファイルを管理する仕組みがファイルシステムで、その多くにはフォルダという階層構造を扱う仕組みが備わっています。 Amazon S3も、Management Consoleによってフォルダを作成し、その中にさらにフォルダを作成したり、ファイルを格納できたりします。しかし。 Amazon S3には実はフォルダという概念は無い のです。Amazon S3の基礎技術は、単純なKVS(Key-Value型データストア)でしかありません。例えば下記のようなフォルダ(と我々が認識している

    Amazon S3における「フォルダ」という幻想をぶち壊し、その実体を明らかにする | DevelopersIO
  • テレワーク環境導入に関するAWSサービスまとめ -WorkSpaces/VPN Client/WorkDocs/文化・仕組み- | DevelopersIO

    ご機嫌いかがでしょうか、豊崎です。 新型コロナウイルス(COVID-19)の影響により、在宅を含めたテレワークの導入が急激に進んでいる中、AWSのVDI(仮想デスクトップ)であるWorkSpacesや、マネージドVPNであるAWS Client VPN、マネージド共有サービスのWorkDocsなどについて注目が集まっています。 投稿では、テレワーク環境の導入を検討している方に向けてAWSのテレワーク関連サービスに関して重要なブログをピックアップしてお届けしたいと思います。テレワーク環境導入の一助になれば幸いです。 Amazon WorkSpaces WorkSpacesはAWSの提供するマネージドな仮想デスクトップサービスです。 基的な概要 サービスを全体的に理解するなら「AWS再入門ブログリレー Amazon WorkSpaces 編」がお勧めです。実際にAmazon WorkSpa

    テレワーク環境導入に関するAWSサービスまとめ -WorkSpaces/VPN Client/WorkDocs/文化・仕組み- | DevelopersIO
  • 社長として最低限のテレワーク環境を整えてみた | DevelopersIO

    1月末から全社員を対象に原則テレワークを開始 皆さんこんにちはー! 現在クラスメソッドでは、世界5カ国(日、カナダ、ドイツ韓国、インド)、国内18フロアに勤務する約500名の社員の99%が毎日テレワークをしています。そうです、いきなり非日常が来てしまい、そしてそれが日常として定着してしまいました。これは、クラウドの世界の均衡を保つ為に暗躍する超人秘密結社「クラメソ」の知られざる活動の記録である。(ここでUNION SQUARE GARDENの曲が流れる) 社長業とはすなわち意志(WILL)の発信である 私はしがない零細企業の工場長として16年目の社長をしておりますが、創業時から大事にしていることは、「お前は何を考えて何をして何を成すんだ」という意志を言葉にして周囲に伝えることでした。もともとシャイなエンジニアでしたので、カフェとか居酒屋とか休憩室とかでの対面のコミュニケーションや、3ヶ

    社長として最低限のテレワーク環境を整えてみた | DevelopersIO
  • AWS アップデート職人になるための Tips | DevelopersIO

    バタバタ・・・ばたんっ! リビングから響く遠慮のない生活音に眠りから引き摺り起こされる。ベッドの脇に落ちたスマホを手で探りあて、人工的な眩しさを遮るように薄く瞼を開く。 「(・・・5時15分か。)」 通学に一時間かかる長女は毎朝この時間に起きてはバスケの朝練に向かう。部活の愚痴を吐くものの、それなりに楽しんでやってるようだ。 光というにはあまりにも弱い外の明かりをたよりに、ベッドの横に視線をやる。五歳と七歳のチビは何も聞こえた様子もなく、布団を蹴り飛ばした格好のまま寝ている。のせられた小さな足をそっと下ろし、また蹴り飛ばされるであろう布団をかけた。 もうひと眠りしようか、、などと考えながら再びスマホを手に取りアプリを開いた。 「(あぁ・・・アップデート出てんなぁ。。)」 「・・・」 ガバッ! もう一度眠りへ引きずり込もうとする布団の温もりを断ち切るため、必要以上の大きな動作で身を起こし、そ

    AWS アップデート職人になるための Tips | DevelopersIO
  • Amazon API Gatewayは「HTTP API」と「REST API」のどちらを選択すれば良いのか? #reinvent | DevelopersIO

    Amazon API Gatewayの新機能「HTTP API」 re:Invent 2019期間中、Amazon API Gatewayの新機能「HTTP API」が発表されました。現在プレビューとして、US East (Ohio), US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Sydney), Asia Pacific (Tokyo), EU (Frankfurt), EU (Ireland)で提供されています。 HTTP APIはREST APIの上位互換というわけではなくAPI Gatewayのコアな機能に特化して低コストで利用したい場合に適した機能という位置付けになっています。つまりREST APIと比較するとできないことがいくつかあります。 記事では以下のドキュ

    Amazon API Gatewayは「HTTP API」と「REST API」のどちらを選択すれば良いのか? #reinvent | DevelopersIO
  • 【開発者必見】Codeシリーズに最適化された通知サービスNotificationsがリリースされました! | DevelopersIO

    DevOpsやCI/CDに必須なサービスとしてすっかりおなじみになったCodeシリーズですが、今般、そのCodeシリーズに特化した通知サービスがリリースされました。 Introducing notifications for AWS CodeCommit, AWS CodeBuild, AWS CodeDeploy, and AWS CodePipeline Codeシリーズはアプリケーション開発〜運用のライフサイクル全般に関わるものが多く、それらを使っている中でリポジトリに対するプルリクエストの連絡、ビルド結果やパイプラインの実行結果、デプロイ結果などを通知するシチュエーションは非常に多くあります。従来、通知にはCloudWatch Eventsの利用が必須でしたが、今回Notificationsサービスとしてリリースされることで、Codeシリーズの中だけでの設定が可能となっています。

    【開発者必見】Codeシリーズに最適化された通知サービスNotificationsがリリースされました! | DevelopersIO
  • GitHubの docker/docker は moby/moby になりました。 | DevelopersIO

    ども、大瀧です。 昨日から開催されているDockercon 17では、Docker関連の多くの発表がありました。 その中のひとつにMobyプロジェクトがあり、プロジェクト発足に合わせてGitHubdocker/dockerリポジトリがmoby/mobyリポジトリに移動しました。今後Docker CE(Community Edition)のソースやIssueなどを見るときは、こちらのリポジトリにアクセスしましょう。 このブログでお伝えしたいことは以上なのですが、「Mobyってなんだよ?!Dockerが名称変更したの?」と言われそうなので、ちょっとだけ解説します。経緯についての一次情報は、以下をご覧ください。 Transitioning to Moby by shykes · Pull Request #32691 · moby/moby ほどなくちゃんとした説明がDocker社のブログなど

    GitHubの docker/docker は moby/moby になりました。 | DevelopersIO
  • GitHub Actionsでtextlintしてみた | DevelopersIO

    こんにちは、かたいなかです。 最近、ちょっとしたドキュメントのリポジトリに対して、textlintをかけたいと思うことがありました。しかし、textlintのためだけにCIツールを設定するとなると少し面倒だなとも感じました。 そんなとき、GitHub Actionsを使用するとリポジトリに設定ファイルを設置するだけで処理が実行できることを思い出しました。 そこで今回は、現在ベータのGitHub Actionsを使用してtextlintを実行する構成を試してみました。 GitHub Actionsは現在ベータです。 手順 GitHub ActionsのBetaにSign up GitHub ActionsはまだBetaなのでそのままで使用することはできません。 以下のリンクよりベータにサインアップし、アカウントで有効化されるまで待ちます。 https://github.com/feature

    GitHub Actionsでtextlintしてみた | DevelopersIO
  • クラスメソッド社内で発生した『ブルボン総選挙』の行方をTableauで可視化してみた | DevelopersIO

    『きっかけ』は、以下Togetterの情報が弊社Slackの雑談チャンネルに投下されたことでした。 このコメントを皮切りに、次々と表明される『俺の/私の好きなブルボンのお菓子』たち。みんな好きなのね〜。 そしてふと気づくと、同Slackチャンネルに『投票結果』を投下してしまっていたのでした...この間僅か30分。(作るぞ、となってからは15分くらいでした) 当エントリでは、このグラフを作るぞ!となってから出来上がるまでの流れ、そして『総選挙の行方』と『予想外の展開』について、簡単ではありますが内容をご紹介したいと思います。 目次 『ブルボン総選挙』投票結果可視化までの流れ 『ブルボン総選挙』トピックス この『騒動』が思わぬ流れに... 『第1回 クラメソ社内ブルボン総選挙』結果は... 『ブルボン総選挙』投票結果可視化までの流れ 可視化に用いたツールは、Developers.IOでも度々記

    クラスメソッド社内で発生した『ブルボン総選挙』の行方をTableauで可視化してみた | DevelopersIO
  • [Git] マージ済みのブランチを一括で削除する | DevelopersIO

    マージ済みのブランチを一括で削除 gitで管理しているとローカルにブランチがどんどん残っていくものです。毎回消していくのも大変なのでサクッと一括で削除できるコマンドを備忘録的に載せておきます。 $ git checkout master && git branch --merged | grep -v '*' | xargs -I % git branch -d % コマンドを見ての通りなのですが masterブランチに移動する すでにマージされてるブランチだけを抽出して一括で削除する の流れになります。 ですので、マージされていない作業中のブランチが削除されることはないです。 主流のブランチがmasterでなく、developだったりすることもあると思うので、適宜書き換えてください。もし必要そうならmasterブランチに移動後にpullをするコマンドを入れてもいいかもしれません。

    [Git] マージ済みのブランチを一括で削除する | DevelopersIO
  • Google Chromeで複数AWSアカウントでの作業を快適に行う方法 | DevelopersIO

    頻繁にAWS Management Consoleでログイン・ログアウトを繰り返したりしていませんか? 日頃AWSを利用して業務を行う際、複数のAWSアカウントを切り替えて作業を行う場合があります。もちろん、AWSで作業を行う場合、必ずといっていいほどAWS Management Consoleにログインを行うと思います。 下記の見慣れた画面にメールアドレスとパスワードを入力しログインしては、作業が終わればログアウトし、また別のアカウントのメールアドレスとパスワードを入力し。。。(以下略) 現在、AWS Management Consoleはマルチアカウントに対応していません。そのため、AWSアカウントを切り替えて作業を行う場合は、その都度ログイン・ログアウトを行う必要があります。 そこで、Google ChromeAWS Management Consoleを利用する場合、Google