venvを自動的にアクティベート化させたい
[tools] python = "3.12" [env] _.python.venv = { path = ".venv", create = true } # create the venv if it doesn't exist
venvを自動的にアクティベート化させたい
[tools] python = "3.12" [env] _.python.venv = { path = ".venv", create = true } # create the venv if it doesn't exist
PHPではgethostbyaddr関数というのがある。指定したIPのリモートホスト名を取得することができる。
gethostbyaddr('66.249.66.1');
これをDocker使ってワンライナーでやりたい。
これでワンライナーで実行できる
$ docker run --rm --dns 8.8.8.8 php:8-cli php -r "echo gethostbyaddr('66.249.66.1');" crawl-66-249-66-1.googlebot.com
ポイントは以下
--rm
: コンテナ実行後に自動的に削除する。不要なコンテナが残らない。--dns 8.8.8.8
: DNSサーバーを指定。必須 これがないとDocker内部のDNSサーバーで解決を試みてしまい、どのIPを入力してもIPアドレスが返ってきてしまう。php:8-cli
: PHP 8.xのCLIイメージを使用。これにより、PHPスクリプトを直接実行できる。php -r "echo gethostbyaddr('66.249.66.1');"
: PHPのgethostbyaddr
関数を実行し、結果を標準出力に表示。これらのポイントを押さえることで、Docker環境で簡単にgethostbyaddr
関数を利用できる。
IPアドレスをいちいち書き換えるのが面倒だったので、bashのfunction機能を使ってコマンド化した
gethostbyaddr() { docker run --rm --dns 8.8.8.8 php:8-cli php -r "echo gethostbyaddr('$1');" }
以下のように引数を渡すと実行できる。
$ gethostbyaddr 66.249.66.1 crawl-66-249-66-1.googlebot.com
ChatGPTにJavascriptをTypescriptに変換してもらうためのプロンプト
Act as an expert programmer in Javascript and Typescript. You Translate code from Javascript to Typescript. - Add types to all variables and functions (string, boolean etc.) - The user can alternatively ask to create a function or a UI component. If the user provided a request to write code, create the function or code and return it. - Never no include your own comments. Example translating from JavaScript to Typescript: """js // React code in Javascript: import React from 'react'; function Greeting(props) { return <h1>Hello, {props.name}!</h1>; } export default Greeting; """ """typescript // React code in Typescript: import React, { FC } from 'react'; interface GreetingProps { name: string; } const Greeting: FC<GreetingProps> = (props) => { return <h1>Hello, {props.name}!</h1>; } export default Greeting; """
おそらく https://js2ts.com/ のサイトはこのプロンプトで動いている。
今、若者の間で2000年代の古いデジカメが流行っているらしい。最近のスマホは綺麗に撮れすぎているので一周回ってアナログ的な画質の粗さが評価されてるっぽい。
かくいう自分も写ルンですのカメラ買おうか迷ってたぐらいなので気持ちはわかる。
で、先日実家に帰ったときに探したら昔親が買って使っていたデジカメが出てきた。カシオの「EX-Z1050」ってやつ。
カシオ デジタルカメラ オフィシャルWEBサイト | 製品情報 | EX-Z1050
主なスペックと仕様は以下
当時のデジカメとしてはスペック高い方だったらしい。鳴り物入りで導入されたあまねきー家初のデジカメである(これ買う前は全部フィルムカメラで現像してたとかマジか
付属品含め箱が全部揃っていて(あまり使ってなかったので)バッテリーも全然使えたのでありがたく拝借した。
外に出て色々パシャパシャ写真撮った。せっかくなので一応映えを意識して横浜みなとみらいにて撮影。当時としては最強スペックの2GBのSDカードを搭載したので怖いものなしである。
ファイル名バグってしまったので以下順不同で写真紹介する。
パタゴティタン日本初上陸と噂の恐竜展
恐竜デカすぎて全然画角に入らなかったwiPhoneの広角カメラに慣れすぎてた
どっかのJRの駅
横浜じゃないけどサンリオショップのハローキティたち
観覧車 逆光してて世紀末みたいになってるw
噴水 割とキレイに撮れてるのでは
遠くから見えるランドマークタワー
近づいて撮影したランドマークタワー 大きいね
中華街の町並み
よだれ鶏の写真 当時デジカメでご飯の写真撮ったことなかったけどどう頑張っても食欲のわかない飯テロ画像になる
比較としてiPhoneで撮影したよだれ鶏 フィルターカメラで撮ったのはフェアじゃなかったな(
みなとみらいの夜景 特に設定いじらずフルオートでの撮影だが結構きれいに撮れている
しかし上記の画像はあくまで成功例。大抵はブレてボヤけてしまう
以下雑感
ということで実家にデジカメ眠ってたら発掘してみると普段スマホで撮影している写真とはまた変わった景色が撮れるかもしれないのでおすすめです。
古デジカメ需要によってメルカリでも売買が活発らしい。試しに見てみたら直近だとEX-Z1050は2万円で取引されてたw
当時の定価4万円だぞ。。。
import { unified } from 'unified'; import remarkParse from 'remark-parse'; import remarkMdx from 'remark-mdx'; import remarkStringify from 'remark-stringify'; import { visit, SKIP } from 'unist-util-visit'; import { readFile, writeFile } from 'fs/promises'; import {MdxJsxFlowElement} from 'mdast-util-mdx-jsx'; interface ParentNode extends Node { children: Node[]; } // MDXファイルを処理する関数 async function processMdxFile(filePath: string): Promise<void> { try { // ファイルを読み込む const content = await readFile(filePath, 'utf-8'); // unified処理パイプラインを作成 const result = await unified() .use(remarkParse) .use(remarkMdx) .use(() => (tree) => { visit(tree, 'mdxJsxFlowElement', (node: MdxJsxFlowElement, index: number, parent: ParentNode) => { // <Demo>コンポーネント以外を削除 if (node.name !== 'Demo') { parent.children.splice(index, 1); return [SKIP, index]; } }); }) .use(remarkStringify) .process(content); // 処理結果を元のファイルに上書き保存 await writeFile(filePath, result.toString()); console.log(filePath); } catch (error) { console.error('error', error); } } // 使用例 processMdxFile('src/pages/core/pin-input.mdx');