python例外ハンドラの変数スコープの謎

python例外ハンドラの変数のスコープおかしくない? def hoge(x): e = "out" print(f"1: {e}") try: print(100 / x) except ZeroDivisionError as e: print("error:", e) print(f"2: {e}") hoge(int(sys.argv[1])) 例外が発生しなかった場合は以下のようにな…

awaitはasync関数の直前に置く必要はない

JSのawaitキーワードはasync関数の直前に置く必要はない。関数の直前におく、というのは以下のような書き方 const result = await fetch(url); 必ずしもこのように書く必要はなく、以下のようにも書ける const p = fetch(url); const result = await p; awai…

型による条件分岐について

はてブのコメントにはポリモーフィズムすべきだ、型による分岐したら負けだ、みたいなコメントが散見されるけど、それはJavaなど静的型付けのクラスベースオブジェクト指向言語の話であって、JSはそうではない。TSはクラスベースのような顔をしてるが正体はJ…

この答って間違えていないよね pic.twitter.com/ifRd0w4YgB— 阿彌陀 (@Amitayus33) 2022年4月26日 これは私も不正解にします。 「地球が回る」という回答は、太陽の位置が変化する理由の説明です。すなわち太陽の位置が時間と共に西へ移動するのは何故か?と…

5月に入り自動車免許を取得しようと考えてる大学生諸氏も多いだろうここで世代を問わず直面する問題が「理不尽学科試験」である納得いかねえ理不尽問題を突き付けられ、↓みたいなのが脳裏に浮かぶレベルの「正解」を見せられるみんなこうして大人になってい…

これまた何度も言ってますけど、アメリカ・中国と日本のITの一番の違いは、エンジニアのビジネス志向ですよ。日本のエンジニアは起業するのもビジネスするのも他人で、自分はそういう人に高給で雇われるべき、みたいなことしか言っていない。これじゃ差がつ…

ansibleでnvmをグローバルインストール

時は大コンテナ時代の今、ansibleでnvmをインストールする需要があるのかどうか知らんが・・・ ちなみにnvmのページには - name: nvm shell: > curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash args: creates: "{{ ansibl…

「力不足」がダダ漏れしている

この件は、僕達の力不足です。ただ、情報セキュリティの根幹である「SSL認証局」を、国内で唯一GMOが所有していると言う事を、ご存知ない官僚や政治家の方も多く、驚いた事がある。その意味では、ひろゆき君の言う通り、自国のITサービスの研究不足(=育てる気…

nginxのdefault serverを無効化する

ドメインを使わずにIPアドレスなどでアクセスされた場合にコンテンツを表示させないようにする方法。正確にはdefault serverを無効化する方法ではなく、default serverで何もしなくする方法である。 HTTPの場合 server { server_name _; listen 80 default_s…

Apple IDのサインアウトができない

TL;DR iPhoneでApple IDのサインアウトできない事態に遭遇。Macに接続してiPhoneを復元し、再度サインイン、サインアウトした。 Main Text 先日発表された緑iPhone 13を購入したのでiPhone 11を下取りに出すことにした。下取りに出すiPhoneはApple IDからサ…

JS組み込みの形態素解析

コードを見た方が早い。NodeJS v16や最新のChromeなら動作する、Firefoxはまだ実装されていない const text = "吾輩は猫である。名をニャンという。"; const seg = new Intl.Segmenter("ja-JP", {granularity: "word"}); console.log([...seg.segment(text)]…

nginxとロシアについて

nginxを開発したイゴール・シソエフ氏はカザフスタン出身でモスクワ在住のロシア人ですが、現在はnginx inc.を退社し、 nginxの開発に携わっていません。 またnginx inc.はF5傘下のアメリカ企業で、カリフォルニアに本社を置いています。ロシア企業ではあり…

neovimとvimとの共存を考える

最近neovimが良いという話をよく聞くので導入してみた。 インストールは brew install neovim で終わりである。 いきなりneovimに完全移行するつもりはないのでvim環境は残しておき、vimとneovimを同じ設定で起動したい、どうすれば良いか? init.vimを使う …

Rails 7にアップデートした

rails 6.1のアプリケーションを7.0にアップデートした。 元々はrails 5.1で作成したアプリケーションなのだが、6.0から6.1にあげたときに rails app:updateを実行し忘れていたことに気づいた。が、特に問題なく動いていたようだ。。。 アップデート手順 bund…

シェルスクリプトはタブでインデントしてほしい

近頃2 spacesのインデントが主流のような気がしている。タブインデントは絶滅危惧種ではないだろうか。私が使う言語はこんな感じである 2 spaces JavaScript (TypeScript含む) HTML CSS (SCSSなども含む) Scala Ruby 4 spaces Rust tab Java 今やタブインデ…

nginxのdeny allow はreturn と併用できない

returnがある場合はallow denyによるアクセス制御が無視されるっぽい nginxのconfigをこのようにして server { listen 8080; server_name localhost; root /var/www/html; location / { deny all; } } server { listen 8081; server_name localhost; root /v…

【スゴ本】ダイナソー・ブルース

ダイナソー・ブルース: 恐竜絶滅の謎と科学者たちの戦い作者:尾上 哲治閑人堂Amazon 巨大隕石衝突による恐竜絶滅説、いいですよね。恐竜という巨大生物はただその存在だけでも十分に魅力的なのに、劇的すぎるラストシーンがコンテンツを完璧なものに仕上げて…

MacBook Pro 2021について

気になる点を箇条書き 140Wの電源アダプタ 今までの16inch MacBook Proは96Wのアダプタ M1 Max搭載のMacBook Proは140Wのアダプタ Appleシリコンは省電力がウリというが消費電力増えてない? AppleはディスクリートGPU搭載のWindowsハイエンドノートPCよりも…

Apple StoreでiPhoneをリサイクルに出した

使っていないiPhone 5が引き出しの奥から出てきた。もう10年近く前の製品であるが問題なく動作した。とはいえ今更使わないし、買い取り対象にもならないし、バッテリーの劣化も怖いので廃棄する事にした。 東京ではスマートフォンは小型家電リサイクルプログ…

GCEのDNSサーバ

nginxをリバースプロキシとして使っておりプロキシ先をホスト名で指定しているケースで、プロキシ先のインスタンスを復元するなどしてIPアドレスが変わると、nginxからプロキシ先に接続できなくなりHTTP 502エラーになってしまいます。 これはnginxがプロキ…

JSの無名クラス

JSでは無名関数を定義できるように、無名クラスも定義できる 無名関数はこういうやつ const f1 = function(a) { return a * 2; } f1(10) // => 20 const f2 = (a) => a + 1; f2(10) // => 11 一方、無名クラスは const c1 = class { #hoge; constructor(a) {…

JSオブジェクトリテラルの省略・非省略プロパティ混在時の書き方

最近のJSはオブジェクトリテラルで変数名とプロパティ名が一致していれば省略できますが const x = 1; const obj = { x }; console.log(obj); // => { x: 1 } で、省略できるプロパティとできないプロパティが混在していた場合どういう順番で書いてます? 例…

Macのファンが回るときの対処法

Apple Silicon化でmacは静かになったが、未だ多く使用されているIntel macは何か作業したり動画を見たりしているわけでもないのにファンが轟音を立てて回り出すことがある。 アクティビティモニタでどのプロセスがCPUに負荷をかけているのか調べられるが、原…

転売ヤーの話

ある経済学者と自称する、頭が固く、新しきを学ばず、内省をせず、誤りを認められず、他者の言葉には耳を貸さず、自分が常に正しいと考えている残念な老人を絵に描いたような人物がいる。今時の言葉で表せば老害と呼ばれるものだ。 そうして自らを過信した結…

gRPCの接続エラー、4740180って何?

gRPCのJavaクライアントで以下のようなエラーメッセージが出てきたら、おそらく接続先の間違い。普通のHTTPサーバに接続しようとしていると思われる io.grpc.StatusRuntimeException: INTERNAL: error in frame handler Caused by: java.io.IOException: FRA…

ティッシュペーパーとネイピア数

ティッシュペーパーのネピアと自然対数の底であるネイピア数には実は関係がある。 ティッシュペーパーのネピアを製造している王子ネピアの社名と製品名はニュージーランドのネーピア市に由来している。そして、このネーピア市という名前は19世紀のイギリス陸…

JSONのキーをIDにする話

JSON詳しい方にお聞きしたいのですが、Aみたいなデータを返すREST APIの流派があるんでしょうか??サーバサイドでもフロントエンドでも、なんかAPI呼んでAが返ってきたら使いづらくて仕方ない気がするのですが…※私はBにすべきだと思うが「Aがモダンでスタン…

bluebox

若き日のスティーブ・ジョブズはウォズが作ったblueboxという電話がかけ放題になる違法な装置を売り捌いてApple設立の資金にしたという逸話がありまして・・・ ジョブズが人間としてはダメダメなファッキンクソ野郎だったというのは今更言うまでもなく、違法…

java.sql.SQLExceptionはIterableを実装している

SQLExceptionはIterableを実装している なのでこう書ける try { execSql(); } catch (SQLException e) { for (Throwable t : e) { System.out.println(t.getMessage()); } } 原因の原因を辿っていくのだろうけど、どういう用途を想定してるのだろうか?

OpenSSL 1.1.1のアップデート

OpenSSLについて以下の脆弱性と対応パッチが公開された CVE-2021-3449 CVE-2021-3450 Ubuntuでは3/30現在、CVE-2021-3449対応のアップデートが公開されている。 1.1.1f-1ubuntu2.3 : openssl package : Ubuntu CVE-2021-3449はnginxなどでSSLを使っていると…