はてなキーワード: エンコーディングとは
const axios = require('axios'); // HTTPリクエストを行うためのモジュール
const fs = require('fs'); // ファイル操作モジュール
const xml2js = require('xml2js'); // XMLをJSONに変換するためのモジュール
const chardet = require('chardet'); // 文字エンコーディングを検出するためのモジュール
const iconv = require('iconv-lite'); // 文字エンコーディングを変換するためのモジュール
const rssUrl = 'https://www.mlit.go.jp/important.rdf'; // 例としてRSSフィードのURLを指定
async function fetchAndSaveRSS() {
try {
// RSSを取得
const response = await axios.get(rssUrl, { responseType: 'arraybuffer' });
const rssData = response.data;
const detectedEncoding = chardet.detect(rssData);
console.log('検出された文字エンコーディング:', detectedEncoding);
// UTF-8に変換
const utf8Data = iconv.decode(rssData, detectedEncoding);
xml2js.parseString(utf8Data, (err, result) => {
if (err) {
console.error('XML解析エラー:', err);
return;
}
const jsonData = JSON.stringify(result, null, 2);
fs.writeFileSync('rss_feed.json', jsonData, 'utf8');
console.log('RSSフィードがファイルに保存されました。');
});
console.error('エラーが発生しました:', error);
}
}
// 実行
fetchAndSaveRSS();
増田「最初に思い浮かべた単語を暗号化して示してください。最後に正解したら、その暗号を解除してください。できますか?」
GPT4:「私は暗号化と復号化を行うことができますが、私はリアルタイムでインタラクションを行っており、過去のやりとりにアクセスすることはできません。ですので、私が最初に思い浮かべた単語を暗号化して、その後復号化するというプロセスは実現できません。
ただし、言葉あそびのために、あらかじめ暗号化された単語を用意し、あなたがそれを推測し復号化できるようなゲームを提案できます。それでもよろしければ、暗号化された単語を提示します。」
VG9reW8=
この暗号化にはBase64というエンコーディング方式が使用されています。あなたが単語を推測し、それが正解であることがわかったら、私が復号化を行います。ヒントが必要であればお知らせください。」
GPT4:「ヒント:この単語は、日本の地名に関連しています。質問をどんどんどうぞ。」
関係ないっちゃないけどw
あちこちのクレカとか電気ガスとか電話とかのWebサイトでCSV形式の明細書ダウンロードって機能が、いまだに邪悪なShift_JISエンコーディングで出してくるの、いい加減にヤメろや!
WebサイトのHTMLとかは、ほぼほぼ100%ちかくunicode(UTF-8)なのに。
ちょっと前まで、MacのクイックルックでそのCSV化け化けで見づらくてしょうがなかったんで、数10年ぶりにAppleScript書いてフォルダアクションに文字コード変換仕込んだりするハメになったやんかw VenturaになったらShift_JISでも正常にクイックルックできたけどww
新人さん――2〜3年目くらいの子――が作った手順を元に僕が作業画面を共有する形で作業を進めた。ペアプログラミングならぬペアオペレーションってやつだ。
作業内容はテスト環境で作ったデータを本番用にコンバートしつつ入れ込むもの。
ある作業の中で入れ込んだデータを確認するためにcsvファイルにエクスポートして中身を確認する事を行うのに、何気なく`Alt-h`,`pe`,`↓`,`Enter`(WindowsエクスプローラのHomeのリボンを開いて、ファイルを開くセレクトボックスを展開、↓矢印で一つ下のSakura Editorを選択して開く)で、関連付けされているExcelではなくテキストエディタで開いた。
その時、「今のどうやったんですか?」と質問された。
手慣れたキー操作だったため素早かった事、オンラインミーティングでの画面共有はラグが発生する事もよくあるので、何をやったか分からなかったのだろう。
一度閉じて、最初から解説しながらゆっくり作業し直して見せて納得してもらえた。
「私、いつもExcelを開いてcsvのインポートを選んでやってました。ダブルクリックで普通に開くと文字化けするし…、面倒だったんですよねー。今度からこの方法を使わせていただきます!」
うむ、正道だ。UTF-8エンコーディングされたcsvファイルを開くには一手間掛かる。
「因みに――」とSakuraEditorなら「ファイル名を付けて保存」からBOMのところにチェックを付けて上書き保存しておくとExcelからでも文字化けせずに開けるようになることを教えてあげた。
「BOMって何ですか?」
これは少し困った。
BOMの話をして…するとUTF-8にBOMを付ける意義とは?って聞かれるよね…ExcelというかMS製品全般でそういう仕様なんだよって話もしないとダメか?
あー、クソ面倒だな。
「ちょっとしたおまじないだよ。」――実際間違っていないだろう。`#include <stdoi.h>` だって"おまじない"なのだから。
本番作業中に脱線したことを戒めつつ、一方で多少の後ろめたさを感じながら実作業に戻った。
その後、特にトラブルもなく作業は予定より30分ほど早く終わり、お互い「お疲れ様でしたー」と労いつつオンラインミーティングを閉会した。
あ、BOMの話してない。と直後に気付いたものの時すでにおすし。
まっ、気になったらググってくれるだろう。
この増田読んでで違和感あってなんだろって思って考えたことを書く。
プログラミングで主にやる事は下記の2つ。
①IFでAかBを選択させてどっちかの設定を実行
②Whileで決められた回数分繰り返す
プログラミングで本当に主にやることは下の2つ。
「データの入出力」
「データの加工」
これ。
条件分岐も繰り返しもデータの入出力をソフトウェア上で都合よく行うための補助具にすぎない。
なんならプログラミングに関わらずIT機器がやってるの全部これ。
いや多分当たり前すぎて何言ってんだ?
ってなる人がいると思うが、ITわからん人は多分この前提がピンときてないんじゃないかって思う。
ITのIはインフォメーションつまり情報で、情報はデータです。
画像も音楽も動画も3Dモデルもフォントもアニメーションも全部データ、現代のコンピューターでは数字の羅列になっている。
このデータの元ネタをどこからか取ってきて、加工して、ユーザーに渡すのががプログラミング。
取ってくる元はマウスだったりキーボードだったり、CDだったり、インターネット上のデータだったりほんと色々。
加工するときは変数に突っ込んだり計算する工程が必要で、そのときにIfとかwhileとか必要になる。もちろん適切に加工するためにはアルゴリズムとか数学が必要になるときもある。
これらの工程を一部肩代わりしてくれるのがOSやフレームワークだったりライブラリだったりする。
特に複雑な加工はだいたいライブラリになってるから、初心者はifとかwhileやオブジェクト指向がプログラミングだって勘違いしがちかも。
買って使ってみた後に、こんなはずじゃなかった、みたいなやつ。
1. USB/Thunderbolt 周辺機器の互換性の懸念
何千、何万とある周辺機器を、Appleだけで検証するのはまず無理だろう。
iPad Proで使えたものは恐らく大丈夫だろうが、それ以外はどうか。
特に自身が必須と思っている周辺機器が使えないとしたら大問題。
参考 https://japanese.engadget.com/jp-2019-10-26-ios-13-macos-catalina-6.html
その状態で更にApple Silicon版、という大きな追加要素が加わることになる。
例えばある機能において、Intel版では正常動作しても、Apple Silicon版では動作異常、という可能性はあるのでは。
あまり不具合を聞かなかった前バージョンのRosettaとは、動作の仕組みがかなり違うので、個人的には気になるところ。
さすがに有名どころのアプリは大丈夫だろうが、それ以外はどうか。
最近だと、MacBook Pro(2020) 13インチの動画編集アプリ(Final Cut Pro 等)の不具合が話題になった。しかも最初の頃は問題なく、使っていく内に徐々に調子が悪くなるという時限爆弾であった。
参考 https://gori.me/macbookpro/127174
5. (MacBook Airのみ) サーマルスロットリング
MacBook Proがファンを内蔵しているということは、最高性能を引き出すには本来ファンが必要ということになる。かつサーマルスロットリングに関しては、悪名高いMacBook Airの筐体である。
参考 https://gori.me/macbookair/125873
どの程度かは未知数だが、ゲームや動画のエンコーディング等、高負荷な状態が続くとサーマルスロットリングにより速度低下が起こるのは想像に難くない。
例えばあるソフトウェアメーカーが、Apple Silicon MacにはiOSアプリを使わせないという選択も可能。
参考 https://www.gizmodo.jp/2020/11/apple-silicon-mac-ios-app.html
ただそんなことも知らずに、iOS/iPadOSのアプリは全て動作可能と思っている方もいるのでは。
またこれは余談かつほぼ冗談だが、iOSアプリをApple Silicon Macで起動した後、画面をタッチ操作できないことに気づいた、みたいな方もいないとも限らない。
もしかして知らない方もいるかもしれないので。SoCである故、99.999%メモリ増設不可である。
参考 https://ringosuki.hateblo.jp/entry/Bye-bye_Intel%2C_Hello_Apple_M1
プラス8GBで2万円は高いので後で増設すればいいやと思い、8GBのまま購入した方は後の祭りである。
8. 原価率
莫大な研究開発費や広告宣伝費等がかかっているはずなので、本来あまり意味がないが一応。
IntelからCPUを購入する必要が無くなったので、本来値段が安くなるはずなのに、あまり安くなっていない。
iFixitあたりから製造原価を公表されて、マジすか、みたいに感じてしまう方もいるのでは。
以上、思いつくままに書いてみた。
1から5は個人的な懸念事項、6と7は確定事項かつ注意事項、8は余談である。
懸念事項として書いた内容を含め、不具合は起こってほしくはないが、初物である故まったく不具合がないというのは難しいだろう。
なるほどです。再変換というか、メッセンジャーとか会話のノリ書いてからローマ字入力から英数のままで、書いてたことに、送信後に気がつくことってことですね。
日本語(や韓国・中国語圏とかの)ユーザーでないと分からない悩み事でしょうか。
全ての漢字がパソコンで表示できるようになったとか、utf-8とShift JISとかのテキストエンコーディングの問題で書けるようになったとか、まだまだ、色々と日本語と英語の翻訳とかよりも、その方が、解決したら良いことかも知れないですね。。
(ちなみに、私、MacのATOKユーザーです。vimというテキストエディターを使うときは、なんか日本語変換も一つのモード変換みたいで、面倒なので、他のエディターに変わりました。)
現在使用している C2Q Q9550 32bit PC (メモリ4GB) では、
640x360 30fps mp4AVC 2pass VBR 1.5Mbps/max2.5M にするのに1時間、
960x540 mp4AVC 2pass VBR 3Mbps/max12M にするのに2時間かかる。
TMPGENC v4を使用し、常時インターレース解除を行っている。
これを最新のCore i7 4790K 64bit PC (メモリ16GB) に置き換えると、どれくらいエンコード時間が短縮されるのだろうか?
但しエンコーダーとして TMPGENC VMW6 を使用するものとし、CPUの動画エンコーディング支援機能を利用してもよい。
INSERT INTO TBL SELECT TBL.COL FROM OPENROWSET(BULK 'filepath', SINGLE_NCLOB) AS TBL(COL)
他の方法もいろいろあるだろう。ただ、文字コードに関して言及すると、SQL SERVER の内部データは UCS-2(UTF-16のサブセット)なので、合わせておいたほうが無難。UTF-16以外で取り込もうとすると、日本語付近で "XML 文字が無効です" などとエラーになる場合が多い(もちろん原因は何かあるのだろうが、調べてもさっぱり私には見当がつかない。時間の浪費はいやずら)。
'filepath'は、SQL SERVERのインスタンスが動いているマシンにとってのファイルパスね。'E:\???\???.xml'や'\\filesvr01\shared\data\???.xml'とか。
SELECT COL.query('/ELEM/NODE') FROM TBL など、あとはいろいろクエリーしてみてくれ。
(感謝)
独身一人暮らしであれば不自由はしないが、既婚であったり、実家暮らしだったりするとなかなか思うように出来ない事がある。
そう、オナニーだ。
痴漢などの性犯罪者は既婚者や実家暮らしであるという統計があるが、性欲の処理がきちんと出来ていないことが原因なのは明白な事実。
そこで、そういった事が起きないようにするためにも、私が編み出した(?)誰でも安全快適なオナニーが出来る方法をお教えしようではないか。
■■■初級編■■■
【必要なもの】
http://itunes.apple.com/jp/app/air-video-watch-your-videos/id306550020
・ジップロック小(約200円)
【実行場所】
お風呂
【事前準備】
4.AirVideoを起動し、設定を済ませる
設定に関する詳しい手順は「Air Video 設定」で検索すれば丁寧な解説サイトがたくさんある。
【行動手順】
【解説】
説明するまでもないが「AirVideo」はPC(Mac)の中に入っている動画をリアルタイムエンコーディングしながら、iPhone側でストリーミング再生できるというアプリだ。
また、防水に関しては最初は躊躇してしまうが、ジップロック一枚で問題ない。
唯一、気をつけるのは結露だが、できるだけ空気が入らないように封入すればあまり気をつける必要もない。
「最初からiPhoneに動画をいれておけば良いだろ」という意見もあるが、何かの事故でそれを他人にみられるリスクと、HDDに入っている膨大なアダルトビデオをエンコードする労力を考えればAirVideoしか選択肢は無い。
■■■中級編■■■
基礎編で説明した方法では音を出すのが難しい。(スピーカーは普通に聞けるが大きな音は出せないだろう。)
せっかくなので、防水イヤホン付きの専用ジャケットはどうだろうか。
http://www.amazon.co.jp/gp/product/B002WKRJNC/
2,980円と値段は少しお高いが、ほぼ完璧な防水機能と防水イヤフォンが付属してくるので値段なりの機能はある。
また、お風呂にiPhoneを持って行けるということは、普段なら100%無理なオナホやローションだって使い放題という事になる。
個人的には、オナホはコンパクトにポケットに隠せるTENGA EGGを勧める。
http://www.tenga.co.jp/products/egg/
【行動手順】
・防水ケースにiPhoneを封入。(イヤホンジャックに防水イヤホンも付ける)
【注意事項】
私は一度うっかり風呂に忘れ、嫁に見つかってしまい「シリコンの洗顔道具だよ。こうやって指に被せてつかうんだ。」とTENGA EGGを指に被せ、顔に当てながら苦しい言い訳をした事がある。
■■■上級編■■■
中級編までマスターしたキミなら、既に充実したオナライフを過ごしているだろう。
普段からオナニーの事ばかり考えている君たちなら考えたことがあるだろう。
自宅の外でのオナニーを。
しかし、それには障壁が3つある。
障壁1:まずはPCが起動していなければ話にならない。
障壁2:AirVideoサーバーはインストールしたユーザーでログインしていなければならない。
障壁3:AirVideoは3G回線にも対応しているがセキュリティが不安。
一個ずつ問題を解決していこう
【障壁1.PCが起動していなければ話にならない】
外部からPCを起動させるために、WOL(※)対応のルーターを用意する。
Buffalo社が出している最近の無線LANルーターには大抵WOLの機能がついている。
現時点で最新機種のWZR-HP-AG302Hはもちろんの事、少し前の機種でも大丈夫だと思う。
電気屋で、「BuffaloのWOL対応のルーター下さい」と言えばこのあたりが出てくるハズだ。
WOLを実現するには、PC側での設定も必要だが、このあたりは「Windows WOL 設定」等で検索してくれ。
Wi-Fi接続しているiPhoneからルーターの管理画面を開き、母艦PCをWOL起動して無事起動すれば成功だ。
※WOL:Wake On Lan:Lan経由でPCを起動させる技術。
ここにはもう一つ問題がある。
上のテストでは、Wi-Fi環境でつながったiPhoneからなので問題ないのだが、実際には外部からインターネット経由での接続となる。
普通にインターネットの回線を契約すると、IPアドレスは動的なものがプロバイダから振られる。
そうなると、不定期IPアドレスが変わるため、外部からのPC起動自体ができなくなる可能性が高い。
それの解決法として、DDNS(ダイナミックDNS)という仕組みがある。
動的に変わるIPアドレスを、希望したドメイン名に自動的に割り当ててくれるというサービスを使うのだ。
【障壁2.AirVideoサーバーはインストールしたユーザーでログインしていなければならない】
無事WOLは実現できただろうか?
次の問題は、ログインの問題だ。
自動ログインの設定になっているPCならばここはパスできるが、真のオナニストであれば当然PCにはパスワードが掛かっているハズだ。
そこで、iPhone側からPCにログインするために、リモートデスクトップのアプリを使う。
リモートアプリ様々な物があるが、下記サイト紹介されているので参考にしてほしい。
http://www.cms-ia.info/news/remote-desktop-for-ipad/
個人的には、値は張るが「Jaadu Remote Desktop」をおすすめする。
【障壁3.AirVideoは3G回線にも対応しているがセキュリティが不安】
起動もできた、ログインもできた。最後に残るはセキュリティだ。
その場合、最低限受け側ポートの変更と、パスワードロックをかける必要がある。
しかし、それでも外部から見つかった場合の攻撃は防げなくなってしまう。
そこで、iPhoneでVPN(※)を利用してはどうだろうか。
VPNサーバー機能も、障壁1で書いたルーターに備わっている機能だ。
セキュリティ的には甘いと言われるPPTPだが一般的な利用目的では問題無い(と思う)。
ルーターの設定画面から、「PPTPサーバー」の項目を開きPPTPユーザーを追加しよう。
あとは、iPhoneの設定→一般→ネットワーク→VPNを開き、各項目を埋めていく。
その後、接続をタップすれば、数秒の後、ステータスバーに「VPN」のアイコンが出るはずだ。
※VPN:Virtual Private Netework:インターネット回線を利用し、仮想的にLAN環境に接続するための仕組み
【設定から閲覧までの大まかな流れ】
2.PCのWOL設定、ルーターのWOL設定。Wi-Fi環境でのテスト(iPhone→PC起動確認でOK)
3.リモートソフトの導入、設定、テスト(iPhone→PCログインできたらOK)
4.DDNSの登録、ルーターへの設定、テスト(iPhoneリモートソフトにDDNSホストを設定して接続できればOK)
5.VPNのルーター設定、iPhoneへのVPN設定、テスト(iPhone→DDNSホストへ接続できればOK)その後、PCをシャットダウン。
6.iPhoneのVPN接続→WOLでPC起動→リモートでログイン→リモートソフト終了→AirVideo起動
手順1~5までは一度だけだ。
2回目からは6の手順を踏むだけでどこからでもAirVideoによるビデオ鑑賞が可能だ。
いかがだったでしょうか。
専門用語が多かったと思いますが、実際の作業自体はたいしたことはありません。
前回の日記で最後と思っていたのですが、どうしても書きたかったので書いてしまいました。
.NETでオブジェクトの永続化によく使われる、この二つのクラスの違いについて書きます。サンプルコードなどは書きませんので必要ならリンクを参照してください。ずいぶん古いネタだけど、許してね。
全体的に速度が重要な場合か永続化するオブジェクトが単純な場合はXmlSerializerを、それ以外の場合はSoapFormatterを使うのが良いと思う。なるべく短いコード量で行きたいならSoapFormatterの方がベター。
あと、細かいことだけどTypeConverterは便利なので使うべし。シリアライズ不可能な小さなクラスとか特に有効。
どこに書いたらみんな気づいてくれるのか分からないからここらへんにも書いておこう。
windowsだと終了できないかも。(javaw.exeを強制終了で多分いける)><
http://tinyurl.com/NicoNamaAlert
だれか改良してください><
=====================================
りーどみー
=====================================
中身
NicoNamaAlert.jar
setting.txt
設定ファイル
NicoNamaAlert.java
ReadMe.sjis.txt, ReadMe.utf8.txt
使い方
その際、勝手にYahoo!ツールバーが入る事があるので気をつけて。
setting.txtに、1行ずつ予約したいコミュニティまたはチャンネルのIDを登録
channel/ch99999 とか community/co99999 といった感じで。
とりあえず1行ごとIDと比べているだけなので、
他に何か書いてあっても大丈夫なはず。
毎回このファイルは読み直しているので、変更しても再起動する必要はありません。
30秒おきに新着をチェックします。
Macの場合はおなじみのコーヒーカップのアイコンがDockに出てきます。
Windowsの場合は何も出てきません。
Unixはまだ試していません。
終了するときは、Macの場合はDockのアイコンを選択して、
上のメニューから終了 または Cmd+Q
Windowsの場合はタスクマネージャからjavaw.exeを探して強制終了してください。
他にもjavaアプリを起動している場合は、javaw.exeが複数ある可能性があるので、
そのときは運試し。
javaでブラウザを開く方法が分かりません(SE6ならできるっぽい)><
もっといい感じなの作れるひとお願いします><
コマンドラインから起動すると中の人が何してるかなんとなく見えます。
settingに最初から入っている二つのコミュ、
1つ目はお気に入りコミュ「おい、ゆとり!英語教えてください。」で、
この2つの生放送がなければこのプログラムはできていませんでした><
仕組み
http://live.nicovideo.jp/recent から必要なデータを
1行1行検索して取り出しているだけです。
チャンネル、コミュニティIDはサムネイルのファイル名から取れます。
ね、簡単でしょ?
今後の展望
アイコンをコーヒーカップ以外にしたい(っていうとOSごとに実行ファイルが必要)
Windowsでもちゃんと終了できるようにしたい(まぁ本家使ってください)
以上。