<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <script type="text/javascript" src="FileSaver.js"></script> </head> <body> <input type="button" value="取得" onclick="apiRequest()" /> <div id="export"></div> <script> async function apiRequest() { const downloadUrl = "http://zipcloud.ibsnet.co.jp/api/search?zipcode=1620825"; const response = await fetch(downloadUrl); const blob = response.blob(
Your python code is now 100% more elegant and usable as a command-line program using Click Many people who use python are used to the scriptfile workflow, where you write a rigid script in python and run it, somewhat similar to how people use bash scripts. You find an answer in a blog somewhere that describes how to do something in python You draft up a python script for the task and get it to wor
ポリゴンのラスタライザを書いていて気になったのですが、 初代プレイステーションにおいてしばしばポリゴンとポリゴンの間にわずかな隙間が空く状況が発生したようです。 これはなぜ発生するのでしょうか。 また、プレイステーションのラスタライズのアルゴリズムについての資料はありませんか? プレイステーションの画面描画に関わるシステムは、こちらの資料などで調べたところ次のようになっているようです。 CPU: 普通のMIPS、浮動小数点演算なし GTE: Geometry Transformation Engine; 16bit固定小数点数の座標演算に特化したコプロセッサ GPU: 整数の画面座標で2次元の3角形(または2つ繋げた4角形)を描画する ここから、一般的なポリゴン描画ルーチンは次のようであると考えられます。 CPUが(GTEを使ってか使わずか)モデルの座標変換行列を計算する。 行列をGTEに
こんにちは、水珈琲(@mizucoffee)です。 最近、iPad Pro(2世代・10.5インチ)とSmart Keyboard(US配列)を買いました! 最近開発用のPCを持ち歩くのが億劫になっていたので、持ち運びが楽なiPadでプログラミング出来たらな〜と思うようになりました。 そこで、色々準備してiPadでプログラミングを出来る様にしてみました! iPadを既に持っている方は環境構築編までスキップしてもらってOKです! 第2回 iPadでプログラミングをしよう!〜環境構築編~ iPad選び iPad Pro 特徴はリフレッシュレートが120Hz、そしてSmartKeyboard対応です。 私は2世代のiPad Proを使っていますが、3世代だとApplePencilがさらに使いやすくなるのでもっと良いと思います。 これを買っておけば困ることはない!という感じですね。 12.9インチ
こんにちは、水珈琲(@mizucoffee)です。 今回は、iPadでプログラミングをする為の環境構築をしていきたいと思います! iPadでプログラミングシリーズの最初はこちら! 第1回 iPadでプログラミングをしよう!〜iPad/キーボード選び編〜 この記事の目標 この記事では、iPadでフロント・バックエンドの両方のWeb開発をすることを目標にしています。 その為にVisual Studio Code(以下、VS Code)をiPad上で動作させ、サーバーを起動し、インスペクタを動作出来る環境を構築してきます。 VS CodeのiPad版は残念ながら存在していないので、code-serverというVS Codeをサーバーサイドに移植したOSSを利用します。 目標はこんな感じ サーバーを用意しよう code-serverを動作させるにはサーバーを用意する必要があります。自宅サーバーや既
「部屋の中のゾウ」(The elephant in the room)という言葉をご存じだろうか? 明らかに問題があるのにみんなが見て見ぬふりをしている事柄のことだ。どんな業界にもあったりするものだが、 ちょっとした対処で取り除くことのできる問題であることがままある。そうだとしたら、それを放っておくのはつまらないことだ。 一緒に子ども向けのプログラミングコンテストである全国小中学生プログラミング大会(今年は9月2日が〆切)を立ち上げたギリア株式会社の清水氏が、子どもがプログラミングで使うためのキーボードを作ったという。どんなキーボードか気になって御徒町にある同社に出かけて話を聞いてみることにした。 プログラミング教室で、コードを音読したときに間違いが少ないということが重要 ―― なぜキーボードを作ることになったんですか? 清水 ある教育研究家の方とのやりとりがキッカケなんですよ。その人は、
TL;DR ブラウザのタブはなるべく増やしたくない。 「数時間後に開くことが明確だけど、今は閉じたいタブ」をどうにかしたい。ブックマークにはしたくない。 一時的にリンクを保存し、開きたい時に参照できる拡張機能を作った。 「LinkMemo」と名付けたこの拡張機能。 インストールはこちらのページからできます。 提供機能/使い方 「+」ボタンで、現在開いているタブのタイトルとURLが保存できる。 各アイテムをクリックすると、そのページが新規タブで開く。 ゴミ箱ボタンをタップすると、各アイテムの削除ボタンが出てくる。「cancel」ボタンで通常画面に戻る。 機能はとてもシンプルです。地味に便利です。 なにかご意見あればtwitterでお声がけください! 工夫しました vue-cliで作成 経験がある方はご存知の通り、Chromeの拡張機能はWebページと同じ要領で作ることが出来ます。 そこで、V
年末カウントダウン Sphinx 連載、第3弾です。 一切下準備をせずに連載を始めたので、早くも息切れをしています。 だれかと約束をしたわけでもないのに急にアドベントカレンダー的なものを始めるのは、なんだか死に急いでいる気がしてきました。 今回は、今年から Sphinx の利用者に加わったある大型プロジェクトについて紹介しましょう。 そのプロジェクトとは、世界最大級の OSS のひとつである Linux カーネルです。 現在の Linux カーネルドキュメント 今年開催された LinuxCon Japan 2016 で Linux カーネルのドキュメントに Sphinx を使うという発表がありました。 Linus Torvalds氏が登壇、「約10週間のリリースサイクルは続く」 - クラウド Watch それから約 5ヶ月。現在はどうなっているのか見てみましょう。 Linux カーネルのド
(See the English version here) Qubes4.0 on Lenovo X250 Qubes OSを、Lenovo Thinkpad X250にインストールしてみたので、ご報告。 2019年7月、ちょうどエドワード・スノーデンの自伝を訳し終えた。 prtimes.jp もちろんこういうのを読むとパラノイアになる。なんでもNSAの陰謀に思え、パソコンのカメラにはテープを貼る。一方で、パスワードマネージャを使ったり、メールをPGPで暗号化はしないまでも(だって受ける側が使ってないから)署名くらいはするようにした。 そして、スノーデンがこの本でも推奨しているQubes も見てみることにした。 Qubes のインストールガイドは、本家のドキュメンテーションも含め、ないわけじゃない。でもかなり専門的で特殊といえば特殊なOSで、いまのところインストールしようという人は、それ
TCP/QUICのポートフォワードツールを書いた。 概要 IETFで標準化が進められているトランスポートプロトコルQUIC。 UDPを利用しており、エンドポイントのIPアドレスが変わってもコネクションが切れなかったり、より良い再送制御が行えたりと長所は多くある。しかし、QUICをサポートしているアプリケーションプロトコル、実装が現状多くはない。 QUICの恩恵に預かるために、TCPとQUICを相互変換するポートフォワードツール 「t2q2t」 を書いた。(実態としてはただのProxy) github.com ただし、ハンドシェイク回数が増えるのでコネクション確立時のオーバーヘッドは高い 利用例 ユースケースとしては例えば: クライアントとサーバそれぞれでt2q2tを実行する。 クライアント: TCPで0.0.0.0:2022でリッスンし、QUICで192.168.0.1:22に転送する サ
BacklogにmacOSの指紋認証でログインする様子 ヌーラボでは2019年3月にW3Cで標準化されたパスワードレス認証の「Web Authentication API」(WebAuthn: ウェブオースン)と、「FIDO2」(Fast IDentity Online: ファイド)対応のサーバを実装することで、Backlog / Cacoo / Typetalk上でのパスワードを使わない新しい認証に対応しました。 WebAuthn / FIDO2を使用した生体認証ログインのメリットは次のとおりです。 生体認証でログインが素早く簡単になります 生体情報はネットワーク上には流れず、ローカルのセキュリティ デバイスに保存されるため安全です 2要素認証※2のため安全です サーバに登録する認証情報は公開鍵のため、パスワードリスト型攻撃や情報漏洩のリスクがありません ドメインが検証されるため、フィッ
NodeListオブジェクトは、この縦のノードを配列っぽく並べたものです。 DOMツリーを表したHTMLでbody内のNodeListは、childNodesで取得することができます。 配列っぽくというのは、インデックスで取得できたりして配列っぽく振舞いますが、実際には配列ではありませんので、配列で使える便利なメソッドは利用できません。 var nodelist = document.querySelectorAll('body'); console.log(nodelist[0].childNodes); NodeList[5] 0:text 1:h1 2:text 3:p#explanation 4:text 個別で取得したい場合は、childNodesをインデックスでつなげて指定することができます。 また、item()でも取得できます。 console.log(nodelist[0]
形式 <script>~</script> サポート LS / H3 / e3 / Ch1 / Fx1 / Sa1 / Op1 / N2 カテゴリ メタデータコンテンツ フローコンテンツ フレージングコンテンツ スクリプトサポート要素 親要素 メタデータコンテンツ, フレージングコンテンツ, スクリプトサポート要素 を子要素に持てるもの 子要素 src 属性がない場合: type 属性の値に従い、スクリプトコンテキストの制約に合致したもの。 src 属性がある場合: 空、もしくは、スクリプトコンテキストの制約に合致したスクリプト文書。 タグの省略 開始タグ:必須 / 終了タグ:必須 属性 グローバル属性 src type async defer crossorigin integrity referrerpolicy <script> は、JavaScript などのスクリプトを記述するた
字下げ.iconMarkdownというマークアップ言語がエンジニア界隈で広く使われている。もともとはHTMLをもっと簡単に記述したいという意図で開発されたものだそうで、<h1>タイトル</h1>と書くかわりに# タイトルと書けたりするので、記述が少し簡単になるというメリットがある。太字(<b>)やリスト(<ul><li>)なども簡単に書ける。 字下げ.iconMarkdownに慣れたエンジニアがよく「何故ScrapboxはMarkdownを採用しないんだ」と言ってくる。「Markdownを採用しないとか馬鹿じゃないの?」とまで言う人もいる。こういう人々は完全にMarkdown脳というか、自分がタマタマ慣れているものがサイコーだと考えているだけに思える。 字下げ.iconScrapboxのようなWikiで一番大事なのはページ間リンクの記述であり、ここに[...]という単純な記法を使っているた
はじめに 先日、エンジニアの能力と今どきの難しさというタイトルの記事(2018年)を読んで、「これはほんとにその通り」と思う一方で、具体例がないためにピンと来ない人や、マウント取りではという意見も多数見られた。というわけで、自分が比較的得意な、プログラミング言語の構文解析といった分野に関して、この記事の言わんとしていることを補足するような記事を書こうと思い至った。 記事中では、エンジニアに必要な知識や経験を、「ベース」「カテゴリ」「実行環境」という形(以下)に分けて論じている。 ①ベース コンピュータサイエンス(CS)などの理論的なもの 低レイヤー ②カテゴリ フロントエンド / バックエンド / クライアントアプリなど ③実行環境 特定のプログラミング言語や開発環境やツール、フレームワークやライブラリなど この中で、特に印象的であり、かつ「よくわかる」と思ったのは以下の記述だ。 ③は比較
所有権(ownership)と借用(borrowing)とライフタイム(lifetime)はRust特有の言語仕様として有名である。 Rustではガベージコレクション(GC)を使用せずにメモリ安全性を確保するために所有権と借用とライフタイムの仕様を採用している。 この機構によって、Rustではプログラマが変数の値が有効である範囲を意識する必要がある代わりに、GCに関する実行時のオーバーヘッドがなくともメモリ安全でありスレッドセーフであるプログラムを記述することができる。 一方で、所有権は「『変数が値の所有権を持っている』というのは結局何のことなのかわからない」という混乱を生む要因でもある。 単純に考えると、変数に値が入っているのだから、変数が値を持っているのは当然のことのように思える。 そうすると、「値の所有権を持つ」とは一体何のことを言っているのかがはっきりとしなくなってしまう。 この混
#include <bits/stdc++.h> using namespace std; void print() { cout << endl; } template <class Head, class... Tail> void print(Head&& head, Tail&&... tail) { cout << head; if (sizeof...(tail) != 0) cout << " "; print(forward<Tail>(tail)...); } template <class T> void print(vector<T> &vec) { for (auto& a : vec) { cout << a; if (&a != &vec.back()) cout << " "; } cout << endl; } template <class T> void
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く