タグ

ブックマーク / thinkit.co.jp (31)

  • Rustのエコシステムの拡がりを感じるデスクトップアプリのためのツールキットTauriを紹介

    メモリーセーフなシステムプログラミング言語であるRustの利用が拡大している。Microsoftは2019年に、これまで開発してきたソフトウェアに関する脆弱性の70%はメモリー関連のバグが原因だったと開示した。そしてメモリーセーフなソフトウェアの重要性を強調し、それ以降、Rustに対する投資を増大させている。そんな状況を背景にRustのエコシステムが拡大、ミドルウェアやシステムに近い部分のソフトウェア以外にもデスクトップアプリケーションを開発するためのツールキットやゲームを開発するためのエンジンが登場している。これまではバックエンドのシステム関連ソフトウェアだけが対象と思われてきたRustだが、デスクトップアプリケーションやモバイルアプリケーションもメモリーセーフなシステムの対象になってきたことがわかる。今回はデスクトップアプリケーション開発のためのツールキットTauriを紹介する。Tau

    Rustのエコシステムの拡がりを感じるデスクトップアプリのためのツールキットTauriを紹介
    Gln
    Gln 2022/12/17
  • Rustでコードを書くゲームエンジンのBevyを使ってインベーダーゲームを作る動画を紹介

    Rustはメモリーセーフを目指すシステムプログラミングとして知られているが、用途はそれだけに限らない。今回は、Rustゲームにも使えるプログラミング言語であることを、インベーダーゲームを作りながら解説する動画を紹介する。これはBevyというゲームエンジンを利用して開発するもので、RustのマスコットであるFerrisがシューターとして、ランダムに飛来してくるインベーダーをレーザーで攻撃して撃墜するというゲームだ。 動画は1時間20分程度という長さであるが、ゲーム開発の手法のひとつであるEntity Component System(ECS)によって徐々にゲームの要素を組み上げていくという内容になっている。ソースコードの構造はゲームの要素であるシューターをPlayer、インベーダーをEnemy、シューターが使うレーザー光線をLaserなどに分離して、それぞれ属性やロジックを組み上げていくと

    Rustでコードを書くゲームエンジンのBevyを使ってインベーダーゲームを作る動画を紹介
    Gln
    Gln 2022/12/17
  • MIT発の高度な数値処理をプログラミングできるJuliaの最新情報を紹介

    プログラミング言語Julia MITの研究者が開発したプログラミング言語Juliaのコミュニティは、オンラインカンファレンスとなる「JuliaCon 2020」を開催した。Juliaは、ハイレベルな数値演算やデータ解析など利用されるPythonの「遅い」という問題を克服するために作られた言語だ。2009年にMITの数理研究者4名によって開発が始められ、2012年にオープンソースとして公開された。プログラミング言語としては、まだ若いほうと言える。IT業界の他のカンファレンスと同様に、2020年のカンファレンスは7月29日から31日にかけてオンラインイベントとして実施された。今回はその中から「State of Julia」と呼ばれるキーノートセッションと、対話型の実行環境を実装するPluto.jlを解説したセッションを紹介する。 前述のとおり、Juliaは2009年に当時MITに在籍していた4

    MIT発の高度な数値処理をプログラミングできるJuliaの最新情報を紹介
    Gln
    Gln 2021/08/26
  • RustとGraphQLの連携で高速/シンプルなプログラミングを実現するJuniperとは

    これまでメモリーセーフなシステムプログラミング言語として紹介されることが多かったRustだが、このメモリーに関連する脆弱性に対して安全であるという特徴に加え、高速に実行できることやガベージコレクションが発生しないといった特徴も備えている。これらの特徴から、RustはWebのシステムにも十分に応用できると言える。 そしてWebでのアプリケーション開発にはサーバー側との通信はもちろんだが、それに加えてWebのフレームワークやデータアクセスライブラリーとのインテグレーションが必須となる。 一方Webアプリケーションにおいてデータのやり取りにはREST APIが使われてきたが、それをより効率的にしようとしてFacebookが開発したのがGraphQLだ。REST APIはWebがダイナミックに進化するにつれてさまざまなサイズのデバイスをサポートするためにも利用されるようになった。その半面、巨大なサ

    RustとGraphQLの連携で高速/シンプルなプログラミングを実現するJuniperとは
    Gln
    Gln 2020/07/09
  • 高速でメモリーセーフなプログラミング言語、Rustの特徴を紹介

    メモリーセーフな低レベルプログラミング言語Rustを数回に分けて紹介してきたが、今回はRustのコアチームの一員であるCarol Nichols氏による解説動画を紹介したい。これまでCloudFlaireのエンジニアSteve Klabnik氏によるWebAssemblyRustに関するセッション、DropboxがPythonからRustに書き換えた事例、Microsoftが開発したKubernetes上でWebAssemblyのコードを実行するKrustletの記事、IBMが社内システムをNode.jsからRustで書き換えた事例などによってRustがモメンタムを獲得しつつある大きな流れを紹介してきた。 今回紹介するセッションは、RustのコアチームのエンジニアでInteger 32というRustに特化したコンサルティング会社を経営するCarol Nichols氏によるもので、2019

    高速でメモリーセーフなプログラミング言語、Rustの特徴を紹介
    Gln
    Gln 2020/06/04
  • IBMがRustを使ってNode.jsのプロジェクトを書き換え。その背景とは?

    IBMがRustを使ったソフトウェア開発を加速している。RustはMozilla Foundationが開発をリードするオープンソースのプログラミング言語だ。Rust歴史はまだ浅いものの、DropboxやCloudflareMicrosoft、Facebookなどの多くの企業で利用が拡がっている。Microsoftが社内で2004年から統計を取った調査によれば、自社が開発したソフトウェア(C、C++を利用)における脆弱性のうち約70%がメモリーの操作に由来するとして、メモリーセーフなRustを採用する流れになっているという。

    IBMがRustを使ってNode.jsのプロジェクトを書き換え。その背景とは?
    Gln
    Gln 2020/05/30
  • DropboxがコアサービスをRustで書き換えた背景とは

    ファイルシェアサービスのDropboxが主要なコンポーネントをPythonからRustに書き換えた。その背景を探る。合わせて、Rustの普及についても紹介する。 ファイルシェアサービス(クラウドストレージ)のDropboxが、コアとなるサービスの一つをPythonからRustで書き直したことをブログで公開した。これはクライアントとサーバー間でファイルを同期させる重要なコンポーネントである「Sync Engine」と呼ばれるソフトウェアを、PythonからRustに変えた背景を解説したものだ。 参考:Rewriting the heart of our sync engine Rustは、Mozilla Foundationが開発をリードしているメモリーセーフなコードの生成を目指したオープンソースの低レベルプログラミング言語だ。ここで言う「低レベル」とは、アセンブラーやC言語と同様に抽象度が

    DropboxがコアサービスをRustで書き換えた背景とは
    Gln
    Gln 2020/05/16
  • HBaseの概要とアーキテクチャ

    はじめに ネットワークに接続されたセンサ機器の普及により、IoT(Internet of Things)が注目を集めています。IoTでは様々なセンサ機器が膨大なデータを生成するため、システムが管理するデータ量は急激に増加しています。このような膨大なデータを管理するためのデータストアとして、RDBと比較して高い性能とスケーラビリティを持つNoSQLが注目を集めています。 「Apache HBase」(以降、HBase)はNoSQLの1つで、センサ機器が生成する時系列データを管理するための有力なデータストアとして注目されています。連載では、HBaseを用いたシステム設計のノウハウと、1,000万個のスマートメータから収集したデータによる性能検証の結果を紹介します。 今回は、まずNoSQLにおけるHBaseの位置付けを説明し、その後でHBaseの概要とアーキテクチャについて説明します。 NoS

    HBaseの概要とアーキテクチャ
    Gln
    Gln 2018/10/09
  • インテルがAIにフォーカスしたイベント「インテルAI Day」でPreferred Networksとの協業を発表

    インテルが人工知能への取り組みをイベントにて解説。しかし最も目立っていたのはPreferred Networksとの協業、そして深層学習フレームワークであるChainerであった。 AI時代のインテルの戦略が一同に マイクロプロセッサのリーダーであるインテルは2017年4月6日、都内にて人工知能にフォーカスしたイベント、「インテルAI Day」を開催した。近年の人工知能はこれまでのルールベースから、機械学習、深層学習などの様々なアルゴリズムと膨大なデータによって、実用化にむけて大きく進化したことはもう周知の事実だろう。しかしそのシステムに使われているのは、高速な行列計算を多数のコアで並列処理するGPUだ。GPUのリーダーであるNVIDIAが「(NVIDIAは)ビジュアルコンピューティングからAIコンピューティングに移行する」と宣言するほど、GPU人工知能、それも深層学習に向いたプラットフ

    インテルがAIにフォーカスしたイベント「インテルAI Day」でPreferred Networksとの協業を発表
    Gln
    Gln 2017/07/01
  • オープンソースBI「Pentaho」徹底解説

    Copyright © 2004-2024 Impress Corporation. An Impress Group Company. All rights reserved.

    Gln
    Gln 2017/02/08
  • オープンソースBI「Pentaho」とは

    Pentahoとは Pentahoは、プロフェッショナル向けに作られたオープンソースのBI(Business Intelligence)ツールです。オープンソースでありながらベンダーによるサポートを受けられるのが大きな特徴です(サポート費用は安価です)。 PentahoはBIスイートであり、レポーティング、インタラクティブ(対話型)分析、ダッシュボード、データ統合/ETL(Extract/Transform/Load)、データ・マイニング、その他、BIプラットフォームとBIに必要なすべての機能が用意されています。 Pentahoはまた、オープンソース・コミュニティによる度重なる開発・再配布によって、先進技術と柔軟性を備えています。大規模なエンタープライズでの利用はもちろん、現場レベルでの簡易分析といった中小規模の導入にも向いています。BIスイートに含まれるすべての機能を利用する使い方のほか

    Gln
    Gln 2017/02/08
  • 巷で話題のDockerとは?

    Dockerが利用される背景 今、世界中の開発者やIT部門において「Docker」(ドッカー)が注目されています。もともと、DotCloud社(現 Docker Inc.)が、開発者やIT部門をターゲットとしたアプリケーションやOSの開発・配備を行うための基盤ソフトウェアとして開発され、2013年にリリースされました。このソフトウェアは、オープンソースソフトウェアの「Docker」として公開され、その使い勝手の良さから、多くの開発者、IT部門の管理者で瞬く間に利用されることになりました。Dockerは、仮想化ソフトウェアにみられるような性能面での劣化を極力排除したコンテナ技術の採用により、仮想化ソフトウェアに比べ、極めて集約度の高いITシステムを実現することができます。しかし、このDockerが注目される理由は、ハイパーバイザー型の仮想化ソフトウェアに比べてのハードウェア資源の消費や性能劣

    巷で話題のDockerとは?
    Gln
    Gln 2017/02/08
  • 開発環境の構築・共有を簡単にするVagrant入門

    フォルダの共有機能 Vagrantは、開発をスムーズにするためのフォルダ共有機能を備えています。これはVagrantで仮想マシンを起動すると、開発用PCと仮想マシン内のディレクトリを自動的に同期してくれるものです。これにより、PCで使っている自分の好きなエディタを使って、仮想マシン上のソースコードを編集できるだけでなく、手元のツールでテストや任意の処理ができます。仮想サーバ上で何か処理する際に、いちいちログインする必要がありませんので、開発作業に集中することができます。 それでは実際に共有することを確かめて見ましょう。「vagrant up」で仮想マシンを起動すると、Vagrantfileを実行したフォルダと仮想マシン内の「/vagrant」ディレクトリがリアルタイムで同期します。リスト7のように、仮想マシン内でディレクトリを移動して、ファイルを作成すると、手元のPC上にも同様のファイルが

    開発環境の構築・共有を簡単にするVagrant入門
    Gln
    Gln 2017/02/08
  • 開発環境の構築・共有を簡単にするVagrant入門

    Vagrantとは? Vagrantは、開発環境の構築と共有を簡単に行うためのツールです。どこでも同じ環境を再現できるように仮想マシン環境を管理する機能と、Atlasを通して共有する仕組みが提供されています。 VagrantとAtlasの関係 Vagrantは、アプリケーションやシステム開発のバックエンドを簡単にパッケージ化し、共有するためのツールです。このパッケージ化された環境を、「box」と呼ばれる単位で管理します。このboxには、標準で対応しているVirtualBoxをはじめ、AWSなどの各種マシン・イメージに対応したプラグインを介してアクセスします。またboxを共有するための機能としてAtlasという名前のインターネット上のサービスが提供されています。なお、Atlasは以前VagrantCloudと呼ばれていたものですが、現在はHashiCorpの他のツール(Packer、Terr

    開発環境の構築・共有を簡単にするVagrant入門
    Gln
    Gln 2017/02/08
  • CentOS 7のネットワーク管理基礎(前編)

    今回は、CentOS 7のネットワーク設定について取り上げます。新しい設定ツールの登場や、従来のCentOS 6まで慣れ親しんだネットワーク関連の基的なコマンド群の使用が非推奨になるなど、様々な変更点があります。CentOS 7から一新されたネットワークの具体的な設定手順、Tips等をご紹介します。 CentOS 7におけるネットワーク管理では、NetworkManagerによって行います。CentOS 6系では、Network Administration Toolに含まれるsystem-config-networkを使った管理やファイルを直接編集する運用形態が一般的でしたが、CentOS 7では、NetworkManagerを使った管理手法が推奨になりました。従来のNetworkManagerは、全てのネットワーク機能を制御できるわけではなかったため、/etc/sysconfig/n

    CentOS 7のネットワーク管理基礎(前編)
    Gln
    Gln 2015/01/08
  • CentOS 7のネットワーク管理基礎(後編)

    前回に引き続き、CentOS 7のネットワーク設定について取り上げます。新しい設定ツールの登場や、従来のCentOS 6まで慣れ親しんだネットワーク関連の基的なコマンド群の使用が非推奨になるなど、様々な変更点があります。CentOS 7から一新されたネットワークの具体的な設定手順、Tips等をご紹介します。 CentOS 7におけるリンクアグリゲーション 複数のネットワークカードを束ねて一つのネットワーク通信の可用性や性能向上を図るリンクアグリゲーションを実現するteamドライバーがCentOS 7で実装されています。現在の多くのサーバーは、ネットワークポートを複数持っており、このネットワークポートを束ねることで障害が発生してもネットワーク通信を継続させることができます。NICがチーミングされたCentOS 7が稼働するx86サーバーとネットワークスイッチの典型的な構成例を下図に示します

    CentOS 7のネットワーク管理基礎(後編)
    Gln
    Gln 2015/01/08
  • ソフトウェア作成において、美しさや優雅さより大切なこと

    APIデザインの極意 Java/NetBeansアーキテクト探究ノート NetBeans開発プロジェクト10年超の蓄積!API設計の経験や考察をまとめた一冊 この記事は、書籍『APIデザインの極意 Java/NetBeansアーキテクト探究ノート』の内容を、Think IT向けに特別公開しているものです。 この連載では、何回かに分けて書の内容を紹介します。今回は前回に続き、第1章の一部を掲載します。 美しさ、真実、優雅さ みなさんの多くが、前述の無知を称賛していることをもどかしく思っていると私は確信しています。重量級のクローラ・トラクタで積み上げられたゴミの山をどうやって優雅なものにできるのでしょうか。アプリケーションが醜い時にどうやって正しくすることができるでしょうか。そんなのはうまくいかないのではと思われます。しかしながら、うまくやることはできます。私達の多くが持っている先入観をもっ

    ソフトウェア作成において、美しさや優雅さより大切なこと
    Gln
    Gln 2014/09/19
  • JavaScriptでローカルファイルを自在に操る - File API

    ※ただし、SafariではFileReaderオブジェクトを、Internet Explorer 10ではreadAsBinaryStringメソッドをサポートしていません。 TIPS 053:ファイルの名前/種類/サイズを取得する Fileオブジェクトを利用することで、ローカルファイルの情報にアクセスできます。 例えば以下は、<input type="file">要素で指定されたファイルの名前やサイズなどを表示するサンプルです。 [リスト01]ファイルの情報を取得するコード(fileinfo.html) <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>HTML5 TIPS</title> <script> <!DOCTYPE html> <html> <head> <meta charset="UTF-8" />

  • いったん、水を差されたHTML5の現状と、将来について

    藤川真一(えふしん) FA装置メーカー、Web制作のベンチャーを経て、2006年にpaperboy&co.へ。ショッピングモールサービスにプロデューサーとして携わるかたわら、2007年からモバイル端末向けのTwitterウェブサービス型クライアント『モバツイ』の開発・運営を個人で開始。2010年、想創社(現・マインドスコープ)を設立。2012年4月30日まで代表取締役社長を務める Facebookが、HTML5をベースにしたアプリから、ネイティブアプリに舵を切った時に、「HTML5に賭けたのは失敗」という話が業界を駆け巡った。 それまでHTML5は、新しいWeb技術の希望の星のように言われており、将来を渇望されていたところに水を差された形になった。 そこで、改めて冷静に「HTMLとは何なのか?」ということを考え直してみた方が良いと思う。 HTMLとWebブラウザの技術的メリットは、 画像な

    Gln
    Gln 2012/10/23
  • Androidアプリの開発環境を作る

    はじめに はじめまして、テックファームの石立と申します。今回はThink ITとのご縁で記事を書かせて頂くことになりました。この記事が皆さまにとって役に立つ内容となるよう努力致しますのでよろしくお願い致します。 日で初めてAndroidを搭載したスマートフォン(HT-03A)が発売されてから2年ほど経過しました。この2年の間にAndroid搭載のスマートフォンは一気に普及し、いまや、新規に発売される携帯電話の多くがAndroid搭載のスマートフォンとなっています。 そんな中、Android搭載の流れはスマートフォンだけではなくタブレット端末にも広がり、富士通さんやパナソニックさんなどの数多くのメーカーからAndroidタブレットが発売されるようになりました。 連載では、Androidタブレット上で動くAndroidアプリの開発に焦点をあて、Androidアプリ開発の基礎からタブレット端