タグ

ブックマーク / www.techscore.com (19)

  • PostgreSQL: 集合を返すGENERATE_SERIES関数で大量データを生成して集計する | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 PostgreSQL ユーザの方! GENERATE_SERIES という関数をご存知でしょうか。 集合を返す GENERATE_SERIES 関数 GENERATE_SERIES 関数は少し変わっていて、集合を返す関数です。 動作を見ていただいた方が分かりやすいかもしれません。 # SELECT GENERATE_SERIES(1, 10); generate_series ----------------- 1 2 3 4 5 6 7 8 9 10 (10 rows)

  • TECHSCORE|知っておきたかったAWS SAM の小ネタ4選 | TECHSCORE BLOG | TECHSCORE BLOG

    これは TECHSCORE Advent Calendar 2018 の7日目の記事です。 こんにちは、土屋です。 今年1月に AWS LambdaGo のサポートを開始しましたね。 Gopher たちが賑わう中、私も Go のアプリを Lambda で作りたいなあと思い、 AWS SAMを使って環境構築をしてみました。 環境構築はチャチャッと終わらせたい!と思いつつも、実際にSAMを使ってみると、自分がやりたいことを実現する方法がわからず、調べるのに意外に時間がかかってしまいました。 そこで今回は「先に知ってればもっと工数削減できたなー」と思った、AWS SAM に関する小ネタを4つをまとめました。 ※AWS SAM は公式ドキュメントの Benefits of Using AWS SAM に書かれている通り、AWS CloudFormation の拡張です。記事の内容は、Clo

  • » 知らないと損する Docker イメージのレイヤ構造とは TECHSCORE BLOG

    ユニオンファイルシステムとコピーオンライト Docker コンテナが軽量だと言われる理由のひとつが、ユニオンファイルシステムにあります。ユニオンファイルシステムは、複数のファイルシステム上のディレクトリやファイルをレイヤとして重ね合わせ、それらを仮想的に一つのファイルシステムとして扱う技術です。 Docker は、このユニオンファイルシステムを使い、イメージを複数の読み取り専用レイヤのスタックとして扱います。コンテナ内ではさらに、読み書き可能なレイヤを一枚重ねています。 コンテナ上の読み書き可能なレイヤをコンテナレイヤと呼び、イメージを構成する読み込み専用レイヤをイメージレイヤと呼びます。 この構成により、同一ノード上で動く複数のコンテナが、Docker イメージを構成するイメージレイヤを共有することを可能にし、トータルとしてのコンテナサイズを最小化しているのです。 共有しているイメージレ

  • PostgreSQLのIOにまつわるエトセトラ | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは。寺岡です。 これは TECHSCORE Advent Calendar 2017 の14日目の記事です。 PostgreSQLのIO問題を調査する機会があり、RDBMSのIO問題を取り巻く状況についてまとめてみました。 記事は一般的なLinux+PostgreSQL環境を対象としています。 RDBMSとACID PostgreSQLをはじめとした多くのRDBMSはトランザクションの信頼性を強く保証するシステムです。 この特性は原子性(Atomicity) 一貫性(Consistency) 独立性(Isolation) 永続性(Durability) の頭文字を取りACIDと呼ばれています。 RDBMSにおけるACIDとは、全利用者(クライアント)が実施した操作(クエリ)が、実施された順番で完了することが保証(トランザクション、レプリケーション)されることを表します。 トランザ

  • 反則スレスレ !? Super Cookie とは | TECHSCORE BLOG | TECHSCORE BLOG

    (Eugene Onischenko / Shutterstock.com) こんにちは、中山です(写真は私ではありません)。 以前の 3rd party Cookie いただきます にて Parasite Cookie の場合、クロスドメインでトラッキングできないことが(業者側の)課題です。 しかし Super Cookie と呼ばれる方法ならばクロスドメインでのトラッキングも可能です。 こちらについては別途ご紹介します。 と結びました。 そこで、今回は Super Cookie と呼ばれる技術についてご紹介したいと思います。 例えばこんな Super Cookie Super Cookie とは、各種擬似 Cookie 技術の総称で、Flash の LSO を利用したシンプルな実装から、ブラウザの閲覧履歴(参考 : css history knocker)や Criteo の ITP

  • Slack×HubotでChatOpsをはじめてみた | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、小野寺です。 私が所属しているグループでは、開発用のチャットツールにSlackを使っています。 Slackは多くのサービスとの連携が提供されている魅力的なツールです。 そこで前から気になっていた、ChatOpsをはじめてみました。 ChatOpsは簡単に言うとチャット上にbotを用意して、そのbotにチャットで呼びかけるとbotがいろいろやってくれるというものです。 今回は、SlackとHubot、そしてGitLabを使ってChatOpsしてみたいと思います。 ※SlackとHubotの連携については割愛します。(ほとんど設定いらないです) 実装するのは次の2つの機能です。 ブランチの作成 マージリクエストの作成 GitLabAPIを提供しているので、HubotでGitLabAPIを使って実現したいと思います。 HubotはNode.jsで作られているので、npmのモジュール

  • クリックジャッキングって? | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは。宮垣です。 昨今、セキュリティ問題のニュースが世間を賑わすことが多くなってきていますが、 今回は、クリックジャッキング対策について書きたいと思います。 最近では、セキュリティチェックベンダーのチェック項目にも、よく含まれています。 クリックジャッキングとは 「悪意のあるサイト上の特定箇所をクリックさせ、別サイトの設定情報を変更させる」 攻撃手法の事です。 攻撃者は、悪意のあるサイトにiframeで別サイトを埋め込み、 それを視覚的に見えないよう工夫することで、ユーザーが気づかないうちに、 別サイトの設定情報を変更することを期待しています。 仮に、その別サイトが個人情報の公開・非公開を設定できるものであった場合、 悪意のあるサイトで公開状態にさせられ、攻撃者にその個人情報が取得されてしまいます。 図1:ユーザーが攻撃を受けるまで遷移図 ----------------------

  • ActiveSupport::Concern でハッピーなモジュールライフを送る | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 以前のエントリで「includeされた時にクラスメソッドとインスタンスメソッドを同時に追加する頻出パターン」をご紹介しました。 今回は、それに関する定形処理を肩代わりしてくれる ActiveSupport::Concern をご紹介します。 includeされた時にクラスメソッドとインスタンスメソッドを同時に追加するパターン Before 以前のエントリ(includeされた時にクラスメソッドとインスタンスメソッドを同時に追加する頻出パターン)でご紹介していますが、おさらいしましょう。 module M def self.included(base) base.extend(ClassMethods) end module ClassMethods def foo puts 'foo' end end def bar puts 'bar' end end

  • Selenium Gridで複数の実機ブラウザで自動テスト | TECHSCORE BLOG | TECHSCORE BLOG

    はじめに こんにちは、白川です。 Webアプリケーションは概ね、複数のブラウザに対応する必要があります。 Internet Explorer、Firefox、ChromeなどのPCブラウザだけでなく、 iPhoneAndroidなどのモバイル/タブレットのブラウザにも対応しないといけなかったり、 同じブラウザでも複数のバージョンに対応する必要があったり、 OSのバージョンの違いにも対応する必要があったりします。 そうなってくると、テストが大変です。 検証が必要なOSとブラウザとバージョンの組合せが増えれば増えるほど、手動でテストを行なうことが大変になっていきます。 しかし、Selenium Gridを使えば、 一つのテストスクリプトで複数の実機のブラウザで自動にテストを実施することが可能となります。 Selenium Gridについて テストスクリプトを実行するサーバからSelenium

    clavier
    clavier 2015/05/11
    » Selenium Gridで複数の実機ブラウザで自動テスト TECHSCORE BLOG
  • Docker上でRailsアプリケーション開発 | TECHSCORE BLOG | TECHSCORE BLOG

    イメージを取得して起動するだけです。 コンテナはデタッチモードで動かしたいので -d オプションを指定しています。また、コンテナには名前を付けておくと便利なので --name で「postgres」という名前を付けました。 ポイントは環境変数として「-e LC_ALL=C.UTF-8」を指定しているところです。これは initdb でデータベースクラスタを初期化するときのエンコーディングを UTF-8 とするためです(デフォルトでは SQL_ASCII になります)。 Rails 開発用のイメージを作成する 次に Rails 開発用のイメージを作成します。 PostgreSQL は既存のイメージをそのまま使用しましたが、今度は個人用の開発環境を作りたいのでそうもいきません。 Dockerfile を書いて自分用のイメージを作成することにしました。 FROM ubuntu:14.04 MAI

  • 隔離の技術Dockerの考え方と使い方の基本 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 「AWSDockerを使ってみよう!」では Docker を取りあえず使ってみました。今回は「Docker とは?」というところから、Docker の基的な操作を行うところまで見ていこうと思います。 Docker とは Docker とはコンテナ型の仮想化を実現するためのソフトウェアです。 Xen や VMware のようなサーバ仮想化との違いは、扱う単位がマシンではなくプロセスである点です。 この違いは非常に重要です。 サーバ仮想化ではホストマシン上でゲストマシンが動き、ゲストマシン内で様々なプロセスが動きます。一方のコンテナ型の仮想化では、ホスト OS 上にコンテナという隔離された空間が作成され、その中でプロセスが実行されます。 コンテナは隔離の技術 Docker を使い始めたばかりだと「コンテナ内に bash で接続してみたけれど cron や syslo

  • Railsライブラリ紹介: N+1問題を検出する「bullet」 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 Rails の便利なライブラリをシリーズでご紹介してみたいと思います。 今回は「N+1 問題」を検出してくれるライブラリ、bullet です。 bullet (http://github.com/flyerhzm/bullet) N+1 問題 N+1 問題とは、OR マッパーを使用しているときに発生しがちな問題です。 何かの一覧画面を作成しているときに、 一覧に表示するデータを取得するために SELECT を 1 回実行(N レコード返される) 各データの関連データを取得するために SELECT を N 回実行 データベースアクセス(SELECT)が合計 N+1 回も実行される(JOIN して 1 回の SQL で取得した方が効率的) というものです。 具体的なコードで考えてみましょう。 例として店舗の一覧画面を作成しているとします。 関係するモデルは以下の通りです

  • Railsのコールバックまとめ | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 Techscore 体の記事の下書きを書き進めています。 ということで、コールバックの記事の下書きを公開します。 コールバックの種類 コールバックとは、バリデーションの実行やデータベースへの保存などのタイミングで処理を行うための機能です。 あるタイミングで必ず実行する必要がある処理をコールバックに指定することで、モデルの一貫性を保つことができます。 Rails のコールバックの種類をまとめてみると、非常に多いことが分かります。 after_find 検索メソッドでオブジェクトが見つかったタイミングで実行されます。 検索条件を指定せずに all メソッドを呼び出すなど、検索結果が大量になる場合は注意が必要です。 検索結果の数だけコールバックが実行されますので、パフォーマンスに重大な影響を及ぼす可能性があります。 after_initialize オブジェクトがインス

  • Railsで変更前の値、型変換前の値、などなど | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 ActiveRecord は使い勝手の良いライブラリです。 ActiveRecord::Base クラスを継承するだけで、ほとんど設定することなく、その恩恵に預かることができます。 今回は、そのありがたい恩恵の中から、属性に代入した値に関する部分をピックアップします。 具体的には、型変換前の値が取得できること、属性の変更前の値を知ることができることなどをご紹介します。 例として User というモデルがあり、年齢を数値型で保持する age という属性があるとします。 Rails の ActiveRecord はデータベースにおけるカラムの型に応じて、代入された値を型変換してくれます。 例えば、数値型の age に "123" という文字列を代入したとします。

  • gitの勉強会「はじめようgit」を行いました | TECHSCORE BLOG | TECHSCORE BLOG

    スライドを作成するにあたって、色々なサイトを閲覧しましたので、まとめてみました。 基的なこと Git - Book まずはこれを読んどいた方が良いと思います DVCSとGitの基礎 サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ わかりやすいです git - 簡単ガイド 天下一gitconfig大会 参考になるけど、ちょっと古い。 こわくない Gitランチのこと良くわかる。必読。 コミットメッセージの書き方 - ククログ(2012-02-21) コマンドの使い方とか gitとsubversionのコマンド対応表 « cyclogy 一覧で見やすい Git - SVN Crash Course(in Japanese) SVNとのコマンド比較が充実している Subversion ユーザーが Git を使ってみた (基操作編) - ま

  • Ruby on Rails 4.0 Release Notes を読む | TECHSCORE BLOG | TECHSCORE BLOG

    実行可能ファイルが bin ディレクトリに置かれるようになった。(※2013/2/15追記: 「bundle install」するときに --binstubs オプションを付ける場合に注意が必要です。詳しくは「Hello Rails4 beta」をご参照ください。) デフォルトでスレッドセーフになった。 非推奨 (デフォルトでスレッドセーフになったため)config.threadsafe! が非推奨となった。 Rails::Plugin は廃止された。vendor/plugins ではなく Gem ライブラリを使用する。 7. Action Mailer 主な変更点 特に無し。 非推奨 特に無し。 8. Active Model 主な変更点 許可しない属性に対する Mass-assignment を防ぐシンプルなモジュールである ActiveModel::ForbiddenAttribut

  • トップページ

    SQL データベース操作言語SQLについて、またRDBMSの持つ機能について詳しく解説します。 DB概要、SQL、テーブル操作、データ操作 ... 特集:replication PostgreSQLのレプリケーションシステムを紹介し、それらの機能を比較していきます。 特集:pgbench PostgreSQLのベンチマークテストに用いられるプログラムである pgbench について解説します。 SQL演習問題 各章に用意された演習問題を集めました。

    clavier
    clavier 2006/05/29
  • SQL -TECHSCORE-

    ここでは、リレーショナル型データベースを操作するために必須となる世界標準言語 SQL について、基礎から応用まで詳しく説明しています。 また、SQL のみにとどまらず、リレーショナルデータベースマネージメントシステム (RDBMS) の持つ様々な機能について詳しく説明しています。 最後には、データベースの設計に関する非常に重要な考え方についても触れていますので、これらを全て学習すると、データベースの操作から設計まで幅広い知識を身につけることができるでしょう。 SQL INDEX 1. データベースの概要 1.1. データベースとは 1.2. データベースシステムの特徴 1.3. データベースとファイルの違い 1.4. 代表的なデータモデル 1.5. リレーショナル型データベース 1.6. まとめ 2. SQL 2.1. SQL歴史 2.2. SQL とは 2.3. SQL の機能 2.

    clavier
    clavier 2006/04/14
  • TECHSCORE - Java,SQLプログラミング技術解説

    SQL データベース操作言語SQLについて、またRDBMSの持つ機能について詳しく解説します。 DB概要、SQL、テーブル操作、データ操作 ... 特集:replication PostgreSQLのレプリケーションシステムを紹介し、それらの機能を比較していきます。 特集:pgbench PostgreSQLのベンチマークテストに用いられるプログラムである pgbench について解説します。 SQL演習問題 各章に用意された演習問題を集めました。

  • 1