タグ

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

  • 関数型リアクティブプログラミング言語Elmに学ぶ フロントエンド開発の新しい形 【前編】

    前編では、Elm言語の基礎とFRPのエッセンスについてコードを通じて学びます。 後編では、実際にElmを使ってアプリケーションを作る方法と、その際に重要になるアーキテクチャを学びます。 なお、執筆時点でのElmのバージョンは0.15.1です。 注意! Elmはバージョン0.17で大きな変更がありました。現在は「関数型リアクティブプログラミング」のための言語ではありません。 参考:A Farewell to FRP(さらば FRP) また、言語自体のシンタックスやライブラリのAPIも以前とは大きく変わっています。これからElmを始める方は、必ず公式ドキュメントを参照してください。 公式ガイド FRPとは何か リアクティブプログラミングの直感的な説明としてよく挙げられるのが、Excelのような表計算ソフトです。 例えば、セルの間にC1 = A1 + B1という関係があるとします。 このように宣

    関数型リアクティブプログラミング言語Elmに学ぶ フロントエンド開発の新しい形 【前編】
    s5ot
    s5ot 2016/02/16
  • 「2016年に習得したいプログラミング言語」ランキング、1位は汎用性の高いJava

    事前に、20代~40代ITエンジニア1044名に行った、「2016年、仕事に関連したスキルアップをしていきたいですか」という質問には、352名が「とてもそう思う」、419名が「どちらかといえばそう思う」と、771名(73.9%)がスキルアップを望んでいる。 「そう思う」と答えたITエンジニアのうち529名に、「2016年にもっとも習得したいプログラミング言語」を質問したところ、1位がJava(108名:20.4%)、2位がC#(38名:7.2%)、3位がJavaScript(36名:6.8%)、4位がPHP(35名:6.6%)、5位がSwift(33名:6.2%)となっており、以下C++RubyVBAPython、Visual Basicが続く。 2位を大きく引き離して1位となったJavaについては、その理由として「大概の現場で使っている」「仕事の幅が広がる」「汎用的でOSに依存し

    「2016年に習得したいプログラミング言語」ランキング、1位は汎用性の高いJava
    s5ot
    s5ot 2016/02/03
  • Swiftから透けて見えるAppleのコンパイラ技術

    連載は、はてなエンジニアが、はてなのサービスを支えている技術や日頃注目している技術について解説するものです。Appleは毎年WWDCでいくつもの新規技術を発表していますが、筆者はその中でもObjective-Cの進化に特に注目していました。新たに追加されるAPIやサービスの前では、Objective-Cの進化はあまり注目されてきませんでしたが、実はここ数年の間も進化し続けていました。これにはAppleがコンパイラ技術にコミットしてきたことが大きく影響しています。今回は、Appleのコンパイラ関連技術を振り返り、Swiftにどう繋がるのかを解説します。 はじめに SwiftAppleによって開発された全く新しいプログラミング言語です。WWDC 2014で稲のように現れたこのプログラミング言語は、またたく間に世界中のモバイルアプリ開発者の注目を集めました。 Swiftは衝撃的な登場だった

    Swiftから透けて見えるAppleのコンパイラ技術
    s5ot
    s5ot 2015/06/30
  • 【デブサミ2015】19-E-4 レポート 人工知能Watsonなど多彩なAPIも使える! 「IBM Bluemix」が実現するリアルに迅速な開発

    セッション19-E-4の講演資料 開発を加速したいアプリケーション開発者の悩みを解決 2014年6月30日に正式版がリリースされたIBMアプリケーション開発環境「Bluemix」は、オープンなPaaSとして提供されている。その登場の背景には、開発の加速というニーズがある。 セッションで最初に登壇した松井学氏は「Web系、モバイルアプリやゲームの開発者は日々痛感していることだと思うが、リリースした直後はユーザーが飛びついてくるものの、しばらく経つと、ライバルがあらわれたり、バグが発覚したりなどで、だんだんユーザーが興味を失っていく」と語る。その対処法として、ユーザーのフィードバックを得て、それをアプリケーション開発に戻していく。瞬発的な獲得数より、アプリケーションを使い続けているユーザーをどれだけ多くするかが重要になる。 開発サイクルを速めたい開発者は、どんな悩みを抱えているか。大きなもの

    【デブサミ2015】19-E-4 レポート 人工知能Watsonなど多彩なAPIも使える! 「IBM Bluemix」が実現するリアルに迅速な開発
    s5ot
    s5ot 2015/04/03
  • お手軽データバインディングライブラリ「Vue.js」を使いこなそう(基礎編)

    はじめに Vue.jsは、シンプル・軽量・高速という特徴を持つデータバインディングライブラリとして最近注目を集めています。LINE社でもアプリ内WebViewの実装技術の選択肢の一つとしてVue.jsを採用しています。2014年11月27日にリリースされたLINEスケジュールは、Vue.jsを使って実装しているSPA(Single Page Application)の代表例です。 稿は日語記事がまだ少ないVue.jsの基機能の紹介を目的とした「基礎編」として、公式ドキュメントの内容を元に解説します(執筆時点のバージョンであるv0.11の内容です)。 Vue.jsとは Vue.jsは、双方向バインディングによるModelとViewをつなぐ仕組み「ViewModelレイヤー(MVVMパターン)」を提供するJavaScriptのライブラリです。 Vue.jsの基概念は以下のようになってい

    お手軽データバインディングライブラリ「Vue.js」を使いこなそう(基礎編)
    s5ot
    s5ot 2015/02/19
  • 1日1億超のトラフィックをさばく広告配信システム「AdStir」を支える技術とエンジニアの実態を探る

    そんな中、モーションビートが提供する「AdStir」(アドステア)は、特にスマートフォン向けに特化した広告配信サービスとして注目を集めているものの一つである。AdStirは、アドサーバ機能、複数のアドネットワークを一元管理して広告配信の最適化を行うイールドオプティマイゼーション(SSP)機能を持ち、近年特に関心が高いリアルタイム入札(RTB)にも対応したサービスとなっている。 スマートフォンユーザーの急激な増加に伴う多様な広告配信ニーズの増大により、その基盤となるシステムに対しては高い信頼性と可用性、そして高速性が求められている。AdStirでは、どのような技術と体制によって、その要求に応えているのだろうか。モーションビート、メディアプラットフォーム事業部でAdStirの開発に携わる、メディアプラットフォーム事業部の落合省治氏とfukata氏に話を聞いた。 LVSをベースにnginxとLu

    1日1億超のトラフィックをさばく広告配信システム「AdStir」を支える技術とエンジニアの実態を探る
    s5ot
    s5ot 2014/11/26
    “AdStir”
  • 「Jaql」を使ってMapReduceをより簡単に

    Jaql(a query language desired for JSON:JSON用に位置づけられたクエリ言語)は、JSON型式のデータを処理するためのクエリ言語で、Apache HadoopのMapReduceを処理するための実装が存在します。日語では「じゃっくる」と発音します。ジャッカルに似ているため、一部のサイトにはジャッカルの写真が掲載されていました。 もともとはIBMのアルマデン研究所で研究・開発され、オープンソースへ提案されました。原稿執筆時点では、Apache Incubatorプロジェクトになっており、Google Codeのサイトで開発が進められています。 IBMアルマデン研究所のサイト Apache Hadoop用実装のダウンロードサイト 記事執筆時点では、つい先頃リリースされた、Jaql 0.5.1をベースに解説しています。 1. JSONの基礎 JSON(

    「Jaql」を使ってMapReduceをより簡単に
    s5ot
    s5ot 2010/12/28
  • Selenium 0.7利用手順書(後編)

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

    Selenium 0.7利用手順書(後編)
    s5ot
    s5ot 2010/12/25
  • 今からでも遅くない これから始めるScala(前編)

    なぜ、いまScalaなのか? TwitterScalaを利用しているのは有名ですが、他にも位置情報を利用したfoursquareはScalaで構築されたLiftというWebフレームワークを利用していますし、GTDツールとして有名なRemember The MilkもScalaの利用を検討しているようです。 Scalaは、Java Virtual Machine(以下JVM)上で動くオブジェクト指向+関数型言語です。簡潔で柔軟な記述が可能であり、マルチコアを意識したライブラリがあり、JVMでのスケールメリットを享受できることが、これらの企業で採用に踏み切った理由であると考えられます。 Scalaは、非常にバランスの取れたプログラミング言語です。連載では、Scalaの基的な文法を解説しながら、オブジェクト指向と関数型言語を組み合わせたプログラミングスタイルについて、解説したいと思います。

    今からでも遅くない これから始めるScala(前編)
    s5ot
    s5ot 2010/06/22
  • blogeyeの実装に学ぶ、Amazon EC2/S3でのHadoop活用術

    はじめに こんにちは。Hadoop連載 第4回は太田さんに代わって大倉が担当します。 これまでの連載で、Hadoopによるデータ処理の概略については理解されていると思います。今回はHadoopを利用したシステムの実例ということで、ブログ分析を行う「blogeye」システムの概略と、その中でのHadoop利用法を紹介します。 また、blogeyeAmazonが提供しているEC2(レンタルサーバ)、S3(ストレージ)をHadoopと組み合わせて利用しているので、その辺りの導入方法についても紹介します。 これまでの連載 Hadoop、hBaseで構築する大規模分散データ処理システム Hadoopのインストールとサンプルプログラムの実行 複数マシンへHadoopをインストールする blogeyeとは 「blogeye」(ブログアイ)は日語のブログをクロール、リアルタイムに分析して、流行語と思わ

    blogeyeの実装に学ぶ、Amazon EC2/S3でのHadoop活用術
    s5ot
    s5ot 2010/06/07
  • Amazon EBSを活用してデータをバックアップしてみよう ~Amazon EC2/S3環境構築のすべて~

    今回は、「Amazon EC2」のインスタンスを停止してもデータが失われないストレージオプションである「Amazon Elastic Block Store(EBS)」の使い方や活用方法を紹介し、「Amazon EC2」を取り巻くデータバックアップ方法を紹介していきます。 はじめに 前回は、「Amazon EC2」をより実践的に扱うためのオプションや、GUIで簡単に操作できるツールの利用手順を紹介しました。 今回は、「Amazon EC2」のインスタンスを停止してもデータが失われないストレージオプションである「Amazon Elastic Block Store(EBS)」の使い方や活用方法を紹介し、「Amazon EC2」を取り巻くデータバックアップ方法を紹介していきます。 前提条件 今回も前回同様「Amazon EC2 Command-Line Tools」を利用した方法を紹介していき

    Amazon EBSを活用してデータをバックアップしてみよう ~Amazon EC2/S3環境構築のすべて~
    s5ot
    s5ot 2010/06/01
    やってみた
  • Amazon EBSを活用してデータをバックアップしてみよう ~Amazon EC2/S3環境構築のすべて~

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

    Amazon EBSを活用してデータをバックアップしてみよう ~Amazon EC2/S3環境構築のすべて~
    s5ot
    s5ot 2010/05/31
  • Javaで軽快に使える「軽量フレームワーク」特集 ~アプレットベースのRIAフレームワーク「Apache Pivot」(2)

    はじめに アプレットで最初に覚えるべきは「基的なコンポーネントの使い方」です。Apache Pivot(以下、Pivot)にも、さまざまなコンポーネントが用意されています。それらの中から、最も基となるものをピックアップし、使い方を見ていくことにしましょう。 コンポーネントの使い方といっても、「ただインスタンスを作って組み込んで表示できればOK」というわけではありません。入力関係は、入力された値を取り出して処理する手順も知る必要があります。また、例えば多数のコンポーネントをフォームとしてレイアウトし配置することも重要でしょう。またテキスト入力に関しては、入力された値をチェックするバリデーションについても知って置く必要があります。こうした「基的なコンポーネントを普通に利用できるための基礎知識」について説明していきましょう。 Pivotの基礎知識・導入などについては第1回の記事を参照してく

    Javaで軽快に使える「軽量フレームワーク」特集 ~アプレットベースのRIAフレームワーク「Apache Pivot」(2)
    s5ot
    s5ot 2010/05/20
  • Javaで軽快に使える「軽量フレームワーク」特集 ~本格的なRoRスタイルフレームワーク「Play!」(1)

    はじめに 今やWebのフレームワークと言えば、そのほとんどが「RoRタイプ」です。RoR(Ruby on Rails)がWebの開発に与えた影響は非常に大きく、その後生まれたフレームワークの多くがその影響を受けています。 しかし、Javaの世界に関しては、RoRはなぜか素通りしてしまいました。既にStrutsというデファクトスタンダードがあったために新しいMVCフレームワークが割り込む余地があまりなかったのか、あるいはLL(ライトウェイト)言語でないとRoRなスタイルは作りにくかったのか。ともあれ、その後、長い間、Javaでは「いわゆるRoRタイプ」と言えるフレームワークは登場しませんでした。 その流れを変えたのは、Groovyです。Groovyの登場により、JavaでもLL言語のような小回りの聞くコーディングが可能となりました。そのおかげで、ようやくJavaの世界にも遅まきながら新しい世

    Javaで軽快に使える「軽量フレームワーク」特集 ~本格的なRoRスタイルフレームワーク「Play!」(1)
    s5ot
    s5ot 2010/05/18
  • ScalaによるWebアプリケーションフレームワーク「Lift」とは

    Java仮想マシン上で動くオブジェクト指向+関数型言語として、Scala(スカラ)が最近注目を集めています。Scalaで構築されたWebアプリケーションフレームワークはいくつかありますが、 連載ではその中で比較的歴史のある(といっても2年程度ですが) フレームワークである、Lift(リフト)を紹介したいと思います。 はじめに Java仮想マシン(以下JVM)上で動くオブジェクト指向+関数型言語として、Scala(スカラ)が最近注目を集めています。 Scalaで構築されたWebアプリケーションフレームワークはいくつかありますが、 稿ではその中で比較的歴史のある(といっても2年程度ですが) フレームワークである、Lift(リフト)を紹介したいと思います。 対象読者 Javaは知っているが、Scalaも学んでみたいと思っている方 ScalaでのWebアプリケーション開発に興味がある方 必要な

    ScalaによるWebアプリケーションフレームワーク「Lift」とは
    s5ot
    s5ot 2010/03/17
  • Javaで軽快に使える「軽量フレームワーク」特集~リッチなGUIを構築する「Vaadin」(1)

    はじめに フレームワークと言うと、多くの人は「アプリケーション全体を設計するもの」というイメージでとらえているかもしれません。しかし、もちろんそれだけがフレームワークではありません。例えばHibernateのように特定の機能に特化したものも存在します。 最近になって見られるようになってきたのが、「Ajax利用のためのフレームワーク」です。例えば、「Google Web Toolkit(GWT)」などのことです。Javaを使って、Ajax利用のWebアプリケーションを構築するフレームワークです。素のHTMLだけでは実現できないリッチなGUIを、JavaScriptの複雑なコードを書くことなく実現できるフレームワークとして、GWTは広く使われつつあります。 これまで、サーバーサイドのことばかり考えていた感のあるフレームワークの世界に、こうした「クライアントサイドの構築」を重視したものが登場する

    Javaで軽快に使える「軽量フレームワーク」特集~リッチなGUIを構築する「Vaadin」(1)
    s5ot
    s5ot 2010/03/05
  • Google App Engine for Javaを使ってみよう! (9)XMPP Java API

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

    Google App Engine for Javaを使ってみよう! (9)XMPP Java API
    s5ot
    s5ot 2010/03/04
    XMPP
  • Google App Engine for Javaを使ってみよう!一覧

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

    Google App Engine for Javaを使ってみよう!一覧
    s5ot
    s5ot 2010/02/22
  • Google App Engine for Javaを使ってみよう! (2)Images Java API の使い方

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

    Google App Engine for Javaを使ってみよう! (2)Images Java API の使い方
    s5ot
    s5ot 2010/02/22
  • 新たな関数型言語「F#」

    はじめに F#とは、マイクロソフトリサーチが開発しているOcaml(Objective Caml)互換の関数型プログラミング言語(以降、関数型言語)です。他の.NET Framework対応言語と同じくVisual Studio(以降、VS)に統合される予定で、現在マイクロソフトから提供されているVS2010のベータ版にも搭載されています。 マルチコアプロセッサが主流になり、従来の科学やその他の学術研究分野に限らず、金融業、製造業など幅広い分野においてHPC(High Performance Computing)が普及してきました。それに伴い、並列処理や分散プログラミングを得意とし、高演算処理能力を発揮する関数型言語への期待は急速に高まりつつあります。関数型言語はその長所にもかかわらず、他言語との相互運用性の乏しさもあって長い間ごく限られた一部のデベロッパーにしか学習されていませんでした。

    新たな関数型言語「F#」
    s5ot
    s5ot 2009/12/20