はてなキーワード: Webpとは
“ 「Save Image as Type」はもともと個人開発の無害なツールだった。扱いづらいWebp形式の画像を、JPGやPNGといった扱いやすい形式に簡単に変換して保存でき、世界で多くのユーザーが使っていた”
“ 悪意あるコードの注入が発覚したのは24年後半。所有者の変更が関連しているとみられている”
“ ユーザーがWebページを開くと、隠しiframeでAmazonやBest Buyなどの通販サイトを読み込み、アフィリエイト用のCookieをブラウザに植え付ける。ユーザーがその後に買い物すると、攻撃者側に紹介料が入る仕組みだ”
https://www.itmedia.co.jp/aiplus/spv/2603/24/news079.html
本当なら今書いている記事 (anond:20260215194458) にのっけようかと思ったが、思ったより長くなってしまったので、別記事に独立させることにした。
IPv6で接続しているかを手軽に確認できる。また、インターネット接続ができない原因の切り分けにもおすすめ。
ブラウザーによってはIPv4接続でも暗号化機能をオンにするとIPv6で接続できる場合がある。
https://www.kame.net
"Use IPv6 HTTP and you will watch the dancing kame" と表示されていたらIPv4、"Dancing kame by atelier momonga" と表示されていたらIPv6。
BSD系OSにIPv6を実装することを目的としたプロジェクトで、2006年3月以降プロジェクト完了により更新停止しているため、今となっては軽いウェブサイトのひとつとなってしまった。ただし、2010年代 (すくなくともHTML5本格始動よりは後) にDancing kameがアニメ GIFからPNGをjQueryで毎フレーム書き換える方式に変更するアップデートが行われており (そのためJavaScriptをオフにするとアニメーションのなめらかさが低下するのがわかる) 、阿部寛のホームページよりは若干重い。アニメ PNGでよかったのでは...。仮に今リニューアルするとしたら、WebPやAVIFとかかな。
http://v6v4.net
こちらは見たまんまである。"IPv4 で通信しています" "IPv4 IPv6 両方で通信しています" "IPv6 で通信しています" の3段階。
"IPv6 で通信しています" はIPv4のパケットもIPv6に通している、もしくはそもそもIPv4に接続していない、のどちらかの状態。
"IPv4 IPv6 両方で通信しています" だとIPv4とIPv6を個別のパケットで通していることを示す (IPv4 PPP + IPv6など) 。
https://kiriwake.jpne.co.jp
こちらはより詳細に確認できる。日本のISPが提供しているとのこともあり、日本のインターネット環境に特化、フレッツIPv6閉域網 (flets-east.jp / flets-west.jp) への接続も診断してくれる。
https://ipv6test.google.com/
Googleもテスト機能を提供している。しかし、インターネット速度テストといい、HTML5動画テスト (今はない) といい、Googleは色々なテスト機能を提供しているものだ...。
"問題は検出されませんでした。" と表示されたらIPv4、 "既に IPv6 を使用しているようです。" と表示されたらIPv6。接続に問題があると "お使いの接続方法は IPv6 への対応が完了していないようです。" になることもある。この場合は下の "あなたの IPv6 をテストしましょう。" をつかってより詳細なメッセージを確認するのがよい。
https://test-ipv6.com
https://testv6.com
※ この2つはどちらもおなじ (ミラーサイト) 。
2025年まで個人勢だったにもかかわらず、IPv6接続確認ではもっとも有名。個人での運営が厳しいとのことでサービスを終了すると発表したあと、いろんなところからスポンサーのオファーがあったとのこと。重要度の高いサイトということもあり、公共性の観点から地域インターネットレジストリに移管することにしたとのことで、現在移行作業中。
現在接続しているIPアドレスとISPの情報に加え、10点満点で対応度の得点が表示される。0点なら確実に未対応、10点なら確実に対応している。中途半端な点数なら、メッセージを読んでどこに問題があるのかを確認しよう。
https://ipv6-test.com
ややこしいが上とは別物。マニアックな情報が表示されるので、素人向きの確認方法ではない。
IPv6の通信速度を測定する機能もあるが、そもそも重いサイトなので低めに表示されやすい。
IPv6通信速度の確認なら、これではなく、下のフレッツIPv6閉域網内に設置されている測定サイトのほうが正確な結果を表示できる (フレッツ回線からのみ接続可能) 。閉域網内の速度とインターネットの速度の両方を表示できるため (フレッツ光クロスはインターネット速度のみ) 、通信速度が遅い場合の原因切り分けもしやすい。
http://www.speed-visualizer.jp/
ドコモなら、"ドコモスピードテスト" というアプリを使用すると結果が自動的にドコモに送信されるので、遅い人が多数いる場所での品質改善に役にたつ。
IPv6接続の確認をメインとしているものをおしえてほしい。日本のウェブサイトにありがちな、ロゴマークに小さく IPv6 チップが表示されているようなものは対象外。
iNonius Speed Test (IPv4/IPv6)
https://inonius.net/speedtest/
こんなものがあるのね。これならフレッツ以外の回線でもIPv6とIPv4のそれぞれで通信速度を確認できる。メモしておこう...。
webp うざい
webp うざい
webp うざい
webp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざいwebp うざい
プログラミングで主にやる事は下記の2つ。
①IFでAかBを選択させてどっちかの設定を実行
②Whileで決められた回数分繰り返す
とてつもなく複雑で冗長な処理によって実行されている。
わかりやすいので画像処理でいうと、数十万から数百万の画素(RGBAの24bitで表される数値)を小さなブロックに分解し、数学的に周波数の重なりとして計算して変換、含まれる頻出パターンをテーブルにして圧縮伸張を行なう。みたいなことが瞬間的に行われている。
「まさかそんな事できるわけないだろ」というレベルの処理が実際に行われており、これまた直感的でない。
だからそれをどう書くんだよ。という答えはコレ。有名なjpegの実装だ。
libjpeg というライブラリを書くことはできるだろうか?画像の圧縮の理論から考え始めることはできるか?
正直無理だ。自分はプログラマだがそんなに数学が得意ではなく、頑張ったとしても下手するとコレを作るのがライフワークになってしまい、他のことができなくなる。
例えばブラウザを0から作るとして、jpegの処理以外にも画像だけでpngとかgifとかwebpとか、その他もろもろとてつもない作業が必要になる。
「とてつもなくて想像もできないので流石に無理だろう?」
いや、でも、実際動いてるのよ。ここ何十年、コツコツと積み重ねて実現している。
「積み重ね」とはライブラリであったりフレームワークであったりOSであったりする。
「どういう風になっているのか」
外部に向けたインターフェイスがどうなっているのかは理解する必要がある。「使う」ために必要だからだ。
この2つは分けて考えなければならない。
ちなみに、たとえばChromeのコアであるChromiumはのコードはコレだ。
つまり言いたいことは、実際に動くアプリケーションというのを作りたいのにも関わらず
プログラミング入門書は、これで判定と繰り返しという基礎ができますと言うだけ。
これがもう滅茶苦茶イライラする。
「これで判定と繰り返しという基礎ができます」というのが基本的な理論(定理的なもの)で、その他に必然的だが唯一無二ではないベストプラクティスというものがある(法則的なもの)。
後者をうまく説明する入門書に出会っていないんだろうな。という印象。イライラはやめよう。つかれる。
ベストプラクティスはいろいろあるのだが「層の構造にする・レイヤーに分ける」というのは重要なアイデアだ。
libjpegというのはjpegの処理を行う「ライブラリ」だ。他のアプリケーション...たとえばブラウザはこのライブラリを「使う」。
ブラウザではjpeg画像の圧縮展開というとてつもなく難しい処理を「libjpegの使い方」の理解までで済ませ、過去の蓄積であるlibjpegのコードを利用することで真の意味で0から実装しないようにしている。
この場合、libjpegが「低レベル・低レイヤー」の存在であり、中身については「使い方」つまり「仕様」の理解までしか行わないことで、実際に作りたいものを作れるようにしているわけだ。
完成しているプログラムは二例ほど挙げたがどうですかね?
複雑なことをする、特に低レイヤーのコードはとてつもなく難しい。
でも、とりあえずこんな感じのコードなら解るよね?
こういうレベルから理解して、ちょっとずつ難しい処理を学んでいくしかない。
ハードルは高いんですよ。実際。
なので、木材からだと難しいからプレハブのキット的なものを探すとか、ログハウスのカタログを読むとか、あるいは100人乗れる物置を買うのがいいかもしれない。そういうところから始める。
それらがフレームワークであったりライブラリであったりする。目的に合うものを探して、自分がやりたいことをどう実現するかとにかく考える。
「テキシコー」https://www.nhk.or.jp/school/sougou/texico/ で言われる通り、「小さく分けて考える」「手順の組み合わせを考える」「パターンを見つける」「大事なものだけ抜き出して考える」「頭の中で手順をたどる」をひたすら実行する。
unityはコードが公開されているので、本当に読みたいなら。。
オブジェクト指向は一旦忘れよう。
オブジェクト指向の「隠蔽」というのは層の構造が持っている重要な要素ではあるけど、「低いレイヤーについて考えない」のが基本的な作戦だという理解の方が重要だ。
前述の通り「できる限り作らない」んですよ。「使う」だけ。知るべきことを最小化する。
そして本当に作るべきものに関しては、利用する下のレイヤーのライブラリなりを探して・仕様を理解して、どう組み合わせてfor, if, あるいは計算させれば実現できるのかをひたすら考える。
単に翻訳がしたいのか?表示に割り込む方法を知りたい?日本語に翻訳するのは実行時なのか開発時なのか?
要求される表示エリアが言語によって異なるために、デザイン調整が必要になる問題をどうするか?
分解が甘いので何をしたらいいか調べることができないんだと思う。
ちなみに、アプリ内の文言というのはアプリの外部から変更できないように実装されている事が多いので、利用者が上書きする仕組みはかなり難しい。
AndroidなりiOSの仕様にもそのへんに割り込める機能はないはずなので、OSの開発に入っていく必要がある。結構大変だとおもう。
アプリの開発者が、そういう機能を備えた多言語化のためのライブラリを使うようになれば実現可能ではあるので、そっちの方向で頑張るのがおすすめだが、英語圏の開発者には多言語化のモチベーションが低いという基本的な問題はあるのよね。
この辺の「できる・できない・むずかしい」の判断は、いろいろな勉強をすると常識としてある程度みえてくる...気がする。
ついでに。ウェブサイトやウェブサービスの翻訳だとこういうサービスがあったりする。
ブラウザはページの描画処理のなかに割り込む余地が大きく取ってあるので、ブラウザのExtensionとかならできることがいくらかあるかもしれない。
個人的に気に入らない話はOSのアップデートは使いやすくなるからとてもいい事だからすぐにやった方がいいと宣伝されている事。
まあ、半分は嘘だよね。古いものが残っていると先に進めないんだよ...。
現在のクライアントOSは、巨大なプラットフォームのパーツの一部として理解したほうが正しくて、古いパーツが残っているとツライんですよ。
そして「サービスを受けるための道具であって、あなたが何でも好きにできる機械ではないです」みたいな世界になりつつあって、ちょっと問題と言われてもいる。
これはかなり困った傾向なんだけど、全体としての流れはあんまり変わりそうにない。
オブジェクト指向好きですな...。ここではオブジェクト指向は特に気にしなくていいですよ。
とてつもなく複雑なことをやっているために、すべてのバグを潰すことはコストが高すぎてできないんですよね。
それよりバグは未来を先取りするコストと考えて、本質的に価値のある機能を増やしていくというのが基本的な方向になっている。
だからパソコンはたまに不具合を引き起こすんです。しゃーない。
しかし中途半端に理解している老人などは、そんなことじゃ分からん。自分に分かるように説明しろと言い出す。
説明は出来る。しかし相手はイライラするし理解されない。よって説明をしてはいけないという状況に追い込まれる。
ここでどうすればいいのだと理解不能に陥る。
まあ、説明って得てして難しいよ。しゃーない。
そのとおりです。
オープンソースのプロダクトなら原理的には調べられるけどね。Androidとかはオープンになってる。
それを許容することで先に進んできているという事実は受け入れたほうがいいと思う。
「把握・理解可能な範囲」に留めていたら、数十年前のコンピュータの世界から抜け出せなかった。
deep learningの世界ではそれがより一層進むかも。この辺は詳しくないけど。
ここでの「理解」についてはそのとおり。これはもう諦めるしかない。
これが常にある。IT関連は常に新しい情報が出てくるのでそれに送れると無知になってしまう。
なんでこんなことも分からないんだとか言われ放題で、IT系の企業に努めている人は常に新しい知識を入れられる
面倒くさがらない人が向いている。
「面倒くさがり」の方が問題に気づいて「頑張って面倒じゃなくする」ことができるので、プログラマにとっては美徳なんて言われますけどね。
同時にくじけないとか諦めない、しつこいみたいな素養は必要かも。
応用まではとろうな。がんばれ。
このへん自分も知らんですよ。べつに全部知っている必要はない。
(追記: はてな記法の引用すらもさっきまで知らなかったしな!そんなもん)
層の構造をとっているということと関係があるんですが、仕様が変わると、その上に乗っているものを全部なおさないといけないんですよね。
でも革新のために互換性を捨てなければいけないケースも多い。このへんはハードでもソフトでも同じ。
そして、メンテのコストが上がっても使い続けたほうがトータルで安上がりという場合は、古いものが残ってしまう。
あるいは「(多少の問題はあっても)動いているものは変えるな」という経験則から意図的に残す場合もある。
西暦2020年にもなって、プログラミングが簡単には出来ないし、ハードウェアの規格も完全に統一はされていない。
というかプログラミング言語自体多すぎる。ソフトウェアはデファクトスタンダードのモノ程度は知っているが、
ぜんぜん完成していない荒っぽいものを目にしているのだと理解したほうが的確。
それなのに毎日理解のできないパソコンやスマートフォンを使っている。
オブジェクト指向のおかげ様だがオブジェクト指向に対して無性に腹が立つ。
自分の全く知らない場所でいけしゃあしゃあと演算を行い、そして結果を出す。それも大半が正しい結果で
利便性が抜群だ。些細なミス(バグなど)はあるが圧倒的に利便性が勝っている。
そんな道具に踊らされている自分が滑稽だ。理解できない愚かな自分は正に機械の奴隷のようだ。
本当に理解できない。辛い。
勘違いしてはいけないのは、それらはすべて先人の努力の蓄積によって成り立っているということ。
「よくわからないけど存在している道具」ではなくて、信じられないほど複雑だけど、多くの人々の行動によってなんとかかんとか実現した道具なんですよ。
「オブジェクト指向のおかげ様」じゃないんです。(もちろんオブジェクト指向というのも大きな発明の一つですが)
そしてブラックボックスとして使うのは多くの場合正しいです。そこは諦めましょう。
でもエンジニアとしての立場からは、その裏に隠れているとてつもない技術や思考の蓄積に感動してほしいなと思う。
人類がこんなもん作れたのって、かなりすごいよ?