タグ

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

  • 第187回 MySQLにIPアドレスを保存したい | gihyo.jp

    サービスを運用する上で、ユーザー調査やログイン履歴のためにIPアドレスをログに出力したり、データベースに保管したいと思うことが多々あります。 MySQLIPアドレスの履歴を保存するときは、特に何も考えなければ、出力されるIPアドレスをそのまま文字列としてvarchar型でデータベースに保存してしまえば問題ありません。しかし文字列で保存すると、IPアドレスでない形のデータも保存できる状態になってしまいます。 今回は、IPアドレスMySQLに保存したいときに知っておくと良いかもしれないことを紹介します。なお、利用しているMySQLのバージョンは8.0.31になります。 文字列としてIPアドレスを保存する 文字列として保存する場合はvarchar型として保存することが多いでしょう。 mysql> CREATE TABLE ip_varchar (ip varchar(255)); Query

    第187回 MySQLにIPアドレスを保存したい | gihyo.jp
  • HTTP/3入門 記事一覧 | gihyo.jp

    第5章HTTP/3の拡張と応用 ~ 機能を追加し、より効率的に、より便利に 後藤ゆき 2022-07-15

    HTTP/3入門 記事一覧 | gihyo.jp
  • 第718回 needrestartで学ぶパッケージのフック処理 | gihyo.jp

    Ubuntu 21.04から、サーバー版に「needrestart」というパッケージが最初からインストールされるようになりました。これはパッケージの更新時に再起動が必要なデーモンを通知してくれる仕組みです。便利ではあるものの、パッケージの更新を開始して放置したら、最後のほうでメニューが出て止まっていたということも起こりえます。そこで今回はneedrestartの設定方法と、どういう仕組みで動いているのかを解説しましょう。 needrestartの基 glibcなど特定のライブラリパッケージに脆弱性が見つかり、対応が行われたとき、そのパッケージの更新だけではまだ対応が完了したとは言えません。実際にはそのライブラリを利用しているプロセスが一通り再起動し、ライブラリを再読込することでようやく脆弱性が解消されるのです。 しかしながらどのパッケージが更新され、そのパッケージに属するライブラリファイ

    第718回 needrestartで学ぶパッケージのフック処理 | gihyo.jp
  • 図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書

    このの概要 テレビ会議やリモートワークが普及する中,情報を守る暗号や人確認のための認証技術の重要性が増しています。書は公開鍵暗号や署名などの理論を基礎から詳しく解説し,TLS1.3やHTTP/3,FIDOなどの新しい技術も紹介します。更にブロックチェーンで注目されている秘密計算,ゼロ知識証明,量子コンピュータなど最先端の話題も扱います。 こんな方におすすめ 暗号と認証の基礎を学習したい人 Web担当者やセキュリティ担当者など 1章 暗号の基礎知識 01 情報セキュリティ 情報セキュリティの三要素 情報セキュリティと暗号技術 利便性とコスト 追加された要件 02 暗号 暗号とは よい暗号と使い方 暗号の動向を知る 03 認証 パスワードによる認証 パスワード攻撃者の能力 パスワードの攻撃手法 認証の分類 認可 OAuth 04 古典暗号 シフト暗号 換字式暗号 符号化 2章 アルゴリズ

    図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書
    paulownia
    paulownia 2021/09/15
  • 第675回 apt-keyはなぜ廃止予定となったのか | gihyo.jp

    サードパーティのAPTパッケージリポジトリを追加する際に使用する「apt-key」コマンドは、2020年8月の2.1.8から「廃止予定(deprecated⁠)⁠」となり、2022年の半ばには削除される予定になりました。今回はその理由と、代替手段について解説しましょう。 リポジトリの正当性を担保する仕組み Linuxにおけるパッケージ管理システムは、システムの重要なデータを置き換えるクリティカルな操作です。よってインターネットの先からパッケージをダウンロードする際は、その正当性を確認しなければなりません。「⁠パッケージの正当性」と言ったとき、一般的には複数の意味が含まれます。 パッケージに悪意のあるコードが含まれていないこと パッケージメンテナ以外の第三者が作ったパッケージがリポジトリにアップロードされていないこと 来のリポジトリとは別の場所からパッケージをダウンロードしていないこと ま

    第675回 apt-keyはなぜ廃止予定となったのか | gihyo.jp
  • 第150回 Generated Columnを利用してみる | gihyo.jp

    今回は、MySQL 5.7.6から導入されたGenerated Columnに関して紹介していきます。この機能はテーブル定義で宣言した式に従って値を自動で生成し、カラムとして扱えるようになる機能です。アプリケーションで計算した値を加える場合に比べると、手作業などで挿入や更新を行った際に再計算を自動で行ってくれ、うっかりミスを防げる利点があります。 今回はそんな便利に使えるGenerated Columnを紹介していきます。 検証環境 今回は第125回 phpMyAdminでDockerで建てたMySQLにアクセスするで紹介したdocker-composeを利用して作成します。手元で簡単に試せるように、GitHubのわたしのレポジトリにサンプルコードとして置いてあるので、気軽に試したい方はgit cloneして試してみてください。試すにはdockerdocker-composeが必要です。

    第150回 Generated Columnを利用してみる | gihyo.jp
  • [改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 | Gihyo Digital Publishing … 技術評論社の電子書籍

    Software Design plus [改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 著者 勝俣智成,佐伯昌樹,原田登志 著 発売日 2018年9月14日 更新日 2018年9月14日

    [改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則 | Gihyo Digital Publishing … 技術評論社の電子書籍
  • 生みの親が語るElixirのこれまでとこれから ―「ElixirConfJapan 2017」参加レポート | gihyo.jp

    2017年4月1日、秋葉原コンベンションホールにて「ElixirConfJapan 2017」が開催され、300人を超す参加者が集まり大盛況となりました。その模様をレポートします。 オープニングの模様 オープニングキーノートセッション ―José Valim氏 オープニングキーノートはElixirの作者であるJosé Valim氏による講演です。2017年1月で5歳になるElixirの歴史と今後の展望について発表しました。 José Valim氏 何故Elixirを作ろうとしたのか 2011年、並行処理の重要性が高まりから、その課題解決のアプローチとして、関数プログラミングに注目したとJosé氏は語り始めました。 RubyPython等のオブジェクト指向プログラミング言語では、複数のスレッド間で並行的にオブジェクトの状態操作を行うのは難しいという問題があります。そこで、関数プログラミング

    生みの親が語るElixirのこれまでとこれから ―「ElixirConfJapan 2017」参加レポート | gihyo.jp
    paulownia
    paulownia 2017/04/11
  • 継続的Webサービス改善ガイド 記事一覧 | gihyo.jp

    第5章ビジネス視点の改善~効果検証に基づく機能改善と、チームでの仕事の進め方 安宅啓 2014-02-21

    継続的Webサービス改善ガイド 記事一覧 | gihyo.jp
  • 第1回 Amazon Redshiftとは[前編] | gihyo.jp

    Amazon Web Services(AWS)は次々と新しいサービスを世の中に出して、クラウド・コンピューティングの可能性を広げていっています。そのAWSから登場した最新のサービスであるAmazon Redshiftは、そのパフォーマンスや驚異的な低コストのため、発表当時から大変な反響を呼んできました。 この連載では、 Redshiftの概要からその利用方法まで、主にあまりデータウェアハウスを利用した経験がないWeb開発エンジニアなど向けに、このビッグデータ向けクラウド・データウェアハウス製品であるAmazon Redshiftの解説をして行きたいと思います。 まずは、そもそもAmazon Redshiftとは何なのか、その概要から説明します。 Amazon Redshiftはビッグデータ時代のクラウド・データウェアハウス 2012年11月、AWSにとって初めての世界的なユーザカンファレ

    第1回 Amazon Redshiftとは[前編] | gihyo.jp
  • 第25回 MongoDB最前線! 効果的なシャーディングとバックアップ | gihyo.jp

    「MongoDB」は、スキーマレスであることやスケールアウトが容易なこと、さらにレプリケーションのしくみが用意されているといった特徴から急速に人気を集めている、オープンソースのドキュメント指向データベースです。第21回で、MongoDBの基的なしくみや開発時における注意点などをサイバーエージェント技術者に解説していただきました。今回は後編ということで、運用時におけるポイントについて伺っていきます。 Ameba PicoやピグライフでMongoDBを実運用 サイバーエージェントにおいて、MongoDBはすでにいくつかのプロジェクトで活用されていますが、その1つにアメリカ向けのアメーバピグであるAmeba Picoが挙げられます。松下雅和氏は2011年1月に入社し、このAmeba Picoの運用にアサインされたことでMongoDBを使うことになったと話します。 「前職ではMongoDBを使

  • 英語によるメーリングリストへのバグレポート提出ガイド | gihyo.jp

    嶋内翔氏によるブログ記事です。元記事では「英語によるHadoop系メーリングリストへの~」とタイトルが付けられていますが、内容自体はとても汎用的です。普段英語に慣れていない人にとってバグレポートをどのように英語で書けばよいのか戸惑ってしまいますが、各表現のニュアンスも含めとても丁寧に解説しています。 バグレポートの題は「来は……であるべきだが、実際にはこうなっている」という流れをもとに症状や直前の状態、再現方法について記載します。その際、日人の気質からか「もしかしたら自分の設定ミスだったり勘違いかも」という内容を含めてしまいがちですが、簡潔に報告するのが良いようです。 後半は頻出する英語表現について取り上げています。問題内容を伝える際に不確かな事象を表現することが多いですが、「⁠should」「⁠might」「⁠could」や「I think」「⁠I guess」「⁠I believ

    英語によるメーリングリストへのバグレポート提出ガイド | gihyo.jp
  • データマイニングで使われるトップ10アルゴリズム | gihyo.jp

    統計を専門に扱う方のブログ記事です。データマイニングの学会にて選ばれたアルゴリズムの概要および調査について記した資料「Top 10 algorithms in data mining」の解説を行っています。Top 10に選ばれたアルゴリズムには次のようなものがあります。 C4.5 K-means サポートベクタマシン(SVM) PageRank ナイーブベイズ CART C4.5は、あるルールに従って木構造に分岐させ分類していく決定木(Decision Tree)を生成するためのアルゴリズムです。 K-meansはK個のクラスタに分類するためのアルゴリズムで、最も近い中心のクラスタを繰り返し求めていき、視覚化するのに適しています。 サポートベクタマシンは、あらかじめ与えられたデータで学習を行い未知のデータに対して分類を行う「教師あり学習」アルゴリズムの一つです。 PageRankはGoog

    データマイニングで使われるトップ10アルゴリズム | gihyo.jp
  • 匿名による告発「MongoDBは使ってはいけない」 | gihyo.jp

    「PASTEBIN」というコンソールの出力やエラーログ、ソースコードなどを張り付けて共有するWebサイトがあり、そこに投稿された内容が議論を巻き起こしました。「⁠Don't use MongoDB」というタイトルが付けられた文章には、ヘビーにMongoDBを利用しているユーザからの辛辣(しんらつ)な批判が綴(つづ)られていました。 告発者はプロジェクトにて数千万件ものユーザ管理にMongoDBを利用しており、これまで長い間10gen社(MongoDBの開発元)から最高レベルの)有償サポートを受けていたため黙っていたが、少しでも多くの人に警鐘を鳴らすべく立ち上がったそうです。MongoDBの扱いやすさやスキーマフリーなモデル、豊富な実績などに一定の評価をしつつも、大規模な環境で実際に動かさずに判断するのは時に重大な問題となり、MongoDBにはそれが向いていないと言い切っています。 具体的に

    匿名による告発「MongoDBは使ってはいけない」 | gihyo.jp
  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • 第5回 独自フォーマット戦略の終焉 | gihyo.jp

    一歩下がって「時代の流れ」を見る この業界では日々さまざまなことが起きている。そんな中で、個々の事象にいちいち惑わされず、自分なりに「時代の流れ」をしっかりととらえる目を養うことが大切である。 最近だと、MicrosoftHTML5の採用に踏み切ったこと[1]⁠、AppleとAdobeのFlashに関するにらみ合い、Googleが買収したOn2 Technologiesのビデオコーデック「V8」を「WebM」としてオープンソースにしたこと、シャープが提唱する電子書籍の独自フォーマット「次世代XMDF」が激しく批判されていることなどが目についたニュースだが、そのどれもが一つの強い方向性を示している..「独自フォーマット戦略」の終焉だ。 独自フォーマット戦略 独自フォーマット戦略とは、自社が所有する知的所有権をからめたメディアのフォーマットをなんらかの方法で「業界標準」とし、ツール、再生ソフ

    第5回 独自フォーマット戦略の終焉 | gihyo.jp
    paulownia
    paulownia 2011/01/20
  • 第4回 オブジェクト指向の本質 | gihyo.jp

    エンジニアとして良い仕事をするために必要なこと ソフトウェア業界で日米を往復しながら仕事をしていると、世界中のさまざまなエンジニアに会う。私のように「プログラミングを心底楽しんでいる」人から、「⁠新3K」(⁠きつい・厳しい・帰れない)を身をもって体験している人までさまざまだが、共通して言えることは、エンジニアとしての基礎がしっかりできている人とできていない人では、その生産効率に大きな開きがあり、それが結果的には、会社での労働環境や待遇に、そして結果として自分自身にとっての「仕事の充実度」に、大きな影響を与えているということである。 いつも締め切りに追われている、毎回バグで苦しんでいる、徹夜の連続で体力に限界がきているなど、「⁠仕事がきつい」理由はいろいろとあると思うが、会社や上司の悪口を言う前に、自分自身がプロフェッショナルなエンジニアとしてこの業界で勝負をするうえで必要な最低限の基礎がで

    第4回 オブジェクト指向の本質 | gihyo.jp
  • 第2回 「締め切りは絶対に守るもの」と考えると世界が変わる | gihyo.jp

    「締め切りを守ること」の大切さ 今までたくさんの日米のエンジニア仕事をしてきた。その中には私よりも明らかに「賢いエンジニア」もいたし、ものすごい生産性でプログラムを作ってくれる「馬力(ばりき)のあるエンジニア」もいた。しかし、そんな中でも、私がものを作るうえで最も大切だと考えている「あること」をキチンとこなせる人は100人に1人もいなかった。その「あること」とは、「⁠常に締め切りを守れるように仕事をすること」である。 チームで仕事をする場合、どうしてもお互いが担当するタスク(=作業)の間に依存関係が生じる。そんなときに、どれか一つのタスクの完了の遅れが、ほかのタスクの完了に波及し、それがタスク間の競合を引き起こして全体のスケジュールがさらに遅れる、という事態はソフトウェア開発の現場ではよく見られる。そんな状況をできるだけ回避するには、プロジェクトに関わる人全員が、自分に割り当てられたタス

    第2回 「締め切りは絶対に守るもの」と考えると世界が変わる | gihyo.jp
  • Twitter、分散フレームワーク「Gizzard」を公開 | gihyo.jp

    2010年4月6日、Twitterは独自に開発した分散フレームワーク「Gizzard」をGitHubにオープンソースとして公開しました。Gizzardは「シャーディング」と呼ばれる、1台に格納するとパフォーマンスに影響を及ぼす大容量なデータベースを複数台に分割することで解決を図る手法をサポートするフレームワークです(図1⁠)⁠。TwitterのバックエンドにScalaが使われていることが以前話題となりましたが、このGizzardもScalaで書かれています。 図1 Gizzardのシステム構成モデル 出典:http://github.com/twitter/gizzard Gizzardはミドルウェアとして動作し、RailsPHPなどで動くWebフロントエンドからのリクエストを受け取り、My-SQLやRedisのようなインメモリDB、Luceneなど各種データストアへ渡します。Twitt

    Twitter、分散フレームワーク「Gizzard」を公開 | gihyo.jp
  • 第31回 RubyistのためのMongoDB入門(1) | gihyo.jp

    はじめに ここ最近、NoSQLというキーワードが注目を集めています。 リレーショナルデータベースは、一般的にスケールアウト(サーバの台数を増やして性能向上を図る手法)が難しく、特に大規模サービスにおいてパフォーマンス上のボトルネックとなりえます。また、タグやグラフ構造のようなデータは関係モデルに馴染みにくいため、それらを扱う際にはアプリケーションコードもぎこちないものになりがちです。 これらの問題を背景に、何にでもリレーショナルデータベースを使うのではなく、用途に応じてKVSなど他のデータストアを選択する流れが広まりつつあります。このムーブメントがNoSQL(Not Only SQL)と呼ばれているものです。 今回は、NoSQLなデータベースの1つであるMongoDBをご紹介します。 MongoDBとは MongoDBは高いパフォーマンスとスケーラビリティを特徴とするドキュメント指向型デー

    第31回 RubyistのためのMongoDB入門(1) | gihyo.jp