タグ

ブックマーク / codezine.jp (26)

  • 小規模な受託開発におけるAWSインフラ環境~工数削減のポイントとセキュリティ (1/3):CodeZine(コードジン)

    連載では、比較的「小規模」な「受託」開発を実施する際のAWS活用の勘所を、実際の開発現場での経験を元に紹介します。大規模な開発では当てはまらない部分もあると思いますが、可能な限りインフラ関連の工数を少なくし、効率的に開発を実施するために、最低限抑えておく実務上役立つ点について、解説します。記事では、小規模なフルスクラッチの業務システムをビジネスとし、開発を実施する際に参考となるAWSのアーキテクチャや工数のかかる工程、留意すべきセキュリティに関するポイントを紹介します。 はじめに 比較的小規模なフルスクラッチのシステム開発(1〜20人月程度)を受託するビジネスとする場合、AWS上に「多層アプリケーション(Web層、AP層、DB層)に即したインフラ環境を構築する」ことが多いと思います。 多層アプリケーションの構成例 このような構成をシステム毎、顧客毎に構築することになりますが、AWSで構

    小規模な受託開発におけるAWSインフラ環境~工数削減のポイントとセキュリティ (1/3):CodeZine(コードジン)
    oasis440
    oasis440 2018/11/29
  • 大規模解析サービスのためのデータベース構成 ~BigTable/BigQueryの弱点をどう補うか?

    大規模なデータを扱う解析サービスにおいて、データベースの性質の理解や選定、配置、活用方法などはクリティカルな問題であり、サービスとして大きく差をつくる要素にもなります。稿では考慮すべきデータベースの性質の違いから始め、解析サービスにおける考え方や活用のテクニック、構成方法について紹介したいと思います。 解析サービスにおける重要な2つの仕事 ここでは大量のデータを収集する解析サービスの仕事の中でも、重要な2つの仕事についてフォーカスして話を進めていこうと思います。 一つ目は、データを単に収集し、スケーラビリティの高いデータベース(または分散ファイルシステム)に格納し、あとで(管理画面から、もしくはスケジュールバッチなどで)Aggregateするものです。こちらは解析サービスと言われるサービスの多くが行なっている仕事と考えられます。 二つ目は、データによって振る舞いを変える、リアクションする

    大規模解析サービスのためのデータベース構成 ~BigTable/BigQueryの弱点をどう補うか?
  • かわいい見た目で機能も充実! Scratchで動かせる「nekoboard2」で電子工作を楽しもう

    こんにちは、エンジニアのちゃんとく(@tokutoku393)です。業ではPHPでバックエンド開発をする傍ら、テクニカルライターとしてdotstudioに参加しています。 「IoT」というワードが流行って久しく、個人でハックを楽しむ人やイベントも増えてきました。現在では、半田付けなしに繋げられたり、ノンプログラミングで開発できたりと、難しい知識なしで簡単に扱えるIoTデバイスが増えてきています。 今回は、子供向けプログラミング言語「Scratch」で動かせるセンサーボード「nekoboard2」を紹介します。 nekoboard2とは スイッチサイエンス社が発売している、音センサーや明るさセンサー、スライダーなどが初期搭載されたセンサーボードです。子供向けプログラミング言語「Scratch」で動かすことができ、見た目もとっつきやすいネコ型になっています。 nekoboard2の紹介ページ

    かわいい見た目で機能も充実! Scratchで動かせる「nekoboard2」で電子工作を楽しもう
    oasis440
    oasis440 2017/04/27
  • Rails 5.0から5.1のバージョンアップで大きく変わるフロントエンド開発環境

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Rails 5.0から5.1のバージョンアップで大きく変わるフロントエンド開発環境
  • プログラマブルなスマートIoT照明「Hue」でおうちハックにチャレンジしてみよう

    こんにちは、dotstudioで代表兼エンジニアをやっているのびすけ(@n0bisuke)です。 モノとインターネットを繋げる「IoT」という言葉が度々話題に出るようになりました。しかし、実際にIoTの楽しさや便利さを感じられるのは自分の生活での不便さを解消したその瞬間だと僕は思っています。 そんな今回は、おそらく全ての人が家で最も使うであろう「照明」をインターネットに繋げて便利にしてみたいと思います。 Philips Hueとは 今回紹介するのは、Philipsが販売しているスマートIoT照明「Hue」です。現在は3種類のHueが発売されています。今回使う「シングルランプ 800lm」は一般的な電球と同じ大きさなので、家の電球と差し替えて利用できます。仕様は以下です。 サイズ:E26口金 消費電力:10W 明るさ:800lm 重さ:186g すべてのHueの基仕様は以下になります。 正

    プログラマブルなスマートIoT照明「Hue」でおうちハックにチャレンジしてみよう
    oasis440
    oasis440 2016/10/28
  • インフラ構築をコードで自動化できる「Docker」の魅力――主婦と先生と作家をコンテナ仮想化で両立する阿佐志保さんの生き方

    翔泳社では11月19日に『プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化』を刊行しました。今回、Dockerが大好きだという著者の阿佐志保さんに、書の紹介だけでなくDockerに関わる人生観についてもお話をうかがいました(インタビュー内容は10月21日時点のものです)。 家事、育児、講師、執筆の両立 ――よろしくお願いします。最初に、阿佐さんの自己紹介をお願いできますでしょうか。 阿佐:結婚・出産前は、システムの基盤を構築・運用するエンジニアなどをしていました。インフラの設計構築だけでなく、アプリケーション開発標準化や運用設計など、障害やトラブル以外では表に出ることのない地味な仕事です。毎日、朝早くから終電まで働いていました。仕事が好きだったし、非常に優秀なメンバーに囲まれていたのであまり苦ではありませんでした。 分かりやすくいうと「社畜」です。社

    インフラ構築をコードで自動化できる「Docker」の魅力――主婦と先生と作家をコンテナ仮想化で両立する阿佐志保さんの生き方
  • GUIでコンテナ仮想化ツールDockerをつかう「Kitematic」のご紹介

    連載では、業務アプリケーション開発を行う熱血若手エンジニアのために、面倒な作業が楽になる便利なツールをご紹介します。「定時になったらスマートに帰社してアフター5を存分に楽しみたい!」や「設計書やレビューの準備に煩わされるのは嫌だ、コーディングに集中したい!」などを実現してくれる便利なツールやソフトウエアを紹介します。今回は、GUIでコンテナ仮想化ツールDockerをつかう「Kitematic」を解説します。 はじめに ここ最近、「コンテナ仮想化技術」や「Docker」という単語を耳にする機会が増えてきています。しかしながら、そもそもハードウエア/OS/ネットワークなどの基盤技術やインフラプロビジョニングや運用になじみが薄い人にとっては、Dockerはコンテナ仮想化技術を使ったアプリケーション実行環境構築/運用プラットフォームです。インフラ環境も含めたアプリケーションの実行環境をすべてまと

    GUIでコンテナ仮想化ツールDockerをつかう「Kitematic」のご紹介
  • PostgreSQL 9.2の同期レプリケーションを利用する際の勘所

    DBMSの可用性とPostgreSQLのレプリケーション 勤怠管理やERPなど会社内の業務に欠かせないシステムはもちろんのこと、SNSやECサイトなど個人で利用するシステムでも、何かしらのDBMSを利用をするのが一般的です。 もしDBMSで障害が発生した場合、データの参照・更新が滞り、システム全体として役割を果たすことができなくなります。そのためユーザが利用したいときにシステムを利用可能にするためにはDBMSが継続的に稼働していることがとても重要です。 世の中にはDBMSは多数存在し、またDBMSの可用性を上げる機能やツールなどもさまざまに存在します。OSSの代表的なDBMSの一つであるPostgreSQLには可用性向上機能の一つであるレプリケーションが用意されています。 今回は最新バージョンであるPostgreSQL 9.2のレプリケーションについて、機能の紹介、利用時の注意点、設定によ

    PostgreSQL 9.2の同期レプリケーションを利用する際の勘所
  • 「HTTP/2」がついに登場! 開発者が知っておきたい通信の仕組み・新機能・導入方法

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「HTTP/2」がついに登場! 開発者が知っておきたい通信の仕組み・新機能・導入方法
  • Spring AMQPの実装と、AMQPを利用したアプリケーションの稼働

    はじめに 前回の記事では、Spring AMQPとRabbitMQを利用した簡単なメッセージ送受信を行いました。今回は一歩進んで主に受信側の実装として必要となるメッセージリスナーを、前回に引き続きSpring AMQPを利用して実装を行います。メッセージリスナーを実装することで、RabbitMQを利用する場合のメリットでもある非同期なシステムの実装が可能です。また、実際にRabbitMQとSpring AMQPを利用したアプリケーションを番環境で稼働させる場合に必要となる、冗長構成におけるポイントも紹介します。 対象読者 RabbitMQを利用したJavaアプリケーションの開発を行いたいと考えている人。 非同期なメッセージリスナを実装する SpringAMQPには非同期にメッセージを処理するため、SimpleMessageListnerContainerというコンポーネントが用意されてい

    Spring AMQPの実装と、AMQPを利用したアプリケーションの稼働
  • 【制作1日目】 池澤あやかさん、イベント会場がヒートアップ間違いなしのアプリを制作、まずはクライアント側処理です ~ Amazon S3 / Cognito / Kinesis / DynamoDB 登場

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    【制作1日目】 池澤あやかさん、イベント会場がヒートアップ間違いなしのアプリを制作、まずはクライアント側処理です ~ Amazon S3 / Cognito / Kinesis / DynamoDB 登場
    oasis440
    oasis440 2015/04/27
  • リリースフローを自動化して、本来の開発業務に専念できる環境を整備しよう

    人はミスをしてしまうもの 開発・運用に携わる人には釈迦に説法ではありますが、どれだけ詳細なリリース手順書を整備しても、ダブルチェックのルールを設けても、天才プログラマを何人集めてもミスや失敗は付き物です。経験則からもそうですが、特に稼働が高い時(ローンチ前後)、時間がなくて焦っている時(障害時)はミス・失敗が起こりがちです。 昨今のリリース手順は簡単に思いつくだけでも、 コンパイルの実行 ユニットテストの実行 カバレッジの取得 minify,compressの実行 依存関係の解決 など、複雑化しがちです。 手作業でリリースする場合、一つ一つの作業は微々たる時間で行えても、リリースに必要な作業を積み重ねると結構な時間がかかります。また、それを継続的に行っていくとなるとかなりの時間を取ってしまいます。 これらの作業を自動化することで、機能開発・研究開発と言うエンジニア来の業務が行える環境を整

    リリースフローを自動化して、本来の開発業務に専念できる環境を整備しよう
  • JavaでiOSアプリの開発が可能になるソフトウェア「RoboVM 1.0」がリリース

    「RoboVM 1.0」では、デバッガを更新し、JDWP(Java Debug Wire Protocol)のすべての機能が実装されている。また、RAMディスクキャッシュやHFS+ファイル圧縮、プロジェクトのテンプレートおよびMavenアーキタイプへのサポートを追加するとともに、テンプレートの利用が可能なEclipseプロジェクトウィザードを新たに搭載する。 さらに、robovm.xmlによるツールのサポートも提供しており、現状ではTextureAtlasをサポートし、今後は他のツールもサポートしていく。このほか、Objective-Cのバインディングの整理・簡素化も行っている。 「RoboVM 1.0」のリリースに合わせて、商用ライセンスも発表された。商用ライセンスでは、シミュレータおよびデバイス実機上でのデバッグに対応したJDWP準拠のデバッガや、より機能を向上したクラッシュレポート機

    JavaでiOSアプリの開発が可能になるソフトウェア「RoboVM 1.0」がリリース
  • Swiftでアプリの画面を作ろう! ~Objecive-Cとの比較で学ぶ

    はじめに 前回までにSwiftの基的な文法とクラスの使い方について説明しました。連載第4回では、実際にアプリの画面を作成する方法について説明します。 対象読者をObjective-Cが分かる方としている関係上、Objective-C自体の言語仕様やXcodeの使い方については解説を割愛する場合があることをご了承ください。同様にSwift自体の説明も必ずしも十分でない場合があります。そのような場合は末尾の参考文献等を参照してください。 対象読者 記事は、次の方を対象にしています。 Objective-Cの基的なプログラムが出来る方 Xcodeを使える方 画面の構成 iOSアプリの開発は、簡単に言うと画面の上に画像やテキストなどのコンテンツを配置して進めます。画面の上に配置して表示するという基幹のクラスはUIViewクラスです。そして画面上に配置されるコンテンツは全てUIViewクラスの

    Swiftでアプリの画面を作ろう! ~Objecive-Cとの比較で学ぶ
  • ジェイアイエヌ、センシングアイウェア「JINS MEME」のAPIを公開、アイデアコンテストも開始

    ジェイアイエヌは、2015年秋に発売を予定しているセンシングアイウェア「JINS MEME(ジンズ ミーム)」のAPIを「JINS MEME」アプリ開発者向けサイトで公開するとともに、アプリケーション開発者向けキットを配布するアイデアコンテスト「JINS MEME DEVELOPER IDEA PITCH CONTEST」を1月6日に開始した。 「JINS MEME」は、「自分を見る」をコンセプトに開発された世界初のセンシングアイウェアで、メガネとしての形状や機能はそのままに、JINSの独自開発による3点式眼電位センサと、6軸センサを通じて、眠気や集中度、体のバランスなど、従来のウェアラブル機器にはなかったユニークな生体データ(DEEP DATA)を取得できる。 今回公開したAPIは、「リアルタイムモード」(最大26.67Hz、ペリフェラルホスト間のBluetooth通信周期に準ずる)と、

    ジェイアイエヌ、センシングアイウェア「JINS MEME」のAPIを公開、アイデアコンテストも開始
    oasis440
    oasis440 2015/01/13
  • 今からでも遅くない JPAを学ぼう!(後編) オブジェクト間の関連を理解し、JPQLを使用する

    Java Persistence API(JPA)を使ってオブジェクトの世界とリレーショナルの世界を結び付ける方法を一緒に学んでいきたいと考えています。前編では1つのテーブルに対してCRUD操作を行いました。後編となる今回は、複数のテーブル間の関連をEntityモデルで表現する方法と、それらを扱うためのJPQLについて説明します。 はじめに JPA(Java Persistence API)とは、オブジェクトの世界からリレーショナルの世界へ、あるいはその逆への変換を行うためのAPIです。 前編では、JPAを使用した1テーブルに対するCRUD操作を行うための実装方法を説明しました。後編となる今回は、複数のテーブルに対するCRUD操作について解説していきます。 ディレクションとカーディナリティのトラウマ オブジェクトモデルの世界でEntity間の関連は、ディレクションとカーディナリティという2

    今からでも遅くない JPAを学ぼう!(後編) オブジェクト間の関連を理解し、JPQLを使用する
  • IoT時代を支えるプロトコル「MQTT」(前編)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    IoT時代を支えるプロトコル「MQTT」(前編)
  • オープンソースApache Tuscanyで楽しむSOA 第1回「Apache Tuscanyの紹介」

    はじめに この連載では、「オープンソースApache Tuscanyで楽しむSOA」として、オープンソースのSCA準拠製品である「Apache Tuscany」を取り上げ、SOA(サービス指向アーキテクチャ)の開発について説明していきたいと思います。第1回目の今回は、Tuscanyの誕生までの歴史と、Tuscanyとは何かを紹介していきます。 「楽しむ」という言葉に反応された方も多いでしょう。「SOAって楽しめるわけがない」「Webサービスの膨大な仕様書があるけどよくわからなかった」「簡単なことをやる割には、SOAPとかWSDLとか結構面倒だし」という声が聞こえてきそうです。そこなんです、当連載の目的は。Tuscanyは膨大なWebサービスの仕様書を読まなくても開発できます。Webサービスの面倒な部分はコンテナが勝手にやってくれます。JSONやATOMを使ったAjaxについてもほとんど知識

    オープンソースApache Tuscanyで楽しむSOA 第1回「Apache Tuscanyの紹介」
  • Javaのモックアップフレームワーク「mockito」でリクエスト/セッションを再現する

    しかし、開発推進セクションとしてリーダーを中心に「基的には必須ですが、相談には乗ります」と伝えてきました。もちろん、こちらとしても妥協することはありますが、基は書いてもらうように言い続けたことは良かったと思います。今ではテストケースは2,000ケース以上となり、毎日jenkinsからもallTestの結果が送られてくるようになったのですから。そんなやりとりをしていく中で、こんなFAQも生まれました。 Q:巨大なメソッドで1行だけ修正したのですが、そのメソッド内をすべてテストしないといけないの? A:基はテストしてください。 ただしトラブル対応など、どうしてもすぐにリリースしないといけない場合はその限りではありません。 結果的にこのようなFAQは、開発メンバーにJUnitの導入を受け入れてもらうために必要なことだったと思います。やはり、開発スピードを重視するチームにとって、やることが多

    Javaのモックアップフレームワーク「mockito」でリクエスト/セッションを再現する
  • ScalaのWebアプリケーションフレームワーク「Play Framework」入門 ~(1)環境構築とスタートアップアプリの作成

    はじめに 最近の関数型言語ブームの中で、高い生産性と高い品質を誇る言語であると注目を浴びているのが「Scala」です。今回は、このScalaのWebアプリケーションフレームワークである「Play Framework」(以下、Play2)について紹介します。 「Scala」はTwitterやLinkedInなどのサービスで利用されており、2013年は日で初めてScalaに特化した大規模なカンファレンスが開かれたり、さまざまな情報媒体で取り上げられたりと、ここ1、2年で急激に人気が高まっているのではないでしょうか。 Play2はJVM上で動作し、これまでのJavaで開発するエンタープライズアプリケーションで多く採用されたサーブレットやJSPのアーキテクチャを採用せず、独自のMVCモデルのアーキテクチャを持っており、スケールアウトしやすい構造になっています。 連載では、開発者にもフレンドリー