技術的負債を抱えたレガシーコード。変なメソッド名と入り組んだロジック、リファクタリングするならどちらが先?(前編) ソフトウェアの品質をテーマに研究をしている名古屋大学 森崎研究室は、ソフトウェアの技術的負債をなんらかの形で数値化する手法の研究の一環として、コードの読みにくさの原因となる要因などを分析した研究結果を発表するイベントをオンラインで開催しました。 今回発表された研究では、技術的負債を抱えたレガシーコードのリファクタリングで取り除かれた問題の90%以上が、メソッド名と実際の関数の動作が一致していない、あるいは関数名とコメントが矛盾しているなどの「命名的問題」、もしくは複雑で読みにくい多数の条件分岐や深いネストなどを抱えた「構造的問題」のいずれかであるという先行研究があることを踏まえ、どちらを優先してリファクタリングすると保守性や可読性が高くなるかを調査しています。 具体的には、命
はじめに HTTPS(HTTP Over TLS)とは SSL/TLS HTTPSの流れ 実際に通信を観察 自己署名証明書の用意 サーバーの作成 WireSharkの準備 リクエストを送信して観察 まとめ はじめに エンジニア2年目のTKDSです! 普段何気なく使ってるほとんどのWebサイトが対応しているHTTPS通信の仕組みについて調べてみました。 本記事では、Wiresharkを用いてHTTPSの内部動作を解析し、どのようにしてデータが保護されているのかを具体的に解説します。 記事の後半では、Wiresharkを使って実際の通信データを観察し、暗号化プロセスの詳細を確認してみます。 HTTPS(HTTP Over TLS)とは HTTPS(HTTP Over TLS)は、HTTPの暗号化版で、ウェブサイトとブラウザ間の安全な通信を実現するプロトコルです。 TLSを使用して、HTTP通信
systemdのバージョン256に /homeディレクトリ以下のファイルを削除してしまうバグがあったそうで,修正版の 256.1 がリリースされています. systemdのissuesによると,一時ファイルを一括削除する systemd-tmpfiles --purge コマンドが /home以下を不要ファイルと誤判定して削除するそうです tmpファイルを消すだけのコマンドと見せかけて,home以下も消すという邪悪なバグなので注意が必要です. 心配な人は systemd のバージョンを確認しておきましょう systemdのバージョンの確認方法 以下のコマンドを実行してsystemdのバージョンを確認します $ systemctl --version バグ有り,/homeが消える可能性がある場合 1行目にsystemd 256 (256-1)と表示されます.バグあり版です.何かの拍子に/ho
概要 Windows11のコンテキストメニューをWindows10までの従来仕様に戻すスクリプトをまとめた話です。 ググれば同じ話はいくつも出てくるのでn番煎じ感が強いですが、PowerShellだけで行ってる例は少なかったので、そこは新規性があるかも? コンテキストメニューって? エクスプローラやデスクトップ上などでファイルとか何もない場所を右クリックしたときに表示されるメニューのことです。 このコンテキストメニュー、Windows10までとWindows11で仕様が大きく異なります。 Windows11では表示をすっきりさせるためなのか、従来のほとんどの操作は非表示になっています。 なので、例えば7zipでの解凍・VSCodeで開く・送るなどの操作をしたい場合は「その他のオプションを確認」をクリックして従来のコンテキストメニューを表示してから対象操作を選択する必要があります。とてもつら
X(旧Twitter)は6月12日(米国時間)、今週中に「いいね!」を非公開にすると、エンジニアリングチームの公式アカウントで発表した。他ユーザーの「いいね!」タブが見られなくなり、他人の投稿に誰が「いいね!」したかが非公開になる。 自分が押した「いいね!」は確認でき、自分の投稿についた「いいね!」も通知に表示されるが、他人の投稿に「いいね!」したのが誰かは分からなくなくなる。「プライバシー保護のため」としている。 同社は、「いいね!」が公開されていることで、インパクトのある投稿に「いいね!」するのをためらったり、そうした投稿に「いいね!」したことによって攻撃されるなどの問題が起きていると考えており、非公開化する方針を明らかにしていた。 関連記事 Xのエンジニア、「いいね」タブを全ユーザーで非表示にするとポスト Xのプロフィールページの「いいね」タブを非表示にすると同社の複数のエンジニアが
Windowsでは、Windows Updateの直後やアプリケーションなどのインストール後に再起動が要求されることがある。以前に比べると、再起動にかかる時間は短縮されたものの、開いているプログラムを閉じてファイルを保存する必要があるなど、ちょっと面倒ではある。 なお、システムの再起動は、何もWindowsだけでなく、Linuxなど他のプラットフォームでも必要になることはある。とはいえ、ちょっとしたアプリケーションのインストールやアップデートの後に再起動が要求されるなど、頻度が高い気がしないでもない。今回は、この再起動について調べる。 Windows Updateが再起動を要求するとき Windows Updateの場合、再起動が必要になるのは大きく2つの理由がある。1つはWindows自体の更新で、このときにWindowsのインストールイメージが作られて再起動。Windowsの再インスト
ritou です。 みんなが待っていたデジタル認証アプリの情報が公開されました。 開発者向けのガイドライン、APIリファレンスなどのドキュメントも公開されています。 今回は開発者視点でどんな作りになっていて、利用するために理解が必要となる標準化仕様はどのあたりなのかを取り上げます。ちょっとOIDCのRPやOAuthのClient実装経験のある開発者向け、ぐらいの内容です。 概要 公開された情報からすると デジタル認証アプリサービス(アプリ+バックエンド)はマイナンバーカードを用いた当人認証を実施 現在は都度マイナンバーカードを利用する必要がありますが、いずれはスマホに保存されたカード情報を使ってもっと楽になりそう ID連携のIdentityプロバイダとして認証イベント情報、基本4情報といった属性情報を民間/行政サービスに提供 民間/行政サービスは認証イベント情報に含まれるユーザー識別子を利
「これはHEAD^^」 「これはHEAD^2」 「これはHEAD~2」「HEAD@{2}、reflog用」「全部いっしょじゃないですか」「違う!!もっとよく見ろ!!」Git 画像略 TL;DR(Too Long; Didn't Read) ~nは単純なコミットの親をたどる(ブランチの分岐がある場合は現在のブランチのみで辿れるコミット) ^nはマージコミット向けで^2は「そのコミットの2番目の親(取り込んだブランチの前回のコミット)」 だからHEAD^n(n > 2)は存在しない 2024/06/04追記: OctopusなMergeだと3つ以上のブランチからマージできるので^nも存在する......があまり見かけることはない HEAD^^は「HEAD^の親」、HEAD^2は「HEADのもう一人の親」みたいな......。タラちゃんがHEADだと波平がHEAD^^でマスオがHEAD^2です(
YouTubeが動画に直接広告を挿入する実験を行っていることがわかりました。これにより、動画の信号だけをはじいていた広告ブロックが機能しなくなる可能性があります。 YouTube is currently experimenting with server-side ad injection. This means that the ad is being added directly into the video stream. This breaks sponsorblock since now all timestamps are offset by the ad times.— SponsorBlock (@[email protected]) (@SponsorBlock) June 12, 2024 YouTube tests harder-to-block server-si
SVG アイコンの表示に mask-image CSS プロパティを使用する 2024.06.15 mask-image プロパティは CSS でマスキングを行うためのプロパティであり、SVG アイコンを表示する際に有用です。mask-image プロパティを使用することで、外部の SVG ファイルを読み込みつつ、アイコンの色を CSS で指定することが可能になります。 HTML でロゴやアイコンを表示する時、SVG はよく使われるフォーマットです。SVG はベクター形式で記述されるため、拡大・縮小しても画質が劣化しないという特徴があります。SVG を HTML で表示する場合、以下のような方法が使われていました。 <img> 要素の src 属性に SVG ファイルのパスを指定する <svg> 要素を直接記述する svg スプライトを使用する それぞれの方法にはメリット・デメリットが存在
Server-Sent Events (SSE) 目新しい技術というわけではありませんが、最近 Server-Sent Events (SSE) について言及する記事をよく見かけます。 何番煎じかはわかりませんが、個人的に興味があることと、正直触ってみたことがなかったので、コードを書きつつ調べてみました。 ※本記事で登場するサンプルコードは次のリポジトリで公開しています。 SSE とは SSE 自体を解説する記事は無数に存在するため詳細な説明は割愛しますが、簡単に言うと、サーバーからクライアントへ一方向の Push 通信を行うための仕組みです。 MDN にもページが存在するため、参考になります。 独自プロトコルを必要とせず、HTTP/1.1 でも動作するのも特徴です。 SSE の歴史 wikipedia に SSE に関するページが存在し、次のような記述があります。 SSE メカニズムは、
チャットボットAI「Claude」を開発するAnthropicが新モデルとなる「Claude 3.5 Sonnet」を2024年6月21日に発表しました。これは今後リリースされるClaude 3.5ファミリーの最初となるモデルで、ベンチマーク結果はOpenAIのGPT-4oに匹敵するとのことです。 Introducing Claude 3.5 Sonnet \ Anthropic https://www.anthropic.com/news/claude-3-5-sonnet Anthropicによると、Claude 3.5 Sonnetは大学院レベルの推論力、大学学部レベルの知識とコーディング能力を持つとのこと。Claude 3 Opusなど従来のClaudeモデルと比較し、ニュアンスやユーモア、複雑な指示を理解する能力が著しく向上し、自然で親しみやすい口調で高品質のコンテンツを書く能力
こんにちは、そろそろ家の更新時期が迫ってきて引越し先の物件に悩んでいるしっぽくんです。最近業務でメールアドレスについて触れる機会があったので今回はそのお話をしようかと思います。 私自身あまり馴染みのなかった「RFC違反メールアドレス」について深堀っていく記事になりますので、ご興味あればご一読いただけると幸いです。 この記事で触れること RFC違反メールアドレスとはどういうことなのか HTML標準やバリデーションライブラリにおけるメールアドレスについて 違反しているメールアドレス?? さてこの中に仲間外れがあります。どれでしょう? 「test.test.@example.com」 「test.test@example.com」 「test..test@example.com」 正解は2です。これ以外は違反しているメールアドレスです!具体的にどんな違反メールアドレスなのでしょうか? 前置きを踏
どうもブラックリストに入ってしまったっぽい。 30ブクマくらいは一気に伸びるのだけど、はてなのトップには表示されないからそこからダラダラとブコメがついて消えていくという感じのことを1週間くらい繰り返してる。 思い当たる原因は2つ。 ・実際の企業名を含む批判増田がホッテントリした ・我ながら面白い増田がかけたので、早くブコメが読みたくて3ブクマでセルクマズサーを2回ほど繰り返した もうしません。許して。 ※追記 ごめんなさい。我慢できなくて5ブクマ目にセルクマしました。そしたら1クマ減ってしばらく4クマ目でした。 ※追記 注目エントリには載りました。世の中タグがつけられましたが、はてブの世の中タブにはまだ上がっていません。 ※追記 現時点で14ブクマ(1セルクマ含む)でブクマ伸びが終了したため検証に至らず。また次回頑張ります。
先日Windows11の2024年2月のアップデート(23H2)をしたら、画面下タスクバーの右端(画面ギリギリのほんとに一番右端)をクリックすることで全ウィンドウを最小化し、「一発デスクトップ表示」する機能がなくなってしまった。 最下段タスクバー右端には、「Copilot」が配置され、どうやらデフォルトでは、「すべての作業中のウィンドウを最小化」してデスクトップを「一発で」表示するクリック機能が消えているようだった。 ※ 右端のカーソルあたりをクリックするとデスクトップ表示になっていた↑ 私には重宝する機能だったので、 以下に復活させる内容を記します。 とても簡単です。 【 この記事の最後に追記(2024.2.28)があります。 キーボード操作によるデスクトップ表示です。 】 1.画面最下段の「タスクバーを右クリック」 すると出てくる「タスクバーの設定」をクリック。↓ 2.表示されるウィン
もう画像に逃げないコードを書こう! 見た目の凝ったデザインをコーディングする際、表示領域(以下:わかりやすく画面幅と書きます)の拡大縮小に合わせてレイアウトが崩れてしまって、デレクターさんやデザイナーさんから、「デザイン通りになんとかならない?」と言われた経験ありませんか? そんなときはvw単位とcalc()関数を使うとかんたんに画面幅に合わせてレイアウトを保ってくれる要素を作ることが出来ます。 「いや、流石に無理でしょこんなん…画像にしちゃいましょ?」と逃げてる人、メディアクエリを大量に設定してごまかしている人、ちょっと理解するのが難しいですが、以下を試してみてください! 結論を急ぎたい人へ 前置きはいいから結論を教えて!という人へ。 こちらの計算式にを使うと表示させたい画面幅に対して表示したいピクセル数を指定できます。 calc( 表示させたいピクセル数 vw/ 表示させたい画面幅 ÷
「パフォーマンス向上のため、無駄に大きい範囲の型にしない方がいい」と認識していたので、今までVBAでも普通にInteger型を使っていました。 先日オーバーフローのエラーが発生したのですが、原因は予想以上に取り込むデータが多く、計算結果がInteger型の範囲を超えてしまったという初歩的なミスでした。(完全に見通し不足。) それを見た先輩に 「VBAでIntegerは使わないよ」 と言われ、そうなの!?と驚いたことが今回の記事の発端です。 そもそもVBAでInteger型を使っても意味ない 以下、Microsoftのサイトから引用したものです。 最近のバージョンでは、VBA は、整数型として宣言されている場合でも、すべての整数値を Long 型に変換します。したがって、Integer 変数を使用することによるパフォーマンス上の利点はなくなりました。 この記載、完全にInteger型使う意味
<h2>CSSでつくるリボンデザイン</h2> h2 { position: relative; display: inline-block; height: 50px; line-height: 50px; padding: 0 2rem; border-top: 3px solid; border-bottom: 3px solid; background-color: #a9acd3; color: #353535; font-size: 26px; font-weight: bold; text-align: center; } h2::before, h2::after { position: absolute; content: ''; top: 0; width: 0px; height: 0px; border-color: transparent #fff; border
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く