タグ

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

  • PHPコア開発者になって半年経ったので、php-srcでの活動を振り返る - Qiita

    こんにちは!PHPとCを主に書いています、Sakiです。日中はBASE株式会社さんでお仕事させていただいています。早朝と夜間にphp-srcでの活動をしています。PHP8.4のリリースマネージャーもやってます。 2024年からありがたいことにPHPコア開発者として採用していただき、半年とちょっとになりました。ちょうど一区切りということで、これまでの活動を簡単にまとめたいと思います。細かいものや、最終的に成果が出なかった(議論がまとまらなかったなど)ものは除外しています。 2023年、コア開発者になる前 実は私はphp-srcどころかOSSの経歴がかなり短いです。 はじめてのコントリビュート PHP8.1から、PDO MySQLmysqlndをドライバとして使用し、PDO::ATTR_EMULATE_PREPARESがtrueの場合、PHPのネイティブタイプで値が返される、というように仕様

    PHPコア開発者になって半年経ったので、php-srcでの活動を振り返る - Qiita
    hamaco
    hamaco 2024/07/24
  • 元々は /usr は user の略に決まってるじゃん?ホームディレクトリを置く場所だったんだから - Qiita

    Twitterとか見て「そうだったのかー」とか言うんじゃなくて、ちゃんと調べてみましょうよ。/usr は元々ユーザーのホームディレクトリをおいていた場所ですよ。/bin などを置いていたシステムディスクの容量が足りなくなったので別ディスクだった /usr 以下を使うようになっただけです。Unix System Resources とかそんな長い名前、後付けに決まってるでしょ? 翻訳は面倒なので、DeepL(の少し手直し)です。 初期の Unix のドキュメントから URLと1972年という年から、おそらく Version 1 Unix (1971) のドキュメントだと思います。ここ 経由で見つけました。 12ページにこのようなものがあります。詳細はよくわかりませんがディレクトリ構造でしょう。 idata: / root 41. 140016 .byte 7,1 9f-.-2 41. <..

    元々は /usr は user の略に決まってるじゃん?ホームディレクトリを置く場所だったんだから - Qiita
    hamaco
    hamaco 2024/06/20
  • Qiita

    hamaco
    hamaco 2024/06/03
  • なぜsortコマンドはuniq機能を含んでいるのか?(Unix哲学はどこ行った!?) - Qiita

    Unix 哲学的に考えれば、行を並び替える sort コマンドと重複行を取り除く uniq コマンドは別のコマンドであるべきなように思えます。しかし sort コマンドには -u オプションとして uniq コマンドに相当する機能が組み込まれています。なぜそうなっている(そうなってしまった)のかを「ソフトウェア作法(さくほう)」を参照しながらこの記事で明らかにしたいと思います。 関連記事 Unix哲学「一つのことをうまくやる」は単機能のコマンドを作ることではない 「誰」がuniq機能をsortコマンドに組み込んだ!? 熱烈的な Unix 哲学の信者は「どうせ Unix 哲学を理解しない GNU が便利だと思ってオプションを追加したのだろう」と考えるかもしれません。しかし uniq 機能が組み込まれたのは Version 7 Unix、つまり Unix の開発者が組み込んだのです。これは 1

    なぜsortコマンドはuniq機能を含んでいるのか?(Unix哲学はどこ行った!?) - Qiita
    hamaco
    hamaco 2024/05/17
  • 糞コードは直すな。 - Qiita

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

    糞コードは直すな。 - Qiita
    hamaco
    hamaco 2024/05/16
  • PHPカンファレンス香川2024に参加してきました #phpconkagawa - Qiita

    はじめに PHPカンファレンス香川2024に参加してきました。 びきニキさんが「みんな、ブログ書こうぜ!!!!」と呼びかけていたので、久々にQiita記事を書いてみました。 聞いた講演とその感想 PHP コードの実行モデルを理解する なんとなくPHP-FPMPHPのCLIを使ってきたので、体系立てて理解する契機になりました。オペコードの中身を初めて見ました。何度も資料を読み込んで深い理解に至りたいです。 新米SRE、4つのプロダクトを同時にPHP7.0から8.1へ!! 一気にバージョン引き上げではなく、PHPLaravelで交互にバージョンを刻みながらアップデートする手法はなかなか聞かない手法でした。 「静的解析と自動テストを日頃から整備しておくと、バージョンアップの難易度が下がる」と聞きました。この講演を聞いたからには、静的解析と自動テスト運用の旗振り役として動いていきたいです。 「

    PHPカンファレンス香川2024に参加してきました #phpconkagawa - Qiita
    hamaco
    hamaco 2024/05/14
  • PHPカンファレンス小田原を通して言語化されたオフラインカンファレンスの魅力 - Qiita

    はじめに 先日PHPカンファレンス小田原というオフラインカンファレンスに参加してきました。 今までエンジニアイベントやカンファレンスというものには参加してこなかったのですが、ひょんなことから参加することとなったPHPerKaigi2024があまりにも最高だったためその帰り道に勢いで申し込んだのでした。 PHPerKaigi2024がどう最高だったのか知りたい方は以下の記事をご覧ください。 PHPerKaigi2024は、スポンサーセッションの登壇者として参加し、最終日の自分の登壇直前から会場入りしたのでガッツリ参加という感じではありませんでしたが、今回のPHPカンファレンス小田原は単なる一参加者として、朝から晩までガッツリ参加し、めちゃめちゃエンジョイして、めちゃめちゃ学びがあったと感じる一日にすることができました。 初めてガッツリオフラインカンファレンスに一日参加して、「オフラインカンフ

    PHPカンファレンス小田原を通して言語化されたオフラインカンファレンスの魅力 - Qiita
    hamaco
    hamaco 2024/04/22
  • なぜエンジニア組織をうまくマネジメントできないと悩む経営者が多いのか? - Qiita

    はじめに 私は、さくらインターネットというクラウドサーバの会社の社長をしていて、よく経営者の方からのメンタリングのリクエストをいただくことがあります。 その中で多くの割合を占めるのが、ITエンジニア(以降、エンジニア)のマネジメントと、エンジニア組織の構築をどのようにすればいいのかというテーマです。 確かに、どんなビジネスをするにしても、単にSaaSやノーコードツールを活用するだけでは足りなくて、自分たちでシステム開発しないといけないケースが増えてきているのは、間違いないなと思います。 外注をしてシステム構築をするケースももちろん多いですが、基幹システムのような使いにくくても自社の社員が我慢すればいいものと違って、自社のお客様向けのシステムだと使いやすくないとお客様が離脱してしまいますし、常にアップデートをし続けて、最良のUI/UXを作ることが業績に直結します。 要は、今のデジタルシステム

    なぜエンジニア組織をうまくマネジメントできないと悩む経営者が多いのか? - Qiita
    hamaco
    hamaco 2023/12/26
  • 「わかってんじゃん」と思われる議事録を目指して - Qiita

    はじめに エンジニア職は、コンサルや営業などのフロント部門と比較すると、議事録を取る必要のあるミーティングの機会は少ないと思います。 それでも製品企画や設計などの各種レビューや、ユーザーへの業務ヒアリングやユーザビリティテストなど、議事録を取る場面はやってきます。 これまで読みやすいと思う議事録に出会うことがしばしばあり、そういった議事録を取れるように精進せねばな、と感じます。 また私自身、議事録を取るのが割と好きで、私がミーティングの主体でない場合、特に依頼されずとも議事録を取ることが多いです。 ・・・まあ、私が書いた議事録について「わかってんじゃん」と言われたことはありませんが、これまで議事録を読んできて、そして取ってきて、ここポイントだな、と感じている点をまとめてみます。 なお今回書くポイントは、私がよく出席する以下の2種類のミーティングの議事録の取り方に寄っていると思いますので、そ

    「わかってんじゃん」と思われる議事録を目指して - Qiita
    hamaco
    hamaco 2023/11/04
  • リモートワークで新人が楽しく効率的に成長できたプラクティス - Qiita

    はじめに 私のチームは、リモートワーク中心の開発チームです。 そのチームに新人が配属された時に、私のチームで行っている新人育成のプラクティスのうち、比較的ユニーク(だと思っている)プラクティスを抜粋して紹介します。 少しでも参考になれば幸いです。 リモートワークの知見を説明 新人に対して、チームで行っているリモートワークを快適に行うための知見を紹介しています。 特に、「今から通話いいですか」をすっ飛ばしてビデオ通話を開始する文化であることを共有します。 詳細は以下を参照ください。 インセプションデッキの説明 インセプションデッキとは、プロダクトづくりに関わるメンバーが各々の意見を持ち寄って共通認識をつくり出すための大事な質問に対してメンバー皆で議論して決めた回答です。 詳細は以下を参照ください。 インセプションデッキ | Agile Studio 私のチームでは、以下のテンプレートを利用し

    リモートワークで新人が楽しく効率的に成長できたプラクティス - Qiita
    hamaco
    hamaco 2023/08/07
  • ソフトウェアはなぜバージョンアップしなければならないのか - Qiita

    はじめに 社内インフラの運用担当者にとってソフトウェアのバージョンアップは地味な割に大変な業務です。 特に社内のオンプレサーバで動いているようなソフトウェアの場合、バージョンアップに伴う諸々の調整をそのソフトウェアを利用している各部署と行う必要があります。 そんなときに「今は忙しいからバージョンアップを先送りしてほしい」「このバージョンはスキップしてもよいのでは?」なんて声が各部署から聞こえてきます。バージョンアップの価値を各部署に理解してもらうのは大変です。 この文章はそんな時になぜバージョンアップしなければならないのかを上司や各部署のマネージャに伝えるために書きます。 ソフトウェアの有効期限は2-5年 まず、第一に、ソフトウェアというものは無限に使えるわけではなく、一定の有効期限があり、それを過ぎると徐々に動かなくなってきます。俗にいう「何もしてないのに動かなくなった問題」です。 なぜ

    ソフトウェアはなぜバージョンアップしなければならないのか - Qiita
    hamaco
    hamaco 2023/08/07
  • ドメイン駆動設計(DDD)で開発されたシステムを5ヶ月保守開発した感想・学び - Qiita

    巷で、顧客の課題を解決しつつ、より良いシステムを作るための設計手法として、ドメイン駆動設計(DDD)が話題になっていると思います。 このドメイン駆動設計について、どのように実践するか、実際に実践してみてどう感じたか、という話はよく出ていますが、作られたシステムがその後どのようになったのか、保守開発した結果どう感じたのかの話はあまり聞かないな、と思ったので、自分の経験から「実際のところどうなんだ」というところを振り返ってみようかな、と思い、今回の記事を書きました。 目次 私が保守開発しているシステム 5ヶ月の間にやったこと 保守開発していて感じたこと よかったこと 改修時に修正箇所が特定しやすかった テストコードが書きやすく安心して保守することができた 成長できたという実感があった 難しかったこと、学び ドメイン知識は次第に流出していく 定期的なメンテナンスが大事 最後に おまけ エンジニア

    ドメイン駆動設計(DDD)で開発されたシステムを5ヶ月保守開発した感想・学び - Qiita
    hamaco
    hamaco 2023/06/05
  • Google Mapよりすごい!と噂の位置情報サービスを使ってみた - Qiita

    こんにちは。ミーティングテクノロジーという会社で会議ツールを開発している伊勢川です。 仕事で位置情報サービスを軽く調べる機会があって、せっかくなので調べた内容を記事にしたいと思います。 位置情報(地図)サービスといえば、Google Mapを思い浮かべる人も多いのではないでしょうか。私もGoogle Mapのヘビーユーザー&ファンで、カーナビの代わりとして使ったり、街で見つけた史跡の写真等を2000件以上投稿したりしています。 B2Cのサービスの中ではGoogle Mapが圧倒的な存在感を放っていますが、B2B向けのサービスとなると様相が異なるようです。今回は、ある調査でB2B向けサービスの中ではGoogle Mapより高い評価がついていた「HERE」というサービスについて書きます。 Google Mapよりすごいと言われる所以はなにか Omdiaのレポートによると、B2B市場の位置情報サ

    Google Mapよりすごい!と噂の位置情報サービスを使ってみた - Qiita
    hamaco
    hamaco 2023/05/30
  • シェルスクリプトの $* と $@ の違いと雑学色々 - Qiita

    まず位置パラメータを含め変数を参照する時にダブルクォートしないのは無しです。理由は予期せぬ変数展開やパス名展開が行われるからです。詳細は「シェルスクリプトの変数はダブルクォートしなければいけない!という話」を参照してください。この理由により上半分は「使いません」で終わりです。 ダブルクォートはほぼ必須ですが { } は必要な時だけ書けば十分です。常に ${var} のように { } を書く人がいるようですが、そういう人に限って面倒なのかダブルクォートをしてないことをよく見かけます。逆です。省略可能なのは { } であり、ダブルクォートは(当に不要な場合を除き)省略できません。常に { } を使ってもかまわないと思いますがダブルクォートも書きましょう。 ❌ ${var} ・・・ ダブルクォートが抜けている! ⭕ "$var" ・・・ このように書け! ⭕ "${var}" ・・・ 問題ない

    シェルスクリプトの $* と $@ の違いと雑学色々 - Qiita
    hamaco
    hamaco 2023/05/29
  • 技術顧問との1on1で見積もりには3種類あることを教えてもらった - Qiita

    はじめに 記事はモチベーションクラウドシリーズ Advent Calendar 2022の17日目になります。 自分は外部の技術顧問の方に月に一回のペースで1on1する機会をもらっています。 今回はその中で話したことを共有します。 ※公開するにあたって分かりやすさを重視して脚色しています。 見積もりに対する課題感 ぼく「約束は開発を遅らせるという記事を最近読んだのですが、その通りだと思ったのですよね。」 さて、チームの外に対して約束するために「この機能1ヶ月で出せるよね?」とプロダクトの人やマネージャーに聞かれたら。これは返事に悩む。「ラフで構わないから」って言われて伝えたら、それがコミットメントになってしまったのを過去に何度も見たことがある 約束してはいけないと言いたいわけではない。約束が必要な場合がほとんどだと思う。ただ、その約束は開発を遅くするんだなぁ。だから、約束せずに気楽に開発

    技術顧問との1on1で見積もりには3種類あることを教えてもらった - Qiita
    hamaco
    hamaco 2023/01/08
  • moment.js・day.js よりも速くて軽い cdate ライブラリ - Qiita

    moment.js や day.js と似たインターフェースを実装した高速・軽量の JavaScript ライブラリ『cdate』をリリースしました。→ https://www.npmjs.com/package/cdate cdate の主な特徴: moment.js や day.js、Luxon よりも高速 moment.js と同じ .format("YYYY-MM-DD HH:mm:ss") 出力フォーマットに対応 strftime と同じ .text("%Y-%m-%d %H:%M:%S") 出力フォーマットに対応 moment.js と同様に .add(1, "month").startOf("week").endOf("day") のような計算に対応 .tz("Asia/Tokyo") あるいは .utcOffset("+09:00") のようなタイムゾーン(時間帯)指定に対

    moment.js・day.js よりも速くて軽い cdate ライブラリ - Qiita
    hamaco
    hamaco 2023/01/04
    気になる👀
  • なぜ出力時のHTMLエスケープを省略してはならないのか - Qiita

    メリークリスマス! 週末もPHPを楽しんでますか? ところでWebセキュリティはWebアプリケーションを公開する上で基礎中の基礎ですよね! メジャーな脆弱性を作り込まないことはWeb開発においては専門技術ではなく、プロとしての基です。 中でもXSS (Cross-Site Scriptingクロスサイトスクリプティング)やインジェクションについての考慮は常に絶対に欠いてはならないものです。 現実にはプログラミングには自動車のような運転免許制度がないため、自動車学校に通わず独学で公道に出ることができてしまいます。つまりは基礎知識がないままにWebプログラマとして就職したり、フリーランスとして案件を請けることも現実には罷り通っています。それは一時停止標識も赤信号も知らずにタクシー営業しているようなものです。 このような事情により、体系的な理解のないWeb開発初心者は (時にはn年のキャリアを

    なぜ出力時のHTMLエスケープを省略してはならないのか - Qiita
    hamaco
    hamaco 2023/01/04
  • 障害報告書を書こう! - Qiita

    担当しているITサービスなどに何かしらのインシデントや障害が発生した時に、対処後のアクションとして報告書を提出して事象の内容を報告(レポート)する場合がある。 提出先は会社の偉い人だったりクライアントだったり。場合によってはユーザー向けに発表したり。事の顛末を報告して「今後同様のことを起こさないように努力します、ごめんなさい」をするのだ。どのように再発防止の努力するのかを書くものでもある。 主にクライアント向けのビジネス内容ではあるが、自分が使っているテンプレパターンを共有するので参考にしてもらえればと思う。1 全般的なポイント 心得のようなもの。次の点は留意してて欲しい。 淡々と冷静な説明をこころがける 当然のことながら事実は脚色しない。無駄な修飾も要らない。客観的な事実を簡潔に述べる。 例: ❌「一生懸命頑張って対応したが…」 ❌「寝ないで対応したが…」 ❌「当の原因は…」 できるだ

    障害報告書を書こう! - Qiita
    hamaco
    hamaco 2022/12/28
  • 14年間継ぎ足し続けられた課金ページを分離して整理した話 - Qiita

    こんにちは。 (ニコニコ)プレミアム課金開発チームに所属しております @ingen084 です。 去年は ニコニコで13年運用された決済システムが移行されてからのその後の改善 を投稿させていただきましたが、この投稿は前座で、実際に環境が整ったところでシステム上でどのような変更を加えていったかなどを書いてみたいと思います。 (改めて)ニコニコプレミアムについて 入会ページ 退会ページ ご存じの方は多いと思いますが、ニコニコプレミアムは月額500円(税別)のニコニコのプレミアム会員サービスです。 これらのシステムは当時ニコニコ動画体のコードに組み込まれていましたが、一昨年分離され身軽になり去年、今年と機能追加などと並行して改善を続けています。 決済の流れと課題 ニコニコプレミアムでは主に以下のフローで入会時の決済を行います。 これらのページ構成は2007年のプレミアム会員サービスの開始当時か

    14年間継ぎ足し続けられた課金ページを分離して整理した話 - Qiita
    hamaco
    hamaco 2022/12/13
  • シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita

    はじめに bash などのシェルには [ ... ] と [[ ... ]] の二種類の比較方法があります。一つはコマンド、もう一つはシェルの文法なのですが、具体的にはこの二つは一体何が違うのでしょうか? そもそもなぜ似ている機能が二つもあるのでしょうか? この記事は言語設計者の気持ちになって考えることで、その理由を解き明かそうという記事です。 なお、違いについての簡単な説明については「test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 」の記事がよくまとめられていますので紹介します。一通りの違いを素早く知りたい方はこちらを参照してください。 参考 シェルの歴史や種類については「シェルの歴史 総まとめ(種類と系統図)と POSIX の役割」に詳しくまとめています(系統図とか頑張って書いたので見

    シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita
    hamaco
    hamaco 2022/11/08