タグ

ブックマーク / blog.asial.co.jp (53)

  • Dockerだけではない: Podman、LXD、ZeroVMを含む主要なコンテナ技術を探る

    最近では開発環境をローカルに構築することなく、Dockerをはじめとするコンテナ技術を使用する場面が増えています。コンテナ技術の利用により、環境の構築手間が大幅に軽減でき、さらにプログラミング言語やデータベースのバージョン管理も柔軟に行えるのが主な利点として挙げられます。 そんなコンテナ技術で有名なものとしてはDockerが存在しますが、最近では他にもさまざまなコンテナ技術や仮想化技術が登場しています。記事では、これらの技術の相違点や特徴について紹介します。 コンテナはホストOSから独立した環境でアプリケーションを実行する技術です。 Dockerの場合を見てみると、下の図のようにホストOSの上にDockerが存在し、このDockerが様々なアプリケーションを「コンテナ」として管理しているとイメージできます。 具体的には、コンテナ内には必要なライブラリや依存関係がパッケージ化されており、こ

  • TypeScript + Vue.js の始め方

    こんにちは。エンジニアの小椋です。 最近になって初めてTypeScriptを使う機会があり、TypeScriptもっと使おう!😠😠😠と思ったので、今回はVue.jsでTypeScriptを使う方法を紹介したいと思います!

    TypeScript + Vue.js の始め方
  • Visual Studio Code ではじめるシーケンス図

    こんにちは、渡辺です。 シーケンス図を書くときにお世話になっているPlantUMLが、 Visual Studio Codeで簡単に利用できるようになったので、紹介したいと思います。 テキストでUMLやシーケンス図、クラス図などを作成できる言語です。 ダイアグラムをテキストで記述できるため、Gitで管理することもできます。 Visual Studio Codeでは、次のようにPlantUMLプレビューでダイアグラムを確認しながら作成できます。 まず、Visual Studio Codeが端末にない人はインストールをしてください。 Visual Studio Code - Code Editing. Redefined また、Javaもインストールが必要となります。 無料Javaソフトウェアをダウンロード インストールが完了したら、Visual Studio Codeで拡張機能としてPlan

    Visual Studio Code ではじめるシーケンス図
  • 【Vue.js】ざっくり紹介、Vueプラグインの書き方

    Vue のプラグインを作成する方法なんですが、 「install メソッドを持つオブジェクトを定義する」 ただこれだけなんです。 定義したプラグインはご存知のとおり、Vue.use メソッドで使用します。 Vue.use メソッドを使ってプラグインを使用すると、プラグインのinstall メソッドが呼ばれるって感じです。 install メソッドの第一引数は Vue コンストラクタ、第二引数はオプションのオブジェクトになります。 一番簡単なプラグインの例はこんな感じ。 const MyPlugin = { install(Vue, options) { console.log(`${options.hello}${options.world}!`) } } Vue.use(MyPlugin, { hello: 'こんにちは', world: '世界' }) // こんにちは世界! プラグイ

    【Vue.js】ざっくり紹介、Vueプラグインの書き方
  • AngularJSに触れてみる その1

    AngularJSはGoogle社が開発しているJavaScriptのMVCフレームワークです。Webの技術を使うMonacaでももちろん使うことができます。また、jQueryなどの他のライブラリと併用することもできます。MVCとはModel(モデル)、View(ビュー)、Controller(コントローラー)の略称でありそれぞれのコンポーネントにアプリケーション中の役割を分割する思想、手法です。 Model:アプリケーション内で使うデータ構造。 View:マークアップなどアプリケーションのユーザーの実際に目にするもの。 Controller:アプリ内で使うデータを操作するコンポーネントであり、ModelとViewを操作するもの。 AngularJSのMVCに関して家ドキュメントへのリンクを貼っておきますので、詳しくはこちらを参照してください。 Model View Controller

  • JavaScriptによる小数計算の誤差を無くす

    var oldValue, newValue, diff; oldValue = 67; newValue = 66.9; diff = oldValue - newValue; diff = Math.floor(diff * 10) / 10; // 小数点第2位以下切り捨て console.log("今日は" + diff + "kgやせました!"); ファッ!? 0.1kg痩せたはずが、0kgと表示されてしまいました。 たかだか100gとはいえ、こんな表示になったらガックリきますね。 一行ずつ値を追っていくとわかるのですが、4行目で減算した時点でdiffの値が "0.09999999999999432" とズレてしまっています。 これはJavaScriptがIEEE 754という規格に従って実装されているためです。 つまり、この計算結果はJavaScriptの仕様なのでJavaSc

    JavaScriptによる小数計算の誤差を無くす
  • 最近のJavaScript開発まとめ

    こんにちは、中川です。 ここ1・2年ですが、私の担当するプロジェクトでは、 PHPよりもJavaScriptの開発が多い状態が続いております。 JSのプロジェクトを重ねるにつれ、開発環境も段々と整理されてきましたので、 一旦、最近のJS開発で利用しているライブラリやツールなどをまとめてみました。 フレームワーク ●Backbone.js http://backbonejs.org/ JavaScriptのMVCフレームワーク。 何も使わない(もしくは我流)よりは、これを使って欲しいと思えるフレームワークです。 利用者が多く日語情報も豊富にあるのと、フレームワーク自体が1500行程度と軽量なため、学習コストを低く抑えることができます。 ●AngularJS http://angularjs.org/ データバインディングを備えたフレームワーク。 高機能なテンプレートや、DIの仕組み、ルーテ

    最近のJavaScript開発まとめ
  • 【Winアプリ】ブラウザの自動操作!~Selenium WebDriver~ : アシアルブログ

    はじめに 今回はSelenium WebDriverをご紹介します。ブラウザ操作を自動化する際には最適な仕組みです。Webシステムのend-to-endテストを自動化する際には、ブラウザ操作が必要になることがあります。そんな時にSelenium WebDriverはとても便利です。 Selenium Seleniumとは、ブラウザをプログラムで動かすフレームワークです。この仕組みを使うことで、ユーザーテストなど、様々な処理を自動化できます。現在のところ、Seleniumは以下のWebブラウザを制御できます(公式サイト)。 Internet Explorer Firefox Chrome Opera Android標準Webブラウザ Safari (iPhone標準Webブラウザ) 実際に使用する際には、以下の2つの仕組みのどちらかを使用します。

    【Winアプリ】ブラウザの自動操作!~Selenium WebDriver~ : アシアルブログ
  • 初心者のコーダーでも簡単に実装出来るJavaScript/jQuery Tips

    こんにちは、鴨田です。 今更感はすごくあるとは思いますが、 コーダー初心者でも簡単なJavaScript/jQueryのコードで、 ちょっとした運用を楽に出来るTipsを紹介したいと思います。 1.現在見ているページのナビゲーションをアクティブにする JS if (document.URL.indexOf("001.html") != -1) { $("nav a.top").toggleClass("on"); } else if (document.URL.indexOf("002.html") != -1){ $("nav a.list").toggleClass("on"); }

    初心者のコーダーでも簡単に実装出来るJavaScript/jQuery Tips
  • JavaScriptで日付を扱うならこれ!「moment.js」

    ■ つかいかた(基礎編) ダウンロードしたmoment.jsをscriptタグで読み込ませたら準備完了です。 あとは下記のような実装で使用できます。 // momentオブジェクトを初期化して・・・ var m = moment(); // formatで出力! var output = m.format("YYYY年MM月DD日 HH:mm:ss dddd"); console.log(output);  // => 2013年05月15日 12:34:56 Wednesday // 現在時刻 moment(); // ミリ秒で指定 moment(1368543600000); // タイムスタンプ(秒)で指定 moment.unix(1368543600); // Date.parseで解析可能な文字列を指定 moment("May 15, 2013"); // Dateオブジェクトか

    JavaScriptで日付を扱うならこれ!「moment.js」
  • CSSだけで作るアイコン付きボタンの作り方

    こんにちは、鴨田です。 近頃はボタンのデザインに限らず、CSSで実現できるものは、 グラフィックにせず、CSSだけで書いています。 ボタンデザインに限らず、HTML/CSSで書いた方が効率的なこもあって、 最近はあまりPhotoshopを開くこともなくなってきています。 ということで、日はCSSだけで作るアイコン付きボタンの作り方です。 アイコン付きというのがポイントです。 ● アイコンなしボタン とりあえず、アイコンなしで作りましょう。 HTML body { font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif; margin: 0; padding: 0; } a { /* サイズ指定 */ width

    CSSだけで作るアイコン付きボタンの作り方
    Akineko
    Akineko 2013/05/01
  • PHPからChromeにログ出力「Chrome Logger」

    こんにちは、中川です。 PHPでの開発中のちょっとしたデバッグに、echo や var_dumpで画面に値を出力して確認することがありますよね。 このデバッグ方法は簡単でいいのですが、出力した配列の値などはパッと見で確認しやすいとは言えませんし、画面の表示内容が崩れたりします。 画面に出力しない方法としては、 error_log関数を使ってapacheログやファイルに出力する方法もありますが、 この場合は、サーバ側にログインしてtailなどでファイル内容を確認する必要がでてきます。 そんなちょっとした問題を解決してくれるツール 「Chrome Logger」をご紹介したいと思います。 Chrome Loggerを使えば、JavaScriptのconsole.logのように、 表示画面には影響を与えないでブラウザのデベロッパコンソールにPHPから値を出力できます。 ■Chrome Logge

    PHPからChromeにログ出力「Chrome Logger」
  • Standard PHP Libraryの例外クラスを活用しよう!

    はじめに 今回はPHPでの例外の扱い方、特にSPL (Standard PHP Library)の例外クラスの使い方を見ていきます。例外を投げる際には、エラー種別により例外クラスを切り替え、受け取る側での処理も分けます。Javaなどではごく当たり前です。しかし、PHPプログラマの中には、そこまで切り分けない人も意外といます。Exceptionクラスだらけのコードもしばしば見かけます。 SPLの例外クラス アプリケーションによっては、例外クラスを独自に作成することもあります。とはいえ、いきなり例外クラスを複数定義して使いまわすことは、若干ハードルが高いかもしれません。まずは、SPL (Standard PHP Library)の例外クラスを使ってみましょう。SPLでは以下の例外クラスを提供しています。 SPL 例外クラスツリー LogicException (extends Exceptio

  • 自動テストするぞ!tmux + PHPUnit + watchmedoで構築する自動ユニットテスト環境

    自動テストするぞ!tmux + PHPUnit + watchmedoで構築する自動ユニットテスト環境 こんにちは、斉藤です。 前回はテスト駆動開発という開発方法をご紹介しました。 その中では”ユニットテストの実行”を主体に開発を行っていくことをお伝えしました。 今回は(余計な話も交えつつ)そのユニットテストの実行を自動化する方法をご紹介します。 * なぜ自動化? ユニットテストを手動で走らせていませんか? ユニットテストなど、開発プロセスの中で機械がやれることを手動で行うと、そこでスピード(and 効率)がガクッと下がります。機械任せにできるものは、以下のようなタスクがあります。 手動で行うことにしていると、そのプロセスを実行することを忘れてしまったり、「めんどくさいよー」ってなってしまい、実行回数が減ってしまいます。 その結果、品質の低いアプリが生まれますよね・・・。 近年では、それら

  • nginx(リバプロ)とapache(Webサーバ)でアクセス要求制御をしよう

    Apacheの設定ファイルを変更します。 80番はリバプロ側で処理するためApacheではListenポートを8010に変更する nginx側の設定を変更します。 インストール後は「/opt/local/etc/nginx」に設定ファイルのサンプルがあり、 通常はこちらを参考にして設定しますが、今回は設定ファイルを下記のように設定します。 1.mimeタイプはデフォルトのものを利用します sudo mv /opt/local/etc/nginx/mime.types.default /opt/local/etc/nginx/mime.types user  nobody; worker_processes  1; error_log  logs/error.log  info; events { worker_connections  256; } http { include      

    nginx(リバプロ)とapache(Webサーバ)でアクセス要求制御をしよう
  • ウェブ制作に重要なワイヤフレームを書けるツール&ウェブサービス6選

    wireframe-zoning.jpg by luc legay, on Flickr こんにちは、久保田です。 ウェブサイトのデザインやコーディングを始める前にワイヤフレームは作っていますか?ワイヤフレームは、以下の様な内容を設計するのに利用されます。 ・ページ間の遷移 ・ページの内容 ・ページの大まかなレイアウト これらの項目についてチームやクライアントと予め合意しておくと、後に続くビジュアルデザインやコーディング時の前提を共有でき、作業をスムーズに進めることが出来ます。これからどのようなウェブサイトを作るのか?ということをきちんと共有することでデザイナーやコーダーや関係者と意思統一することができるわけです。 この記事では、このワイヤフレームを書けるツールやウェブサイトを紹介します。 OmniGraffle 古くからある使いやすいMacOSX用のアプリケーションです。ワイヤフレームだ

    ウェブ制作に重要なワイヤフレームを書けるツール&ウェブサービス6選
  • 準備が簡単。JavaScriptテストツール「Testacular」

    各質問に答えていくと設定ファイルができあがります。 今回はテストフレームワークはjasmine、 ブラウザはChrome、Firefox、Safariとしています。 ※各質問の選択肢はタブで切り替えられます。 Which testing framework do you want to use ? Press tab to list possible options. Enter to move to the next question. > jasmine Do you want to capture a browser automatically ? Press tab to list possible options. Enter empty string to move to the next question. > Chrome > Firefox > Safari > Whic

    準備が簡単。JavaScriptテストツール「Testacular」
  • ちょっと便利なJavascriptオブジェクトの作り方

    今回は、ちょっと便利なJavascriptオブジェクトの作り方をご紹介します。いわゆるモジュール・パターンと呼ばれている方法です。 はじめに 最近、HTML5への注目と共に、Javascriptを使用する機会が増えてきました。以下のように適用範囲は多岐に渡っています。 通常のWebサイトでのユーザビリティ向上 スマートフォン用Webサイト開発 HTML5アプリによるクライアント・アプリ開発 スマートフォンのハイブリッドアプリ開発 Node.jsによるサーバサイド・プログラミング このように、Javascriptが基幹となる仕組みが広がっています。クライアント側とサーバ側を同じ言語で作れることは、開発側にとってはとても有難いことです(学習コストの低減、人的リソース配分の柔軟性など)。もちろん、発注者やエンドユーアにとっても開発速度などの面で利益が生まれます。 Javascriptプログラミン

    ちょっと便利なJavascriptオブジェクトの作り方
  • JavaScriptでうっかりやってしまいそうなこと色々

    こんにちは、中川です。 今回はJavaScriptで開発していると、うっかりハマってしまうちょっとした罠たちを紹介したいと思います。 JavaScriptでの開発経験者であれば、どれか一度はひっかかったことがあるのではないでしょうか? String ●String#replace()は文字列指定では全部置き換えない 対象文字列を一括して置き換えたいなどでString#replace()を使いますが、 検索対象を文字列で指定してしまうと最初に一致した部分しか置換しません。

  • 【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(後編)

    こんにちは、橋です。 前回にひきつづき、Safari、ChromeのWebインスペクターやFirefoxのFireBugで使えるconsoleオブジェクトの使い方について書いてみたいと思います。 consoleオブジェクトには以下の19個(logを除くと18個)のメソッドがあります。 assert count debug dir dirxml error group groupCollapsed groupEnd info log markTimeline profile profileEnd time timeEnd timeStamp trace warn そのうち前回は、assertメソッドからgroupEndメソッドまで見て行きました。 今回はinfoメソッドからwarnメソッドまでの使い方について書いていきたいと思います。 infoメソッド console.info(messa

    【Javascript】consoleオブジェクトが持つlog以外の便利メソッド18(後編)