タグ

ブックマーク / gihyo.jp (115)

  • 良いウェブサービスを支える「利用規約」の作り方【改訂第3版】

    2024年2月24日紙版発売 2024年2月24日電子版発売 雨宮美季,片岡玄一,橋詰卓司 著 A5判/304ページ 定価2,860円(体2,600円+税10%) ISBN 978-4-297-14039-7 Gihyo Direct Amazon 楽天ブックス 丸善ジュンク堂書店 ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 ウェブサービスに欠かせない「利用規約」「プライバシーポリシー」「特定商取引法に基づく表示」の3大ドキュメントがこの一冊でわかる! ウェブサービスの当事者たるエンジニア・経営者のみなさまに寄り添った解説で,11年以上支持され続けてきたロングセラーを大幅にリニューアル。約50ページのボリュームア

    良いウェブサービスを支える「利用規約」の作り方【改訂第3版】
    kiririmode
    kiririmode 2024/02/11
    利用規約の話だけでなくサービスを提供する上で必要となる法規制を広くカバーしてる。必読感ある
  • UAとGA4って何が違うの? | gihyo.jp

    この中で「ユーザーエンゲージメント」という言葉だけちょっと聞き慣れないかなと思います。これが、次に取り上げるGA4の2つ目の特徴です。 ②「エンゲージメント」という考え方が加わった 「user_engagement」のイベントは、GA4で新しく加わった指標です。1秒以上ページが表示された際にカウントされます。 「エンゲージメント」とは、Googleでは「サイトやアプリに対するユーザーの操作」と定義されています。Webサイトにアクセスをしたあとでユーザーが操作を行うと「そのサイト(ページ)に関心を持ってなんらかの行動をしている」とみなし、「⁠エンゲージメント」として記録されるのです。このイベントが発生してから、そのページを離脱するまでの時間が「エンゲージメント時間」として記録されます。「⁠ページに滞在した時間」とほぼ同義です。 2つの特徴を実際の画面で比較してみる UAの表を見てみる 直帰率

    UAとGA4って何が違うの? | gihyo.jp
    kiririmode
    kiririmode 2024/01/22
    UAとGA4では、ユーザやエンゲージメント、セッションの定義が大きく異なっている
  • Goの新しい構造化ロガーを体験しよう | gihyo.jp

    logパッケージ Goには標準ライブラリとしてlogパッケージが提供されています。logパッケージで行えることはそう多くはありません。たとえば、デフォルトではログは標準エラー出力に出力されますが、log.SetOutput関数で出力先を変更できます。また、利用する関数によってログを出力した後の挙動をコントロールできます。たとえば、log.Print関数はログを出力するだけですが、log.Fatal関数はログ出力後にos.Exit(1)を呼び出します。log.Panicはログ出力後に出力したログと同じ文言を引数としてパニックを発生させます。 logパッケージでは、ログとともに関連するデータを出力したい場合は、log.Printf関数を用います。次のように、書式を指定して出力します。 log.Printf("request_url=%s request_method=%s", r.URL, r

    Goの新しい構造化ロガーを体験しよう | gihyo.jp
    kiririmode
    kiririmode 2023/02/19
    ついに標準の構造化ロガーがはいるかも
  • 第21回 Carton & cpanm―Perlモジュール管理最新事情(3) | gihyo.jp

    (1)はこちら、(⁠2)はこちらから。 Carton Cartonもcpanmと同様に、宮川達彦さんを中心に開発しているツールです。Cartonがどんなツールかについては、PODにズバリな一文があるので引用します。 carton is a command line tool to track the Perl module dependencies for your Perl application. 「Cartonとは、アプリケーションにおけるPerlモジュールの依存関係を管理するコマンドラインツール」というわけです。 また、PODのNAMEセクションには次の記述があります。 Carton - Perl module dependency manager (aka Bundler for Perl) Rubyでお馴染みのBundlerという単語が出てきました。Rubyを使う人にはこちらの

    第21回 Carton & cpanm―Perlモジュール管理最新事情(3) | gihyo.jp
  • 第8回 LXCの基本操作[1] | gihyo.jp

    表に出てくるファイルやディレクトリでこれまで説明がなかったものについて説明します。 システム設定ファイル この後説明するコンテナの保存場所のパス、コンテナの設定ファイルの場所、ストレージバックエンド使用時のデフォルト値などの、システム共通で使用するデフォルト値を指定したい場合にファイルを作成して値を設定します。ファイルが存在しない場合はコンパイル時の値が使用されます。 コンテナのデフォルト設定ファイル コンテナを作成する時に共通して設定したいものを記載しておきます。コンテナ作成時にこのファイルの設定値がコンテナの設定ファイルにコピーされます。 コンテナ起動時に読み込まれるファイル テンプレートを使ったコンテナの作成で生成されるコンテナの設定ファイルは、各ディストリビューションのデフォルト設定を読み込む(includeする)設定が書き込まれます。そのディストリビューションごとのデフォルト設定

    第8回 LXCの基本操作[1] | gihyo.jp
  • パーフェクトPython

    2013年3月5日紙版発売 2014年11月1日電子版発売 Pythonサポーターズ 著 B5変形判/464ページ 定価3,520円(体3,200円+税10%) ISBN 978-4-7741-5539-5 ただいま弊社在庫はございません。 Amazon 楽天ブックス honto ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle 楽天kobo 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 1冊で言語仕様から最新の技術までを網羅した内容。網羅的に解説されているだけでなく,各技術に関しては基からしっかり解説し,必要な箇所では,内部処理が裏で何をしているのかを掘り下げて解説してあるため,体系的に知りたい初心者はもちろん中級者にもお勧めの一冊です.最新のPython3.3に対応。 こんな方におすすめ 他のプロ

    パーフェクトPython
  • 第16回 Perl内部構造の深遠に迫る(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回はgfxこと藤吾郎さんで、テーマはPerlの内部構造です。 内部構造を覗く Perlで開発をしていると、ときどきわかりにくい現象に遭遇することがあります。たとえば、あるデータをJSON(JavaScript Object Notation)にシリアライズするとき、数値としてシリアライズしてほしい値が文字列としてシリアライズされてしまう。あるいは、エンコーディングが正しいはずなのに文字化けが起きる。こんなときは、思いきってPerlの内部構造を覗くことで、何が起きているかを突き止めることができます。 稿では、Perlの内部構造について解説します。言及するperlはバージョン5.16.0(2012年5月21日リリース)です。また、ターミナルのエンコーディングはUTF-8を想定しています。なお、Perl処理系はC言語で書かれてい

    第16回 Perl内部構造の深遠に迫る(1) | gihyo.jp
  • 第127回 ターミナルマルチプレクサ tmuxを使ってみよう | gihyo.jp

    端末で作業をするなら、特にsshなどでネットワーク後しに作業を行うなら、仮想端末管理ソフトウェアであるGNU Screenは必須といってよいでしょう。Ubuntu 10.04であれば、GNU Screenをさらに便利に使うためのアプリケーション「byobu」が最初から導入されているので、こちらを使っているユーザも多いと思います(byobuについては連載72回参照、注1⁠)⁠。 今週のレシピは、GNU Screenと同じ仮想端末管理ソフトウェアである「tmux」ターミナルマルチプレクサを紹介します。 GNU Screenの利点とは GNU Screenの利点を簡単におさらいしておきましょう。GNU Screenには多くの機能がありますが、筆者が主に使っているのは以下のような機能です。 GUIのタブ機能のように、複数の端末を起動して切り替えられる 端末を画面分割して使うことができる 端末上で

    第127回 ターミナルマルチプレクサ tmuxを使ってみよう | gihyo.jp
  • 第5回 APIの全体像とデータの投入 | gihyo.jp

    前回でCassandraへのアクセスするコードの基をおさえました。今回解説するのは以下の2点です。 CassandraのAPIの全体像 Cassandraにデータを投入するコードの詳細 3つの分類からAPIの全体像をおさえる 第1回でもご紹介しましたが、CassandraのクライアントAPIはThriftによって自動生成されます。APIは非常にシンプルなものが幾つかあるだけで、覚えるのもさほど難しくはありません。連載ではその中からよく使うものに特化してご紹介していきます。 以下にCassandraのAPIを、データ挿入系・データ検索系・認証/管理系の3つに分類してまとめてみました。まずはこれらにひと通り目を通してみてください。 データ挿入/更新/削除のAPI データ挿入、更新、削除のAPIは以下の表のとおりです。現実的によく使う中心的なAPIはbatch_mutate、removeの2

    第5回 APIの全体像とデータの投入 | gihyo.jp
  • 第4回 JavaでCassandraにアクセスする | gihyo.jp

    キースペース、カラムファミリの設定は以上です。 他にも、レプリケーション数やレプリケーションをどのように行うかなどの指定がありますが、今回は割愛します。 コミットログとデータディレクトリを設定する 次はコミットログとデータディレクトリの設定を行います。 Cassandraは、書き込み時には操作をすべてコミットログに追加で書き込んでいき、その実体(Memtableといいます)はメモリ上にカラムファミリごとに展開していく仕組みになっています。Memtableはサイズの閾値等をもっており、その閾値に達するとディスクに書き出します。この操作のことを「フラッシュ」といい、ディスクに書き出す構造のことを「SSTable」といいます。SSTableは一度書き出されるとその内容は不変で、実際の物理データとしては以下の3つがセットで書き出されます。 インデックス ブルームフィルタ データファイル インデック

    第4回 JavaでCassandraにアクセスする | gihyo.jp
  • 第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(3) | gihyo.jp

    Q4M―MySQLを利用したジョブキュー 今まではPerlで作られたミドルウェアとしてのジョブキューを紹介してきましたが、最後にMySQLのプラグインとして提供されるジョブキューQ4Mを紹介します。Q4Mは連載第6回「UNIXプログラミングの勘所」を執筆した奥一穂氏によって作られています。MySQLには依存してしまいますが、利用するプログラミング言語には依存しません。MySQLに接続できるどのプログラミング言語からも利用できます。また、TheSchwartzやQudoのようにミドルウェア側のデータスキーマの制限を受けることがないのも魅力の一つでしょう。 Q4Mの使い方 Q4Mのインストール方法はドキュメントで確認してください。 Q4Mをインストールしたら次はジョブキューで使用するテーブルを定義します。TheSchwartzやQudoでは決められたテーブル定義を使用する必要がありましたが、

    第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(3) | gihyo.jp
  • 第1回 PSGI/Plack―フレームワークとサーバをつなぐエンジン (2) | gihyo.jp

    Plack─⁠─PSGIユーティリティ PSGIのおかげで、フレームワークはCGIやFastCGI、mod_perlといった環境の差異を吸収するためのコードを書く必要はなくなり、PSGIのインタフェースだけを実行すればよくなりました。実際に多くのフレームワークがすでにPSGIをサポートしていますが、さて、そうしたアプリケーションをどうやって動かせばよいのでしょうか。 Apacheなど既存のWebサーバでPSGIアプリケーションを動かすには、CGI、FastCGI、mod_perlなどのインタフェースをPSGIに変換する必要があります。また、PSGIをネイティブで実行できるPerlベースのHTTPサーバもほしいところです。 Plackはそうした要件を満たすためのユーティリティで、リファレンス実装としてのPSGIサーバやそれらへのアダプタ、周辺ライブラリや後述するミドルウェアが含まれています。

    第1回 PSGI/Plack―フレームワークとサーバをつなぐエンジン (2) | gihyo.jp
  • YAPC::Asia Tokyo 2011 2日目レポート[随時更新] | gihyo.jp

    昨日、日(10月14日、15日)の2日間にわたり、YAPC::Asia Tokyo 2011が開催されています。稿では、このYAPC::Asia Tokyo 2011 2日目の模様を随時レポートしていきます! ※セッションすべてをレポートするわけではありません。ご了承ください。 日はあいにくの雨模様ですが、開始時間にはやんできたようです。雨にぬれてしまった方は、もしよろしければ着替えにTシャツを買ってみてはいかがでしょうか、との話がされていました(受付の隣で販売されています⁠)⁠。 Kazuho Okuさん「Unix Programming with Perl 2⁠」⁠ 2日目の最初のトークは、奥さんによる正しいコードを書くノウハウについてのトークでした。奥さんは昨年のYAPCでも同様のタイトルでお話しされており、今回はその続編に当たる内容でした。 まず、IPC::Open3を使った

    YAPC::Asia Tokyo 2011 2日目レポート[随時更新] | gihyo.jp
  • Perl Hackers Hub:第9回 高速なWeb APIの実装とテスト―Mobage APIを支えるノウハウ(2)|gihyo.jp … 技術評論社

    大量にあるサーバへのアクセスを効率的に扱う Mobage APIでは、接続するDBサーバやmemcachedサーバなどが大量にあります。サーバが増えても、アプリケーションの変更は最低限にしたいものです。ここでは、複数のサーバへのアクセスを簡単に記述する方法を紹介します。 DBへのアクセスを隠蔽する DBは一般的な、マスタ/スレーブ構成を採用しています。INSERT/UPDATE/DELETEのような更新系のクエリはマスタへ、SELECTなどの参照系のクエリはスレーブへいくようにしています。また、Sharding[11]をしているDBの系統もあります。 このように大量にあるDBへのアクセスを簡単に行うために、Mobage APIではDeNAの有澤高介さんが開発したDBIx::DBHResolver(現在のメンテナは同じくDeNAの山口徹さん)を利用してDBへのアクセス情報を隠蔽(いんぺい)し

    Perl Hackers Hub:第9回 高速なWeb APIの実装とテスト―Mobage APIを支えるノウハウ(2)|gihyo.jp … 技術評論社
  • 第1回 OAuthとは?―OAuthの概念とOAuthでできること | gihyo.jp

    今回から始まった「ゼロから学ぶOAuth⁠」⁠。全4回の特集にて、これからのWebサービスを開発する上で不可欠な技術「OAuth」について取り上げます。初回は、OAuthの概念について取り上げます。 はじめに はじめまして、iKnow!改めsmart.fmの真武です。現在smart.fmでは、OAuthやOpenID、OpenSocial、Semantic WebやActivity Streamなどといった新しい技術の導入を積極的に行いサイトを活性化させるとともに、smart.fm APIを通じて我々の技術を外部のデベロッパの方々にも提供しています。 smart.fmは日最大のOpenID Relying Partyであるだけでなく、国内では数少ないOAuth Consumer(後述)およびOAuth Service Provider(後述)を兼ねるサービスとなっています。こういった背景

    第1回 OAuthとは?―OAuthの概念とOAuthでできること | gihyo.jp
  • 第23回 地図アプリで始めるiPhone・iPadアプリ開発(1) | gihyo.jp

    はじめに 2011年5月5日、Bing Maps iOS Control SDKが公開されました。このSDKを利用すれば、地図サービスのBing Mapsを使ったiPhoneiPadアプリをObjective-Cで開発できます。今回はこのBing Maps iOS Control SDKについてお届けします。さっそくSDKを使ってアプリを作ってみましょう! 今回は、Bing Maps iOS Control SDKの導入とiPhoneシミュレーターで自分のいる位置を地図で表示するところまでが目標です(図1⁠)⁠。 図1 今回の目標 はじめての方でも動くところまでできるよう手順を細かく記載しています。既にアプリ開発経験のある方は、Bing Maps iOS Control SDKの内容についてと既存コントロールのMap Viewと比べながら読んで頂けると幸いです。 iPhoneiPad

    第23回 地図アプリで始めるiPhone・iPadアプリ開発(1) | gihyo.jp
  • 第3回 RedisによるWebアプリケーション開発(1) | gihyo.jp

    前回までに、Redisの概要と、コマンドラインクライアントによる基的なコマンド操作を見てきました。今回からは、Redisのデータ型を使ったアプリケーション開発について、簡単なサンプルコードと、ニコニコ生放送での事例を交えて紹介していきます。 クライアントライブラリを用いた開発 WebアプリケーションからRedisにアクセスするには、言語ごとのクライアントライブラリを導入することになります。公式サイトにライブラリがリストアップされていますので、各々の環境に合ったものを探してください。 ニコニコ生放送では、PHPによる開発の場合にはphpredisを、Javaで実装している検索サーバーなどではJedisやJRedisを使っています。 今回から掲載するサンプルコードでもこれらのライブラリを使っていきますので、他のライブラリを導入される方はそれぞれ対応するAPIに置き換えてご覧ください。 LIS

    第3回 RedisによるWebアプリケーション開発(1) | gihyo.jp
  • 第2回 Redisの導入と基本機能 | gihyo.jp

    今回は実際にRedisをインストールしてみるところから、コマンドラインクライアントを使った基的な操作方法、そして実際のアプリケーション開発時に重宝するDB選択やタイムアウトなどのRedis特有の仕様について説明します。 インストール ダウンロード 連載執筆時点の最新stableである、2.0.4をダウンロードします。 $ wget http://redis.googlecode.com/files/redis-2.0.4.tar.gz コンパイル RedisはANSI Cで書かれ、外部の依存ライブラリの必要ないシンプルな実装になっているため、コンパイルは以下のステップで完了します。 $ tar xzf redis-2.0.4.tar.gz $ cd redis-2.0.4 $ make 「redis-server」や「redis-cli」が生成されたのを確認してください。 設定の変更

    第2回 Redisの導入と基本機能 | gihyo.jp
  • 第3回 Evernote APIの基礎:データモデルとデータアクセス | gihyo.jp

    Evernoteと連携するには 前回、Evernoteと連携をするアプリケーションのアイデアについて話しましたが、Evernoteと連携するための方法は大きく分けて2つあります。1つは各プラットフォーム上のEvernoteクライアントが提供する仕組みを使う方法、もう1つはEvernote APIを使う方法です。どちらを使うかは開発者の自由です。 各プラットフォーム上のEvernoteクライアントには、Evernoteと連携するための仕組みが備わっています。WindowsではEvernote.exeやENScript.exeにコマンドを指定することで、ノートを作成するなどの簡単な操作を行えるようになっています。Mac OS XではAppleScript、AndroidではIntentで同様のことが可能です。単純な連携であれば、これらの仕組みを使うのが簡単です。たとえば、pomeraで作成した

    第3回 Evernote APIの基礎:データモデルとデータアクセス | gihyo.jp
  • XMLの第一人者Tim Bray氏「URLに#!入れるな」 | gihyo.jp

    Tim Bray氏のブログ記事を解説したものです。Tim Bray氏はXMLの生みの親であり、最近はGoogle Developer AdvocateとしてAndroidの普及に務めています。Twitterをはじめ、最近のWebサービスにて「twitter.com/#!/timbray」のようにURLに「#!」というhash-bang(shebang)が含まれるのをよく目にしますが、Tim氏はこの流行に批判の意を示しています。 hash-bangを含むURLはAjaxを利用するために考えられたしくみです。#以降は単なるフラグメントとして処理されるため、サーバは#より前のURLを解釈しコンテンツを出力します。そしてブラウザにてJavaScriptが#以降を解釈し、以降のパスに相当するコンテンツをAjaxにて取得しコンテンツを書き換えます。このしくみができた背景は、Ajax後のコンテンツをSE

    XMLの第一人者Tim Bray氏「URLに#!入れるな」 | gihyo.jp