タグ

ブックマーク / ascii.jp (17)

  • AWSとGCPの両刀使いで高い可用性とレスポンスを実現したKARTE

    AWSのディープな活用事例を学べた2019年1月10日のX-Tech JAWS。2番手として登壇したのはプレイドでSREチームに所属している徳永貴大さん。レスポンスと高可用性を実現すべく、マルチクラウドを活用しているという先進的な事例だった。 レスポンスと高可用性が要求されるKARTEのシステム プレイドがサービスとして提供する「KARTE(カルテ)」はCustomer Experience Platformを謳うWeb上での顧客体験向上サービス。ECを中心とするWebサービス事業者は、KARTEを使うことで、どんなユーザーが、どんな商品をどれくらい見ているかをリアルタイムに可視化でき、付与されたタグに応じてKARTEがクーポンやボタンなど最適なレスポンスを返すことができる。 登壇した徳永貴大さんは楽天でアプリケーションやミドルウェアの開発を担当した後、インフラに強いプレイドにジョインし、

    AWSとGCPの両刀使いで高い可用性とレスポンスを実現したKARTE
  • Go言語のメモリ管理

    ソフトウェアにとってメモリは不可欠です。 実行する命令も、メモリにロードしなければ実行できません。 ソースコードに書かれた定数値も、いったんメモリにロードしないと使えません。 関数を呼び出すにも、スタックと呼ばれるメモリ領域が必要です。 スタック以外に、ヒープと呼ばれるメモリ領域が必要なこともあります。 今回は、Go言語のプログラマーが作成するプログラムの下で、どのようにメモリが管理され利用されるかを探ります。 Go言語のメモリ管理というとガベージコレクターの話を思い起こすかもしれませんが、ガベージコレクターについては連載では取り上げません。 メモリ確保の旅 コンピューターに接続されている物理的なメモリチップが、どのような過程を経てプログラムで使われるのか、順番に見ていきましょう。 (1): カーネル 最近のオペレーティングシステムでは複数のプロセスを同時に実行できます。 それらのプロセ

    Go言語のメモリ管理
  • Go言語と並列処理

    Go言語の特徴として挙げられる機能の1つに、「並列処理を書くのが簡単」というものがあります。 そこで今回は、Goにおける並列処理の機能を紹介してから、そもそも現代のコンピューターでどのようにして並列処理が実現されているのかをとりあげます。 複数の仕事を同時に行うとは? 複数の仕事を行うことを表す言葉には並行と並列の2つがありますが、これらには次のような区別があります。 並行処理(Concurrent) 並行(Concurrent): CPU数・コア数の限界を超えて複数の仕事を同時に行うこと ほんの少し前まで、コンピューターに搭載されているCPUはコア数が1つしかないものが普通でした。 そのような、今ではもう絶滅危惧種になりつつあるシングルコアのコンピューターであっても、インターネットを見ながらWordとExcelを立ち上げてレポートを書けます。 この場合に大事になるのが並行(Concurr

    Go言語と並列処理
  • Go言語で知るプロセス(2)

    前回の記事では、プログラムの実行単位であるプロセスについて、さまざまな属性やリソースをGo言語の視点から紹介しました。 今回は、Go言語のプログラムから、他のプロセスを実行したり属性を変更したりする方法を紹介します。 Go言語のプログラムから他のプロセスを扱うときは、プロセスを表す構造体を利用します。 そのための構造体には次の2種類があります。 osパッケージのos.Process: 低レベルな構造体 os/execパッケージのexec.Cmd: 少し高機能な構造体。内部でos.Processを持つ まず高機能で実用的なexec.Cmdの使い方を説明してから、os.Processの使い方を簡単に紹介します。 その後、プロセスに関する便利なGo言語のライブラリを紹介します。 exec.Cmdによるプロセスの起動 exec.Cmd構造体は次の2つの関数で作ることができます。 exec.Comm

    Go言語で知るプロセス(2)
  • 政府統一基準に準拠したAWS利用のセキュリティリファレンスが提供開始

    3月23日、NTTデータ、PwCあらた有限責任監査法人、富士ソフトは共同で、内閣サイバーセキュリティセンター(NISC)制定の政府統一基準に対応したセキュリティリファレンスを作成。同日より、政府機関向けに無償提供を開始する。 NISCでは2016年8月31日に、国内の政府機関が準拠すべき指針「政府機関の情報セキュリティ対策のための統一基準(平成28年度版)」を改定し、クラウドの選定および利用の際のガイドラインやセキュリティ要件等の基準を追加している。今回のセキュリティリファレンスは、国内の行政機関および独立行政法人などに向け、AWSのクラウド環境における改定後の政府統一基準の要件整理の考え方や必要となる情報、項目ごとの詳細な対応策を提供する。 サイバーセキュリティ法に基づいてNISCが制定する政府統一基準は、国内の政府機関が実施すべきセキュリティ対策の指針として幅広く利用されている。し

    政府統一基準に準拠したAWS利用のセキュリティリファレンスが提供開始
  • ファイルシステムと、その上のGo言語の関数たち(2)

    Base()とDir()はSplit()を目的別に特化させたものです。 複数のパスからなる文字列を分解する filepath.SplitList()という名前の関数もあります。名前だけ見るとパスの分割に使えそうですが、これは別の用途の関数で、 環境変数の値などにある「複数のパスを1つのテキストにまとめたもの」を分解するのに使います。 たとえば、次のコードは、Unix系OSにあるwhichコマンドをGoで実装してみたものです。 PATH環境変数のパス一覧を取得してきて、それをfilepath.SplitList()で個々のパスに分割します。 その後、各パスの下に最初の引数で指定された実行ファイルがあるかどうかをチェックしています。 package main import ( "fmt" "os" "path/filepath" ) func main() { if len(os.Args)

    ファイルシステムと、その上のGo言語の関数たち(2)
  • Windows Subsystem for LinuxからWindowsバイナリが起動可能に

    現在配布が行なわれているWindows Insider Program(WIP)のRS2 Insider Preview Build 14951以降(以下プレビュー版と略す)では、Windows Subsystem for Linux(WSL、Bash on Windows:BOWとも)の機能が拡張されており、bash側からWindowsデスクトップアプリケーション(Win32アプリケーション)の起動が可能になった。 マイクロソフトのブログでは、この機能を「Windows Subsystem for Linux - interoperability with Win32 applications」と呼んでいる(以下、Win32相互運用性と略す)。 このWin32相互運用性は、単純にWin32アプリケーションを起動するだけでなく、引数に指定された「ファイルパスの変換」と「標準入出力などリダイ

    Windows Subsystem for LinuxからWindowsバイナリが起動可能に
  • ファイルシステムと、その上のGo言語の関数たち(1)

    コンピュータにはさまざまなストレージが接続されています。 ハードディスクやSSD、取り外し可能なSDカード、読み込み専用のDVD-ROMやBlu-Ray、書き込み可能なDVD-RWなど、種類を網羅するのが困難なほどです。 種類はいろいろありますが、どのストレージも、基的にはビットの羅列を保存できるだけです。 そこで、そのストレージスペースを、特定の決まったルールで管理するための仕組みが必要になります。 たとえば、自分のローカルフォルダにあるテキストファイルをエディタで開き、編集して書き込みたいとします。 ストレージのどこかにテキストファイルの内容を表すビット列があるはずですが、その実体のある場所を、ファイル名から探し出せる必要があります。 また、そこから内容を読み込んだり、新しい内容を上書きすることが、アプリケーションから不自由なく実現できなければなりません。 そのためにOSに備わってい

    ファイルシステムと、その上のGo言語の関数たち(1)
  • ReactとAngularのいいとこ取り? 2017年こそ学びたいVue.jsの始め方

    AngularReactと並んで海外で人気が高まっている「Vue.js」。ReactAngularの開発経験がある著者がVue.jsをチュートリアルを通じて特徴をまとめました。2017年、新しく学び始めるきっかけにどうぞ。 2016年9月、人気のJavaScriptフレームワークVue.jsがv2をリリースしました。それ以来ぜひ使ってみたい、どのようなものか知りたいと思っていました。AngularReactを使い慣れた者の1人としては、Vueが似ているところや違うところも知りたかったのです。 Vue.js 2.0はすばらしいパフォーマンスを誇ります。データサイズが比較的小さく(バンドルされるVueのランタイム版は一度最小化してgzip圧縮したら16KBしかありません)、Vuevuexや、vue-routerのような付属の状態管理ライブラリーもアップデートされました。1つの記事ではと

    ReactとAngularのいいとこ取り? 2017年こそ学びたいVue.jsの始め方
  • フロントエンドエンジニアなら知っておきたい、JavaScriptのログ収集方法まとめ

    サーバーサイドに比べて見落とされがちな、フロントエンドのエラーログ収集。JavaScriptのログ収集、確認に役立つ手法、ツール、ライブラリーを総まとめ。 開発進行中も番モードでの運用時も、ソフトウェアアプリケーションにおいてロギングは大切です。 サーバーを運用しているなら、サーバーサイドの言語選択にかかわりなく無数のライブラリーを利用でき、広範に及ぶストレージメカニズムやログ出力を扱う際の各種ツールも使えます。 しかし、クライアント側アプリケーションとなるとロギングは見過ごされがちで、利用できる手法もかなり限られています。 この記事ではクライアント側アプリケーション、特にJavaScriptを中心としたシングルページアプリケーション(SPA)におけるロギングの実装方法を紹介します。 コンソール エラーとメッセージのロギング方法でもっとも一般的かつ分かりやすいのは、おそらくコンソールの使

    フロントエンドエンジニアなら知っておきたい、JavaScriptのログ収集方法まとめ
  • 知ってる?Web開発者がJavaScriptでゲームを作るときのはじめの一歩

    Web開発者が初めてゲームを作るときに戸惑うのが、「ゲームループ」という考え方。普通のWebアプリを作るのとどう違うのか、シンプルなゲームのプログラム構造に触れてみましょう。 「ゲームループ」は、時間をかけて状態を変化させることでアニメーションやゲームをレンダリングするために使う技術につけられた名前です。来は、ユーザー入力を受け取り、経過時間の状態を更新してからフレームをできるだけ多くの回数描く関数です。 この短い記事では、基的な技術がどう機能するかを説明します。基的な技術が分かれば、ブラウザベースのゲームやアニメーションの制作を始められます。 ゲームループは、JavaScriptでは次のようになります。 function update(progress) { // Update the state of the world for the elapsed time since la

    知ってる?Web開発者がJavaScriptでゲームを作るときのはじめの一歩
  • JSのソースコードが変えられない!困ったときにモンキーパッチで逃げ切る方法

    他人が作ったJavaScriptのプログラムを部分的に、でも元のコードを修正せずに対応するしかない…。そんなときにモンキーパッチ。やらなきゃいけないときの対処方法を実例で。 たった1つの小さな問題点を除いてきちんと動作する、第三者のコードを使ったことはありませんか? なぜ作成者はこんなやっかいなコンソールログを削除し忘れてしまったのだろう、そのAPIコールがもう1つちゃんとしていればうまくいったのに、と思うことがあるでしょう。こうした場合、メンテナンス担当者に変更箇所を実装させるのは困難(あるいは不可能)です。自分自身でコードを変更しようにも、ソースコードを持っていなかったり、自分でコードをホストしたくなかったりするときはどう対処すればよいか悩みます。 さあ、JavaScriptのモンキーパッチの世界を一緒に探検しましょう! この記事ではモンキーパッチとはなにかを説明します。また、第三者が

    JSのソースコードが変えられない!困ったときにモンキーパッチで逃げ切る方法
  • MacBook Airにプラスしたい、 LANアダプター内蔵3ポートUSB 3.0ハブ ―サンワダイレクト

    サンワサプライは5月26日、同社の直販サイト「サンワダイレクト」にてギガビット対応LANアダプター内蔵の3ポートUSB 3.0ハブ「400-HUB022」を発売した。 製品は、LANポートが搭載されていないMacBook Airや、Surface ProなどでもUSBポートを使用して有線LAN接続が可能。ギガビット イーサネットに対応により、高速ネットワーク環境にも対応できるという。また、バスパワー駆動のUSB 3.0ハブを3ポート搭載しているので、パソコンのUSBポートを埋めることなく使用できるとしている。 体サイズは、約幅105×奥行42×高さ24mm(ケーブル部分除く)で、重量は約66g(ケーブル含)。対応OSはWindows 8.1/8/7/Vista/XPとMac OS 10.6~10.8。価格は3979円。

    MacBook Airにプラスしたい、 LANアダプター内蔵3ポートUSB 3.0ハブ ―サンワダイレクト
  • 【格安データ通信SIM】OCNが1日30MB→1日50MBに! 料金も↓

    ASCII.jpでは月1000円以下の格安のモバイルデータ通信SIMについて頻繁に紹介しているが、読者の反応などからもIIJmio、OCNが人気面で2強というのは間違いないところ。 そのIIJmioが、月1000円以下の「ミニマムスタートプラン」において、高速で利用できる通信量を4月から月1GBに倍増(従来は月500MB)することを7日に発表したが(関連記事)、それに対抗してか、先週はOCNも大きな動きに出た。 高速通信が可能な通信量が1日30MB→1日50MBに! 増税に合わせた値下げ 税込後でも従来より安い! OCNの「OCN モバイル ONE」は高速通信で利用できる通信量が、他社と同様の月単位のプランと、1日単位のプランの2種類があるが(0~24時で一定の通信量を超えると速度制限。翌日になるとまた制限が解除される)、4月からは後者の通信量が増加する。 特に1000円以下で利用できるこ

    【格安データ通信SIM】OCNが1日30MB→1日50MBに! 料金も↓
  • jQuery Mobileを使った国内スマホサイトまとめ (1/3)

    jQuery Mobileの採用が国内でも進んでいる。jQuery Mobileは、iPhone/AndroidWindowsPhoneやBlackBerryなど、主要なスマートフォンに対応したUIフレームワーク。HTMLに簡単な記述を追加するだけで、スマートフォンに最適化したサイトやWebアプリケーションを制作できる、注目のフレームワークだ。 昨年11月には、待望の「jQuery Mobile 1.0」正式版がリリースされ、実務でも格的に利用しやすくなった。今後、ますます増えそうなjQuery Mobileを使ったスマートフォンサイトの事例をチェックしておこう。 ※商品紹介/キャンペーンサイトに、「太鼓の達人学園(太鼓の達人×AKB48キャンペーンサイト)」を追加しました。(2012年3月1日16時更新) ※ネットサービスに、「一休.com」「recbike」を追加しました。(201

    jQuery Mobileを使った国内スマホサイトまとめ (1/3)
  • 50代でも分かったHTML5の基礎知識

    おとそ気分で社内を暇そうにウロウロしていたら「HTML5の常識、わかっていますよね」と怖い怖い一回り年下の編集長から叱られてしまいました。この後、HTML5関係の仕事がくることは間違いがありません。 しかし、ワタクシは50代。困ったことに、この編集長の「わかる」とワタクシの「わかる」とは程度が違います。これは困りました。正月早々、首筋がすーっと寒くなってしまったので、優しいけど仕事に関しては編集長よりも厳しい二回り年下のデスク相談。 「HTML 4と比較しながらHTML5の違いをまとめて記事にするところから、始めてみてはどうですか」と先手必勝のようなお題を与えてくれました。どこまでこのお題をこなせるのか。65歳定年になれば、あたりまえの日企業の縮図のなかで、50歳を過ぎての「HTML5の基礎知識」をまとめてみました。 DOCTYPE宣言が超簡単に DOCTYPE宣言が超簡単になったのは

    50代でも分かったHTML5の基礎知識
  • ここが変わった!HTML5マークアップ入門 (1/6)

    ローソン無印良品テレビ朝日など、国内でもHTML5で企業サイトを制作する事例が増えてきました。今すぐではないにせよ、「次のリニューアルはHTML5で制作したい」と考えるWeb制作者も少なくないでしょう。連載では、「XHTML 1.0/HTML 4.01からの移行」をテーマに、HTML5マークアップの基から実務で使用するポイントまで、ライブドアのマークアップエンジニア 浜 俊太朗さんが解説します。(編集部) 「HTML5タグの誤用で恥をかいた」「分厚い仕様書は読み切れない」コーダー&デザイナーのためのコーディングガイド。最終草案に対応したほか、商用サイトを意識したコーディング例を新たに書き下ろし。HTML5マークアップへ移行するために必要な知識を効率よく学べる1冊です。ネットで話題の「HTML5カルタ」付き! HTML5マークアップ 現場で使える最短攻略ガイド 定価:2,808円 (

    ここが変わった!HTML5マークアップ入門 (1/6)
  • 1