タグ

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

  • Google が提唱する「Privacy Sandbox」について | TECHSCORE BLOG | TECHSCORE BLOG

    これは TECHSCORE Advent Calendar の13日目の記事です。 Privacy Sandbox は Google が提唱する 広告についての技術的な取り組みです。GoogleChrome ブラウザの開発チームのブログで以下のように書かれています。 Chromium Blog - Potential uses for the Privacy Sandbox we outlined our vision for an initiative aimed at evolving the web with architecture that advances privacy, while continuing to support a free and open ecosystem. プライバシーを向上させながら自由でオープンな (広告の) エコシステムを引き続きサポートす

  • JDBC setFetchSize() ではまった話 | TECHSCORE BLOG | TECHSCORE BLOG

    JDBCのsetFetchSizeメソッドはご存知でしょうか? 通常、クエリの結果はResultSetにすべてロードされます。このため、大量のレコードを取得するようなクエリではOutOfMemoryErrorが発生してしまいます。 このような場合に有効なのがsetFetchSizeです。 たとえば、クエリ発行の前にsetFetchSize(1000)とすると、1000件ずつResultSetにとりこまれるようになり、OutOfMemoryErrorを回避することが可能です。 (もちろん、搭載メモリ量、1レコードあたりのサイズによります!) しかし、ここに罠がありました。。。 setFetchSizeを使用しているにもかかわらず、全件がResultSetにロードされてしまう場合があるのです。 JDBCドライバごとにsetFetchSizeの挙動がかなり違っているので、はまりどころです。 今回

    JDBC setFetchSize() ではまった話 | TECHSCORE BLOG | TECHSCORE BLOG
  • 3rd party Cookie いただきます | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、中山です(写真は私ではありません)。 以前は Cookie 終焉論的な記事をよく見かけたのですが、最近あまり見かけなくなりましたね。 結局のところ、相も変わらず Cookie は元気に活用され続けているようです。 そこで、今回はトラッキングで話題になりがちな 3rd party Cookie について考察してみましょう。 なお調査に利用したブラウザは以下の通りです。 (iOS と Android の標準ブラウザについてはまたの機会に) Firefox 47.0 Chrome 51.0.2704.103 m Internet Explorer 11.0.32 3rd party Cookie ブロックの動作(ブラウザ目線) ブラウザ目線での 3rd party Cookie とは、ユーザーが閲覧しているページのドメインとは異なるドメインから HTTP Set-Cookie Hea

  • 反則スレスレ !? 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

  • Invisible reCAPTCHA 入れてみた | TECHSCORE BLOG | TECHSCORE BLOG

    (Cypher789 / creativecommons) こんにちは、吉田です。 今日は、Google Invisible reCAPTCHAの導入を「やってみた」投稿です。 フォームへのSPAM登録にお困りで、「reCAPTCHA入れると見栄えが変わるなぁ」と感じておられる方や、 「いつかウチのサイトが攻撃されるかも」と考えておられる方へのご参考になればと思います。 「私はロボットではありません」への苦手意識 突然ですが、私はreCAPTCHAの「私はロボットではありません」チェックをやや苦手に感じています。 同意を強要されているような感覚と、チェックボックスがぐるぐる回るあいだ合格発表を待つような気持ちになるからです。 そして、割と高い頻度で認証が必要となり、不合格にされたようで少しがっかりします。 そんな私にうってつけ?なのかどうか、今回そのチェックが不要なInvisible re

  • Rails複数DBシステムMySQLからPostgreSQL移行物語 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、三苫です。 この記事はTECHSCORE Advent Calendar 2014、5日目の記事です。 近年、Rails複数DB Casual Talksが開催されるなど、Railsでも複数・異種データベース混在したシステム構成は何ら特別でなものではなく通常の開発でカジュアルに選択される構成だぞという機運が高まっています。 togetterで参加者の反応を見ても、「establish_connectionは基」「前にも見たぞこのスライド」など、おおむね知見が業界全体に広まりつつある事がわかります。 記事はRails複数DBがまだカジュアルではない時代、マルチテナントシステムのデータベースをMySQLからPostgreSQLに、各サブシステムは縮退しつつも、システム全体としては無停止で移行を行った記録を共有するためのものです。 移行したシステムの前提 マルチテナントシステム

  • Railsで複数のデータベースを使用する | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 Ruby on Rails で複数のデータベースを扱う方法をご紹介します。 establish_connection establish_connection はデータベースと接続するためのメソッドです。 通常は明示的に呼び出すことはありませんが、複数のデータベースを使用する場合は、以下のように明示的に呼び出す必要があります。 class User < ActiveRecord::Base establish_connection :adapter => 'postgresql', :encoding => 'unicode', :database => 'other_database', :pool => '5', :username => 'USERNAME', :password => 'PASSWORD', :host => 'localhost' end

  • 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

  • Struts

    章では、Apache Software Foundation によって開発されている J2EE フレームワーク「Struts」の解説を行います。 Struts とは、Java Servlet や JSP の技術を用いて、Web アプリケーションを構築する上で有用な、オープンソースフレームワークです。 Java Servlet や JSP が登場した当初は、Java で Web アプリケーションが開発できるようになったものの、複雑なアプリケーションの開発は困難でした。 Struts では、ActionForm や Validator,タグライブラリなどの技術を利用して、Web アプリケーションの開発で頻繁に出てくる問題に対する解決策を提供しています。 Struts を利用することで、Java での Web アプリケーション開発が、比較的容易なものになるのです。 Struts INDEX A

  • Java : Jackson による JSON デシリアライズ時の型解決方法 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは。松です。 ポリモーフィズムはオブジェクト指向言語の魅力のひとつですが、これがオブジェクトと JSON のマッピングを複雑にするなあと度々感じています。 汎化された型として定義されたプロパティ(フィールド)を持つオブジェクトを JSON からデシリアライズするには、型解決に関する定義やロジックをコードや設定として組み込むことになります。ここに、モデルクラスの設計と、JSON のエンティティ設計の間でトレードオフが発生することがあり、ケースに応じた最適な設計/実装が必要になるわけです。 私が扱うソフトウェアのライフサイクルの特性上、繰り返される追加開発に対し、保守性/拡張性を維持することは大きな関心ごとです。クラス関係の妥当性や理解しやすさ、変更時の影響範囲の抽出しやすさ、クラス数、コード量、実装難易度など、様々なトレードオフスライダーを頭に描きながら、最適だと考える選択を行いま

  • 開発新卒に捧ぐ、基本のアルゴリズムと計算量 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは。一松です。 前回のSQLの基に続き、今回は基として身に付けておきたいアルゴリズムについて書きます。 はじめの一歩として、アルゴリズムを知る上で必要な計算量という考え方と代表的なアルゴリズムの特徴を紹介します。また、これを踏まえてプログラムを書く際の注意点を説明します。 アルゴリズムとは アルゴリズムとは問題や課題を解決するための処理手順をもれなく表現した考え方のことです。この処理手順の考え方はプログラムの世界だけでなく、みなさんの日常にも使われています。 例えば、「雨が降っていたら傘を持って出かける、雨が降っていなかったら傘を持たずに出かける」、これも短いですがアルゴリズムです。もう少し長いものだと料理レシピもアルゴリズムの一種といえるでしょう。手順をひとつずつ行うことでおいしい料理が完成しますね。他にもトランプを絵柄ごと数字の小さい順に並び替えることもアルゴリズムを元に

  • Log4J

    Log4J は Jakarta プロジェクト1 で開発が進められている Java プログラム用のログ API です。 そのLog4Jについて解説していきます。 1 [2012/5/23追記] 2011/12/21にてJakarta Projectは廃止されました。このプロジェクトはApache Projectに移管済みです Log4J INDEX Log4Jの基 1.1. Log4J とは 1.2. Log4J の構成 1.3. org.apache.log4j.Logger クラス 1.4. org.apache.log4j.Appender インタフェース 1.5. org.apache.log4j.Layout クラス 1.6. org.apache.BasicConfiguratorクラスを用いた簡単なLog4Jの利用例 設定ファイルの利用 2.1. 設定ファイルの書き方 2.2

  • 5分で読む入門編:Java 8 ラムダ式 | TECHSCORE BLOG | TECHSCORE BLOG

    はじめまして。梶原です。 2014年3月のリリースからもう1年が過ぎようとしています。Java 8、皆さんはもう実際にコードに触れてみましたか? 私はJava 一色だった仕事を離れて6年になります。Java 歴はそれなりに長いのですが、最後の数年はコードをがっつり書く業務ではなくなっていました。最近ではパっと見で読めない Java コードを目にする機会が多くなり、リハビリの必要性を痛感しています。そして、気になるキーワードが1つあります。Java 8 に新たに搭載された「ラムダ式」です。 「知らない」では MOTTAINAI 人は知らない人やモノへの評価は自然と否定的になるのだといいます。。 「新機能は何となく気になってはいるんだけど、知っている記法でコーディングしても動くし、もちろんコンパイルも通る。普段の仕事だって忙しいから時間をかけて研究するなんて無理。どんな書き方でも動けばいいんで

  • Spring Framework

    Spring Frameworkは Rod Johnson 氏の著書 "Expert One-on-One J2EE Design and Development" の中で使用されたコードを元にしたオープンソースの Java/J2EE アプリケーションフレームワークです。 「DIコンテナ」「Dependency Injection」という言葉を、耳にしたことはないでしょうか。Dependency Injection とは、オブジェクト が必要とする情報を、外部から注入することで、コンポーネントの再利用性を高めることを目的としたデザインパターンのひとつです。 ここでは、今後 Java プログラマにとって必須となるであろう Spring Frameworkについて解説していきます。 Spring Framework INDEX Spring Framework 1.1. Spring の概要

  • Lucene

    LuceneはJakartaプロジェクト1 によって開発された、100% PureJavaのインデックスを作成するタイプの全文検索エンジンです。 そのLuceneについて解説していきます。 1 [2012/5/23追記] 2011/12/21にてJakarta Projectは廃止されました。このプロジェクトはApache Projectに移管済みです Lucene INDEX Lucene 1.1. Luceneについて 1.2. インデックスの作成 1.3. インデックスからの検索 インデックスの作成 2.1. インデックスの作成 2.2. インデックスの構成 2.3. インデックスの更新 検索 3.1. 検索対象となる情報 3.2. 検索 3.3. 検索結果 3.4. 検索結果の絞込み 3.5. 検索結果のソート Senの使用法 4.1. 簡単なサンプル 4.2. 単語の追加 Apa

  • Maven-TECHSCORE-

    章では、Apache Software Foundation で開発されているプロジェクト管理ツール「Maven」について解説します。 Maven はプロジェクト情報の一元管理、統一したビルドプロセスの提供、依存ライブラリの管理などの機能により、 開発者にかかるプロジェクト管理の負担を軽減します。 現在の Maven は、version 1 系統と version 2 系統が平行して開発されていますが、章では version 2 系統について説明します。 Maven INDEX Maven とは 1.1. Maven とはどのようなものか 1.2. Maven の入手とインストール Maven 入門 2.1. Maven のアーキテクチャ 2.2. Maven の実行 2.3. プロジェクトの作成 2.4. pom.xml について 2.5. コンパイル 2.6. ユニットテスト 2.

  • 5. フォーマット入出力

    J2SE5.0より追加された機能に、書式を付加した入出力機能があります。 C言語でのprintfやscanfのように、形式を指定して入出力を行うものです。 例えばある変数の値を出力するプログラムは、以下のようになります。 int a = 123; System.out.printf("変数aの値は%dです。",a); printf()メソッドが、標準出力に書式を指定して出力するメソッドです。 第一引数で書式情報の含まれる文字列、第二引数以下で変換される値を指定します。 このプログラムは次のように出力されます。 変数aの値は123です。 この「%d」の部分が「書式指定子」です。dの部分を「変換文字」といい、いくつか種類があります。 これらの書式付き出力を実現するメソッドは「java.util.Formatter」に実装されています。 直接このクラスを使用することも可能ですが、 System.

  • Velocity-TECHSCORE-

    Velocityとは、Javaベースのテンプレートエンジンです。 そのVelocityについて解説していきます。 Velocity INDEX Velocityの概要 1.1. Velocityとは 1.2. Velocityのインストール 1.3. Velocityの簡単な例 VTL・リファレンス 2.1. コメント 2.2. 変数の出力 2.3. プロパティの表示 2.4. メソッドの実行結果の表示 VTL・#set,#ifなど 3.1. #set 3.2. #if #elseif #else VTL・#foreach 4.1. #foreach VTL・#parse,#includeなど 5.1. #parse #include 5.2. #stop 5.3. #macro Velocimacro 6.1. Velocimacroとは 6.2. Velocimacroの定義 6.3.

  • TECHSCORE - Java,SQLプログラミング技術解説

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

  • デザインパターン[モデリング] -TECHSCORE-

    オブジェクト指向プログラミングにおいてデザインパターンを利用することは、開発者に様々なメリットを与えてくれます。 ここでは、「デザインパターンとは何か」というようなデザインパターンの基事項と、GoFの23個のデザインパターンをJavaを利用してわかりやすく解説します。 デザインパターン INDEX