タグ

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

  • PostgreSQL 15にMERGE文UPSERTがやってくる | DevelopersIO

    UPSERT とは データベースにレコードを反映する際、100%新規データを扱うのであれば、テーブルにINSERTするだけですみます。 更新データも存在する場合、新規の場合は INSERT 、更新の場合は UPDATE というように処理を振り分ける必要があります。 このように、データの状態によって UPDATE と INSERT を使い分けることを、UPDATE と INSERT をくっつけて UPSERT と呼びます。 PostgreSQL は9.5で INSERT を試し、制約違反が発生すれば UPDATE する INSERT ... ON CONFLICT 構文の UPSERT に対応しました。 PostgreSQL 以外にも、MySQLSQLiteがこの方式のUPSERTに対応しています。 INSERT INTO target(tid, val) VALUES(123, 10)

    PostgreSQL 15にMERGE文UPSERTがやってくる | DevelopersIO
    willnet
    willnet 2022/12/12
  • DockerとAWSのコラボによりdocker ecsコマンドが爆誕したので使ってみた | DevelopersIO

    Docker社とAWSがコラボレーションするという驚きとともに、新しくdockerコマンドに組み込まれたdocker ecsの使い心地を試してみました。 「docker ecsコマンド?なにこれ?」 先日、突如、DockerのECSインテグレーションなるものが発表されました! AWS and Docker collaborate to simplify the developer experience | Containers 従来あるdockerコマンドに、なんとdocker ecsコマンドが追加され、docker-composeファイルを利用したECSへのデプロイがAWS CLIなどのAWS製ツールを使わずに、全てdockerコマンドだけで完結するという、ちょっと想像がつかないアップデートです。 まだDocker社ではベータ版の扱いということですが、なかなかにおもしろいアプローチだった

    DockerとAWSのコラボによりdocker ecsコマンドが爆誕したので使ってみた | DevelopersIO
  • Amazon S3における「フォルダ」という幻想をぶち壊し、その実体を明らかにする | DevelopersIO

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

    Amazon S3における「フォルダ」という幻想をぶち壊し、その実体を明らかにする | DevelopersIO
    willnet
    willnet 2020/06/08
  • S3の特定パスのみに対して全ての操作が可能なIAMポリシー | DevelopersIO

    このうち、後ろの2種類は、バケットに対するアクションです。つまり、前述のポリシーでは、s3:*という全アクション指定をしているものの、arn:aws:s3:::access-control-on-specific-path/dir_a/*という形式でバケットではなくオブジェクトでリソース指定をしている為に、実質的には後ろの2種類のバケット操作系の権限は付与されていないということになります。 ListObjectsするにはs3:ListBucketが必要 今回エラーとなって実行できていないListObjectsをする為には、s3:ListBucket権限が必要なことがわかりました。s3:ListBucketはバケットオペレーションとなる為、バケットをリソースとして権限を付与する必要があります。 オブジェクトオペレーション s3:GetObject s3:GetObjectVersion s3

    S3の特定パスのみに対して全ての操作が可能なIAMポリシー | DevelopersIO
    willnet
    willnet 2020/06/08
  • [iOS 11] iOS 11で追加されたUINavigationItemのsearchControllerプロパティを使ってSearchBarをナビゲーションインターフェースに統合する | DevelopersIO

    iOS 11で追加されたUINavigationItemのsearchControllerプロパティ iOS 11でUINavigationItemに追加されたsearchControllerプロパティを使用すると簡単にUINavigationBarにSearchBarを統合することができます。 ここで「統合」と表現したのは、「ナビゲーションバーに埋め込まれたように表示することができる」という意味です。 検証環境 エントリは以下の環境で検証を行っています。 macOS Sierra バージョン 10.12.6 Xcode Version 9.0.1 (9A1004) Swift 4 iPhone X シミュレーター iOS 11.0 こんな見た目になります 先にこのプロパティを使ってSearchBarを表示した結果を載せておきます。 ご覧のようにナビゲーションバーに埋め込まれる形でSea

    [iOS 11] iOS 11で追加されたUINavigationItemのsearchControllerプロパティを使ってSearchBarをナビゲーションインターフェースに統合する | DevelopersIO
    willnet
    willnet 2018/11/23
  • [iOS 10] 全てのスクロールビューでRefresh Controlがサポートされました | DevelopersIO

    はじめに こんにちは! 加藤潤です。 iOS 10で全てのスクロールビューでRefresh Controlがサポートされました! 今回はこの機能をご紹介したいと思います。 Refresh Controlとは まずはごく簡単にRefresh Controlについて説明します。 Refresh Controlとは、テーブルビューのUIでよくある「引っ張って更新」するためのUIコンポーネントで、UIKitのクラスはUIRefreshControlです。 iOS 9以前のUIRefreshControl iOS 9までは、UIRefreshControlを生成し、UITableViewControllerのrefreshControlプロパティにセットする形で使用していたかと思います。 class ViewController: UITableViewController { override f

    [iOS 10] 全てのスクロールビューでRefresh Controlがサポートされました | DevelopersIO
    willnet
    willnet 2018/06/17
  • fish shell を使いたい人生だった | DevelopersIO

    2019年4月15日: fisher version 3.2.8にアップデートしました。これに伴い、もともと記事内で記載していた fisher install コマンドを 、fisher add に変更しました ずっとbashを使っていました。zsh、興味はありましたが、プラグインのための設定を書くのがなんとなく大変そうだという理由で、敬遠していました。そこに fish shell (以下 fish) が手を差し伸べてくれたのです。結論から書くと、bash と同程度の設定ファイルの記述量で、ディレクトリ間の移動やコマンド履歴の呼び出しといった利便性は飛躍的に向上しました。そして見た目が良い。入れて損はありません。 想定読者 Mac で bash を使っている方。 バージョン情報 ソフトウェア バージョン どこまでやるか このたぐいの作業、はじめるとキリがありません。調べるうちにさらに便利な

    fish shell を使いたい人生だった | DevelopersIO
    willnet
    willnet 2017/07/12
  • IAM Roleの仕組みを追う – なぜアクセスキーを明記する必要がないのか | DevelopersIO

    はじめに こんにちは。望月です。 過去にブログで、IAM Roleの仕組みについて都元から解説がありました。 - IAMロール徹底理解 〜 AssumeRoleの正体 IAM Roleの仕組みについて非常にわかりやすく解説されていますので、ぜひ読んでみてください。今日はもう少し利用側の観点に立ったブログを書いてみようと思います。 IAM Roleってどうやって使われてるの IAM Roleを利用する目的は、「ソースコード内にAWSAPIキーをハードコードすることなく、AWSAPIを叩きたい」というものが殆どだと思います。ですが、なぜIAM Roleを利用すると、アクセスキーをソースコードで指定することなくAWSAPIが利用可能になるのでしょうか。 今日はその仕組みについて知りたくなったので、AWS SDK for Rubyのソースコードから読み解いてみました。SDKのバージョンは1

    IAM Roleの仕組みを追う – なぜアクセスキーを明記する必要がないのか | DevelopersIO
  • DockerでRailsの開発環境を構築する | DevelopersIO

    モバイルアプリサービス部の五十嵐です。 先日、あるRailsアプリケーションの開発環境を同僚のマシンに作成しようとしたところ、gemのインストールに1日かかってしまいました。環境構築は手順化されていたのですが、トラブったのは主にNative Moduleを利用する libv8 、 therubyracer 、 rmagick などのおなじみの面々です。手順を作った時は、これらのgemのインストールに必要なライブラリを brew install で最新バージョンをインストールするだけでよかったのですが、時が経ちライブラリの最新バージョンが更新されていたことが主な原因でした。この状況はいかんな〜と思い、Railsアプリケーションの開発環境もDockerにすることにしました。 記事では、Railsアプリケーションの開発環境をDockerにするときに検討したことや問題点などを書いています。なお、

    DockerでRailsの開発環境を構築する | DevelopersIO
    willnet
    willnet 2017/05/19
    良い
  • Amazon Elasticsearch Service で Elasticsearch 5.1 の利用が可能となりました | DevelopersIO

    Amazon Elasticsearch Service で Elasticsearch 5.1 の利用が可能となりました おはようございます、藤です。 日は嬉しいアップデートがありました。Amazon Elasticsearch Service に Elasticsearch 5.1 / Kibana 5.1 が追加されました。 Elasticsearch 5 now available on Amazon Elasticsearch Service Elasticsearch 2 の対応には GA リリースから 1年弱ぐらいかかった覚えがありますので、今回の対応の早さは驚きました。 概要 Amazon Elasticsearch Service は Elasticsearch / Kibana の AWSマネージドサービスです。Elasticsearch クラスタの管理・運用を A

    Amazon Elasticsearch Service で Elasticsearch 5.1 の利用が可能となりました | DevelopersIO
    willnet
    willnet 2017/05/17
  • [iOS][Swift3.0] NSAttributedStringが直感的に書けるようになるSwiftyAttributes | DevelopersIO

    テキストを装飾するNSAttributedStringは文字の表現が豊かになり便利な反面、(個人の主観ですが) 記法がすこし面倒です。 今回はそんなNSAttributedStringが書きやすくなるSwiftyAttributesといういライブラリを試してみました。ライセンスはMITです。 https://github.com/eddiekaiger/SwiftyAttributes 検証環境 今回は下記環境で試しています。 Xcode 準備 CocoaPodsで追加します。 use_frameworks! target "ターゲット名" pod 'SwiftyAttributes' post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations

    [iOS][Swift3.0] NSAttributedStringが直感的に書けるようになるSwiftyAttributes | DevelopersIO
  • OSSのジョブ管理システム Kuroko2を使ってみた | DevelopersIO

    私の所属するプロジェクトで、OSSのジョブ管理ツールKuroko2を導入しました。 簡単にKuroko2の特徴、設定手順をご紹介します。 導入の経緯 プロジェクトが始まった時、一定間隔で起動する小さなジョブが一つか二つあるだけなのでcronで動かしていました。 ですが、リリースから時間が経ちサービスが成長するにつれ次第にジョブも増えていきました。 「こっちのDBから1日1回データを同期して画面に反映して欲しいです!」 「FTP接続してこっちのファイル取得してほしいんだけど...」 「対象のデータがあったらS3にJSON書き出してくれない?」 その場しのぎで次々にcron起動のジョブを増やしていったところ、ある日 崩壊した... (青:使用可能メモリ、緑:使用済みメモリ) ジョブ管理システム Kuroko2の導入 自前でジョブ管理システムを構築することも検討しましたが、時間がないことやすでに

    OSSのジョブ管理システム Kuroko2を使ってみた | DevelopersIO
  • Elasticsearch Service と CloudSearch どっちを選べば良いの? | DevelopersIO

    こんにちは、木戸です。 AWS の検索エンジンをベースとしたサービスには、Amazon Elasticsearch Service と Amazon CloudSearch の2つがあります。今回はこの二つのサービスについての用途の違いについてまとめたいと思います(機能比較ではないです)。サービスを選定する際の参考になれば幸いです。 ※ Elasticsearch Service は Kibaba も含め分析用途もありますが、今回は検索にフォーカスしてます。 それではさっそく、 CloudSearch も Elasticsearch も Lucene ベース CloudSearch は現在 Solr ベースとなっており、その検索エンジンのコアには Lucene を使用している。また、Elasticsearch も Lucene をバックエンドに使用しているため、ベースのテクノロジーとしては

    Elasticsearch Service と CloudSearch どっちを選べば良いの? | DevelopersIO
    willnet
    willnet 2016/11/16
  • [iOS 10] Xcode 8 の新しい Signing 機能について | DevelopersIO

    What's New in Xcode App Signing Xcode 8 から利用できる署名まわりに関する新機能。 WWDC 2016 で発表されたこの新機能の概要についてご紹介します。 Xcode 8 automatically manages signing Multiple development certificates Dedicated customized signing mode Xcode 8 automatically manages signing なにができるの? なにかができるようになった、と言うよりは今まで行っていた面倒な作業を行わなくてよくなった、というものです。 これらの作業は今後、Xcode が 自動で 行ってくれます。 Xcode が自動で行ってくれる作業 署名付き証明書の作成 App ID の作成と更新 プロビジョニングプロファイルの作成と更新

    [iOS 10] Xcode 8 の新しい Signing 機能について | DevelopersIO
    willnet
    willnet 2016/09/16
  • Amazon Redshift: 検索パス(search_path)とSQLのスキーマ指定の関係について | DevelopersIO

    小ネタです。 Amazon Redshiftクラスタ環境上に於いて、スキーマを分けて運用管理をする事は往々にしてある事と思われますが、その際に同じテーブル名でスキーマを分けて作成する、という事も状況に拠ってはやる手段であるかと思います。運用面からの必要性であったり、又は開発環境として利用するために...という感じです。 その際、それら作成したテーブルに対してSQLアクセスを行う際の『スキーマ指定』について挙動が異なるんだけどこれは一体...という声が挙がっておりましたので、調べてみました。『検索パス(search_path)』という要素が関連していたのですが、その辺りの解説を簡単な実例を踏まえてご紹介してみたいと思います。 『検索パス』の設定値によってテーブルアクセスの順序を制御 そのものズバリな回答が以下公式ページに掲載されていますね。要はそう言う事らしいです。 search_path

    Amazon Redshift: 検索パス(search_path)とSQLのスキーマ指定の関係について | DevelopersIO
  • [レポート] ワールドパブ形式で語り合う “現場のRails” | DevelopersIO

    はじめに 『現場のRails』とうお題で弊社と永和システムマネジメント様とワールドパブを開催させて頂きました。 両社からビールとソフトドリンク、寿司とピザが提供されました。ごちそう様です! ワールドカフェとは? ワールドカフェのアルコールが入った版を ワールドパブ と呼んでいるようですね。テーブルオーナーを固定で今回は参加者は3回テーブルを移動しました。 テーブル毎にお題があり、今回は下記5つのテーマ=テーブルが用意されました。 お題 『Rails アプリのインフラ』 『Rails アプリの開発環境』 『Rails アプリのレイヤー設計』 『Rails アプリと Gem のアップグレード』 『Rails アプリのテスト』 編 Rilasという同じコンテキストを共有するエンジニアが事なるテーマで話し合う事で綺麗なだけの話しではない 現場の話しで盛り上がっていました。 各テーブルのまとめ 『

    [レポート] ワールドパブ形式で語り合う “現場のRails” | DevelopersIO
    willnet
    willnet 2016/07/04
    ワールドパブ形式、面白いのでもっといろんなところで開催されると楽しそう
  • systemd超入門 | DevelopersIO

    これはとある勉強会用の資料です。スライド作るのが面倒臭くなったのでブログにすることにしました。 Systemdとは Systemdは、Linuxの起動処理やシステム管理を行う仕組みです。 Linuxの起動処理 Linuxの起動はざっくりと以下の4段階によって行われます。 電源投入によりBIOSが起動する。 BIOSからブートローダーが呼び出される。 ブートローダーがLinuxカーネルを起動する。 Linuxカーネルがinitプロセス(PID 1)を起動する。 このinitプロセスが、Linuxの起動処理を司ります。古くから使われていたのがSysvinitで、Sysvinitの代替えとして近年Ubuntuなどで採用されていたのがUpstartです。そしてFedora 15やCentOS 7、Red Hat Enterprise Linux 7で採用されたのがSystemdです。 System

    systemd超入門 | DevelopersIO
  • RedPen でわかりやすい技術文書を書こう | DevelopersIO

    最近はブログを始めマニュアルや仕様書など技術文書を書く機会が多くなってきました。 技術文書はわかりやすさが重要だと思うのですが実際は書けていません。 どうしたらわかりやすい文書が書けるのだろうか?と調べていたら RedPen というツールを見つけたので早速試してみました。 RedPen とは? RedPen とはプログラマや記者が規約に従って文書を記述するのをサポートしてくれるオープンソースのソフトウェアツールです。 プログラミングが規約に従ってコーディングされているかチェックするように、RedPen は自然言語で記述された入力文書の検査を自動化してくれます。 RedPen の特徴 設定が柔軟に行えます。(カスタマイズも柔軟) どのような言語で書かれた文書でも処理できます。(もちろん日語も OK です) MarkdownTextile フォーマットで記述された文書をそのまま検査でき

    RedPen でわかりやすい技術文書を書こう | DevelopersIO
    willnet
    willnet 2016/03/26
    良さげ
  • Treasure Dataの新データ転送ツールEmbulkを触ってみた #dtm_meetup | DevelopersIO

    ども、大瀧です。 日開催されたデータ転送ミドルウェア勉強会で、開発者の@frsyukiさんによって語られたEmbulkを早速触ってみました。 Embulkとは EmbulkはOSSのデータ転送ソフトウェアです。もう少し細かく分類するとBulk Loaderと呼ばれる、バッチ処理のためのデータ読み込み、変換処理を行う機能を持ちます。特徴は柔軟なプラグイン構造で、データを読み込むInputPlugin、データを出力するOutputPlugin、さらに読み込み処理自体もExecutorPluginと、機能のほとんどをプラグインとして後から追加、カスタマイズできるよう高度に抽象化されたアーキテクチャになっています。データのハンドリングもプラグインでの実装を想定しているようなので、ここまで来るとミドルウェアというより、データ転送のインターフェースを定義するフレームワークの実装、という方が近い感じか

    Treasure Dataの新データ転送ツールEmbulkを触ってみた #dtm_meetup | DevelopersIO
    willnet
    willnet 2016/03/03
  • Ginza.rb 第27回 Web APIの四方山話の参加レポート | DevelopersIO

    Ginza.rb 第27回 Web APIの四方山話に参加してきました! 内容を簡単にレポートしたいと思います。 Ginza.rbとは 銀座周辺のRuby技術者たちのmeetupイベントです。最初はソースコードリーディングの会が多かったそうです。 そこから今回までに開発環境の話やAPIの話など沢山の面白い企画が作られてきました。 過去のイベント一覧 自己紹介 各自作成したmarkdownのプロフィールを写して、自己紹介を簡単にしていきました。 自己紹介タイムでは参加者の最近気になることが知れて面白いです。やはりJSはReactが人気、サーバサイドはElixirが注目されていました。 JSON APIのお話 講演者として今回招かれた川村 徹(@tkawa)さんのお話からスタートしました。 川村さんはRESTful Web APIs 読書会、Sendagaya.rbの主催者の方です。 当日の資

    Ginza.rb 第27回 Web APIの四方山話の参加レポート | DevelopersIO