タグ

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

  • アプリ開発の流れを変える「GraphQL」はRESTとどう違うのか比較してみた

    注:単純なデータモデルでさえ、今後の維持や説明が必要になる6つものエンドポイントが含まれています。 あなたがクライアント側の開発者で、movies APIを使い、HTMLとjQueryで単純なWebページを作るとします。そのためには、映画と出演俳優・女優の情報が必要です。APIに必要な機能は揃っているので、データを取得します。 新しくターミナルを開いて以下を実行します。 curl localhost:3000/movies 以下の応答が返ってきます。 [ { "href": "http://localhost:3000/movie/1" }, { "href": "http://localhost:3000/movie/2" }, { "href": "http://localhost:3000/movie/3" }, { "href": "http://localhost:3000/mo

    アプリ開発の流れを変える「GraphQL」はRESTとどう違うのか比較してみた
  • 関数合成で書く!メンテナンスしやすいJavaScriptコードの書き方

    JavaScriptに関数型プログラミングでアプローチするメリットは、小さくて理解しやすい個々の関数を用い、複雑な関数を構築できることです。しかし、もっともエレガントなソリューションを見出すには、ときには逆の方向から問題を見ることが必要になります。 記事ではJavaScriptの関数合成について分析し、それによってなぜ判断が簡単でバグが少なくなるのか、段階的なアプローチで説明します。 ネスト関数 関数合成は、複数の単純な関数を受け取り、指定した論理的順序でサブ関数を実行する1つの複雑な関数にまとめる手法です。 結果を得るには、1つの関数を別の関数にネストし、結果を生成するまで、外部関数の操作を内部関数の結果上で繰り返し実行します。結果は、適用された関数の順序によって異なります。 これは以下のように、JavaScriptでよく見られる関数呼び出しを別の関数への引数として渡すプログラミング手

    関数合成で書く!メンテナンスしやすいJavaScriptコードの書き方
  • 業界に痕跡を残して消えたメーカー CG業界を牽引したSGI (1/4)

    今回のお題はSGI(Silicon Graphics, Inc.)である。前々回にも少し名前が出てきた。その前にもCray Inc.絡みでも名前が出てきている。 ちなみに先にお断りしておくと、SGIという会社は現在も存続している。ただしこちらの正式名称は“Silicon Graphics International Corp.”であり、この名称になったのは2009年のことである。 破産したSilicon Graphics, Inc.の資産をRackable Systemが買収するとともに、SGIの名称を生かすべく社名をSilicon Graphics International Corp.に変更したからだ。ちょうどSGIからCRAY部門を買収したTera Computer Co.がCray Inc.に改称したようなものだ。 今回の記事は2009年の旧SGIの破綻までを説明する。以降SGIと

    業界に痕跡を残して消えたメーカー CG業界を牽引したSGI (1/4)
  • はじめよう「Q#」で量子コンピューティング (1/2)

    マイクロソフトは2017年9月の「Ignite 2017」で、量子ゲート方式を採用した量子コンピュータの開発を進めていることを明らかにし、併せてVisual Studioで使える量子ゲート方式の量子コンピュータ向けプログラミング言語「Q#」を発表しました。12月には、Q#を使って量子コンピューティングを行うための開発キット(Quantum Development Kit)の無償提供を開始しています。 この開発キットには、Q#言語とコンパイラー、ライブラリのほか、皆様がお使いのx64 Windows PCでデバッグできる量子コンピュータのシミュレータ、Visual Studio 2017をQ#用に整備する拡張機能が含まれています。 今回は、この開発キットを使って、1.Q#開発環境を整備する手順、2.量子コンピューティングの手始めとなる「量子もつれを測定可能にする」手順を紹介します。 1.1

    はじめよう「Q#」で量子コンピューティング (1/2)
  • Amazon S3で1億2300万件の個人情報が誤って公開される事件

    セキュリティ調査会社UpGuardは12月20日(現地時間)、アメリカの1億2千万世帯以上の世帯情報が公開されていたと同社公式ブログで発表した。Amazon S3のアクセス権限の設定ミスが原因としている。 Amazon S3はアマゾンが提供するクラウドストレージサービス。これを利用するデータ分析会社のAlteryx社が “AWSの認証済みユーザであれば、誰でもアクセス出来る”よう権限設定をしてしまい、今回の事件に至ったという。AWS認証済みユーザは全世界で1000万人以上にのぼる。 誤って公開されていたデータには、住所や所得のほか、民族や趣味に至るまで、合計248項目の個人情報が含まれていたという。 公開されていたデータはExperian社から購入したとみられるものが含まれるとUpGuard社は報告。パートナー企業の情報管理不備で機密情報が公開されてしまった事例として、パートナー企業を含

    Amazon S3で1億2300万件の個人情報が誤って公開される事件
  • サーバーを介さないシステム開発・運用サービス提供開始

    スカイアーチネットワークスは10月26日、Amazon Web Service(AWS)を活用した、サーバーレスアーキテクチャーのシステム開発・運用サービスの提供を開始した。 スカイアーチネットワークスは、APN(AWS Partner Network)における「アドバンスドコンサルティングパートナー」として、ユーザーのコンテンツに応じたAWSの構築・運用サービスを提供している。 サーバーレスアーキテクチャーとは、サーバーを使わずにアプリケーションやサービスを構築・実行するアーキテクチャーのこと。サーバーの利用コストだけでなく、運用や保守のコスト、システムの開発工数を減らす効果も期待できるという。 今回のサービス提供によって、サーバーレスアーキテクチャーを活用するための導入コンサルティングからシステム構築・運用までの支援ができるとしてる。 実地検証およびコンサルティング費用は54万円から、

    サーバーを介さないシステム開発・運用サービス提供開始
  • それでもやっぱりJavaScriptを書きたくない人のためのコンパイル言語10

    フロントエンドからサーバーサイドまで、すっかりJavaScriptが幅を利かせている昨今。でもやっぱりJavaScriptは苦手、気に入らない開発者のために、コンパイル言語(altJS)を紹介します。 現代のアプリはかつての単純なWebサイトとは求められるものが違うのに、プラットフォームは相変わらずブラウザーのままで、Webアプリの核となる言語はJavaScriptです。 JavaScriptはすべての場面で最適なわけではなく、複雑なアプリでは特に弱点があります。回避するために生まれたのが、新しい言語とそれに合わせたコンパイラーです。JavaScriptのコードを書かずにブラウザー上で動作するコードが書け、JavaScriptの制約に縛られることもありません。 記事では、JavaScriptへのコンパイルによってブラウザーやNode.jsなどのプラットフォーム上で動作する優れた言語を10

    それでもやっぱりJavaScriptを書きたくない人のためのコンパイル言語10
  • ASCII.jp:

    アクセスランキング トピックス JALプログラム激変。改善点と改悪点をまとめてみた sponsored 4万円台で買えちゃう31.5型曲面4Kディスプレー、弱点はないのか検証した PC コロナ禍の裏で中国で爆発的に増えたRISC-Vコアの出荷数 RISC-Vプロセッサー遍歴 トピックス 高すぎるハワイ旅行、少しでも滞在中に費を浮かせるには? スマホ Snapdragon 8 Gen 3搭載のシャオミ最新スマホ「Xiaomi 14 Pro」がアキバの店頭に登場 AI 画像生成AI「Stable Diffusion XL」が簡単に使える「Fooocus」。画像から画像が作れる「Image Prompt」が便利です PC 2025年以降もWindows 10に延長サポートがある可能性!? 対応ハードを絞る真の命は次期Windows? トピックス ヨドバシ福袋企画「夢のお年玉箱」抽選受付スター

  • Swift言語で独自の関数を定義してその役割を学ぶ

    前回に引き続き、「Swift Playgrounds」のHour of Codeのコースを使って、プログラミングを学んでいきましょう。今回は関数や繰り返しについて学びます。 レベル4から次に進むと、最初に関数についてのイントロダクションが始まります。前回はコマンドが何かをするための指示や命令のことであることを学び、並べる順番を考えました。関数とは、そうしたコマンドをいくつかまとめたもので、名前を付けて定義します。名前を付けた関数は、あとからいつでも呼び出して使うことができます。関数が呼び出されると、関数の中に定義したコマンドが実行されます。 レベル5:新しい挙動を作る 今回のレベルでは、前回出てこなかったturnRight( ) (右を向く)を、これまでに使ったコマンドだけで作っていきます。

    Swift言語で独自の関数を定義してその役割を学ぶ
  • フェードインして回転して拡大してフェードアウトするプログラム

    このところ、なんらかの「動き」を表現できるプログラムを試すということで、前回まではUIViewPropertyAnimatorというクラスを利用したビューのアニメーションを扱ってきました。これは、手軽に扱えるというメリットは大きいものの、アニメーションとしての表現力には自ずと限界がありました。もちろん、主にユーザーインターフェイスの構成要素に動きを与えることで、画面の遷移などの際の変化をわかりやすく示すことを目的としたものなので、当然と言えば当然です。 今回からは、iOSのさまざまなアニメーション機能の中でも、特にゲームに使うことを意識して作られたSpriteKitを使っていきます。ゲーム用のアニメーションには大別すると2D用と3D用がありますが、SpriteKitは2D用のものです。2Dゲーム用のフレームワークというと、一般にはCocos-2Dが有名です。iOSでもCocos-2Dを利用

    フェードインして回転して拡大してフェードアウトするプログラム
  • 心拍センサー付き完全ワイヤレスイヤフォンに見た活動量計の可能性 (1/2)

    Jabraのトゥルーワイヤレスイヤフォン「Elite Sports」は、心拍センサー付きの高級スポーツモデル。音は大したことはないだろうと高をくくっていたら、1万円台後半の売れ筋機種と互角に渡り合える実力を持っていたのが驚きだった。 機能的にもほぼ満点。1mの水中に30分間没しても平気なIP67の防塵防水性能、イヤフォンを外さずマイク経由で外の音が聞ける「ヒアスルー」、最後に接続したポイントを地図に表示する「ヘッドホンを探す」、ヘッドセット利用時に自分の声をモニターする「側音」、そして単純操作で望みのEQカーブが得られる強力な音楽用イコライザーなどなど。 格的スポーツモデルとしての機能を持ちつつ、音質的にも言うことなしという完璧に近いイヤフォンだが、問題は価格。e☆イヤホンで3万2800円。はっきり言って、ちょっと高い。 が、このエクストラチャージは他社製品にはない心拍センサーを内蔵して

    心拍センサー付き完全ワイヤレスイヤフォンに見た活動量計の可能性 (1/2)
  • Volta版GeForceはTeslaの構造変更で実現か? NVIDIA GPUロードマップ (1/3)

    GeForce GTX 10シリーズを拡充 まずは既存の製品のアップデートから。昨年8月にNVIDIA TITAN Xを発表したところまでは前回解説しているので、その後である。10月にまずGP107コアのGeForce GTX 1050 TiとGeForce GTX 1050が投入された。 実際に店頭に並んだのは10月下旬であるが、GeForce GTX 1050 Tiで2万円、GeForce GTX 1050だと1万5000円前後が相場になっており、購入しやすい価格に落ち着いている。今年2月には(やや高めではあるが)1スロットモデルも投入されるなど、製品選択の幅も広い。 消費電力が75Wと低めなこともあって、補助電源なしで使えるのがうれしいというユーザーも多いだろう。 GPUコアはTSMCの16FF+ではなく、Samsungの14LPPを利用して製造されている。バリュー向けに関しては、こ

    Volta版GeForceはTeslaの構造変更で実現か? NVIDIA GPUロードマップ (1/3)
  • 人工知能とPythonで書いたBOTとジャパニメーションことはじめ

    ひさしぶりに自分の書いたを読んでみた。1991年に単行で出させてもらった『近代プログラマの夕』(ホーテンス・S・エンドウ著、アスキー刊)である。なぜ、そうなったのかというとの中身をそのままつぶやくマストドンBOTを作りたいと思ったのだ。マストドンなら1回500文字つぶやける。日語のでは、1つの段落が500文字を超えることは滅多にない。だったらをつぶやくBOTを作るとどうなるか? やってみたいとなったわけだ(このコラムの「いちばんやさしい「マストドン」(Mastodon)の話」でも書きました)。 マストドンのBOTは、RubyPythonで作っている人が多いようだが、私の場合はいま勉強中のPython向けに用意されている「Mastodon.py」を使ってみた(当に簡単に書けてしまうのでこの原稿の最後に紹介しておくことにしよう)。 ところで、は、その人の頭の中にあるものをコピ

    人工知能とPythonで書いたBOTとジャパニメーションことはじめ
  • Vue.jsとAxiosなら驚くほど簡単に作れる!外部APIを使ったWebアプリの実例

    ReactAngularと並び、ここのところ人気が高まっているVue.js。Axiosを組み合わせれば外部APIを使った Webアプリも手軽に開発できます。 JavaScriptのアプリケーションを作っていると、よくリモートソースからデータを取得したり、APIを使いたくなったりすると思います。最近、公開されているAPIを見ていたら、ソースからデータを取得して処理するのに良いものがたくさんあることに気付きました。 Vue.jsを使えば提供される機能を使ってアプリを構築し、数分のうちにコンテンツの配信を始められます。 ニューヨークタイムズのAPIからデータを取得して、その日のトップニュース記事を表示し、ユーザーが興味があるカテゴリのニュースを選びだせる簡単なニュースアプリの作り方を説明します。この記事の全コードはここにあります。 アプリの出来上がりは下の図のようになります。 この記事では、V

    Vue.jsとAxiosなら驚くほど簡単に作れる!外部APIを使ったWebアプリの実例
  • 縦表示でも横表示でもボタンを中央に固定するプログラミング

    ここしばらくはマップキットの機能をあれこれと試すプログラミングに勤しんできました。マップキットを使えば、少ないコードでいろいろなタイプの地図が表示でき、簡単に見栄えのするプログラムが書けるのは確かです。しかしそれだけに、特に初心者にとってはプログラムによって実際に何が起こっているのか把握しにくいという難点もありました。 またそれ以前から、ウェブビューやテーブルビューなど「なんとかビュー」という、いわば既製品のビューを扱ってきました。その場合「SwiftによるiOSプログラミングの基」という路線からは少し離れてしまっていた感が拭えません。そこで今回から、いったん基に戻って話を進めていくつもりです。 今回はiOSのフレームワークを使ったプログラムとしては、これ以上シンプルなものはないというほと単純なものを取り上げます。画面の真ん中にボタンを1つ配置し、それをタップするとボタンの色がランダム

    縦表示でも横表示でもボタンを中央に固定するプログラミング
  • Go言語のメモリ管理

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

    Go言語のメモリ管理
  • JavaScriptでシェルスクリプトを書いて面倒な作業はサクッと片付ける

    クライアントのWebサイトをSSLにアップグレードしました。証明書はワンクリックでインストールできるので難しくなかったのですが、SSLへ移行後、混在コンテンツの警告がたくさん出ました。WordPressのサイトなので、修正にはテーマディレクトリのアセットをHTTP経由でインクルードしているファイルをすべて特定する必要がありました。 以前は簡単なRubyスクリプトで自動化して対処していました。Rubyは私が最初に覚えた言語で、このようなタスクに適しているからです。しかしNodeでコマンドラインインターフェイスを作る方法で紹介したとおり、JavaScriptはブラウザーだけの言語ではなくデスクトップのスクリプトにも使えます(ほかにも用途はたくさんあります)。 この記事では、JavaScriptで再帰的にディレクトリ内のファイルにアクセスして特定の文字列を検出する方法を解説し、シェルスクリプトを

    JavaScriptでシェルスクリプトを書いて面倒な作業はサクッと片付ける
  • 1