タグ

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

  • 第34回 行ベースレプリケーションの遅延について | gihyo.jp

    MySQLのレプリケーション形式には、ステートメントベースレプリケーション(SBR)と行ベースレプリケーション(RBR)があります。 SBRはマスターで実行されたDMLをそのままバイナリログに書き込み、スレーブではその記述されたDMLを実行します。RBRはマスターで実行されたDMLによって変更された各行の内容をバイナリ形式でバイナリログに書き込み、スレーブではその変更された行の内容を適用します。今回は行ベースレプリケーションの遅延について紹介いたします。 SBRとRBRについて まず、SBRとRBRの違いについて説明します。たとえば、以下のようなUPDATE文を実行します。 mysql> UPDATE t SET id=4 ; Query OK, 2 row affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0 このUPDAT

    第34回 行ベースレプリケーションの遅延について | gihyo.jp
  • 第33回 cgmanagerとLXCFS ─ コンテナ内のcgroup管理[1] | gihyo.jp

    今回は、cgroupを操作したり、コンテナ特有の値の/proc以下のファイルを提供したりするLXC用のソフトウェアを紹介したいと思います。 LXCでは設定ファイル内でcgroupの設定を行い、コンテナに対するリソース制限を行います。この場合、cgroup操作はコンテナの外で行われますので、必ずしもコンテナ内でcgroupを操作する必要はありません。 しかし、LXCではコンテナ内でさらにコンテナを起動する「コンテナのネスト」をサポートしています。この場合、コンテナ内で起動するコンテナに対してリソース制限を行うために、コンテナ内でcgroupを操作する必要がでてきます。つまりコンテナ内でcgroupfsツリーを操作しなければなりません。 LXCでは、最初に第11回で説明したlxc.mount.autoという設定を使用して、ホストcgroupfsをバインドマウントすることにより、コンテナ内にc

    第33回 cgmanagerとLXCFS ─ コンテナ内のcgroup管理[1] | gihyo.jp
  • 第3回 Vue.jsでコンポーネント開発 | gihyo.jp

    はじめに 第3回では、Vue.jsのコンポーネントの基的な作成の仕方と使用方法を紹介します。 Vue.jsは、UIをコンポーネント化する仕組みを持っています。HTMLCSSJavaSciptで構築されたUIの再利用性が高まり、カプセル化されて開発で意識すべき範囲を限定できるようになります。今回の記事が、プロジェクトVue.jsを導入する際のコンポーネント設計のイメージをつかむ助けになれば幸いです。 Vue.jsのコンポーネント指向 Vue.jsのコンポーネント指向について Vue.jsのコンポーネントは、大まかにWeb ComponentのCustom Elementsの仕様に沿って設計されています。コンポーネントは、定義したタグ名で親となるコンポーネントのHTML上に記述できます。 大規模なアプリケーションを作成する際は、コンポーネントをツリー状に構成してわかりやすく設計すること

    第3回 Vue.jsでコンポーネント開発 | gihyo.jp
  • 書いて覚えるSwift入門 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    書いて覚えるSwift入門 記事一覧 | gihyo.jp
  • 第31回 MySQLのオプションファイル my.cnfの豆知識[その1] | gihyo.jp

    MySQLのオプションファイル オプションファイルとはその名の通りMySQL関連プログラムに渡すオプションを列挙したもので、Linuxプラットフォームでは/etc/my.cnfが有名です。Windowsプラットフォームではmy.iniというファイル名も利用されますが、今回はCentOS 6.6のyum版MySQL 5.6の構成を例に説明します("yum版"の意図するところについては、第10回 yum, rpmインストールにおけるMySQL 5.6とMySQL 5.7の違いを参照ください⁠)⁠。 デフォルトでオプションファイルが読み込まれる順番 リファレンスマニュアルにも記載がありますが、デフォルトで読み込まれるオプションファイルは複数存在し、「⁠読み込まれる順番」があります。 同じオプションを複数のオプションファイルで指定した場合は「後から読み込まれたファイル」の設定が優先されます(番号の

    第31回 MySQLのオプションファイル my.cnfの豆知識[その1] | gihyo.jp
  • Vue.js入門 ―最速で作るシンプルなWebアプリケーション 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    Vue.js入門 ―最速で作るシンプルなWebアプリケーション 記事一覧 | gihyo.jp
  • 第2回 Vue.js基礎文法最速マスター | gihyo.jp

    第2回では、Vue.jsの基礎文法について、駆け足で紹介します。 Vue.jsは、ビューの領域にフォーカスしたシンプルなライブラリです。そのため、他のライブラリとの連携や、既存のプロジェクトへの導入も容易です。今回の内容を通して、自身のプロジェクトVue.jsを導入するきっかけにしてください。 記事の内容は、Vue.jsがロードされたjsfiddleにアクセスして、コードを入力することで試せます。詳しい文法について知りたい場合は、公式のガイドやAPIリファレンスを参照してください。 Vueインスタンスとデータバインディング Vue.jsで基になるのは、Vueコンストラクタから生成されるインスタンスです。 var vm = new Vue({ el: '#example', // document.getElementById('example'), $('#example')[0] も

    第2回 Vue.js基礎文法最速マスター | gihyo.jp
  • 第3回 「ニコ生主でもつかえるIkaLog」を目指してのWindows対応 | gihyo.jp

    ところで、最初のバージョンのIkaLogは、画像認識処理(ステージ名、ルール名、勝敗)が100行、各種アクションの実装が500行、合計で600行のPythonスクリプトでした。 一方、現在のIkaLogは、関連スクリプトを含めて23,000行を超えています。開発開始から約1年で、初回リリースと比べて38倍の規模にまで大きなソフトウェアになったようです。 しかし、反応は思わしくなく…… IkaLogを公開はしてみたものの、反応は思った以上に冷ややかでした。Twitterのタイムラインにスプラトゥーンのプレイ記録がどんどん流れるような夢(妄想?)を見ていたのですが、実際にはそうはなりませんでした。実際問題として、多くの方が無秩序にスプラトゥーンのプレイ記録を投稿すれば、Twitterのタイムラインがノイズだらけになり、それはそれで困惑するでしょう。リバースエンジニアリングなしで実装したいという

    第3回 「ニコ生主でもつかえるIkaLog」を目指してのWindows対応 | gihyo.jp
  • 第6回 DOM-based XSS その1:JavaScriptセキュリティの基礎知識|gihyo.jp … 技術評論社

    JavaScriptによるブラウザ上での処理量およびコード量の増加に伴い、JavaScript上のバグが原因で発生する脆弱性も増加しています。そのような脆弱性の最も代表的なものが、DOM-based XSSです。今回から数回に分けて、DOM-based XSSについて説明していきます。 DOM-based XSSとは 連載第2回で説明したような一般的な反射型および蓄積型のXSSのほとんどは、Webアプリケーションがサーバ上でHTMLを生成する際に、攻撃者が指定した文字列のエスケープが漏れていることが原因で発生します。一方、DOM-based XSSは、サーバ上でのHTMLの生成時には問題はなく、ブラウザ上で動作するJavaScript上のコードに問題があるために発生します。 たとえば、以下のようなJavaScriptコードがあったとします。 // bad code div = docum

    第6回 DOM-based XSS その1:JavaScriptセキュリティの基礎知識|gihyo.jp … 技術評論社
  • 第11回 鼓動のようにアニメーションするボタン | gihyo.jp

    今回のお題は、前回に引き続きanimationプロパティを使う。transitionプロパティよりも細かくつくり込めるので、動き方を工夫し、ほかのアニメーションとも組み合わせると、魅力的な表現に仕上げられる。これからつくるのは、マウスポインタを重ねると鼓動のようにアニメーションするボタンだ(サンプル1⁠)⁠。デザインと動きは「Social button effects #1」を参考にさせていただいた。 サンプル1 CSS3: Puls effect of a button 円形の縁取りを与えたボタン ボタンのテキストのフォントには、Google FontsのOswaldを用いた(図1⁠)⁠。また例によって、ベンダープレフィックスを省くため、<script>要素で-prefix-freeを読み込んである(第1回の「ベンダープレフィックスと-prefix-free」の項参照⁠)⁠。 <link

    第11回 鼓動のようにアニメーションするボタン | gihyo.jp
  • 第28回 MySQLと名前解決,skip-name-resolve:MySQL道普請便り|gihyo.jp … 技術評論社

    MySQLと名前解決 MySQLにおいて名前解決は、コネクションの確立・認証のフェーズで利用されます。デフォルト(名前解決が有効)な場合のシーケンスはざっくりと以下のようになります。 IPアドレスMySQL内の名前解決キャッシュに載っているかどうかを確認する (載っていない場合⁠)⁠ IPアドレスからホスト名に逆引きをかける(getnameinfo) 得られたホスト名を正引きし、IPアドレスを得る(getaddrinfo) IPアドレスホスト名の両方を使って、接続元ホストの検証をする(第17回 MySQLのユーザー管理について[その1]の2ページ目を参照) 検証に成功した場合、これ以降の「接続元ホスト」はIPアドレスまたはホスト名の「検証に成功したどちらか一方」を利用する ユーザー名、パスワードなどの認証に進む 名前解決が無効(skip-name-resolveオプションが有効)な場合

    第28回 MySQLと名前解決,skip-name-resolve:MySQL道普請便り|gihyo.jp … 技術評論社
  • 第25回 GTIDを使用したレプリケーション構成を作成する[2] | gihyo.jp

    前回の第24回 GTIDを使用したレプリケーション構成を作成する[1]に続いてGTIDについて紹介します。今回は、レプリケーションがエラーで停止してしまった際の対処方法と、MySQL5.7から可能となったオンラインでのGTIDの有効化について説明します。 特定のトランザクションをスキップする 従来のレプリケーションでは、Duplicate entryなどのエラーにてレプリケーションが停止してしまった場合に、SET GLOBAL sql_slave_skip_counter = Nを使用してトランザクションまたはSQLステートメントをスキップすることで、レプリケーションの継続ができました。しかし、GTIDを使用したレプリケーションではこの構文が使用できません。 GTIDを使用したレプリケーションでの対処方法として、以下の2点があります。 空のトランザクションを使用した方法 gtid_purg

    第25回 GTIDを使用したレプリケーション構成を作成する[2] | gihyo.jp
  • 第10回[最終回] Firebaseの実践的なテクニックを使いこなそう | gihyo.jp

    これまでの連載でFirebaseのリアルタイムデータベースの基的な使い方と、Google I/O 2016で発表された新しいFirebaseの機能の中からいくつかをピックアップしてご紹介しました。 今回は連載の締めくくりとして、この連載の初回でご紹介したわいわいチャットというリアルタイムチャットアプリケーションのソースコードをすべて公開し、コードを解説しながら実践的なテクニックをご紹介したいと思います。 「わいわいチャット」アプリの説明 まずこれから説明するアプリについておさらいしておきます。 わいわいチャットはシンプルなリアルタイムチャットアプリケーションです。起動するとTwitterアカウントによる認証画面が表示され、認証が完了するとチャット画面に遷移します。チャット画面では複数人によるリアルタイムなチャットが可能です。JPEGの画像をアップロードすることもできます。 図1 わいわい

    第10回[最終回] Firebaseの実践的なテクニックを使いこなそう | gihyo.jp
  • 第19回 MySQLのユーザー管理について[その2] | gihyo.jp

    前々回から何回かに分けて、MySQLのユーザー認証について説明しています。「第17回 MySQLのユーザー管理について[その1⁠]⁠」では、「⁠ホスト名⁠」⁠、「⁠ユーザー⁠」⁠、「⁠パスワード」についてと、 mysql.user テーブルについて説明しました。今回は「root@127.0.0.1とroot@localhostは別アカウントのはずなのに認証できてしまう謎」について説明したいと思います。 第17回から引き続き、今回のデモンストレーション環境は敢えて「匿名アカウント」を有効にしておくために、MySQL 5.6をyumリポジトリーからインストールしたものになっています。各バージョンのyum版, rpm版の構成の違いは 「第10回 yum, rpmインストールにおけるMySQL 5.6とMySQL 5.7の違い」 を参考にしてください。 筆者がCentOS 6.6上で今回の環境を作

    第19回 MySQLのユーザー管理について[その2] | gihyo.jp
  • 第4章 わかりやすい名前を付けよう―無理なく自然なメソッド・変数の命名 | gihyo.jp

    見た目、設計ときたら、次は名前付けだね。変数や関数の名前付けで困ったこと、あるんじゃないかな? えっ? いつも適当に付けてるから、悩んだことないですよ。名前って、そんなに大事なんですか? おいおい……そういうのは良くないな。プログラミングの半分は設計で残り半分は名前付け、と言ってもいいくらいに重要なことなんだよ? そ、そんなに!? 名前が付いていない条件に名前を付けたり、それぞれの機能によりわかりやすい名前を付けたりするのは、とても大事なことだよ。それに、良い名前付けができるようになれば、自然と良い設計もできるようになってくるね そう言われると、聞きたくなってきました……! 複雑な条件には名前を付けよう if文などで条件式を書くとき、いくつもの条件を組み合わせた複雑な条件式が必要になることがあります。しかし長すぎる条件式は、あとで読むと、何を判別するための条件であったのか、書いた人ですら

    第4章 わかりやすい名前を付けよう―無理なく自然なメソッド・変数の命名 | gihyo.jp
  • 第2回 IkaLogの基本的なしくみ | gihyo.jp

    今回は、IkaLogの開発をふりかえりながら、IkaLogの画像処理の基的な考え方、そしてその背景などについて説明します。 はじめての画面認識の検討 第1回で紹介したとおり、まずはゲームの画像に対してどのような処理をすれば画像認識を達成できるかを検討し始めました。 最初に、スプラトゥーンのプレイ動画を録画してみて、録画を何度か眺めてみました。幸いなことに、スプラトゥーンゲーム中では、多くのメッセージはたいてい白色で、いつも画面上の同じ位置に表示されます。このため、白色の部分だけを抜き出して、OpenCVのテンプレートマッチング機能を利用して表示内容を検出すればいいのではないかと考えました。 スプラトゥーンのシステムメッセージが真っ白な色で表示されるということは、256階調のグレースケール画像として処理したときに、文字に近いところは255に近い値であり、つまりは非常に高いスレッショルド(

    第2回 IkaLogの基本的なしくみ | gihyo.jp
  • 第12回 Web API利用の基礎を見直す | gihyo.jp

    みなさんこんにちは。teratail開発チームの出川です。 APIとはApplication Programming Interfaceの略で、Web APIはHTTPを通じてアプリケーションを扱うことができるインターフェースです。世の中のWebサービスには、そのAPIを公開しているものが多々あります。Web APIが公開されていると、他のソフトウェアから二次的にそのWebサービスを利用することができます。 Web APIを公開しているサービスは次々と増えています。teratailもユーザが自由に使えるWeb APIを公開していて、サイト内の質問や回答の情報を二次利用することができます。 teratail API |teratail(テラテイル) https://teratail.com/api 参考:teratail-archive http://argius.net/teratail-

    第12回 Web API利用の基礎を見直す | gihyo.jp
    clavier
    clavier 2016/04/08
  • try! Swift 1日目 参加レポート | gihyo.jp

    Swiftの世界的カンファレンス、try! Swiftが3月2日~4日の3日間にわたり、渋谷のサイバーエージェントのオフィスにて開催されました。 イベントの興味深いセッションをいくつか、日ごとにレポートしていきます。まずは1日目のレポートです。 Laura Savinoさん「コードリーディングについて」 新しいコードを読み解くことを、私たちはしばしば行いますが、それはエネルギーと時間を消費します。Laura Savinoさん(@savinola)は、スラスラと新しい言語を読めるようにする方法と、進化についていく方法を話しました。 コードを解読することは大変! コードを読んで、さらに解読するにはエネルギーと時間を要します。そのコストを下げるために意識しているポイントとして、Lauraさんは以下の3つを紹介しました。 スラングを避ける 人間の言語におけるスラング、これは知っている人しか知らな

    try! Swift 1日目 参加レポート | gihyo.jp
  • 第1回 IkaLog誕生前夜 | gihyo.jp

    2015年5月に発売された大人気ゲームスプラトゥーン、皆さんはプレイしていますか? 著者のまわりでは多くのコンピュータエンジニアが楽しんでいます。私は、スプラトゥーンの動画をリアルタイムに分析するソフトウェアIkaLogを開発し、オープンソースとして公開しています。連載では、IkaLogの開発秘話(?)や画像認識に使っているアルゴリズム、開発の過程などについて紹介します。 今回は連載第1回目として、私(たち)がどのようなきっかけからIkaLogを開発し始めたのかを紹介し、次回以降では具体的にどのような検討を経てIkaLogが実装されてきたかを説明します。 スプラトゥーンとの出会い 私がスプラトゥーンというゲームを知ったのは、発売が数日後に迫った日にインターネット上でトレイラームービーを見かけたときでした。スプラトゥーンは、三人称視点(TPS)でプレイヤーのインクリング(イカ人間)を操作し

    第1回 IkaLog誕生前夜 | gihyo.jp
  • はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる

    2016年3月18日紙版発売 2016年3月18日電子版発売 五味弘 著 B5変形判/272ページ 定価2,838円(体2,580円+税10%) ISBN 978-4-7741-8035-9 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 Lisp・関数型プログラミングのメリットとは何か――副作用のないプログラミングがまず挙げられます。これでバグが圧倒的に少なくなります。さらにはコードの再利用がしやすいこと,並列処理が得意であるということも。それだけではありません。動的な型付けも特徴ですし,ラムダ計算もクロージャも,さらにはオブジェクト指向までできます。数十年の時を越えて現代に

    はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる
    clavier
    clavier 2016/03/04