サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
qiita.com/KEINOS
Go 言語(以下 Golang)で、1 バイトのデータを左シフトさせたのち、右側末尾にビット・ローテーションさせたい。いわゆる、ひとつの循環シフト。 普通にビットシフトすると溢れたビットは消えてしまうのです。 func main() { v := uint8(0b11110000) w := v << 1 // 1 ビットの左シフト fmt.Printf("%08b\n", v) fmt.Printf("%08b\n", w) } // Output: // 11110000 // 11100000
/app $ npm ls minimist mastogetter@0.0.1 /app +-- ava@3.5.0 | `-- update-notifier@4.1.0 | `-- latest-version@5.1.0 | `-- package-json@6.5.0 | `-- registry-auth-token@4.1.1 | `-- rc@1.2.8 | `-- minimist@1.2.5 deduped # ← これ `-- eslint@6.8.0 +-- file-entry-cache@5.0.1 | `-- flat-cache@2.0.1 | `-- write@1.0.3 | `-- mkdirp@0.5.3 | `-- minimist@1.2.5 deduped # ← これ `-- mkdirp@0.5.3 `-- minimist@1.2.5 #
【Golang】Docker + scratch で "net" モジュールを使った静的リンクバイナリを使う際のビルドの注意【"net/http" "net/url" など】GoDockerNetmultistage-builddocker-scratch Go 言語(以下 Golang)v1.16 以降で、"net" モジュールを使ったバイナリを Docker のマルチステージ・ビルドでコンパイルし、どーしても scratch イメージで使いたい。 例えば "net/http" や "net/url" パッケージなどを使って HTTP GET リクエストするものなど。 しかし、静的リンクしないと standard_init_linux.go:228: exec user process caused: no such file or directory エラーが発生するし、静的リンクさせ
SHA-3 のコンペで最終選考まで残って Keccak に負けた BLAKE2。その後継である BLAKE3 が「爆速らしい。しかも FNV1a より数倍」と聞いたので試してみたい。 でも公式は Rust と C 言語での実装なのです。どちらも話せません ... 最近勉強している Go 言語(以下 Golang)で試してみたかったのです。 BLAKE3 | BLAKE3-team @ GitHub BLAKE3 の仕様書: BLAKE3 Specs @ GitHub 関連記事: hashアルゴリズムとハッシュ値の長さ一覧(+ハッシュ関数の基本と応用) @ Qiita TL; DR (今北産業) 16・・ バイト長ハッシュで速い FNV1 より、64・・ バイト長ハッシュの BLAKE3 の方が 8 倍以上速かった。😱 試したライブラリ(どちらも BLAKE 非公式): BLAKE3 f
【Golang】標準入力から1文字のキー入力を読み込む(enter いらずの On KeyPress/KeyDown っぽいやつ)Gokeypress標準入力onKeyDownkeyEvent Go言語で標準入力のキー押下(KeyPress)を検知する Golang で標準入力から1行ごとではなく、1文字だけ取得する方法を知りたい。 正確には TTY からの標準入力を 1 文字欲しいのです。Javascript で言うところの onkeypress のキーイベントを取得したいのです。 つまり、ターミナルやコマンドラインなどのユーザー入力(標準入力)で y -> enter でなく、y キーを押しただけで y を検知したいのです。 「golang 標準入力 1文字 読み込む」で Qiita 記事に絞ってググっても、競プロの課題にあるような「改行区切りで得られた文字列から、最初の文字を取得する
等幅フォントでない限り、全角 1 文字 == 半角 2 文字 の文字幅にならないのは当然として、それでも CLI アプリやコマンドのヘルプ表示など、なるべく等幅(1 行が固定長)になるように折り返したいのです。 つまり Golang の WordWrap がしたい。 しかし「"golang" 文字列 固定幅 改行」でググっても、なかなかヒットしなかったり、ルーンをゴニョゴニョしろとは言うもの具体的なものがなかったので、自分のググラビリティとして。 TL; DR (今北産業) github.com/mattn/go-runewidth パッケージの runewidth を使う。 go-runewidth は @mattn さんによる awesome-go なパッケージです。 runewidth.Wrap(s string, w int) string メソッドで文字列 s を w 文字幅で改
【Golang】Alpine Docker で実行すると error: stdlib.h: No such file or directory. "stdlib.h" が足りないと言われるGoDockeralpinemusl golang:alpine の Docker イメージで go run や go test を実行すると stdlib.h: No such file or directory の fatal エラーで叱られる。 たまに C がインポートできないと cgo からも叱られる。はたまた、musl や gcc がうんたらと叱られる。 「"golang" "alpine" fatal error: stdlib.h: No such file or directory」とググっても日本語で情報が出てこなかったので自分のググラビリティとして。 $ go test ./... T
foreach ループを使い Server-Sent Events を監視している Docker コンテナがあります。コンテナを起動して、しばらくするとマシンが「フォーーっ」と唸り始めたので、 docker stats コマンドで確認すると CPU 使用率が 100% を超えていました。 どうしよう Qiita 記事に絞って「Docker CPU 使用率 100% コンテナ 軽減」でググってもヒットしなかったので、自分のググラビリティとして。 TL; DR (今北産業) 条件により空ループ(何も処理をしないでループする)箇所が発生していないか確認する。 (for/foreach/while ループなど) 該当ループ処理の最後に支障をきたさない範囲で sleep を入れる。 (1 〜 0.5 秒入れるだけでも劇的に変わる) 上記を確認した上で Docker もしくは docker-compo
$ # 検証日 $ date 2019年 1月17日 木曜日 17時10分14秒 JST $ $ # OSのバージョン $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.2 BuildVersion: 18C54 $ $ # du コマンドのバージョン $ man du | tail -1 | sed -e 's/ */ /g' BSD June 2, 2004 BSD $ # ホームディレクトリで du の実行 $ sudo du -d 1 -h ~ Password: 3.8M /Users/admin/Music 8.0K /Users/admin/.docker 8.0K /Users/admin/.local 0B /Users/admin/Pictures 6.0M /Users/admin/.phpls 54M /Us
簡単に Git サーバーを Mac で建てたい GitHub のような Git サーバーを自宅/オフィス用に Mac・・・ で簡単に・・・建てたい。 しかし、MySQL や Postgres などの DB サーバーや面倒な設定のいらない俺様専用レベルの Git サーバーはないものか @ HighSierra (OSX 10.13.6) TL; DR (今北産業) バイナリ1つで動作する「Gitea」はいかがでしょう。 brew でインストール可能(要 tap と各種設定) コマンド 1 行で SQLie3 + 日本語化 + 空きポートで安定版 Gitea がインストールできるスクリプトを用意しました。 いんふぉ Gitea は Golang で作られており、バイナリ本体のサイズも 51 MB 程度です。 日本語表記に対応しています。(日本語化対応状況) 公式サイト「Gitea」 https
macOS のネットワークの設定内容を CLI シェル(ターミナル)から確認したい。 主に「DNSサーバ」の項目内容など。つまり、[システム環境設定]-[ネットワーク]-[Wi-Fi]-[詳細]-[DNS] にある項目。 「mac ターミナル DNSサーバー 取得」や「mac シェル DNSサーバー 取得」を Qiita 記事に絞ってググっても出てこなかったので、自分のググラビリティとして。 TL; DR (今北産業) 「networksetup」コマンドの「-GetDNSServers」オプションで DNSサーバ 一覧が取得できます。 基本構文
「python 文頭に記載する アレ」とか「python 文頭 記述 文字コード アレ」の Qiita 記事をググっても出てこなかったので、自分のググラビリティ(備忘録)として。 TL; DR (今北産業) アレは英語で Magic comment と言います。 Python 3 の場合、ソースが UTF-8 の時は記載は不要です。(むしろ非推奨) Python 3 で使えるコーデック文字コードのエンコード一覧はこちらになります。 Standard Encodings | Codecs | Library | v3 @ docs.python.org 取りまとめ 英語で Magic comment と言います Magic comment の日本語表記について 英語の文献(PEP-263)には「magic comment」という記載がありました。 To define a source cod
Docker のコンテナ(ゲスト OS)内のアプリやスクリプトなどに、ホスト OS 側からシステム環境変数をゲスト OS に渡したい。 つまり macOS や Linux で言うと export したシェル変数や env コマンドで表示される値を外部から渡したい。LC_ALL とか LANG とかタイムゾーンとかアクセストークンとか SSH の鍵とか色々。 しかし「docker compose 環境変数 ホストOS ゲストOS 渡す 方法 各種」で Qiita 記事に絞ってググっても、まとまったものがなかったので、自分のググラビリティとして。 Docker を恐れずに一言で説明すると「Linux 環境の閉鎖空間で Linux のプログラムを実行するもの」です。 つまり、Mac や Windows でも Docker は使えるものの、実際には仮想マシン(VM)上で Linux 環境を起動して
Go言語で文字列中に変数を展開して使いたい Go言語で以下と同じことをしたい。 bash でいう hoge="fuga ${piyo:-piyopiyo} mogera" php でいう $hoge = "fuga ${piyo} mogera"; ruby でいう hoge = "fuga #{piyo} mogera" python でいう hoge = f'fuga {piyo} mogera' (python >= 3.6 に限る) 「golang 文字列 変数 展開」とググっても「連結演算子(+)でしかできない」という情報が多かったので、自分のググラビリティとして。 関連記事: 改行などをエスケープして表示したい。【代入済み変数の文字列をエスケープ出力】 @ Qiita TL; DR 確かに Go 言語(以下 Golang)には interpolation(補間、内挿)機能は
VS Code(Visual Studio Code)でインデントの変換や切り替えのショートカット VS Code でファイルを開いたらタブ・インデントだったので、スペース・インデントに変換したい。 でも、メニューから(マウス操作)でなくショートカットで変換・変更できないか。 「VSCode タブ スペース 変換」でググっても、「設定からインデント設定を変更する」とか、「\tをスペースへ文字列置換する」とかしか出てこなかったので、自分のググラビリティのため。 TL; DR (今北産業) 「F1 レースで indent が速い」と覚える。🚗 =3 ブッ デフォルトでショートカットが割り当てられていないので、下記でも面倒な場合は(TS;DR を参照して)ショートカットを割り当てます。 F1 を押す indent と入力し indentationToSpaces もしくは indentati
この記事は、前回の記事のフォローアップ1 記事です。 前回の記事: 「スクリプト をサービス登録するテンプレート [init.d 編]」 @ Qiita 「お前もデーモン登録してやろうか」〜俺様スクリプトのデーモン化〜 この記事では、init.d もしくは SystemD に「自作スクリプト(アプリ)を登録し、サービスとして自動起動する」までの手順を記載しています。 前回の init.d の登録の仕方の記事を読んで、SystemD でも自作スクリプトやアプリをデーモナイズ(デーモン化/サービス化)したいと思われたら参考ください。また、念のため init.d の登録方法についても言及しているため、若干前回と重複します。 🐒 本記事は Dasher の著者から許可をいただいたので、Wiki にある「Running Dasher on a Raspberry Pi at startup」を
ARM 系 QNAP に git/php7/golang などをパッケージでコマンドインストールする [Entware で Opkg 編]QnapopkgipkgAppCenterentware QNAP® の NAS に git や PHP7 や Golang をインストールしたい と、思うも「App Center」にないので困った。Python3 はあるのに。筆者の QNAP マシンがショボい(TS-110P+, ARMv5, メモリ 512MB)ため QNAP 用のコンテナ環境「Container Station」も入れられない仕様で、どうしよう。(棒読み) Docker は諦めるにしても、gcc make も入ってないし。git くらいは簡単にインストールできる apt yum brew のような CLI 版のパッケージマネージャーはないものか。 検証機器:OS: QTS 4.3.
-ListNetworkServiceOrder -ListAllNetworkServices -ListAllHardwarePorts -DetectNewHardware -GetMACAddress <HardwarePort or Device Name> -GetComputerName -SetComputerName <Name> -GetInfo <NetworkService> -SetManual <NetworkService> <ip> <subnet> <Router> -SetDHCP <NetworkService> [clientid] -SetBootp <NetworkService> -SetManualWithDHCPRouter <NetworkService> <ip> -GetAdditionalRoutes <NetworkService
macOS で「this TensorFlow binary was not compiled to use: AVX2 FMA」エラーPythonMacOSXAVXTensorFlowFMA Python3 + tensorflow で tf.Session() を実行するとワーニングが表示される。 2018-06-18 13:51:51.762563: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA TL; DR (今北産業) ノープロブレム。無視しても大丈夫です。 pip でインストールした tensorflow のバイナリが、現在の CPU
$ ls himitsu.txt $ enc KEINOS himitsu.txt KEINOS の GitHub 上の公開鍵を取得中 ... OK RSA 形式の公開鍵を PKCS8 形式に変換中 ... OK 公開鍵でファイルを暗号化中 ... OK 一時ファイルの削除中 ... OK 暗号化を完了しました。このファイルを相手に送ってください。 暗号化済みファイル: himitsu.txt.enc $ ls himitsu.txt himitsu.txt.enc 🐒 デフォルトの状態の macOS HighSierra(OSX 10.13.6)で動作確認済みですが、bash, curl, ssh-keygen, openssl, md5 のコマンドが使える環境であれば Raspbian や Alpine でも動いたので大丈夫だと思います。 なお、秘密鍵をパスフレーズ付きにする場合
「ハッシュ値の衝突」(コリジョン)や「データの改ざん防止」など、複数のハッシュ・アルゴリムを組み合わせるために、ハッシュ値の「長さ」と「速度の目安」一覧が欲しい。 ... ってか、ハッシュって、そんなにおいしいの?圧縮された暗号とちゃうん? TL; DR (今北産業) この記事はハッシュ関数の出力結果を桁数ごとに、まとめたものです。 ハッシュ関数の各々の「アルゴリズムが最大何文字・・の 16 進数で返してくるか」の事前確認に利用ください。 マスター、一番強いヤツをくれ。 バランス優先 👉 sha3-512(64 Byte, 128桁, 2020/12/22 現在) OS やプログラム言語間の互換性・強度・速度で、一番バランスが取れているハッシュ・アルゴリズム。使いやすさなら、SHA3-256。 互換性?ここでいう互換性とは「どの言語でも標準・・で大抵は実装しているアルゴリズム」のことです
TL;DR CentOS7 の yum 標準リポジトリは古いため epel リポジトリを追加して割と新しい pandoc をインストールする。 2018/07/22 現在のインストールされる Pandoc のバージョンは「v1.12.3.1」(それでも古い) 最新の Pandoc をインストールしたい場合はソースからコンパイルする必要があります。 pandocをCentOS7にインストール @ Qiita Pandocとは オープンソースのドキュメント・ファイルのフォーマット・コンバーター。Markdown などのマークアップ・データを HTML, Word, InDesign ICML, etc. といった様々なフォーマットに変換でき、Lua で独自の変換機能も使える。 [Wikipedia] Pandoc 情報 Pandoc 公式サイト 最新リリース 入力(変換元データ)と出力(変換可
🐒 【2020/11/18 追記】2020/10/24 に Composer の v2 がリリースされました。 速度改善、PHP 7.4 以降対応、パッケージ名の厳名化、composer 経由の PEAR 利用の終了など変更点が盛り沢山です。そのため、急に動かなくなるパッケージが出てきています。パッケージマネージャー、Docker や CI などで composer を自動インストールしている人はデフォルトで v2 になるので要注意です。 各種主要パッケージの追随が落ち着くまでの間、バージョンを固定しておきたい場合は、composer 本体のインストールや更新は下記のように --version オプションでバージョンを指定してください。
この記事は LINE Web Login(現 LINE ログイン)、俗に言う OAuth ログインの LINE 版に関する LINE API v2.0 の説明です。 🐒 2018/01/28 追記:元々は、去年(2017 年に)訳していた "LINE Developers - Web API - Integrating Web Login" の v2 の日本語訳の記事なのですが、今年(2018 年)に入って LINE ログイン V2.1 のリリースとともに本家で翻訳が出てました (´・ω・`) 下書きの空きを作るために公開します。削除に忍びない また、わかりづらい用語には筆者の独断で補足および関連リンクを貼っています。「LGTM」(旧いいね)が付くたびに何かしら手を付けてますが、変更通知は送りませんのでストックされた方はお手すきに覗きに来てください。 🐒 2022/01/18 追記
勤怠表などで打刻する場合、四捨五入でなく 15 分区切り/30 分区切りといった区切り時刻で打刻する必要があります。どうすればいいですか? 例) 8:01 出社 → 勤怠打刻時間:08:15 (14分間の 切り上げ) 例) 11:32 出社 → 勤怠打刻時間:11:45 (13分間の 切り上げ) 例) 18:42 退社 → 勤怠打刻時間:18:30 (12分間の 切り下げ) 例) 22:02 退社 → 勤怠打刻時間:22:00 (02分間の 切り下げ) 実は「禁断の計算術」です 勤怠、つまり毎日の勤労時間を記録する際に、5 分や 15 分単位で切り捨てる計算は「切り捨て御免」と呼ばれる古くからの計算術です。 しかし、この計算術は Qiita では禁断の術式とされており、しかも日本国内では違法になります。そのため、禁断の術を暴露したこの記事も、書いた私も消されるかもしれません。 あなたが総務
"Security is a journey, not a destination." by Bruce Schneier セキュリテイ・チェックリスト OS(CentOS7)をインストールした直後に設定するセキュリティ対策の ToDo リストです。 可能な限りインラインコードや括弧内は、各々にそのキーワードで検索の関連リンクを張っています。 「さくらの VPS」ユーザーは、主に Apache の設定がメインであるものの『VPS 設定マニュアル』は必読だと思います。 アップデート(yum update, WordPress, plug-inなど) yum --enablerepo=remi,remi-php56 update -y && reboot (KUSANAGIの場合) root のパスワードを他のユーザと同じにしない passwd, mkpasswd -l 12 root になれ
🐒 この記事は、Mac ユーザーで「包丁は料理に使うもの」であり「犯罪・復讐・脅迫に使うものではない」ことがわかる方、そして料理に興味を持つも「包丁の仕組み」が料理より気になる、形から入るタイプの方限定の記事です。 また、この記事は「いいね」(旧 LGTM)が付くたびに見直して何かしら手を入れています。変更通知も送りませんので、ストックくださった方は、お暇な時にまた覗きに来てください。(初稿 2018年02月08日) 「実施編」とは言ったものの、記事の後半は「機械学習の基礎の基礎」であるため、いささか長い記事になっています。ハンズオンというより、むしろ読み物なので、まずはお手すきにスマホとかでゴロ寝しながら読んでください。全体像を把握してからトライされるのが良いと思います。 はじめに この記事は「人物 A の動画の顔を人物 B の顔に入れ替える技術文書」です。その「具体的な HowTo
リモート時代のソフトウェア・エンジニアのための Wi-Fi 切り分けリストと基礎知識 Wi-Fi の調子が悪い。ちょっと見てくれる? 「通信はできるものの遅い」「WiFi の反応がない」と、ただのプログラマーなのに只ただの██屋と思われているのか、「みて欲しい」と言われたときの切り分けと説明のボキャブラリー集です。 もちろん、ここに記載している内容はインフラ屋さんから見れば基本中の基本で、より厳密に説明すると異なることもあります。しかし、ソフトウェア・エンジニアとして知っておきたい知識、つまり「●●を試してどうか」の切り分けと、解決した場合の「直った理由」(考えられる原因)をリストアップしています。 主に「物理的な切り分け情報」をメインに記載しています。ソフトウェアの設定に翻弄される前・に潰す要素としてご利用ください。なお、無線 LAN のうち IEEE 802.11(俗に言う WiFi)
🐒 この記事は fhd@github 氏のスクリプトをサービス登録するためのテンプレート「init-script-template」の「README.md」を翻訳したものです。ライセンスはオリジナルと同じ MIT ライセンスです。 「お前もサービスにしてやろうか」俺様スクリプトのデーモン化 このテンプレートを使うと: 任意のスクリプトを Daemonize できます。 (start, stop, restart, status コマンドに対応させつつサービスに登録できます) 自作スクリプト問わずコマンド実行できれば何でもサービス化できます. CentOS6 などの init.d 対応の Linux OS で利用できます。 Raspberry Pi(Raspbian Wheezy 以前)などで、いい感じで動いた Node.js アプリを登録するのに便利です。 Raspbian Jess
次のページ
このページを最初にブックマークしてみませんか?
『@KEINOSのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く