タグ

ブックマーク / qiita.com (84)

  • 祝🎉 POSIX.1-2024 (Issue 8) 改定!16年ぶりの大幅改定でシェルスクリプトはどう新しくなるのか? - Qiita

    FreeBSD では 2024-05-31 に 200112 から 200809 への変更がようやく行われました(一度間違えて 200808 と書いてしまっていますが)。 https://cgit.freebsd.org/src/commit/?id=2e30926a68 https://cgit.freebsd.org/src/commit/?id=6e0278408e macOS は FreeBSD のユーザーランドのコマンドを使用しているため、そのせいで 200112 のままだった可能性も考えられますが、シェルやカーネルは FreeBSD のものではないため、FreeBSD が変更になったからと言って macOS が更新されるとは限らないでしょう。Solaris 10 と 11 ではディレクトリごとに準拠バージョンが異なるバイナリが配置されており以下のようになります。Solaris

    祝🎉 POSIX.1-2024 (Issue 8) 改定!16年ぶりの大幅改定でシェルスクリプトはどう新しくなるのか? - Qiita
    kosh04
    kosh04 2024/06/28
  • パスワードがハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題 - Qiita

    SQLインジェクションによる認証回避 SQLインジェクションによる影響として、情報が漏洩するとか、データが勝手に更新されてしまうなどとともに、認証回避の例がよく紹介されます(私のでも取り上げています)。 典型的な例は下記のとおりです。 // $id と $password は外部からの入力 $sql = "SELECT * FROM users WHERE id='$id' AND password='$password'";

    パスワードがハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題 - Qiita
  • 新幹線でもQUICで快適にSSHする - Qiita

    はじめに 今日は、劣悪な通信環境でも快適にSSHができるquicssh-rsをご紹介します。そして、実際に改善されるかを試してみます。 長くなったので最初に結論 quicssh-rsを使うと、 パケットロスに対して明らかに強くなった こちらのIPアドレスが変わっても通信が継続できた 遅延(pingのRTTが大きいこと)は改善されない模様 30%パケットロス環境での比較 IPアドレスを変更しても切れない SSHは新幹線(劣悪通信環境)に弱い 鉄道での移動時間が長いと、パソコンを開いて各種開発の続きをしたくなります。 …なりませんか? 時には、別のサーバーにSSHでログインして何かコマンドを打ったり。 在来線1であれば概ね問題ありませんが、新幹線になると通信品質が大きく悪くなるため、SSHでの操作は大きなストレスが溜まりがちです。なんとかならないかとずっと思っていました。 新幹線の通信環境 通

    新幹線でもQUICで快適にSSHする - Qiita
    kosh04
    kosh04 2023/12/17
    帯域制御コマンド tc を覚えた
  • 本番サーバー60台のホスト名を全部 cat にしてしまった話 - Qiita

    この記事は、番環境などでやらかしちゃった人 Advent Calendar 2023 の4日目です。年末進行、いかがお過ごしでしょうか?みなさま無事に仕事が納まることを願っております… 新人インフラエンジニアが、番ウェブサーバー60台のホスト名を全部 cat にしてしまった話について、ここに供養させていただきたいと思います 背景 おそらく今から7年くらい前、インフラエンジニアとして転職してきて1年ほどが経ち、番環境での作業もこなれてきたなというバッチリのタイミングで事を起こしてしまいました。サーバーは CentOS 6 だったと思います。 職場としてはまだまだベンチャー感にあふれ大きな裁量が与えられスピード感のある環境ながら、サービスの登録ユーザー数は1,000万を超え、番環境の規模としては既になかなかの大きさがあり、ウェブサーバーだけでも60台くらいあったと思います。ひと山につき

    本番サーバー60台のホスト名を全部 cat にしてしまった話 - Qiita
    kosh04
    kosh04 2023/12/05
  • Java 21新機能まとめ - Qiita

    Java 21が2023/9/19にリリースされました。 https://mail.openjdk.org/pipermail/jdk-dev/2023-September/008267.html The Arrival of Java 21! LTSであり、パターンマッチングや仮想スレッドが正式化され、プレビューとして入ったString Templatesや無名クラス&インスタンスメインメソッドも面白い機能なので、大切なリリースになっていると思います。 詳細はこちら JDK 21 Release Notes Java SE 21 Platform JSR 396 OpenJDK JDK 21 GA Release APIドキュメントはこちら Overview (Java SE 21 & JDK 21) 追加されたAPIまとめはこちら https://docs.oracle.com/en/

    Java 21新機能まとめ - Qiita
    kosh04
    kosh04 2023/09/23
  • シェルスクリプト(bash等)の引数解析が究極的に簡単になりました - Qiita

    最近、以前作った getoptions の改良をしていました。(以前の記事はこちら) 参考 こちらもどうぞ 「getoptions を使って面倒なシェルスクリプトのオプション解析コードを自動生成しよう!」 以前のバージョンはシェルスクリプトライブラリとして使い方を想定していたのですが getopt や getopts の代わりとして外部コマンドとしても使えるようにしました。使い方は簡単で ここ から getoptions をダウンロードしパスが通ってる場所(~/bin や /usr/local/bin/ など)にインストールするだけです。それだけでもう次のシェルスクリプトが動作します。他に設定ファイルや事前のビルド作業なども不要なので学習曲線は低くメンテナンス性も抜群です。 #!/bin/sh VERSION="0.1" parser_definition() { setup REST h

    シェルスクリプト(bash等)の引数解析が究極的に簡単になりました - Qiita
    kosh04
    kosh04 2023/07/27
  • 【ネタ】コメントだけしか書いていないのに「Hello, world!」と表示されるJavaプログラム - Qiita

    これはJavaでポインタで使えるというネタから着想を得たプログラミングネタです。 厳密には 「コメントだけ書いてあるようにしか見えない」 です。 コメントだけしか書いていないのに「Hello, world!」と表示されるJavaプログラム % java --version openjdk 16.0.2 2021-07-20 OpenJDK Runtime Environment Microsoft-25298 (build 16.0.2+7) OpenJDK 64-Bit Server VM Microsoft-25298 (build 16.0.2+7, mixed mode) import java.util.*; public class Main { public static void main(String[] args) throws Exception { //\u000a

    【ネタ】コメントだけしか書いていないのに「Hello, world!」と表示されるJavaプログラム - Qiita
    kosh04
    kosh04 2023/06/09
    えぇ… “Javaはコンパイル前に、 ソースコード中のUnicodeエスケープシーケンスをテキストへ変換する。”
  • Braveはフォントを取得できないようにした。いっぽうChromeはフォントを根刮ぎ取得しようとしている。 - Qiita

    Braveフォントを取得できないようにした。いっぽうChromeフォントを根刮ぎ取得しようとしている。ChromeGoogleSecuritybraveブラウザフィンガープリント JavaScriptから、現在表示されているフォントを取得することが可能です。 仕組みを簡単に説明すると、フォントによって文字の横幅は異なるので、font-familyを変えてみてwidthが変わったらそのフォントがインストールされている、みたいな識別方法です。 つまり、フォントを表示させて、そのフォントが入っているかどうかをチェックすることで、ブラウザフィンガープリントになります。 Braveフォントを取得できないようにした How Brave defends against font fingerprintingの記事において、Braveフォントによるフィンガープリント防止について解説しています。 H

    Braveはフォントを取得できないようにした。いっぽうChromeはフォントを根刮ぎ取得しようとしている。 - Qiita
    kosh04
    kosh04 2022/04/13
  • なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決する

    なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決するShellScriptUNIXSQLitePOSIXQiitadelika 「利用者は数十億人!? SQLiteはどこが凄いデータベース管理システムなのか調べてみた」の続きです。 はじめに 複雑な構造のデータを扱うのであればシェルスクリプトや Unix (POSIX) コマンドでデータ管理を行うのは避けるべきだと思います。解決不可能な問題が多いからです。しかしそれでも何かしらの理由でやろうと考える(やらなければいけない)のであれば SQLite を使うのをおすすめします。シェルスクリプトや Unix コマンドは行単位の単純なテキストデータをシーケンシャルにデータ処理するのが前提となっており、改行や空白が含まれるデータや複雑な構造のデータ扱うのは苦手です。またシェル

    なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決する
    kosh04
    kosh04 2022/04/05
  • パスワードの1文字目に「~(チルダ)」を使って痛い目にあった - Qiita

    何を言っているんだと思われるかもしれないですが、気軽にパスワードの1文字目に「~」を使わないほうがいいというお話です。 起こった問題 踏み台サーバー経由でサーバーAに接続して作業をしていた時の話です。 いわゆる多段 ssh 接続というもので、リモートワークになってからは結構使われる方も多いかと思います。 サーバーA上で root 権限になろうと sudo su - してパスワードを入力したら Connection to xxx.xxx.yyy.zzz closed. の文字とともにサーバーAから追い出されてしまいました。 なにかの間違いだろうと何度か挑戦していたのですが、結果はサーバーAから切断され踏み台サーバーに戻る羽目に。。。 そのときに入力していたパスワードが ~.xxxxxxxxxx のような ~ から始まるものでした。 調査 ~ って何か意味があったよなーと思ってどう調べようかと

    パスワードの1文字目に「~(チルダ)」を使って痛い目にあった - Qiita
    kosh04
    kosh04 2022/02/10
  • Linuxカーネルビルド大全 - Qiita

    はじめに (記事は Linux Advent Calendar 2020 および 東京大学 品川研究室 Advent Calendar 2020の11日目の記事として書かれました。) カーネルのビルドについての情報はググると色々と出てきますが、「ここを見ればOK」と思えるサイトに巡り会えていないので、自分で書いてみることにしたのが記事です。 いずれLinuxカーネルをビルドする必要にかられるであろう研究室・学科の後輩や、忘れっぽい将来の自分のためにも、改めてLinuxカーネルのビルド方法についてまとめてみたいと思います。 概要 さて、「カーネルをビルドしよう」という状況に置かれた場合、実際にすべきことは主に以下の4点だと思います。 ソースコードの取得 ビルド環境の構築 カーネルコンフィグの準備 ビルド及びインストール そこで記事では、カーネル体のビルド上記の4点の他、関連して以下の

    Linuxカーネルビルド大全 - Qiita
    kosh04
    kosh04 2020/12/16
    これ見て久しぶりにカーネルビルドした
  • お前らのコミットは汚い - Qiita

    お前らのXXXXは<ネガティブな形容詞>シリーズ で失礼します。 日頃gitをお使いの皆様におかれましては、キレイなコミットを心がけていらっしゃいますでしょうか。 私も心がけてはいますが、なかなか難しいものがあります。 参考までにこちら、最近業務で書いたプルリクエストのコミットログです。 控えめに言って汚いと思われたかと思います。 ではキレイなコミットの例を。 プルリクエストというのは、やはり先達の方に見ていただいてご指摘いただこうというものですから、 当然コミットハッシュもゾロ目等でキレイにするというのがマナーです。 では今回はこのキレイなコミットをどうやって作るのか、という話を書きます (ショート)コミットハッシュ コミットハッシュとは、gitのコミットごとに生成される、40桁の[0-9a-f]からなる文字列です。 お手元のリポジトリ上で git log --format=%H を叩く

    お前らのコミットは汚い - Qiita
    kosh04
    kosh04 2020/02/24
    コミットログ見に行ったらなるほど https://github.com/rnitta/commit_artist/commits/master
  • Codomisu - Qrunch

    **「もっと気軽にアウトプットできる」**を コンセプトにした **技術ブログサービス「Qrunch(クランチ)」**のβ版をリリースしました! 6月頃から実装に取り掛かり、隙間時間を使いながらコツコツ開発してきたのですが、4ヵ月経った今、こうして無事リリースに辿り着けてほっとしています。 今回は、そのサービスの紹介と技術周りの話を軽くまとめてみます。 個人でWebサービスだったり、アプリ開発をしている人・したいと思っている人のモチベアップにでも繋がれば幸いです! リリースしたサービス Qrunch(クランチ) - もっと気軽に技術ブログを書こう! Qrunch専用のChrome拡張機能 - Qrunchをもっと身近に! 先日行われた大幅リニューアルにより、QrunchのURLはqrunch.netに変更されました。 サービスTOP TOPページは「自分も参加したい!」と思わせるようなデザ

    Codomisu - Qrunch
    kosh04
    kosh04 2018/10/14
    ユーザが流れるかはさておき、類似サービス同士の市場競争はあったほうが良いよね
  • 5000人に聞いた、2018年最先端のフロントエンド開発者が使ってるツールはこれだ - Qiita

    先日Launching the Front-End Tooling Survey 2018というフロントエンドツールのアンケート調査を和訳しましたが、その結果が発表されました。 以下はThe Front-End Tooling Survey 2018 - Resultsの日語訳です。 The Front-End Tooling Survey 2018 - Results 今年3月のFront-End Tooling Surveyに、5097人のフロントエンド開発者から回答をいただきました。 参加された皆さんには感謝致します。 毎回、調査の目標は単純です。 フロントエンドエンジニアが現在仕事で使用しているツールについて光を当てたいのです。 どのようなツールが使われているのか、自分の知識や経験だけで判断してしまうのは早計です。 以下の結果は、フロントエンドツールの現在の動向を把握するのに役立

    5000人に聞いた、2018年最先端のフロントエンド開発者が使ってるツールはこれだ - Qiita
    kosh04
    kosh04 2018/05/13
    街角アンケートみたいなタイトルやな
  • golang版Exping「pexpo」を書きました。 - Qiita

    https://github.com/nnao45/pexpo どういうツールなのか。 題名にもあるような、Exping的なものをgolangterminal上で動くアプリに描き下ろしたものです。 とても軽く、IPv6も対応しており、pingのintervalも500msまでならしっかりと打てます。 windows,Mac,Linux等プラットフォームを選ばず動きますし、色も変な色になりません。 なぜ作ったのか。 筆者は普段ネットワークエンジニアをやっており、 Expingを愛用しているのですが、 他のPING監視ツールも含めもっとこうだったらな、なポイントがいくつかありました。 Expingは実装上、ping-listのホストの全部を事前にメモリ予約してping発射するので監視ホストを多くしすぎると(例えば100台)重い、というかそもそもメモリ不足で動かない。 Expingやその他のツ

    golang版Exping「pexpo」を書きました。 - Qiita
  • 「Oh shit, git!」を簡単に和訳してみた。(追記あり) - Qiita

    翻訳元: Oh shit, git! gitは使いにくい! Gitは難しい: 中身を破壊にするのは簡単なのに、過去の過ちを修正する方法を見つけるのは極めて困難だ。ドキュメントには修正するコマンド名が書かれていても、その名前を知らなければ使いものにならない。これは「鶏が先か、卵が先か」というジレンマを抱えている! だから私が陥った数々の問題をいかにして抜け出すかを書いた。 なんて事だ!私は大変な誤ちを犯した!タイムマシンを呼び出すにはどうすればいい!? git reflog # you will see a list of every thing you've done in git, across all branches! # each one has an index HEAD@{index} # find the one before you broke everything git

    「Oh shit, git!」を簡単に和訳してみた。(追記あり) - Qiita
    kosh04
    kosh04 2018/01/15
    * 翻訳者のアカウントごと削除されて閲覧できない
  • Wandboxを支える技術(2017年版) - Qiita

    Wandbox は、オンラインでコンパイルや実行が試せるサービスで、主に私(@melponn) と @kikairoya で作っています。 以前 Wandboxを支える技術 というのを書いていたのですが、そこからかなり変わっているため、改めて今の中身がどうなってるかについて書いていきます。 Wandbox は、Wandbox 体と、各種コンパイラをビルドするための Wandbox Builder に分かれています。 ソースコードは wandbox と wandbox-builder にあります。 2019/9/26 追記: Wandbox のビルドを CMake に移行した話 を書きました 犬小屋と牛舎 Wandboxはバックエンドとフロントエンドで分かれていて、フロントエンド側が 犬小屋(kennel) 、バックエンド側が 牛舎(cattleshed) という名前になっています。 犬小

    Wandboxを支える技術(2017年版) - Qiita
    kosh04
    kosh04 2017/05/20
  • Go言語のFunctional Option Pattern - Qiita

    オプション パッケージを作る際、柔軟性を持たせるためにオプションを持たせたい時がしばしばあります。 しかしオプションは知っての通り設定しないことが少なくありません。 単にコンストラクタに並べるようでは無用な複雑さをはらむことになります。 JavaなどではOptional Parameterなどのように、デフォルト値が指定できる機能があります。 機能の厳選されたgo言語ではそのような機能はありませんが、 "Self Referential Functions Design"というテクニックがあり、 それについての記事がRob Pike氏の記事を筆頭にいくつか説明されています。 オプションと相性が非常に良いため、合わせて"Functional Option Pattern"とも呼ばれています。 Dave Cheney氏の記事を参考におおまかに説明したいと思います。 様々な解決策 あるServe

    Go言語のFunctional Option Pattern - Qiita
  • エンジニアが知っておいて損は無さそうなISOの標準規格たち - Qiita

    「それ○○で標準化されているよ」って指摘されることほど、エンジニアにとっての屈辱は無いですよね。 ということで、世間知らずだと思われないためにも、手始めにISO縛りで有益そうな標準規格1をまとめてみました。 ちなみに、ISOとは…? 国際標準化機構(International Organization for Standardization)は国際規格を策定する世界最大のボランタリーな開発組織で、国家間に共通な標準を提供することによって、世界の貿易を促進することに貢献している という組織だそうです。 (どう考えてもIOSと略すべきだと思うのですが、ISOになった理由は諸説2あるようです。) コード体系 ISO 639 (言語名コード) 例: 日語 = ja, jpn 朝鮮語 = ko, kor 中国語 = zh, zho, chi, zho ドイツ = de, deu, ger, deu

    エンジニアが知っておいて損は無さそうなISOの標準規格たち - Qiita
    kosh04
    kosh04 2017/01/08
  • ほころびていくコミュニティとなかなかできない世代交代、そしてさよならアドベントカレンダー - Qiita

    追記: 以下の文章に対して佐藤広生先生が自らの体験に即した意見を述べておられます。ぜひ一読をお勧めします。 昨年2015年にjp.freebsd.orgドメインの終焉に伴い地域技術コミュニティの役割というポエムを書いた。今年のはその続編である。こんなポエムを書くのも今年で最後にしたい。 51歳を越えたオッサンがPort maintainerをやる状況 今年2016年は初めてFreeBSDのPort maintainerになった。devel/git-lfsとjapanese/dbskkd-cdbの2つについてである。どちらも自分の仕事に必要だったが、前のmaintainerが作業をしないままか、あるいは他の事情でmaintainer不在の状態になったか、という事情からである1。 Port maintainerをやること自身には異存はない。日にもTeXLiveのPortsを仕切っておられる佐

    ほころびていくコミュニティとなかなかできない世代交代、そしてさよならアドベントカレンダー - Qiita
    kosh04
    kosh04 2016/12/26
    "コンピューティングはポップカルチャーだ。ポップカルチャーは歴史を重んじない。自分がそのカルチャーの中で何者か、そしてどうやって参加してると実感できるかどうかがすべてなんだ。"