[Pythonクイズ]「if len(yourlist) > 0:」を、もっとシンプルに書ける?:Pythonステップアップクイズ len関数でリストの要素数を調べて、その数が0より大きいかどうかを比較したりしていませんか? チッチッ! リスト(コレクション)の性質を理解して、もっとPythonicなコードを書くようにしましょう!
![[Pythonクイズ]「if len(yourlist) > 0:」を、もっとシンプルに書ける?](https://cdn-ak-scissors.b.st-hatena.com/image/square/db1be71dbc039a6df6cb5ea8b4c3b872ebdcafc8/height=288;version=1;width=512/https%3A%2F%2Fimage.itmedia.co.jp%2Fait%2Farticles%2F2505%2F20%2Fcover_news036.jpg)
まずは自己紹介 ナレッジワークでエンジニア組織の仕組み作りなどを担当しているsedoと申します。 Enablement Groupという部署に所属していて、社内のプロジェクト管理の仕組みを整えたり、社外への情報発信イベントの運営サポートなどをしています! 「なんか読みにくいんですよね…」から始まった話 読める。動いてる。エラーも出てない。 でも――なんでこう書いたんだろう?と、コードの前で手が止まる。 誰かの実装にケチをつけたいわけじゃない。 でも、判断の理由が見えないコードって、どこか触るのが怖い。 レビューもしづらいし、直す勇気も出てこない。 ある日の定例ミーティング後、若手エンジニアのナギサさんが、そっと言った。 「△△さんのあの処理なんですけど、動作自体はちゃんとしてるんです。でも、正直ちょっと読み解くのが大変で…」 ナギサさんは、物腰が柔らかくて丁寧な、でもとても優秀なエンジニア
octox は、Rust で 一からすべて(ビルドシステムも含め)実装された Unix ライクなオペレーティングシステムです。 xv6-riscv に触発された学習用 OS として実装を始めたものです(元々は Linux のような OS の勉強として始めました)。 この投稿では、octox の実装を通して経験したことから自身の Unix-like OS の実装において Rust の機能がどのように活用されているかについて触れてみたいと思います。 本記事は英語で公開していた以下の記事の日本語訳版です。 Writing a Unix-like OS in Rust 上記の記事を投稿後、いくつかのニュースサイトでも特集され記事になっていました: This Month in Rust OSDev: March 2024 Hacker News: Octox: Unix-like OS in Rus
まえがき おはようございます。 諸事情によりPythonについての技術書を読むことになったのですが、 掲載されているいくつかのコードを見ていると「えぇ…」と思うことが多々ありましたので、ここで共有したいと思います。 なお、この記事は特定の書籍ないしは出版社、著者、その他を批判するためのものではないこと、あらかじめご了承ください。 (強いて言うなら、こういった書き方をするPythonistaを全般的に批判しているかもしれません) None比較を==でするな 特定のオブジェクトがNone(多言語であればnull)であるかどうかを検証するときの話です。 a == Noneと書いているようであれば、それはa is Noneに書き直したほうが良いかもしれません。 なぜ? Pythonにおいて、Noneはシングルトンです。 つまり、Noneというオブジェクトはランタイム全体で共有され、同じメモリアドレ
0.はじめに 現在、プログラミングの脱落率は80〜90%とも言われています。 「難しい」「意味が分からない」「エラーで詰んだ」といった理由で、多くの初学者が最初の数週間で挫折してしまいます。 その原因の多くは、「for文」や「if文」から始まる“手続き型”の学習スタイルにあります。 もちろん、それらは大切な構文です。 でも、これらを学んでもPythonが「わかる」ようにはなりません。 Pythonにおいて「for文」や「if文」は、人間で言えば行動や動作にあたります。 たとえば「歩く」「話す」「手を上げる」といった、一つひとつの具体的なアクションです。 もちろんそれらは必要です。でも、それだけを知っても“その人”を理解したことにはなりません。 本当に重要なのは、その人の「性格」や「生き方」、つまり“なぜそう動くのか”を知ること。 Pythonにおけるその考え方こそが、オブジェクト指向なので
コツは「LLMの得意な言語、フレームワークの組み合わせ」? NTTテクノクロスで働くエンジニアのAI活用法:トップ人材は、生成AIをこう使う ChatGPTの登場から数年。後続サービスも続々と誕生し、ビジネスにおいて生成AIの活用は当たり前になりつつある。一方、毎日のように更新され続ける情報に追い付けず、まだその真価を発揮し切れていないという人も多いだろう。 そこで本連載では、エグゼクティブやインフルエンサー、企業内のAI活用推進者などの生成AI活用法に注目。圧倒的な実力を発揮する“トップ人材”たちは、どんな生成AIをどのように使いこなしているのか。そしてそんな人材を抱える企業は、どのようにAIを利活用しているのか──業界や職種を問わず追いかける。 今回はNTTテクノクロスのエンジニアで、社内向けにノウハウを発信したり、ツールの開発を手掛けたりもするという山下城司さん(主任エンジニア デジ
はじめに すいません、連日の記事があったため少し煽りっぽいタイトルにしてしまいました。 平常時の感覚だったら、「Rustに入門するなら、同期Rustから始めるのがおすすめ」 とかにしてた記事だと思います。 この記事で主張したいことは以下です。 Rustは難しい Rustに入門するときの題材に、"Web Backend"や"Wasmでブラウザで動く何か"などの非同期Rustで無ければ達成できない題材を採用している人はそれがRust初級者への道を阻んでいる可能性がある 過去に非同期Rustで入門した人を否定する記事ではない Rustに入門することが目的なら、非非同期Rustから始めた方が良いのではないか? ここで長く言葉の定義をしても微妙なので、下に言葉の定義 というセクションを用意してあります。 前提 タイトルに書けていない前提を書いています。 この記事の指す「Rust入門者」はLL言語(P
こんにちは、韓国在住のsanaです! 今回は、パイソンを使った実践的なスキルを身につけるために役立つ3つの講座を紹介したいと思います! 1️⃣Python無料講義(活用編1) - 思い出の娯楽ゲームを作る(3時間) 実際の開発に役立つスキルを深めることができます。初心者でも安心して取り組める内容なので基礎知識がある方、パイソンの応用力を身につけたい方におすすめです!📈 2️⃣Pythonプログラミング 基礎からスタートし、徐々にプログラミングの力を養うことができます。プログラムを書く力を身につけたい初心者の方にぴったりです👨💻 3️⃣Pythonベースライブラリから積み重ねる機械学習 機械学習に興味がある方には、このパイソンを使った機械学習の講座が最適です! パイソンの基本から実務で使える技術までしっかり学んでいきましょう🌟 ぜひ、週末に挑戦してみてください!
0. 前書き - リモートデスクトッププロジェクトとの悲しき邂逅 私がremote-desktop-rsというクロスプラットフォームのリモートデスクトッププロジェクトを始めたとき、Rustの評判を信じていた。「メモリ安全性とパフォーマンスの素晴らしい組み合わせ」「優しいコンパイラエラー」「素晴らしいエコシステム」——本当にそうだったのか? 1. 学習曲線は「少し急」ではなく「エベレスト級」 「所有権の概念を理解すれば、あとは簡単です」と言われ続けた。嘘だ。絶対に嘘だ。 1.1 所有権地獄 私はcommon/src/lib.rsで単純な「ビルド情報」構造体を作成しようとした: // 素晴らしい所有権システムと戦った結果の姿 pub fn build_info() -> BuildInfo { let build_date = chrono::Local::now().format("%Y-%
1週間、人力でのコーディングを禁止してみた──AIスタートアップ企業のエクスプラザ(東京都港区)は3月上旬、こんな実験を実施した。大胆な取り組みだが、その結果は「通常時の仕事の成果から半減した」と同社の松本和高CTOは話す。では実験は失敗だったかというと、そうではなく「成功だった」と答える。それはなぜか。 この実験のルールは主に2つで「期間中のコードは全部AIに書かせる」「基本的に例外なし(緊急対応時は除く)」というもの。AIが出力したコードの修正も原則禁止で、デバッグ用の簡単なコードを書くのも認めない。しかし、どうしても手入力をしたい場合は、社内Slack内に設けた「懺悔チャンネル」で何がダメだったか書き込むことで、人力での入力を“こっそり許可”するなど逃げ道も用意した。 参加者は同社所属の3人のエンジニアで、エディターは指定せず「Cursor」「Windsurf」「Visual Stu
DMM.comは4月4日、テキストエディタ「Visual Studio Code」向け拡張機能として提供中のAIコーディングアシスタント「Cline」と、ソフトウェア開発エージェント「Devin」を試験導入した成果をテックブログで公開した。2週間のトライアルを実施した結果、品質向上や工数短縮、ITエンジニアの学習効率アップに役立つ可能性が示されたという。 例えばバグの特定やライブラリのアップデートといった作業は、AIの方が「人間がやるより早い」(同社)という結論に。「バグの修正・実装特定」「ライブラリのメジャーアップデートに伴うエラー修正」といった作業項目ごとに、人がやった場合とAIに任せた場合の所要時間の差を表にまとめて公開した。例えばバグの修正・実装特定は、人なら2時間かかるところ、AIであれば1時間で完了。コストは0.62ドル程度だったという。 Clineについては技術負債の分析と特
こんにちは、@dyoshikawaです。 「AIコーディング時代に出力されたコードを理解する必要があるのか?」という議論についての私見です。 結論からいうとAIが出力したコードは理解する必要があると思っています。その理由を言語化してみます。 アプリが複雑になるとタスク遂行が困難になる 英語圏のエンジニアインフルエンサーにはAIコーディングの熱狂から一歩引いた見解を発信する人が結構いる印象です。自分の感覚を補正するために、そういった人をフォローしてときどき投稿を追っています(個人的に、未来は「エンジニア不要論」でも「AIぜんぜん使えない論」でもなく、両者の中間に落ち着いていくのではないかと思っています)。 元Uberでフォロワー27万人のエンジニアGergely Orosz氏の最近のポストです。 日本語訳: AIコーディングツール、バイブコーディング、AIエージェントについて多くの議論が交わ
ソフトウェア品質の評価と追跡を手掛けるTIOBE Softwareは、2025年3月版の「TIOBEプログラミングコミュニティーインデックス」(通称「TIOBEインデックス」)を発表した。TIOBEインデックスは、プログラミング言語の人気を示す指標で、同社が毎月1回更新している。 レガシー言語がトップ20に返り咲く 2025年3月のランキングでは、非常に古いプログラミング言語がTIOBEインデックスのトップ20にランクインした。「Fortran」と「Delphi」はトップ10入りを競い合い、「COBOL」と今月新たにランクインした「Ada」はやや下位に位置した。いずれの言語も上昇傾向だ。TIOBE Software CEOのポール・ジャンセン氏は、古くからあるプログラミング言語が上昇している理由について、次のように述べている。 「古参のプログラミング言語が上昇傾向にある理由は、世界を支える
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? とあるプログラミング言語が集うカフェにて、季節のお茶会が開かれていた。今日は新しく仲間に加わったTypeScriptの"歓迎会"という名目だったが、実際は徹底的に弱点を暴く場だった。しかし、それは瞬く間に全面戦争へと発展していくのだった… シャム双生児の悲劇 JavaScript:(無邪気に)みんな〜!私の妹のTypeScriptを紹介するね! TypeScript:(元気よく)こんにちは!私はJavaScriptに型をつけて安全にします!型があれば安心! Rust:(冷ややかに)ねえ、あなたって結局JavaScriptのシャム双生児で
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こんにちは。 今回はClaude 3.7 sonnetの助けを借りて個人用ミニwebアプリを開発してみました。 普段はサービスデザイナーをしている開発素人の私がClaudeとともにアプリづくりを進めた過程や感想をつづります。 プロンプトやClaudeからの応答を抜粋して載せていますので、初心者のAI駆動な開発プロセスを追体験いただけたら嬉しいです! プロローグ 「Hey Claude, 俺一人でwebアプリ開発できる確率は?」 『…6%です』 「……ま、そんなところか」 『…あなた一人なら』 「?」 『…あなたは一人ではありません』 「
オライリーメディアの創立者ティム・オライリー氏が、同社のブログに「The End of Programming as We Know It」(私たちが知っているプログラミングの終焉)という記事を公開しました。 その冒頭には次のように書いてあります。 There’s a lot of chatter in the media that software developers will soon lose their jobs to AI. I don’t buy it. メディアでは、ソフトウェア開発者は近いうちにAIのせいで職を失うだろうという話が盛んに流れている。しかし私はそうは思いません。 生成AIの進化は、人間がタスクを与える都自律的にプログラミングを行ったりテストを実行したりするほどの領域に達しつつあり、それを実現するサービスとして「Devin」や「GitHub Copilot A
# 終了処理($1: シグナル名) cleanup() { # 終了処理中に無視するシグナル(他に必要な場合は追加する) trap '' HUP INT QUIT PIPE TERM # ここに終了処理を書く : TODO # 自分自身にシグナルを再送信することでシェルスクリプトを終了する trap - EXIT "$1" [ "$1" = EXIT ] || kill -s "$1" $$ || exit 1 } # トラップするシグナル(他に必要な場合は追加する) for i in EXIT HUP INT QUIT PIPE TERM; do trap 'cleanup '"$i" "$i" done # ここより下に実際のシェルスクリプトの内容を書く : : 自分自身にシグナルを再送信しているところが特徴的だと思いますが、その理由についての解説がこの記事の内容で、POSIX 準拠で
最近、プログラミング言語において「定数」とは何なのか、を説明する機会がありました。あまり言語化してこなかった部分ということもあり、自分の理解を文字に起こしておきます。 このエントリでは具体例として主にJavaScriptを使用しています。異なる言語では細かい挙動は一致しないことが普通ですので、そこは適宜読み替えてください。また「これが正解だ」ということを主張するものではなく、あくまで私の理解の説明です。そのため技術的に誤っていることを言っていることがあれば、優しく指摘してください。 先に結論 始めに結論から入りましょう。プログラミング言語における「定数」は、次の2項を備えた機能を指します。 値に名前を与える 再代入不可能 変数 vs 定数 「定数」と対になる概念は「変数」です。どちらも値に名前を与えるという機能は同一ですが、変数は何度でも代入できる。定数は宣言時に一度だけ代入し(初期化)、
📒ペアプロ・モブプロアンケート実施中 🖊️ あなたのご意見をお聞かせください。(2025/1/3 23:59まで) 回答結果は2025/1/6(月)にQiitaで公開いたします。 アンケートはこちらから(1分ほどで終わります) はじめに 巷ではペアプロ、モブプロがホットワードになっており、あたかも開発生産性を向上する特効薬のように取り上げられている印象を受けます。一方、この記事では、ペアプロ、モブプロ開発のネガティブな部分を考え、私の経験から感じたペアプロ、モブプロのアンチパターンとその改善策をご紹介します。 どんなアンチパターンを踏んでいたのか? 勤務時間は100%ペアプロを実施(ソロプロ禁止) ソロプロは悪、ペアプロが最高というチームの雰囲気 フロー効率を過度に重視する姿勢 どうなったか? +) 開発生産性およびデプロイ頻度は上がった +) 4keysなどの数値上の指標はすべてプラ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く