タグ

javascriptに関するWackyのブックマーク (501)

  • ECMAScriptの浮動小数点数の丸め仕様がスゴい - hnwの日記

    ECMAScriptの浮動小数点数の丸め関数である Number.prototype.toFixed() について調べてみたところ、浮動小数点数をわかっている人が作った硬派な仕様だと感じたので、解説してみます。 浮動小数点数の丸めの善し悪しについて 私はプログラミング言語の浮動小数点数の丸め処理に興味があり、過去に関連記事を30以上書いています。こうした活動から得られた知見として、良い丸め関数には次のような性質があると考えています。 仕様がシンプルで直感的であること 仕様が抜け漏れなく文書化されていること バグを作り込みにくい仕様であること どれも良い関数の一般論のような話ですが、丸め処理に限って言えば簡単な話ではありません。そもそも浮動小数点数の性質が人の直感に反するため利用者にとっても実装者にとっても罠が多く、結果として上の条件を満たせないことが多いのです(私が面白いと感じるポイント

    ECMAScriptの浮動小数点数の丸め仕様がスゴい - hnwの日記
  • 「Node-RED」がつなげるWeb系エンジニアとIoT

    IoTソリューションの開発に用いられているフローベースの開発環境「Node-RED」。IBMによって生み出された後、2016年10月にLinux Foundationに移管されてから、一気に普及が進んでいる。 今回は久々に開発環境の話を。取り上げるのは「Node-RED」である。Node-REDはもともと、IBMの社内コンテストで開発されたフローベースの開発ツールだ。2014年にIBMがクラウドの「Bluemix」をリリースする際に、標準搭載のOSS(オープンソースソフトウェア)として提供されるようになった。 このままだと単にBluemix専用のソフトウェアということになってしまうのだが、2016年10月にこれはLinux Foundationの傘下に移動した。もっと正確に言えば、Node-RED自身はJavaScriptで構築されているのだが、IBM以外にも多くの企業がJavaScrip

    「Node-RED」がつなげるWeb系エンジニアとIoT
    Wacky
    Wacky 2018/10/20
    “Raspberry Pi上でNode-REDを動かして、ここにJohnny-FiveのNodeをインストールすれば、Raspberry Piの入出力ポートをNode-REDから直接アクセスできるようになり、これを使ってデータの収集とか周辺機器の制御といったことを行えるよ
  • まだXMLHttpRequestを使ってるの? fetchのすすめ

    JavaScriptでWeb的なプログラムを書いたことがある人は、XMLHttpRequestを使った経験もあるのではないかと思います。XMLHttpRequest,略してXHRは、JavaScript(+DOM)でサーバーとHTTP通信をするための唯一の方法としての地位を長らく保ってきましたが1、ここ3〜4年でより新しいAPIであるfetch APIが登場しました。fetch APIが出たばかりの頃は何だこのおもちゃはと正直思いましたが、いつの間にか仕様が充実していい感じになっていました。 皆さんは、この新しいAPIであるfetchをちゃんと使っているでしょうか。それとも、古いXHRを未だに使っているのでしょうか。この記事では、未だにfetchを使っていない人を主な対象としてfetchの使い方を解説します。(XHRと比較しながら解説するので$.ajaxとかaxiosとかしか使ったことがな

    まだXMLHttpRequestを使ってるの? fetchのすすめ
  • JavaScript のスクリプトインポートを正しく使い分けようという話

    JavaScript の文脈で「スクリプトをインポートする」といった場合、色々な可能性が考えられます。現場での混乱を避けるためにも用語を正しく使い分ける必要があります。そこで記事では JavaScript のスクリプトインポートについて整理します。 更新履歴 2019/12/05 Dedicated Worker の ES Modules サポートについて追記しました。 2018/09/08 Worklet の type とその上での dynamic import について追記しました。 Service Worker 上での importScripts について追記しました。 Classic Script と Module Script スクリプトインポートを理解するには、スクリプトについて正確に理解する必要があります。HTML の仕様では、スクリプトには Classic Script

    JavaScript のスクリプトインポートを正しく使い分けようという話
  • LKL.js: Linux kernelを直接JavaScript上で動かす - Blog posts by @retrage

    Linux kernelを直接JavaScript上で動かした. つまり,JSLinuxのようにEmulatorをJavaScriptで作成し, その上でLinuxを動かすのではなく, JavaScriptで書かれたLinuxを生成し,それを動かす,ということである. LKL.js Architecture リポジトリは以下の通り. https://github.com/retrage/linux/tree/retrage/em-v2 なお lkl.js Demo にデモを用意した. SharedArrayBufferを有効にして試してみてほしい. Linux Kernel Library (LKL) ここでは,Linux kernelをLibrary OSの形態の1つであるAnykernelにする Linux Kernel Library (LKL)を利用する. LKLはLinux ke

    LKL.js: Linux kernelを直接JavaScript上で動かす - Blog posts by @retrage
  • JavaScriptでゲームシナリオを快適に実装する(デモ有) - Qiita

    以下のような人向けの、実践的なサンプルやデモを含む記事です。 ゲームのシナリオデータをJavaScriptできれいに書き下したい デモ ゲームの敵・NPC等の動きをJavaScriptできれいに書き下したい デモ Flash や AfterEffects のタイムライン編集でやるようなアニメーションを JavaScript で実装したい デモ1 デモ2 Web UIのチュートリアルとして「実際に操作している様子」を画面上で見せる機能を実装したい デモ async-await の同期版みたいなものが欲しい ジェネレータの有用性を理解したい 「普段はJavaScriptフロントエンド開発に使用している」という読者を想定して書いていますが、例えば async-await についてよく知らないという方は、それに関する記述を読み飛ばしていただいて構いません。 事の発端 今年の新年会で同僚から「エイ

    JavaScriptでゲームシナリオを快適に実装する(デモ有) - Qiita
  • 若い世代が知らない2000年代のHTMLコーディングの地獄 - ICS MEDIA

    ウェブの黎明期である2000年頃と比べてはるかにHTMLはコーディングしやすくなりました。10〜20年前のHTMLコーディングはどのようなものだったのでしょうか。 この記事では、NetscapeとIEのブラウザ戦争に決着がついた後の、IE6が全盛期となった2000年代のウェブサイト制作を振り返ります。懐かさに浸たり、現代のウェブの成り立ちに通じる温故知新な情報として参照ください。 テーブルレイアウト / spacer.gif XHTMLCSSが普及するまではテーブルレイアウトが一般的でした。テーブルレイアウトとはtableタグを使い、格子状にレイアウトしていく手法です。テーブルレイアウトは、デザインファイル(Image ReadyやFireworks)から画像を切り出す「スライス機能」と相性のいい方法でした。 <table border="0" cellspacing="0" cellp

    若い世代が知らない2000年代のHTMLコーディングの地獄 - ICS MEDIA
  • ユーザのブラウザで起きた JavaScript のエラーを収集する - Qiita

    なぜエラーを収集するのか バグ探し バグを見つけて潰していくため ユーザからのバグ報告の補助 ユーザに報告の負担をかけないため エラーを取得する 取得タイミング window.onerror Promise のエラー フレームワーク毎の特定のタイミング window.onerror window.onerror にメソッドを登録しておくことでエラー発生時にそのメソッドが呼ばれる。try-catch でハンドリングしていないエラーが流れてくる。

    ユーザのブラウザで起きた JavaScript のエラーを収集する - Qiita
    Wacky
    Wacky 2018/03/10
    “window.onerror にメソッドを登録しておくことでエラー発生時にそのメソッドが呼ばれる。try-catch でハンドリングしていないエラーが流れてくる。”
  • JavaScript - Markdownパーサーのshowdown.js、markdown-js、markedを簡単比較 - ぼっち勉強会

    主に比較したいこと 使い方 変換結果の見た目の印象 table記法を解釈できるか コードブロックの解釈 動作確認の前提 MarkdownはQuick Markdown Exampleから一部引用しています 使用したテキストはGistに置いておきます CSSTwitter Bootstrapを使っています クライアントで使う場合を想定しています(=node.jsでの使用例ではない) HTMLはどれも次のコードを基としています <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <link href="bootstrap.min.css" rel="stylesheet"> </head> <body> <div class="container"> <div id="content">hoge</div> </di

    JavaScript - Markdownパーサーのshowdown.js、markdown-js、markedを簡単比較 - ぼっち勉強会
  • Home - JsDown-Strap

    The most important thing is to decide on the direction of development - games, websites, software. Then make a choice of language. Hi all, I’m happy to welcome you to my blog! My name is Herr Lawrence. I am a teacher at one of the largest IT schools in the country. My profile is programming languages. I also do programming in parallel and write different types of websites. In my blog you will lear

    Home - JsDown-Strap
    Wacky
    Wacky 2018/01/25
    翻訳: 195/5000 Strapdown.jsを使用すると、優雅なMarkdownドキュメントを簡単に作成できます。 サーバー側のコンパイルは不要です。 これを使用して、プロジェクトをすばやく文書化し、チュートリアル、ホームページなどを作
  • イマドキのJavaScriptの書き方2018

    PySpa統合思念体です。これからJavaScriptを覚えるなら、「この書き方はもう覚えなくていい」(よりよい代替がある)というものを集めてみました。 ES6以降の難しさは、旧来の書き方にプラスが増えただけではなく、大量の「旧来の書き方は間違いを誘発しやすいから非推奨」というものを作り出した点にあります。5年前、10年前のやウェブがあまり役に立たちません。なお、書き方が複数あるものは、好き嫌いは当然あると思いますが、あえて過激に1つに絞っているところもあります。なお、これはこれから新規に学ぶ人が、過去のドキュメントやコードを見た時に古い情報を選別するためのまとめです。残念ながら、今時の書き方のみで構成された書籍などが存在しないからです。 たぶん明示的に書いていても読み飛ばす人はいると思いますが、すでに書いている人向けではありません。これから書くコードをこのスタイルにしていくのは別にいい

    イマドキのJavaScriptの書き方2018
  • KEditor - 複雑なデザインもこなせるWYSIWYGエディタ

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました 技術者以外の方でWebページを作成する時にはオーサリングツールを使うのが一般的です。また、ちょっとしたコンテンツの修正であればWYSIWYGエディタを使いますが、あまり凝ったデザインには対応できません。 そこで使ってみたいのがKEditorです。Webベース、ドラッグ&ドロップで自在にコンテンツを作成できます。 KEditorの使い方 メイン画面です。左側にあるパーツをドラッグ&ドロップで配置します。 コンテンツはツールバーがあるWYSIWYGエディタで編集できます。 枠を追加した後、コンテンツを配置します。 動画や地図など様々なコンテンツが用意されています。 リンクを追加する際の表示です。 KEditorはWebページ制作に不慣れな方であってもすぐに使いこなせるでしょう。2カラム

    KEditor - 複雑なデザインもこなせるWYSIWYGエディタ
    Wacky
    Wacky 2017/11/04
    “KEditorです。Webベース、ドラッグ&ドロップで自在にコンテンツを作成できます。”
  • ファミコンのエミュレータを書いた - undefined

    概要 ファミコンのエミュレータをJSでだらだらと作ってた。そこそこ遊べるようになったので公開しておく。技術的な内容は、またどこかで発表したり、Qiitaなどにまとめたい。(忘れないうちに。需要があるかは怪しいが。) 随分昔に作ってみたいなーと思いFPGAでの実装を開始したんだけど、早々に挫折した覚えがある。今思うとFPGAの場合タイミングの問題が付き纏うのでJSで書くより圧倒的に難易度も高いし、ハードエミュレータを実装するにしても前段階としてソフトウェミュレータを実装するのが定石っぽいので無謀だったっぽい。 ひとまずMapper0という基的なカセット形式のみに対応し、スーパーマリオブラザーズがそこそこ遊べるくらいを目標とした。 成果物 github.com ファミコンのスペック MPU 6502(RP2A03), 8bit WRAM2KB VRAM 2KB 最大発色数 52色 画面解像度

    ファミコンのエミュレータを書いた - undefined
    Wacky
    Wacky 2017/09/20
    “nes用のテストROMを発見してテストが通るようにデバッグを開始した。”
  • やばい、iOSにネイティブアプリ要らなくなるかも。SafariもPWAに対応する可能性 - Qiita

    これ以上は長くなるため後述. Chromeは既に,Safariもようやく 上記の通り,Service WorkersがPWAでも最重要な機能の一つである.Chromeでは既に対応済み. しかしSafariが対応しておらず,世間的にはモチベーションの上がらない状況であった(やちまもその一人である). Safariにおいて,Service Workersの実装状況 No active development が Under Consideration になったのは2015/12/041のことである. 20ヶ月という永遠とも呼べる時を経て,2017/08/032にようやく In Development となったわけであった. ちなみにMicrosoft Edgeでは既に開発中34である. だから何なのか SafariにService Workersの実装がなされると,一気にウェブアプリへの移行が

    やばい、iOSにネイティブアプリ要らなくなるかも。SafariもPWAに対応する可能性 - Qiita
  • LINE BLOGアプリ開発で contenteditable と戦った話

    こんにちは、LINE Fukuoka の tarunon です。LINE BLOG iOSのリリースまで、クライアントとエディタの開発を担当していました。昨年11月に、LINE BLOG は一般開放と、iOS/Androidクライアントの公開を行いました。ほぼ1年がかりの開発だったのですが、クライアント側で最も大変だったのがエディタの開発でした。この記事では LINE BLOG のエディタの根幹を支えている Workaround について解説します。普段は Swift を書いていて、ほぼその話しかしていないのですが、今回は HTMLJavaScript の話になります。 LINE BLOG はこういったサービスです。 LINE BLOG - 芸能人・有名人ブログ LINE BLOGエディタはWebブラウザの上で動作しています。開発は iOS/Android 共通のソースコードで、 i

    LINE BLOGアプリ開発で contenteditable と戦った話
    Wacky
    Wacky 2017/04/29
    “もし video が div の中にひとつだけ存在した場合は、video にカーソルを合わせると、次の行にカーソルが飛んでしまう、という挙動を見ることになります。”
  • 【2013年注目必至!なCSS仕様】CSSフィルタ、これはすごい!(デモ付き) | OpenWeb

    以前から気になっていたCSSフィルタについて、ちょっと調べてみました。 結果、あまりにお手軽に、効果絶大なエフェクトをかけられることが判明して、ちょっと興奮しています。これはすごい! CSSフィルタは、SVGで従来から規定されていたFilter Effectsを、CSSの世界に持ち込んだものです。 CSSSVGのワーキンググループが共同して立ち上げたCSS-SVG Effects Task Force (FX TF)により、「Filter Effects 1.0」という仕様として策定が進められています。 この仕様によって新しく導入されるCSSプロパティはいくつかありますが、主なものはfilterプロパティです。 filterが素晴らしいのは、ぼかしやドロップシャドウといったエフェクトを、CSSのみで簡単に指定することができるからです。 例えば、要素にぼかしをかけたい場合は、以下のようなプ

  • 3D ゲームも簡単に作れる! tmlib.js x three.js(WebGL) で 3D プログラミング出来るようにしてみた!! | TM Life

    私の方でずっと作っている JavaScript ライブラリ『tmlib.js(ティーエムリブ ジェイエス)』ですが, この度, 晴れて『three.js』と結ばれることとなりました. っとはいっても一方的にですけどねw tmlib.js は, 2Dゲームだったりツールを作る機能は揃っていましたが 3D に関する機能は今までありませんでした. WebGL をラップして自前で作ったりもしていたのですが, なかなかピンとこず… そこで今回は割りきって three.js をそのまま取り込んでtmlib.js の基インターフェースと同じように使えるようにしてみました. サンプルをいくつか用意したので遊んで頂けると幸いです. もちろん jsdo.it で♪ Table of contents tmlib.js とは? three.js とは? tmlib.js x three.js で作ったサンプル

  • Facebookアプリを、HTML5でどうしてサクサクにできたのか。Sencha Touch開発チームが用いた3つのテクニック

    Sencha Touchの開発チームがHTML5で高速に動作するFacebookアプリを開発したことを紹介した1つ前の記事 「Facebookのモバイルアプリが失敗した理由はHTML5のせいじゃない。HTML5でサクサク動くFacebookアプリを作って見せたSencha Touch開発チーム」は、非常に多くの読者に注目されました。 この記事で紹介したSencha Touch開発チームのブログ「The Making of Fastbook: An HTML5 Love Story」の後半では、どのようなテクニックを用いて高速なHTML5アプリケーションを実現したのかも紹介されています。 この記事では、その3つのテクニックについてポイントを紹介したいと思います。タイムラインやニュースフィードのようなユーザーインターフェイスを備えたモバイルアプリケーションは、これから広く開発されていくことにな

    Facebookアプリを、HTML5でどうしてサクサクにできたのか。Sencha Touch開発チームが用いた3つのテクニック
  • WebGLの能力を引き出すプログラマブルシェーダー

    WebGLの能力を引き出すプログラマブルシェーダー Webページ上で利用できるグラフィック技術を紹介する連載も、ついに最終回となりました。フィナーレを飾る題材は、WebGLの最も強力な機能である「プログラマブルシェーダー」です。前回(多彩な表現力のWebGLを扱いやすくする「Three.js」)と同様にThree.jsの使用を前提として、プログラマブルシェーダーの基的な書き方と、Three.jsを各機能に組み込む方法を解説します。 前回はThree.jsの代表的な機能を解説し、いずれもWebGLでなければ実現の難しいものばかりでした。しかし、実はそれでもWebGLの能力のごく一部を使っているにすぎません。独自のプログラマブルシェーダー(カスタムシェーダー)を書くことができれば、描画処理の大部分を柔軟にカスタマイズでき、望み通りの表現を得られます。Three.jsの使い方に慣れたら、ぜひ

    WebGLの能力を引き出すプログラマブルシェーダー
  • JavaScript のスコープチェーンとクロージャを理解する - tacamy--blog

    前回で JavaScript のスコープの基がわかったので、今回はスコープチェーンとクロージャを勉強してみました。 Call オブジェクトとクロージャの理解がかなり大変でした・・。 変数オブジェクト JavaScript で変数の宣言と参照をするということは、変数オブジェクトを読み書きするということです。 変数オブジェクトというのは、key と value による変数管理専用のハッシュテーブルのこと key が変数名、value が値のセットになっているテーブルで、変数の数だけレコードができるイメージ 変数オブジェクトはプログラマが意識することのない、便宜的なオブジェクト グローバルオブジェクト JavaScript は、ブラウザが新しいページを読み込んだとき、内部的に新しいグローバルオブジェクトを生成して初期化します。 グローバルオブジェクトとは、グローバル変数やグローバル関数を管理す

    JavaScript のスコープチェーンとクロージャを理解する - tacamy--blog