タグ

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

  • いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita

    いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう!ShellScriptBashLinuxUNIXmacOS はじめに [ $? -eq 0 ] や [ $? -ne 0 ] は冗長でデメリットしかありません。非常に多く見かける書き方ですが、1979 年に Bourne シェルが広く公開された時からこのようなコードは必要なく、実際に当時は使われていませんでした。このような書き方をしなければならなかった歴史的な経緯などはありません。これはなぜか広まってしまった良くない書き方です。良い書き方は最短の時間と最小の手間で目的を達成します。 優れたコードとは無駄がないコードです。丁寧なコードとは無駄な処理を書くことではありません。優れた文法を持つシェルは短いコードで正しく動作します。[ $? -eq 0 ] や [ $? -ne

    いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita
    rryu
    rryu 2024/08/22
    コマンドを実行したいだけで分岐したい訳じゃないんだという意図を盛り込むとエラーの分岐を別に書きたくなる。分岐のためにコマンドを実行するならそう書くべきだと思う。
  • Akamai MFAを利用してSSHの公開鍵認証をよりセキュアにする - Qiita

    Akamai MFA とは Akamai MFAは、FIDO2に対応しているスマートフォンのMFA(多要素認証)アプリです。 不正アクセスに対して強力なMFA機能を利用することによって、対象のアカウントは、フィッシングやソーシャルエンジニアリング攻撃など、アカウントに対する様々な攻撃から保護することができます。 Akamai MFAは以下のプラットフォームに対応しており、無料のアプリです。 iOS 13 以降 (iPadiPhone、iPod Touch) : App Store Android 7 以上 (スマートフォンおよびタブレット) : Google Play AkamaiはKryptCoを2019年に買収し、KryptCoが開発していたMFAアプリKryptonの機能はAkamai MFAに引き継がれています。 Akamai MFAはゼロトラストネットワークアクセス(ZTNA)

    Akamai MFAを利用してSSHの公開鍵認証をよりセキュアにする - Qiita
  • なぜタスクごとにバッファを設けてしまったのか - Qiita

    はじめに この記事は (Webアプリケーション開発プロジェクトでディレクター担当の) 私が経験した反省点を振り返り、みなさんと共有するものです。 プロジェクト管理における一つの重要なテーマ、バッファの設定について考えるきっかけにしていただければと思います。 まず バッファとは 「バッファ」とは何かを簡単におさらいしましょう。 プロジェクトのスケジュール見積もりにおいて、 不測の事態に備えて設けられる安全余裕のことです。 タイトルの回収 さて、私がなぜ1タスクごとにバッファを設けたのか? 答えはシンプルに「その方がスケジュールの確度が向上する」と思ったからです。 (その方がエンジニアにも易しいのかな?とも思ったり…) しかし、 その後の学びを通じて、「タスクバッファ」よりも「プロジェクトバッファ」の方が効果的だと考えるようになりました。 (もちろん、100%正解かどうかは賛否ありそうですが)

    なぜタスクごとにバッファを設けてしまったのか - Qiita
    rryu
    rryu 2024/08/17
    とはいえ早く終わったからといって前倒しで進めるのも計画的に変だし、問題はスケジュール設計ではなく管理の方な感じがする。特に単純に着手しないことでバッファを使い切るというのは未然に防がなければならない。
  • 実装する前にきちんとドキュメントを読んだ方が良い、という話 - Qiita

    どうも、初めまして。 tokeと申します。 今回は自分の失敗談を話したい、と思います。 実装する前にドキュメントを読まないと、最後になってゴールに辿り着けない可能性がある そういう経験をしたのでご紹介します。 例えば、自社で集めた顧客のデータを活用し、Marketoにデータ連携したいとします。 marketoのAPIドキュメントを調べると、顧客の情報を登録する手段では以下の2パターンがあります。 POST /rest/v1/leads.jsonを使うパターン 以下のドキュメントにあるPOST /rest/v1/leads.jsonを使って、顧客のデータを送信し、連携する事ができます。 https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/lead-database/leads [※Marketoで

    実装する前にきちんとドキュメントを読んだ方が良い、という話 - Qiita
    rryu
    rryu 2024/08/15
    同じようなAPIが複数ある場合、事前にドキュメントを読んでも違いがよく分からないことがあるが、一通り動くようになってから改めて読むと分かる場合もある。それで適切じゃない使い方に気づくパターンもある。
  • オンプレエンジニアがAWSを触って思ったのと違うと感じたこと - Qiita

    はじめに この仕事を始めた当初(約20年前)はオンプレミスという言葉がありませんでした。いや厳密には私の周りではパブリッククラウドとオンプレミスを分けて話す人はおらず、インフラ構築といえば今でいうオンプレミスが中心でした(世の中的にはパブリッククラウドがサービスとして存在していました)。オンプレミスみたいに新しい概念が出てきた時にそれまでの概念を説明するためにできる言葉をレトロニムというそうです。 私が格的にパブリッククラウドの仕事をし始めたのは約3年前でAWSでした。研修ではAzureを先に触れていたのと、このを読んでいたという知識があった程度です。 ここではずっとオンプレミスのインフラ構築をしていた私がAWSに触れて最初に戸惑ったことを記事したいと思います。また、戸惑いましたということだけ書いても学びがないため対応したことも併せて記載します。AWSに慣れている人からすれば常識ですが

    オンプレエンジニアがAWSを触って思ったのと違うと感じたこと - Qiita
    rryu
    rryu 2024/08/12
    じっくり育てた秘伝のサーバみたいな概念が無くなるのが一番大きい。故にホットスタンバイは無意味なのだが、たまにあるのがなんとも言えない。
  • 顔写真から自閉症を判別してみた - Qiita

    はじめに この記事では今回開発したWebアプリ、自閉症識別(後に理由を説明しますが、動作が大変モッサリです)を公開するまでの経緯や考え・思いをまとめた。 6月中旬に差し掛かる頃から、Aidemy PewmiumのAIアプリ開発コースで、Pythonを用いてアプリ開発を行えるようになることを目標に学んできた。その成果として開発したのが、顔写真から自閉症を判別するWebアプリだ。 この記事では私自身がプログラミング超初心者として、そしていち支援者として感じたことも多く綴っているため、必要に応じて適宜読み飛ばしてもらえると良いかもしれない。 開発開始に至るまで 私はこちらの記事にあるように、保育士として児童発達支援に関わってきた。大変ではあるが非常に楽しい仕事だった。とはいえAidemyの講座受講中、成果物を何にするかをずっと考えていたが、この領域で何かやろうなんてことは全く考えていなかった。

    顔写真から自閉症を判別してみた - Qiita
    rryu
    rryu 2024/08/04
    ChatGPTに聞いてることをメンターの人は教えてくれないのだろうか。学習としてはそこを深掘りしていくべきだと思うが、やってくれないならスクールに入っている意味がないような。
  • ディズニーランドの目の前にある公衆電話を使ってダイヤルアップ接続をしてみた - Qiita

    はじめに まずはこの画像を見てほしい。 この光景を見て、世代によっては「懐かしい」という声も一定数ありそうだが、20代以下の世代にとっては「???」な光景なのではないだろうか(かくいう筆者もこの記事を執筆している時点では20代である)。 この写真は、東京ディズニーランドの前に設置されている公衆電話に、モジュラーケーブルとモデムと呼ばれるものを用いてノートパソコンを繋いで、インターネットに接続している様子である。これはインターネット黎明期に主流であった「ダイヤルアップ接続」と呼ばれる手法を用いて実現している。 最近ではインターネットを接続する際にこの手法が用いられることはほとんどないため、世代によっては知らないという人が大半であると思われる。 筆者はそんな古の技術(と言ったら怒られそう)である「ダイヤルアップ接続」を用いて、実際に東京ディズニーランドの前に設置されている公衆電話からインターネ

    ディズニーランドの目の前にある公衆電話を使ってダイヤルアップ接続をしてみた - Qiita
  • C言語の知られザル・許されザル仕様 - Qiita

    はじめに どうも、y-tetsuです。 かれこれC言語には、10年以上携わっているのですが、最近ふと学びなおしをしています。 「Cクイックリファレンス第2版」これを完走めざして読み始めました。全816ページの超大作! 先は長いので、日頃からかたわらに置いておき、表紙の牛さん(雌牛)と目が合ったら黙って少し読むようにしています。 言語の"歴"だけは長い筆者ですが、このをちらっと読んだだけでもいまだに知らなかったことが結構潜んでいました。意外と己の"目"ってザルでした。 そんなこんなで学びなおしのため、今回は筆者が感じたままの知られザルそして許されザルなC言語の仕様について、備忘録を残します。 知られザル仕様 恥ずかしながら、今まで存じ上げザルだったシリーズ。 ダイグラフ 名前からして???だったんですが、キーボードによっては存在しない記号を別の2文字で表わすためのものだそうです。 !?…っ

    C言語の知られザル・許されザル仕様 - Qiita
    rryu
    rryu 2024/07/29
    C言語のautoやlong intのint、BASICのLETなど、昔の言語には省略可能なので誰も書かないキーワードというのが多い気がする。
  • ブラウザ開発者ツールのネットワークタブに表示されない情報送信手法 - Qiita

    はじめに はじめまして、セキュリティエンジニアのSatoki (@satoki00) です。今回はブラウザの開発者ツールのネットワークタブから隠れて、Webサイト内の情報を送信する手法をまとめます。所謂Exfiltrationというやつです。中にはCSPの制限をBypassするために用いられるテクニックもあります。CTFなどで安全に使ってください。 前提 発端はWeb上でテキストの文字数をカウントできるサイトが閉鎖する際の話です。カウント対象のテキストデータがサイト運営 (やサイトを改竄した攻撃者) に盗み取られていないかという議論が巻き起こっていました。「盗み取られていない」側の主張は、ブラウザの開発者ツールのネットワークタブにリクエストを送信した形跡がないというものでした。ここで ブラウザの開発者ツールのネットワークタブに表示がなければ外部へデータを送信していないのか? といった疑問が

    ブラウザ開発者ツールのネットワークタブに表示されない情報送信手法 - Qiita
  • SSH接続を10倍速くするたった3行の設定 - Qiita

    今回は、SSH接続を劇的に高速化する方法をご紹介します。たった3行の設定を追加するだけで、接続時間を10分の1に短縮できます。しかも、2回目以降の接続では認証も自動的に行われるので、パスワードやパスフレーズの入力も不要になります。 要点 .ssh/configファイルのHost *セクションに以下の3行を追加するだけです。 詳しい説明 1. ControlMaster auto この設定で、1つのSSH接続で複数のセッションを共有できるようになります。新しくSSH接続を確立するたびに認証情報を入力し直す手間が省けて、接続がぐっと速くなります。具体的には: 初回の接続時のみ認証が必要 2回目以降は既存の接続を再利用するため、認証プロセスをスキップ パスワードやパスフレーズの入力が不要になり、接続がほぼ瞬時に完了 2. ControlPath ~/.ssh/mux-%r@%h:%p Contr

    SSH接続を10倍速くするたった3行の設定 - Qiita
  • 本屋で技術書みてたら人生詰みかけた - Qiita

    はじめに こんにちは。WatanabeJin(@Sicut_study)です。 今回は以前Twitterでも話題にした「成長しないエンジニアほど屋に行く」という理由について解説したいと思います。 成長が遅いエンジニアほど屋に行く話 最近、エンジニアとして成長が遅い人たちに共通する特徴を発見しました。それは「技術書コーナーを好む」ということです。これに気づいたのは、自分自身がエンジニア1年目で、同じ行動をしていたからです。… pic.twitter.com/p35NaS6T4a — Watanabe Jin (@Sicut_study) January 7, 2024 もしあなたが説明することに当てはまるところがあれば、それをきづけたのは大きな分岐点だと思います。ここから自分の学習方法などを見直してみてください。 成長が遅いエンジニアほど屋に行く 私はプログラミングコーチングJISOU

    本屋で技術書みてたら人生詰みかけた - Qiita
    rryu
    rryu 2024/07/04
    もはや雑誌や書籍は一歩古い情報しかないので本屋は最新の情報を追いかける場所ではないという話かと思ったら、単にインプットだけの人という話だった。入門○○ばかり読んでるとかならそれはそう。
  • polyfill.ioを使うのは危険かもしれない(危険だった) - Qiita

    TL;DR 2024/06/26 実害が出ているようです、polyfill.ioを利用している場合は直ちに利用を止めましょう。 GIGAZINE: JavaScriptライブラリ「Polyfill.io」にマルウェアが混入され10万以上のサイトに影響 Codebook: Polyfill.io使ったサプライチェーン攻撃でサイト10万件以上に影響 polyfill.ioから配信されるスクリプトが汚染される環境下にあり、危険な可能性があります。利用している方がいらっしゃいましたら外しておくことをおすすめします。または安全なバージョンのものがCloudflareとFastlyから利用できるので、ドメインをpolyfill-fastly.netpolyfill-fastly.ioに変更して利用しましょう。 背景 自社で使用しているマーケティングプラットフォームサービスで作成したWebページをGo

    polyfill.ioを使うのは危険かもしれない(危険だった) - Qiita
    rryu
    rryu 2024/06/26
    中国企業に売却された時に色々懸念が表明されていたが、まさか本当にその通りにやってくるとは。
  • POSTとPUTの違いを説明できないエンジニアがいるらしい - Qiita

    はじめに 「ここにプログラマーはいるか?」 ABC 「いません」 「そうか、なら良い、ところでユーザー名の変更につかうメソッドは?」 A 「POST」 B 「PUT」 C 「PATCH」 「Aを連れていけ」 「うわぁああ」 みなさんは連れて行かれるようなプログラマーでしたでしょうか? 私はつい最近「POST」「PUT」「PATCH」をしっかり説明できないエンジニアでした いままでなんとなくでこれらのメソッドを利用しており、たまたまとあることをきっかけにこのAPIはPOSTかPUTどちらが適切なのだろうかと考えて違いをはっきり理解しました 今回は案外多くの人がなんとなくで利用しているであろうメソッド3つの違いを紹介していきます なぜPOST/PUT/PATCHはあいまになるのか そもそもなぜPOST・PUT・PATCHが混ざってしまいあいまになっている人が多いのでしょうか? PUTとPATC

    POSTとPUTの違いを説明できないエンジニアがいるらしい - Qiita
    rryu
    rryu 2024/06/17
    まさかWebDAVへの言及無しとか。RESTがWebDAVのメソッドを借りてきたのが元凶で微妙になんか違う感が出てしまっている。
  • 学園アイドルマスターのバックグラウンド再生が凄い という話 - Qiita

    TL;DL ゲームアプリ「学園アイドルマスター」にはAndroid/iOS端末で楽曲のバックグラウンド再生機能がある Unity+CRIWareでバックグラウンド再生を行うのは障害がある バックグラウンド再生用にネイティブPluginを実装しないと多分実現できない、凄く手間がかかっている この記事の目的 学園アイドルマスターには楽曲のバックグラウンド再生機能があります。 この記事は、バックグラウンド再生の何が凄いのか、実装する上で何が障害になるかを考察する事を目的としています。 免責事項 筆者は株式会社バンダイナムコエンターテインメント及び株式会社QualiArtsとは無関係です。 また、筆者はスマートフォン用ゲームアプリ「学園アイドルマスター」の開発に一切関わっていません。 この記事では、「学園アイドルマスター」のゲーム内画面をスクリーンショットで引用しています。 学園アイドルマスターと

    学園アイドルマスターのバックグラウンド再生が凄い という話 - Qiita
    rryu
    rryu 2024/06/16
    CRIWareはUnity以外からもAPIを呼び出して使えるので、普通にネイティブでプレイヤー機能を実装してるだけだと思う。
  • 工数管理というものを理解する - Qiita

    エンジニアのみなさま、日々の学習当にお疲れ様です! また記事まで足を運んでいただき当に感謝です。 約3分程度で読めるので最後まで読んでもらえると幸いです。 はじめに 工数管理はプロジェクトの成功に欠かせない要素です。工数を正確に見積もり、管理することで、プロジェクトの遅延を防ぎ、クライアントやプロジェクトメンバーの信頼を得ることができます。 記事では、工数見積もりの重要性とその手法、そして失敗しないためのポイントについて書きたいと思います。 「もっとこうした方が良いよ!」 や 「うちの会社ではこの様な考えで取り組んでます!」 があればぜひコメント欄で教えていただけますと幸いです。 工数とは? プロジェクトや業務を完了するために必要な作業時間のことを指します。 「人日」 や 「人月」 と呼ばれており、1人日は8時間、1人月は160時間(1日8時間、平日20日稼働)で表現するケースが多

    工数管理というものを理解する - Qiita
    rryu
    rryu 2024/06/11
    内製プロジェクトやSESとかだと工数によって出ていくお金が直接増えるわけではないので、信頼とかそういう認識になりがちである。
  • decimal型(十進小数)に夢を見ている輩が多すぎる - Qiita

    みたいなのが挙げられます。これが話題になった時にSNSで見かける言説が「十進小数 (decimal) 型ならこういう問題はない」です。 ですが、decimal型は十進小数を正確に表現できるという話でしかなく、全ての実数を正確に表現できるわけではありません。例えば、 1.0 / 3.0 * 3.0 の計算を考えてみましょう。数学的には、これはちょうど 1.0 になるはずです。 C#の場合 C#には標準の decimal 型があります。これで 1.0 / 3.0 * 3.0 を計算してみましょう。

    decimal型(十進小数)に夢を見ている輩が多すぎる - Qiita
    rryu
    rryu 2024/06/09
    有限小数になる数はn進法のnによって変わるということを知ると、有限小数というのはたまたまそう見える幻想のようなものというイメージになる。普段そう思わないのは10で割った数を多用するから。
  • 面接官「0.1 + 0.2 == 0.3 が成立しない理由を説明せよ」 - Qiita

    なぜか これは、計算機が浮動小数点数を2進数で表現する際に、特定の小数は正確に表現できず、誤差が発生するためです。10進数の0.1や0.2は、2進数では無限に続く循環小数となるため、これらの数値を正確に表現することができません。その結果、0.1 + 0.2 は 0.3 と等しくならないことがあります。 小数点以下の数値→2進数へ変換する方法 CSを修めていればご存知方と思いますが、復習します。 小数点以下の数値を2倍する 結果の整数部分を取り出し、それを2進数の桁として記録する 小数部分だけを次のステップに持ち越す 小数部分が0になるか、所定の精度に達するまで1〜3を繰り返す 0.1 × 2 = 0.2 整数部分: 0 小数部分: 0.2 0.2 × 2 = 0.4 整数部分: 0 小数部分: 0.4 0.4 × 2 = 0.8 整数部分: 0 小数部分: 0.8 0.8 × 2 = 1.

    面接官「0.1 + 0.2 == 0.3 が成立しない理由を説明せよ」 - Qiita
    rryu
    rryu 2024/05/26
    10進数で表された小数を2進数に変換して計算した場合の話という前提が無いと答えられない問題。
  • 【PHP8.4】ついにPHPにプロパティフックが導入される - Qiita

    class HOGE{ public string $tel{ set{ if(!ctype_digit($value)){ throw new ValueError("電話番号は数値のみ"); } if(strlen($value) < 10){ throw new ValueError("電話番号は10文字以上"); } $this->tel = $value; } get{ return '電話番号は' . $this->tel; } } } $hoge = new HOGE(); $hoge->tel = '123456789012'; // OK $hoge->tel = 'abcdefghijkl'; // Uncaught ValueError: 電話番号は数値のみ $hoge->tel = '123'; // Uncaught ValueError: 電話番号は10文字以上

    【PHP8.4】ついにPHPにプロパティフックが導入される - Qiita
    rryu
    rryu 2024/05/22
    アクセッサと自動実装プロパティが同時に実現されている感じで結構ややこしい。
  • デジタル復調の学習を目的として、ワンセグチューナーで地デジのフルセグTSを抜く - Qiita

    お詫びと訂正 タイトルにて「ワンセグチューナー」と表記しておりますが、正しくは「ワンセグチューナーの技術を応用したSDR受信機」となります。お詫びして訂正いたします。 題 さて、茶番はこのあたりにして(今回は使わなかったと言うだけで、物の「ワンセグチューナー」でもフルセグを受信できるはずなので、あながちタイトが誤っているというわけではないのですが、茶番をやりたいための茶番でした)。 今回はデジタル変調の復調を学習することを目的としているので、それ以外の部分(例えば受信機のハードウェアや、リードソロモン誤り訂正のような情報理論的分野)には触れません。また、限定受信を目的としたスクランブルの解除や映像の復号にも一切触れません。一方で、海外の人が作ったGNU Radioのソースコードをコピペして「受信したよ!」と言っても学習という意味では全く意味がありませんから、ISDB-Tの復調に関しては

    デジタル復調の学習を目的として、ワンセグチューナーで地デジのフルセグTSを抜く - Qiita
    rryu
    rryu 2024/05/18
    生の電波波形データをソフトウェアで復調してデジタルデータを取り出すところまでやってみたということらしい。
  • 入力欄のプレースホルダーって結局どうなの - Qiita

    入力欄のプレースホルダーの話をします。プレースホルダーというのは、フォームの入力欄で、ユーザーが入力するまでの間に表示されているテキストのことです。 書籍「Webアプリケーションアクセシビリティ1」では、「3.1 ラベルと説明」のところで、紙版にして約1.5ページの分量を割いて、フォーム入力欄のプレースホルダー(<input> 要素や<textarea> 要素の <placeholder> 属性)の問題点を指摘しています。 こので指摘されているプレースホルダーの問題点は以下の3つです。 プレースホルダーの色が薄く視認しづらい プレースホルダーとフォームコントロールの値との区別がつかない フォームコントロールに値を入力したときにプレースホルダーの値が見えなくなってしまう Webアプリケーションアクセシビリティ さらに、Nielsen Norman Groupによる「Placeholders

    入力欄のプレースホルダーって結局どうなの - Qiita
    rryu
    rryu 2024/05/14
    プレースホルダーはアイキャッチ画像のように無くてもいい賑やかしとしてしか使えないと思う。役立てようとするとどうにもならなくなる。