Unix 哲学的に考えれば、行を並び替える sort コマンドと重複行を取り除く uniq コマンドは別のコマンドであるべきなように思えます。しかし sort コマンドには -u オプションとして uniq コマンドに相当する機能が組み込まれています。なぜそうなっている(そうなってしまった)のかを「ソフトウェア作法(さくほう)」を参照しながらこの記事で明らかにしたいと思います。 関連記事 Unix哲学「一つのことをうまくやる」は単機能のコマンドを作ることではない 「誰」がuniq機能をsortコマンドに組み込んだ!? 熱烈的な Unix 哲学の信者は「どうせ Unix 哲学を理解しない GNU が便利だと思ってオプションを追加したのだろう」と考えるかもしれません。しかし uniq 機能が組み込まれたのは Version 7 Unix、つまり Unix の開発者が組み込んだのです。これは 1
はじめに VSCode + Python + Poetry + Docker(docker-compose)でdev-containerを作成して開発を行っていました。 Dockerを勉強し、イメージの軽量化に関する記事を読んでいると、自分が使っているコンテナイメージのサイズが気になりました。 docker images > REPOSITORY TAG IMAGE ID CREATED SIZE > dev-container latest a9b8e3df9087 2.31GB 2.31GB!? サーバとしてアプリを動かしていないのにここまで大きいなんて… というわけで勉強も兼ねて、イメージの軽量化に取り組みました。 イメージが軽量であるメリット ストレージの節約 これは言わずもがなだと思います。 限られたリソースを有効に使うことができます。 ビルド時間の短縮 Dockerは環境を作っ
入力欄のプレースホルダーの話をします。プレースホルダーというのは、フォームの入力欄で、ユーザーが入力するまでの間に表示されているテキストのことです。 書籍「Webアプリケーションアクセシビリティ1」では、「3.1 ラベルと説明」のところで、紙版にして約1.5ページの分量を割いて、フォーム入力欄のプレースホルダー(<input> 要素や<textarea> 要素の <placeholder> 属性)の問題点を指摘しています。 この本で指摘されているプレースホルダーの問題点は以下の3つです。 プレースホルダーの色が薄く視認しづらい プレースホルダーとフォームコントロールの値との区別がつかない フォームコントロールに値を入力したときにプレースホルダーの値が見えなくなってしまう Webアプリケーションアクセシビリティ さらに、Nielsen Norman Groupによる「Placeholders
はじめに 年末から忙しかったせいでQiitaも滞り、どう再開しようか悩みどころであった。 加えて(というか今回はこちらが本題だけれど…)、最近うつになって医者から診断書をもらい、仕事を休んでいた。 原因としてなにか大きな出来事があったわけではなく、日々のささいなことの積み重ねだったと感じている。 まだ本調子なわけではないし波があるだろうとは思うのだけど、同じようにメンタルをやられた方々の記事を読んで、自分も今の感じ方を残してみようと思った。 同じように悩む人、未来の自分の役に立てば。 あまり深くは考えずにとりあえず書く。 考えられる要因 昨年秋ごろに新PJに参入し、年末から繁忙期。十分に案件理解をしていないままがむしゃらに業務にあたり、失敗体験が積み重なった 「なんでこんなにできないんだ」と自分を責めまくっていたのがはじまり 急に残業が増え、体と脳みそがついていかなかった 基礎体力不足&不
OCIについて知らない方向け AWSは知ってるがOCIを知らないという方は取り急ぎ以下のようなページを読むとイメージが掴みやすいかと思いますのでリンクを貼っておきます。 本件では細かい用語の違いなどの説明は省略します。 OCIへの移行理由 今回移行した理由はコスト削減が最大の理由でした。 オンプレからAWSに移行したのは3年前の2021年2月で当時のドル円相場は約106円でした。 2021年のAWS移行当時、RDSのReserved InstancesとEC2のSavings Plansを3年で購入していました。(通常は1年などで購入されるケースの方が多いと思いますが、歴史のあるサービスなので急激なリソースの増減はあまり無さそうではと考えたためとなります。結果としては円が強いタイミングで安く買えて助かりました) 移行を検討し始めたのはRI/SPが切れる1年前くらいで、その時点のドル円レート
対象者 Docker使いたいけどよくわからない Docker使い始めたけどコマンド言われるがままに打っていてよくわかってない コマンドと動作を図示で理解したい こんな人の理解の一助になれば幸いです。 (前提条件: docker version 26.0.2) Dockerコマンドを可視化してみた 勝手にローカルのPCをmacにしているのはご愛嬌です ※2024/5/16 9時訂正版の画像に差し替え コメントで間違いを指摘していただきありがとうございます🙇 細かいオプションなどは一旦無視してライフサイクルの部分を抜き出してみました。 Docker imageの操作 dockerの肝となるコンテナは、imageから生成します。 そのimageは、 docker hubからpullしてくる dockerfileからbuildする この2択で生成します。 コマンドは、 など、 docker i
はじめに ◆この記事は何? 社内Wikiの改善方法について紹介する記事です。 ◆この記事のねらい 社内Wikiを改善することで、チームの生産性や品質を向上させ、開発体験をより良くするのがねらいです。 先に結論 「ルール」ではなく「ポリシー」を設ける 「Working集」と「アーカイブ集」をつくる ページごとに目的を書く 大切な思考法 「中途半端なドキュメントは中途半端な文化を生む」 「誰でもできるは誰もやらなくなる」 社内Wikiのよくある課題 皆さんの社内Wikiで次のような課題を感じたことはありませんか。 情報が散乱 更新中のページがそのまま メンテナンスされていない構造 多くの人が作成・編集できる社内Wikiは、改善の意志がないと上記のような状態になりがちです。 最悪の場合、開発体験の低下につながります。 良い社内Wikiとは 良い社内Wikiの必要条件は以下の通りです。 開発体験を
はじめに 仕事以外の時間も勉強しないといけないとわかっていてもなかなかモチベーションがわかない エンジニアは移り変わりの激しい技術を追っていかないといけない仕事なので、就職する前に「仕事終わりも休日も勉強しないといけない」そう聞いてエンジニアになった人も多いかと思います。 私もプログラミングの勉強を始めた頃には、楽しいと思って色々勉強を続けていましたがいつしか仕事終わりに勉強したり、休日に勉強することができなくなりました。 周りには自分よりももっとできる人がたくさんいて、少し勉強したところで給料が上がるわけでもなく、現状が変わるような気分もなくモチベーションは全く上がりませんでした。 勉強をしようとしてもすぐに成長を実感できるわけでなく、勉強を続けてもそれがものすごく身についたという感覚も少なかったです。 しかし、とあるタイミングでプログラミングを継続的にできるようなきっかけがあり、そこか
はじめに 私は毎朝その日の作戦名を決めている。私は優秀なエージェントなのだ 多くの人が仕事に追われてしまい心の余裕がなくなっている現代において「豊かに生きる」ということは憧れるようなライフスタイルになっている。 面白いことに、書店では「休養学: あなたを疲れから救う」や「なぜ働いていると本が読めなくなるのか」など仕事に疲れている人を対象にした本が飛ぶように売れている。 疲れ切った現代では、日々を豊かにいきることはなかなか難しいことになってしまっているように思われる。 しかし、私は日々を豊かに生きている自信がある もちろん仕事は週5日×8時間行っている。残業がないのは幸いなことだと思う。 そしてQiitaの記事も毎週3本書く生活もしている。それに加えてプログラミングコーチングJISOUで多くの生徒に日々指導を行っている。 そんな私でも毎日本を読む時間というのはしっかりある。 では、ここにはど
はじめに 多くの勉強方法を試してきて、最後にたどり着いたのが問題駆動プログラミング法という学習方法でした 世の中では独学大全という本がベストセラーになるなど、学習内容ではなく、「勉強方法」を学びたいという人はとても増えています。 せっかく勉強するなら効率よくやりたいと考えるのは当たり前のことです。 成果を出したいならその分野の努力の仕方を学ぶのが1番効率的で賢い それは誰もが理解していることだと思います。 「では、プログラミングの勉強の仕方を学んだことはありますか?」 おそらく多くの人が自分なりに勉強をしていると思います。 なぜかというと勉強方法などの経験的な記事を書こうとすると「考え」を書くことになるため記事を書くのがとても大変でなかなか世の中には「これをやれば確実」という勉強方法を紹介している記事は少ないです。 これはエンジニアが基本的に「技術」を発信することが多くなるので仕方がないと
はじめに 本記事ではエンジニア向けの海外情報収集サイトをまとめました。”一次情報”をより”早く”取得するという意味で海外の情報収集を行うことは非常に意義のあることです。日本で働いている人でも、海外情報は積極的に取得しましょう。英語が読めない方も翻訳機やLLMに投げることで良い感じに翻訳してくれます。 本記事は、情報収集サイトを次の4種類に分類して紹介しています。参考にしてください。 学習系 ニュース系 ITサービス技術ブログ その他 それでは、早速紹介していきます!! 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 学習系 FreeCodeCamp FreeCodeCamp.orgは、エンジニアやプログラミング初学者を対
Zenn の記事や、README ファイルを GitHub のページ上で表示するときなど、普段は Markdown で書いたファイルを HTML に変換 しますよね。 ですが、たまには HTML を Markdown に変換 したくなりますよね? とはいえ、プログラムで文字列処理したって面白くありません。 「CSS を使って HTML を Markdown に変換」 がしたいのです。 なんのためにそんなことをするのかって? やりたくなったからです。 実際に作成したコードを CodePen にサンプルを以下に紹介します。 ページ上に Markdown のようなコードが表示されていますね。 ですが、HTML のタブを開くと # のような記号のないシンプルな HTML が並んでおり、Markdown を HTML に変換したかのように見えるので、ちょっと不思議な気持ちになれると思います。 「ED
最近アーキテクトなるお仕事になったようなので、コードやアーキテクチャ関連の本を読み漁っています。何冊か読んでいるんですが、まずは最近Kent Beckが出版した『Tidy First?』の話を書きたいと思います。 Tidy First? (English Edition) 作者:Beck, KentO'Reilly MediaAmazon パート1: Tydings 「Tidy」というと、USでは一時期からコンマリが大流行りしているようで、「Kondo」がそもそも動詞化していたりするなど一大ブームとなっている(た)ようです。コンマリといえばそう、「お片付け」なんですが、なんとなくここから着想を得ているのかなと思います。Netflixでも「Tidying Up with Marie Kondo」という番組が作られていたくらいです。 Tidyingは「片付け」ないしは「整理整頓」あたりで訳せそ
ZK、JSFとコンポーネント型フレームワークをやってきたので、Vaadinもやっておきます。 https://vaadin.com/ 典型的な画面パターンが用意されたアプリケーションビルダーも用意されているので、ベースにできます。 このアプリケーションビルダーもVaadinで作られているようです。 https://start.vaadin.com/app/p プロジェクト作成 Spring Bootでの始め方はここ。 https://vaadin.com/docs/latest/integrations/spring/spring-boot まずSprig Bootのプロジェクトを作る。 https://start.spring.io/ Dependencyは何もいらないと思うので、そのまま。 設定 pom.xmlに依存などを追加。 プロパティとしてvaadin.versionでバージョン
キングジム 残り時間が一目でわかるタイマー「ビジュアルバータイマー」 白 VBT10-W キングジム(Kingjim)Amazon 去年、作業時間の管理にTimeTimerを使うようになって、割り込み無しで10分〜30分くらいの集中度がだいぶ上がるようになりました。 TimeTimerはクルっと測りたい時間をダイヤルで決めて、時間になるとアラームが鳴る、以外の機能が何も無いところがいいのですが、アラーム鳴らないでほしい、みたいな場面もあるのでオンオフできるタイマーを探していたところ、キングジム『ビジュアルバータイマー』が目に止まりました。 見た目通り、時間がカウントダウンのバー形式で表示されるので、TimeTimerと同じで「なんとなくあとこのくらいかー」と感覚で掴めるところが良いところ。 横に正確な時間も出ているけど、敢えて視界に入れない、という選択肢がとれそうなギリギリの大きさ、という
前回の記事の最後に iruka のカスタムには正直興味がないと触れたが、オリジナルの状態でひとつだけ気になる部分があった。それはグリップである。 既定のオーソドックスな丸形グリップは、身近で馴染みのある癖のない筒状形状だ。決して悪くはないのだが、レザータイプのグリップのようにグリップ力を強化するパターンがあるわけでもなく、オリジナルのグリップはザラザラした触感で握り心地はいまひとつだった。ある程度の距離を走行する際に、特にグリップの快適性が重要だと感じていた。そこで、手の平に合わせたエルゴノミック形状のグリップが理想的だと思い立った。エルゴノミック形状のグリップは、手の平にかかる荷重を分散し、手首の角度を適正に保つことで手や腕の負担を軽減してくれる。 今回、いつものサイクルハウスしぶやお花茶屋店に相談することにした。お花茶屋に着いて相談すると ERGON GP1 というグリップを提案された
HTMLのチェックボックス(<input type="checkbox">)やラジオボタン(<input type="radio">)をCSSで装飾したいというのはよく聞く話です。2024年現在は、HTMLの記述は簡単なまま、CSSで自由度の高い装飾も実現できるようになっています。 結論 従来の手法 appearanceプロパティを使う手法 外枠の配置 未チェックとチェック済みの切り替え 強制カラーモードへの対応 透明なボーダーやアウトライン 内向きの影や背景グラデーション 画像やテキスト ブラウザ組み込みの外観 状態に応じたスタイルの指定 参考文献 結論 単に色調を整えられればよいという場合は、accent-colorプロパティを使います。 input[type="checkbox"], input[type="radio"] { accent-color: #d31; } くだもの や
「旅行思い出マップ」は、Ryo Tsudukihashiさんが手がけた、写真を都道府県の形に切り取って日本地図に貼ることで思い出を記録できる無料のiPhoneアプリです。 使い方はアプリをダウンロード後、Apple または Google アカウントからサインインを行います。 次に「+」ボタンからこれから作成する地図のタイトルと内容を決めます。今回は「旅行記」というタイトルを付けて訪れた都道府県の風景を主に作成してみました。 写真は、地図上の都道府県をタップするか、右下の写真アイコンから追加します。 追加したい場所はライブラリから県名などの地名で探すと便利です。 写真は県の形に合わせて拡大縮小、回転できます。広い面積を持つ県では、何の写真か分かりやすいですが、面積の小さい県では写真の内容が分かりづらいことがあります。しかし、分からないなりに写真を厳選してみたり、角度を調整してみたりするのも面
Flash Attention や 教科書のTiled Matmul を読んで意外だったのは、これらが単一の Streaming Multiprocessor の上で実装されていることだった。Triton もそういう実装を想定し, Per-SM というか Per-ThreadBlock の実行モデルを持っている。 SRAM に tile を載せたい動機を考えると当然といえば当然だけれど、古いコンピュータ・グラフィクスの世界観で理解している GPU とは随分違って、自分のメンタルモデルを書き直す必要を感じた。 古いコンピュータグラフィクスの世界では、SM とか ThreadBlock みたいのは実装の詳細であり、プログラマは気にしない。GL のシェーダにも (compute shader は別とすると) 基本的には SRAM/SHARED みたいな概念はない。個々の WARP も独立して動き
日記の本文は自分で書くとして、その他の付随情報はシステム的な都合でくっついているもので、あまり関心がなくて、タイトルを付けるのもサボっている。 AIにタイトルを付けてもらうにしても、サービス提供者の味付けそのままに使うんじゃなくて、自分でルールを考えて生成するとおもしろいような気がする。 きのうの日記にタイトルをつけてもらう。 以下のブログ記事のタイトルを、過去に同様の主張を行った哲学者を引用しながら、いくつか提案してください カントと現代のバランス: "人は時間によって規定される" — 時間管理の哲学 ヘーゲルの弁証法と日常のカオス: 時間不足の中で見つける同一性と差異 ハイデッガーと現代の時間概念: "存在と時間" の中での日常 ニーチェの永劫回帰と現代生活: 繰り返される日々の中での意味探求 アリストテレスからの教訓: "適切な時間" と現代の挑戦 以下のブログ記事のタイトルを、イギ
前置き - このセットの選択理由やや長くなってしまうが、なぜ Cloud Tasks なのかについて備忘録も兼ねて書いておく。 なぜフルマネージドサービス寄せにするのか一言で言うと生のサーバに近いホスティングでない場合、Solid Queue 以前のワーカープロセス + なんらかの(メモリストア含む)ストレージ方式は急にコストが大きく膨らんでしまうから。だから例えば Google なら Cloud Compute Engine を利用している場合、この限りではないと思う。 そこまで利用頻度の高くないバックグラウンドジョブに対して HTTP リクエストと同様にインスタンス(コンテナ)を割り当てるのはコストパフォーマンスがよくないし、安定稼働を気にしなければいけないプロセスが増えてしまう従来よくバックグラウンドジョブキューに使われていた Redis について、Google Cloud はもとも
はじめに 半月ほど前に、ようやく自分の VPS 環境で動いているものすべてを kubernetes クラスタに移行しました。とても満足感が高くやって良かったと思っています。 ウェブサーバ、メールサーバ、Nostr のリレーサーバや Nostr/Bluesky/Twitter で動かしている各種 bot もすべて kubernetes です。 昨日は knative を導入したので、Go や Rust や Ruby や Python や、いろんな言語のクラウドネイティブアプリを簡単に実行できる様にしました。 knative 便利 残念ながら knative は helm パッケージとして提供されていません。ArtifactHub でそれっぽい物が公開されていますが、ほぼ手作業と変わりません。 おおよそ以下の手順でインストールできます。knative ではネットワークレイヤとして以下の3つが用
何が欲しかったのかlong-runなジョブの実行をクラウド上で行う途中で失敗する可能性がそれなりに高い上記のジョブの成否をシュッと知りたい スケジューラには成否の情報はない例えばスクレイピングなんかはサイトのHTML構造の変化でけっこう簡単に失敗する真面目に考えると結果の UI とか欲しくなってくるが、待てよ、なんか似たようなものを知っているような…? これって CI/CD を汎用にしたようなものじゃない? Workflow Engineてこと?イメージとしては CI/CD のような何かだが、目的は delivery じゃなくてさまざま 処理の途中や全体の成否の様子を後から振り返ることができると嬉しいブラウザでジョブの失敗とか確認したいが、そのためだけに Rails と RDBMS のインスタンスを稼働させておきたいかというとそんなことはないどうせなら途中で失敗した際には失敗したところから
JSF(Jakarta Faces)をTomcatで試すメモ 「Jakarta Faces」って長いので、ここではJSFって書きます。 Tomcat用のプロジェクトがあるとして追加する、って感じで書くので、基本的な構成は省略。 Tomcat 10.1.24で試してます。 https://tomcat.apache.org/download-10.cgi 最初から構成を作るのであれば、Quarkusが無難かなぁという気はする。 その場合はstarterでPrimeFacesを選ぼう。 https://code.quarkus.io/ Jakarta EEがよければ、Eclipse Starter for Jakarta EEで。そうするとPlatform ProfileかWeb ProfileであればJSFは含まれるので設定不要のはず https://start.jakarta.ee/ Sp
昨日長女が転んで怪我をしてしまい調子が狂ってしまった。 外出を嫌がる双子に少しでも運動させようと昼飯の調達に近所のミニストップまで歩いたのだが、 帰りにお腹が空いた長女が家にダッシュした瞬間転んでしまった。 長女は痛みにとても敏感で、はたから見てこれくらい大丈夫でしょと思うような怪我でも泣くほど痛がる。 今回は割と広範囲にすりむいて確かに痛そう。 妻が超絶な絆創膏テクニックを駆使して何とか落ち着いたが、これでお風呂にもしばらく入れないし、 手を使った遊びも制限されるのでがっかりだ。 結局その日は グニグニ食感のグミの作り方 を参考に 「グミづくり」をした。前回火が強すぎて焦げ焦げになってしまったが今回は割と上手にできた。ただ、レモン果汁を入れ忘れたのが原因か不味くて次女は食べてくれなかった。長女は自分で作った愛着があるからか食べた。 今日は長女のリクエストで「茎わかめスライム」を作る予定だ
以前の修理以降 iruka は問題なく走行している。シートポストの調整の問題も解決し、都心での街乗りにおいて大いに活躍している。室内保管をしている iruka を持ち出したり片付けたりするのは、マンションの出入りに毎回輪行しているようなものなので手間ではあるが、これもある程度慣れてきた。しかし、遠出をしたり用事があって長時間駐輪する際には、クロスバイクの ESCAPE R3 に頼ることが多い。高価な iruka を駐輪する場合は、行き先でも建物の中で室内保管するか、せめて屋内の監視カメラがあるような駐輪場でなければ安心できない。やはり遠出や長時間の駐輪には ESCAPE R3 が最適である。このような 5 から 10 万円程度のクロスバイクは街乗りにおいて一番使い勝手が良い。それ以上のロードバイクや高級ミニベロなどは盗難リスクが高く、混み合った駐輪場に停める際にも雑に扱うわけにもいかず気を
JSer.info #693 - 次の記事では、Remix v3はReact Router v7としてリリースする予定という話が紹介されています。 Merging Remix and React Router | Remix RemixとReact Routerは、Viteとサーバ以外はほぼ同等の機能になってきています。 そのため、React RouterをRemixにマイグレーションするのではなく、React RouterをアップデートするだけでRemixの機能を使えるようにしたいという話が書かれています。 既存のRemixアプリは、import先のパッケージをreact-routerに変更するだけで動く予定とのことです。 この意思決定の詳細は、Xでも書かれています。 https://x.com/ryanflorence/status/1791479313939976313 React
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く