タグ

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

  • なぜ、ソフトウェアプロジェクトは人数を増やしても上手くいかないのか - Qiita

    はじめに ソフトウェアプロジェクトには不思議な性質があります。現状のスケジュールに課題を感じて、短くするために人員を投下しても、なかなか思い通りに短くならない。それどころか悪化してしまうことがあります。場合によってはプロジェクト自体が破綻して失敗してしまうことすらあります。 今回は、このようなソフトウェアプロジェクトに潜む直感に反する性質を数理的なモデルを介して理解していく試みです。ある種の思考実験としてお楽しみください。 宣伝 Qiitaさんとコラボ企画でアドベントカレンダーをつくりました。 DXをめちゃくちゃ改善した話を募集しています。 https://qiita.com/advent-calendar/2021/dx-improvement 10人の妊婦がいても1ヶ月で一人の子供は生まれない これは誰かの技術力やプロジェクトマネジメント力に欠陥があるのではなく、「人月の神話」で有名な

    なぜ、ソフトウェアプロジェクトは人数を増やしても上手くいかないのか - Qiita
  • 先輩社員がどうやって不具合を解決しているのか - Qiita

    Java はスレッドごとにメソッドの呼び出しをスタックで管理している スタック = LIFOのデータ構造 例外を new すると、その時点のスタックの情報が例外に記録される スタックトレースは、このスタックの情報を出力したもの トレース = trace = 追跡 スタックを追跡するためのもの スタックトレースを読むと、その例外を投げたスレッドがどのようにプログラムを通り、どこで例外をスローしたかが分かる スタックトレースの読み方 初めて長大なスタックトレースを見るとビックリしてしまうかもしれないが、全部を読む必要は無い 「例外の発生箇所を特定する」という目的に対しては、一番重要なのはスタックトレースの先頭だけ スタックトレースの先頭行は、その例外が生成された場所 普通は throw new Exceptin() のように、生成と同時に例外をスローするので、例外が生成された場所=例外がスロー

    先輩社員がどうやって不具合を解決しているのか - Qiita
  • Safariの新機能「気をそらす項目を非表示」の仕組みを調べた - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 「気をそらす項目を非表示」機能はiOS18などで新しく追加された、webページ上の広告など非表示にするための機能です。 使い方 Safariの新機能、スゲェなw これはいかつい。 「気をそらす項目を非表示」#iOS18 pic.twitter.com/7SUwIgnWmJ — ひで (@hidetoshitwitt) September 17, 2024 ※選択を間違えた場合等は、アドレスバーに青い目がでている状態でメニューを開き「非表示の項目を表示」を選択すれば設定をクリアできます。 どうやって実現している? macOS Sequoi

    Safariの新機能「気をそらす項目を非表示」の仕組みを調べた - Qiita
  • 自宅サーバーでTwitter連携サービスを運営してたら家宅捜索された件 - Qiita

    概要 ある朝自宅に神奈川県警が乗り込んできた。 (なお自宅は神奈川県ではない) どうやら俺はTwitterにモロ画像を投稿していたらしい。 「間違いなくこの家から投稿されていた。プロバイダにも確認済みだ。」 「(ハンドルネーム)というアカウント使ってるでしょ」 「心当たりあるでしょ?」 「(ブランド名)のTシャツ持ってるでしょ?」 おやっ、何かがおかしいです。 想定される経緯 自宅サーバーではTwiGaTen( https://twigaten.204504byse.info/ )というWebサイトが稼動している。 そしてこいつはTwitterアカウントでログインしたアカウントのタイムラインを24時間365日収集し続けている。Twitterの仕様上、これは時々ログイン履歴として記録される。 そして警察はモロ画像をうpしたアカウントのログイン履歴を見て… 「固定回線からうpか。バカめ。」 「

    自宅サーバーでTwitter連携サービスを運営してたら家宅捜索された件 - Qiita
  • NewSQLのコンポーネント詳解 - Qiita

    4.2.1 Shardingの手法 先ほどの表1を理解するにはSharding手法の列にあげられた各用語の理解が必要となる。 YugaByteDBのブログ「Four Data Sharding Strategies We Analyzed in Building a Distributed SQL Database」には、非常に詳しくShardingの手法が紹介されている。この記事では、大きく以下4つの分類があるという。 Algorithmic Sharding (例: Memcached/Redis) Linear Hash Sharding (例: 過去のCassandra) Consistent Hash Sharding (例: DynamoDB、Cassandra) Range Sharding (例: Spanner、HBase) 詳細は割愛するが、1つ目のアルゴリズム・シャー

    NewSQLのコンポーネント詳解 - Qiita
  • エンジニアリングマネージャ/プロダクトマネージャのための知識体系と読書ガイド - Qiita

    記事は、Engineering Manager Advent Calenderの1日目です。 はじめに エンジニアリングマネージャ(EM)と呼ばれる職務を設置する企業が増えてきました。 私たちの主催したイベントEOF2019でも700名近い方に参加していだき、また多くの方にご協力いただき成功裏に終わることができました。 EM Meetup/EM.FMなどのムーブメントの中心の一翼を担わせていただき、その高まりを感じる一方で不安も感じます。このエンジニアリングマネージャという職務は非常に多岐にわたるケースが存在していますし、必要だとされるスキルもまちまちです。そして、多くの場合、その企業のステージや状況ごとに求めるものは違います。また、求めていることを明文化することすらされていないケースも存在します。 このことから、エンジニアリングマネージメント自体が一時的な潮流として消費され、消えていっ

    エンジニアリングマネージャ/プロダクトマネージャのための知識体系と読書ガイド - Qiita
  • AWS側がしてきたECS / Fargate のスケーリング速度改善の話 - Qiita

    概要 2022年4月頃に、AWS のコンテナヒーロである Vlad Ionescu が Amazon ECS でのコンテナスケーリング時の起動速度をまとめたブログが公開された。 今回は、ブログを読み解きこのブログで語られた内容についてまとめていこうと思います。 ※ なお、ブログでは Amazon ECS / AWS Fargate についてのサービスを説明することは対象としておりません。あらかじめご了承ください。 ECS における各種データプレーンとタスク起動に比較 そもそも Amazon ECS というのは、AWS が独自開発しているコンテナオーケストレーションサービスです。 そのため、AWS 側が見てくれる領域とユーザ側が見なければいけない領域が異なる点には注視していないといけない。 下記を見てみると、領域の違いがわかるのですが、実際に稼働するコンテナのアプリケーションや、ECS A

    AWS側がしてきたECS / Fargate のスケーリング速度改善の話 - Qiita
    wata88
    wata88 2024/05/21
  • メンバーレイヤーから 開発生産性向上 を始めるために - Qiita

    はじめに 開発生産性をテーマとした技術イベントに出まくった結果、ある程度体系化された知識のおすそわけ記事です。 この記事を読めばわかること 開発生産性のトピックでよく語られている前提の部分 開発生産性を語るうえで大事なざっくりとした体系的な知識 開発生産性を測るためによく使われるメトリクス 雑に言えば、数字とってデータ駆動でPDCA回そうという話です。 この記事を読んだ後に、「開発生産性の議論 ナンモワカラン ...。」という人でも「まずはこの辺調べてみよう」ができる状態になればいいなと思って書いてます。 この記事を読んでもわからないこと 開発生産性の文脈におけるビジネスサイドとのコミュニケーションらへん 開発生産性の文脈における経営層とのコミュニケーションらへん 目次 開発生産性についての前提 開発生産性と言うクソデカワードの認識をそろえる 開発生産性には3つのレベルがあることを知る な

    メンバーレイヤーから 開発生産性向上 を始めるために - Qiita
  • だれかの進捗をうまく把握できないときのフレーズ集 - Qiita

    ほとんどの人はだれかと恊働しています。マネージャーやリーダーであるなら、この割合はより大きくなります。 筆者は、仕事の重要な要素のひとつを「進捗を出すこと」と定義しています。そして進捗を出すには、進捗をただしく把握することも重要になってきます。 しかし「進捗を把握する」と言っても、想像以上に難しいと感じる場面が多々ありました。たとえば、 進捗はどうですか? → 進行中です/〜をやっています なにか問題はありますか? → とくにないです 〜までに終わりそうですか? → たぶん大丈夫だと思います というようなやりとりは一般的なコミュニケーションだと思いますが、あまり有用な情報は得られていません。 この記事では、自身の経験則をもとに、進捗にまつわる良い情報をゲットするための具体的な質問を考えてみました。 なぜ進捗を把握すべきなのか 話の前に、なぜ進捗を把握すべきなのでしょうか。 それは良い計画づ

    だれかの進捗をうまく把握できないときのフレーズ集 - Qiita
  • 祖母が就寝するとDBインサートができなくなる - Qiita

    世の中には、一見関係なさそうな物理現象がITシステムに不可思議な影響を及ぼすことがあります 例えば,500マイル以上離れた場所にメールが送れないという話だったり 中国人のAさんがお茶を入れると会社のネットが繋がらなくなる という話があります。 私の場合は、祖母が就寝するとDBインサートが失敗する、という状況でした 実家の見守りシステム 問題が起きているのは、離れた実家にいる一人暮らしの祖母の状態を見守るために作成した自作のシステムです。 気温や湿度、CO2濃度、明るさ、部屋のドアの開閉、冷蔵庫の開閉の状況をモニタリングできるようにしています。 Raspberry Piに各種センサが接続され、定期的にInfluxDBに送信し、Grafanaという可視化ツールでいつでも見られるようにしています。 これらの情報を見ることで、祖母の家の部屋の温度が適切か、活動しているか、部屋にいるかなどが分かりま

    祖母が就寝するとDBインサートができなくなる - Qiita
  • 新幹線でもQUICで快適にSSHする - Qiita

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

    新幹線でもQUICで快適にSSHする - Qiita
    wata88
    wata88 2023/12/17
    作者がコメントしてるの凄い
  • Gmailが2024年2月から(大量)送信者に求めてることが分からない闇への防衛術(前編) - Qiita

    メールの世界にGmailさんが新たな闇を投入 (インターネットの)メール受信・送信は闇あふれる世界だと思うのですが(*1)、そこに 2023年10月7日、新たな闇要素をGmailさんが投げ込んでくれました。(正しくは2023/12月頭現在、闇がモリモリ増えてる。補足①②参照) (*2 最下部キャプチャあり) えーと、「1日あたり 5,000 件を超えるメールを送信する送信者」はこの事項を守ってね……とあります。要件と書いてあり、2024/2/1から実施と急なうえに、項目が SPFとDKIMの設定 逆引き 迷惑メール率 メール形式 Gmail の From: ヘッダーのなりすまし ARC DMARC ダイレクトメールの場合(……なんとかかんとか) 登録解除 と9個もある。 何これ……?と様々な人を戸惑わせています。 インターネットにつながっているそこそこの規模の組織は、1日あたり 5,000

    Gmailが2024年2月から(大量)送信者に求めてることが分からない闇への防衛術(前編) - Qiita
    wata88
    wata88 2023/12/10
    これができてない組織が多く改善もされないので、強権発動みたいな感じになってしまったみたいな印象
  • 糞コードは直すな。 - Qiita

    とりあえず落ち着け。 みなさん、毎日なにかしらのコードを読み、開発する日々を送っていると思います。そんな中で、 糞コードは死ぬべきである!!絶対に直すべき!! という感情に取りつかれてしまうことがあると思います。自分の技術力に自信のある人ほど、無理やりにでも直そうと試みると思います。それがどんな修羅の道か。そして、糞コード修正がどんな道を歩むのか。この記事では糞コード修正の罠とありがちなストーリーについて書きたいと思います。 ビジネスとしてのプログラムは質的に糞である 例えば、「携帯電話の利用料金」のプログラムがあります。 「携帯電話 透明性高め料金値下げを」という記事もあるように世の中の携帯電話の料金プランはかなり複雑です。例えば、auだと「auでんき」といった電気料金とパックされた電話料金プランがあります。また、「auスマートバリュー」といったプランもあり、家のインターネット回線をa

    糞コードは直すな。 - Qiita
  • Othello is Solved 論文解説 (私見) - Qiita

    今朝起きたら、とんでもない論文を見つけました。 Othello is Solved ゲームの オセロが"解かれた(弱解決)" というのです。飛び起きました。それで、16時まで二度寝してから読みました。 注意すべきは、この論文が査読を経て公開されているわけではないこと、つまり形式上特にチェックを受けたものではないことです。ただ、タイトルからして非常に衝撃的ですので、個人的に読んでみました。この記事では、私がこの論文(およびソースコード)を読んでわかったことを、なるべくわかりやすくまとめます。随時更新します。 余談ですが、このタイトルはどうやら、チェッカーというゲームが以前弱解決された際の論文"Checkers Is Solved"のオマージュだろうという話です。 この記事には専門用語が出てくるので、最後の方に基礎知識として重要な用語や知識をまとめました。 お詫びと訂正 この記事の内容は、私が

    Othello is Solved 論文解説 (私見) - Qiita
  • javascript でなぜ 2^53 - 1 以下の整数を正確に表せるのか - Qiita

    javascript の勉強をしていて疑問に思ったことについて調べたので書きます。冷静に考えるとかなり当たり前のことなのですが、同じ疑問を持つ人もいるかと思うのでメモを残しておきます。勘違いがあったら教えてください。 jsでは数値はすべて浮動小数点型で表す ほとんどのプログラミング言語では、整数と整数以外の実数を異なる型で表す(以下、面倒なので整数以外の実数を単に実数と表現する場合がある)。つまり、数値の中でも整数だけを特別に扱う型がある。例えば、Cでよく使うのは整数はint、実数はdoubleなどですね。これに対して、 javascript では整数だけを表す型というのがなく、数値はすべてNumberという型で表現される。つまり、3も0.3も同じ型の値である。Numberは実数を表すのによく使われる64bit の浮動小数点型なので、 javascript では整数も実数っぽく表しているこ

    javascript でなぜ 2^53 - 1 以下の整数を正確に表せるのか - Qiita
  • huggingfaceのaccelerateを使って訓練時のCUDA out of memoryを回避する - Qiita

    はじめに 学習スクリプトを実行しているときにGPUにメモリが乗り切らなくてCUDA out of memoryで処理が落ちてしまい、学習スクリプトを最初から実行し直すハメになることがよくあります。 特に自然言語処理とかだと、batch毎に最大系列長に合わせて短い系列をpaddingするような処理をしている場合、毎ステップで必要なGPUメモリが変化するため、バッチサイズを大きく設定していると1エポック終わるまで不安で仕方ありません。 さらにTransformerベースのアーキテクチャーを使っている場合は、消費メモリが系列長に対して2乗のオーダーなので、ちょっと長い系列長のデータがあったら想定以上にメモリを消費して溢れてしまうケースとかもよくあるんじゃないでしょうか。 huggingfaceのaccelerateというライブラリ内のfind_executable_batch_sizeという機能

    huggingfaceのaccelerateを使って訓練時のCUDA out of memoryを回避する - Qiita
    wata88
    wata88 2023/08/21
  • エンジニアのための刑事事件対策まとめ - Qiita

    こんにちは。モロと申します。 実は数年前警察のお世話になり、数年裁判等をやって、昨年晴れて無罪放免となったのですが、そういえばその後どこにも情報をまとめていなかったことに気が付きました。 正直にいうとまったく気の進まない作業ですし、数年間これにかかりきりだったこともあり「わざわざまとめなくても誰でも知ってることでは……?」みたいな気持ちもあります。 とはいえ冷静に考えると大抵の人は一生関わり合いになることのない知識で、お世話になった界隈に対して何も残さないのも不義理という感じがしたため遅ればせながら筆を執らせていただきます。 はじめに 当記事は、実際に警察のお世話になり、数年間弁護士の方にご指導いただきはしたものの、あくまで法律の専門家でも何でもない一エンジニア(というか多少エンジニアリングをかじったデザイナー)によるもので、第三者による監修等もなされていません。 実体験に基づいて少しでも

    エンジニアのための刑事事件対策まとめ - Qiita
  • GPT-4はどのようにして「不適切な回答」を回避するように学習されているのか - Qiita

    先日OpenAIより発表されたGPT-4が話題ですが、同タイミングで公表されたTechnical Reportを読んでみたところ、全99ページのうち後半60ページを占めるドキュメント「GPT-4 System Card」において解説されていた、言語AIが抱える危険性と、いかにしてGPT-4が危険な回答を回避するように学習されているかについての内容が非常に興味深かったため、簡単にまとめてみました。 https://arxiv.org/pdf/2303.08774.pdf サマリ GPT-4のリリースに向けて、OpenAIでは安全性を評価するために50人超の専門家らを含む"レッドチーム"を結成。2022年8月から8ヶ月に渡ってリスクの評価とその軽減に向けたチューニングを実施してきた リスク評価における実験の中には「自身をコピーするプログラムを実行できるGPT-4が自己増殖をしないか確認する」と

    GPT-4はどのようにして「不適切な回答」を回避するように学習されているのか - Qiita
    wata88
    wata88 2023/03/18
  • ソシオテクニカルアーキテクチャ概要 - Qiita

    ソシオテクニカルアーキテクチャとは 2021年は個人的にこの言葉をよく目にしたが、日ではまだ多くの人にとってなじみがない新しい用語で、かつ英語圏でも正確な定義がない。概念として真新しいものではないため解釈によって齟齬を引き起こすのは容易に推察され、今のうちに定義を整理しておく。 ところで、ソシオテクニカル・システムというのは昔からある用語で、組織開発分野に専門性がある人は耳にしたことがあるかもしれない。組織開発において「業務遂行のために人間と技術が相互作用しなければならないシステム」を指す用語として使われる。現代社会において、テクノロジービジネスに携わる私たちは常にソシオテクニカルシステムの一部として生きていて、毎日このようなシステムにさらされていると言える。 ソシオテクニカルシステム ソシオテクニカルという言葉は、1951年に発表されたEric TristとKen Bamforthの研

    ソシオテクニカルアーキテクチャ概要 - Qiita
  • AWS DevOps - AWS CodeBuildのビルド時間短縮 - Qiita

    はじめに 記事では、AWS CodeBuildのキャッシュを利用してビルド時間を短縮する方法について紹介します。 AWSマネージドサービスを使用したCICDパイプラインでは、AWS Codeシリーズ1を使用します。検証環境でAWS Codeシリーズを用いてCICDパイプラインを構築・運用した際、特にCodeBuildを使用したビルド時間に大幅な時間を費やしていることに対して課題と感じました。記事では、その課題に対する改善方法についての調査結果を共有します。 尚、記事の目的は、CodeBuildによるビルド時間を短縮する方法の情報提供となります。測定は検証環境で要したサンプルアプリ2を使用して得られたものであり、測定結果の正確性、有用性などにつきましては、一切保証するものではない点をご了承ください。 また、記事ではAWS各種サービスについての概要、およびビルド時間短縮に対して直接的に

    AWS DevOps - AWS CodeBuildのビルド時間短縮 - Qiita
    wata88
    wata88 2022/12/09