タグ

関連タグで絞り込む (206)

タグの絞り込みを解除

プログラミングに関するUhoNiceGuyのブックマーク (305)

  • Python 内包表記の限界: 複雑な処理と実行速度の関係 - Qiita

    初めに 記事は実務上で速度的優位性を得るために内包表記を使うことが合理的かどうか検証したものです。 文中のコードは読者層を広くするために型ヒントを省いています。 更新履歴 詳細 追記 (2023/05/24) 計測環境はPython3.12.0a6です。 修正 (2023/05/24) 記事中のバイトコードがPython3.7.16のものだったのでPython3.12.0a6のものに差し替えました。 修正 (2023/05/27) 「list(generator) 使えよ」とのご指摘があったので 単純な例の内包表記を[i for i in range(ELEMENTS)]からlist(range(ELEMENTS))に修正しました。 ご指摘ありがとうございます。 追記 (2023/05/28) Twitterでの反応に対しての追記を行いました。

    Python 内包表記の限界: 複雑な処理と実行速度の関係 - Qiita
    UhoNiceGuy
    UhoNiceGuy 2023/05/27
    リストの内包表記って、map、filterをわかりやすく表記するものでしょ。for loopと比べて一目瞭然。for loopはなんでも出来すぎるんだよ
  • Pythonについて思うこと | 雑記帳

    みなさん、Pythonは好きですか? この記事では、私がPythonという言語とそのエコシステムについて思うところを書いていきます。全体を通したストーリーみたいなのはなくて、トピックごとに書いています。 私のPython経験は3年弱です。Pythonについてまだまだ新米だという自覚はありますが、そこは有り余る才能でカバーしてこの記事を書いています。 静的型 Pythonには静的型がありません。型ヒントはありますが、インタープリターにとっては飾りにすぎません。 mypyとかの型チェッカーはありますが、「それさえあれば万事ハッピー」なものではなく、既存のコードを適宜書き換えないと型チェッカーでまともな結果を得るのは難しそうです。型検査を念頭に書かれていない(型ヒント付きの)コードをそのままmypyにかけても大量のエラー・警告が出てくるでしょう(ちなみに、型ヒントなしの関数はmypyのデフォルト

    UhoNiceGuy
    UhoNiceGuy 2023/05/24
    Mojoはじめ、いろんなnext Pythonの提案聞くけど、それってPythonじゃなくね?と思わないでもない。なにも考えずPerlみたいにグワーって書けるから普及したのではないかと
  • 「ファイル名に”yyyymmdd_hhmmss”がついてますが同タイミングで動かしたらどうなりますか」とレビューされて震えた話

    リンク 朝日新聞デジタル マイナカードで誤交付、自治体・富士通に報告求める 個人情報保護委:朝日新聞デジタル マイナンバーカードを使った証明書のコンビニ交付サービスで、他人の住民票などが誤って交付された問題をめぐり、個人情報保護委員会は11日、関係自治体やシステムを納入した富士通Japanに対して、報告や資… 9 ゆーしゃん.py(bot運用中) @Mr_mura_ura 客「ファイル名に「yyyymmdd_hhmmss」がついてますが、完全に同タイミングで動かしたらどうなります?」 私「こんな小規模な社内システムでそんな事無いと思いますが…エラー落ちしますね…」 客「まぁ99%無いと思いますが、念のためにね」 というレビューをつい最近受けた私、震えてます← 2023-05-11 00:02:16

    「ファイル名に”yyyymmdd_hhmmss”がついてますが同タイミングで動かしたらどうなりますか」とレビューされて震えた話
    UhoNiceGuy
    UhoNiceGuy 2023/05/12
    ファイル名がuniqueなファイルを作りたいならcreate file atomicallyって、そのまんまの手法があるでしょ。先人の蓄積を生かさなくては。何をファイル名に使うべきかはその先
  • Javaエンジニアだった私が当時困ったRustのコンセプト - paild tech blog

    お手伝いの @helloyuki_ です。今回はポエムです。 今回は、Rust を始めた当時、プログラミング言語は Java しかまともに触ったことがない新米若手 Java エンジニアだった私[*1]が「見たことがなく、使いどころがわからなく理解が難しい」と感じたポイントについて紹介します。対象とするソフトウェアのレイヤーが低いか高いかを問わず、とにかく Rust をやってみて理解するまでに時間がかかり、難しいと感じたポイントについて紹介します。 Rust の「メモリ安全」って、結局何 所有権とライフタイム 参照 スマートポインタ 代数的データ型 関数が第一級である モジュールシステム self 型クラスという側面でのトレイト まとめ 私が Rust をある程度使いこなせるようになるまでの話 「難しい」って何?、の話 Rust の「メモリ安全」って、結局何 そもそも論ですが、Rust が取

    Javaエンジニアだった私が当時困ったRustのコンセプト - paild tech blog
    UhoNiceGuy
    UhoNiceGuy 2023/05/11
    全くおっしゃる通りだ。所有権周りはGCが良きにはからって(ある程度)解決してくれて、見えなくしてくれた。それを明示的に扱うのだから難しいよね。C++やらんと所有権の必要性実感できんでしょ
  • プログラミングスクールを卒業してもエンジニアになれない問題2023 - Qiita

    誰に向けたどういう記事なのか 対象 駆け出しエンジニア(未経験から転職を狙う組) 内容 プログラミングスクールの理想と現実 勉強をサボってSESに行ってしまう話 今、私が未経験から転職を目指すならどうするか はじめに キャリアに悩んでいる日人はとても多いです。景気が悪く、インフレがひどく、税金はひたすら上がっていきます。インボイス制度によって、フリーランスの益税も厳しくなります。日では過去数十年ずっと賃金が上がっていません。ですがIT業界は違います。激しいダウントレンドの中、天を穿つ昇龍拳を打てる数少ないジョブ、それがWeb系エンジニアです。そういう情勢が過去7年前くらいから続き、未だなお、Web系エンジニアは大人気の職種になっています。ですが、多くの未経験の人はプログラミング・エンジニアに対する見積もりが甘いです。 特にプログラミングスクールを卒業すればエンジニアになれる、簡単に独立

    プログラミングスクールを卒業してもエンジニアになれない問題2023 - Qiita
    UhoNiceGuy
    UhoNiceGuy 2023/05/08
    独学だと、お約束や常識は教えてもらえんからね。あと、どの技能を身に付ければいいかも。
  • これから流行る言語 | 雑記帳

    新言語にできることはまだあるかい なんとかWIMPS 最近(1ヶ月くらい前)、こんな記事が出ました: 新しいプログラミング言語が出てこない(新しく出てた言語を追記) – きしだのHatena Kotlin, TypeScript, Rust, Swift以降にみんなが話題にするような新しい言語が出てこない、それはなぜか、みたいな趣旨です。客観的に見れば「新しい言語は常に出続けている」わけですが、「みんなが話題にするような」というのが多分曲者なんでしょうね。 例え話をすると、新しい若木は常に生えてきているんだけど、大木に成長するには時間がかかるので、大木にしか興味のない人には「この8年間で新しい大木は登場していない」と判断してしまうのかもしれません。 まあ私としても、Web (HTTP) APIを書く言語とか、JSON色付け係が使う言語はもう出揃ってしまったのかもしれないという気はしなくもな

    UhoNiceGuy
    UhoNiceGuy 2023/05/08
    自分も筆者と同じ考え。C10K問題でgo routineが、サーバサイドでの高速化の要求からRustが生まれた。以前より、クライアントサイドの高速化、つまり並列化が要求されていて、Mojoはその要求に応えるのでは
  • ホームページ- EY-Office

    小ネタです、JavaScript日の日付をYYYY-MM-DD形式で得るコードは案外面倒です。 2023年4月17日なら 2023-04-17 という文字列を得るコードはRubyならTime.now.strftime("%Y-%m-%d")、Pythonならdatetime.today().strftime("%Y-%m-%d")(importは省略しました)と簡単に書けますが、JavaScriptでは案外面倒なのです。 追記: いくつかの間違いのご指摘がありましたので修正しました(2023-04-19)。 DeepAIが生成した画像です いっけん正しいようで間違ったコード new Date().toISOString().slice(0,10) new Date()で日の日時を取得します toISOString()メソッドは日時データをISO形式の文字列に変換します、例えば 2

    ホームページ- EY-Office
    UhoNiceGuy
    UhoNiceGuy 2023/04/19
    自分の探し方が悪いのではなく、実際面倒なんだ。JavaScriptは貪欲で、この辺の機能、ドンドン取り込むかと思ってたら、そうでもないんだ
  • プログラミングをやめろ

    大学4年間と大学院2年間プログラミングやったやつでもできないし、会社で毎日8時間を数週間プログラミングについやしてもできないやつはできないし、そもそも人類というのはプログラミングできない可能性がある。 少年少女たちに「プログラミングはいいぞ!自由にものが作れて達成感がある!頭が良くなった気分にもなれるし!」と吹聴してまわんのもいいけど、6年間情報科学について勉強したようなやつの大半がプログラミングできないんですよ。それもごくごく初歩的な部分。 野球とかサッカーなら、まあ友達との試合には参加できなくてもごく稀にバットにボールを当てたり、ボールを1回あらぬ方向に蹴ったり、ぶっちゃけ周りとのレベル差で楽しくなくてすぐやめちゃうだろうけど、なんとか基礎の一部ぐらいはできるじゃないですか。 ピアノとかダンスでも、踏んじゃったをごくごくゆっくり弾くぐらいはできるかもしんないし、学芸会の振り付けを10

    プログラミングをやめろ
    UhoNiceGuy
    UhoNiceGuy 2023/04/12
    現代のプログラムって、FireFoxやExcelやGoogle Mapやエルデンリングじゃん。HelloWorldから、あまりにも遠すぎるんだよな。そりゃ挫折するわ
  • C10K 問題、実は理解していない

    お願い 「C10K 問題とは何か」がわかる方は是非 Issue や Twitter などで教えてください。 追記: 自分の立場 1req ごとに 1 native thread を割り当てていたら、クライアントの数が増えれば増えるほど負荷が高まるのは当然だ。ただハードウェアの性能的に余裕があっても性能が劣化することがあり、それを C10K 問題と呼ぶ。C10K 問題は fd, pid の枯渇、スレッドを固定長サイズで確保することによるメモリの無駄遣い、コンテキストスイッチコストを含む。これを解決する方法が 1req ごとに 1 native thread を割り当てない技術で、シングルスレッド+イベントループ+IO 多重化といったテクニックや M:N モデルにつながる。 追記: @naoya_ito さんに解説してもらった当時の歴史的背景 https://twitter.com/naoya

    C10K 問題、実は理解していない
    UhoNiceGuy
    UhoNiceGuy 2023/04/09
    十分理解しているのでは。学会での「素人質問で申し訳ないのですが」の類?//C10Kが話題になってたころと、go-routine等で解決の道が提示された現代とでは状況が違うと思う
  • あなたのPythonを100倍高速にする技術 / Codon入門

    はじめに Pythonは世界的にも人気のあるプログラミング言語ですが、実行速度については課題があります。Pythonの実行速度を高速化したい、という要求は根強く、これまでにも様々なツールや処理系が開発されています。 この記事ではMITの研究者らが開発したPythonを高速化するツール「Codon」について紹介します。 この記事を3行でまとめると: 高性能で簡単に扱えるPythonコンパイラ「Codon」 Pythonとの互換性がありながら、CやC++に匹敵する高速化を実現 実際にPythonコードが100倍速くなることを検証 Codonとは Codonは高性能なPythonコンパイラです。実行時のオーバーヘッドなしにPythonコードをネイティブなマシンコードにコンパイルし、シングルスレッドで10-100倍以上の高速化が実現できます。Codonの開発はGithub上で行われており、2021

    あなたのPythonを100倍高速にする技術 / Codon入門
    UhoNiceGuy
    UhoNiceGuy 2023/03/23
    型チェックが入るのは大胆な判断だな。教育的な目的?それとも、高速化の為に入れざるをえなかった?
  • 「Java 20」正式リリース。スレッド間で共有できるScoped Values、複数スレッド処理をまとめるStructured Concurrencyなど新機能

    Java 20」正式リリース。スレッド間で共有できるScoped Values、複数スレッド処理をまとめるStructured Concurrencyなど新機能 オラクルはJavaの最新バージョン「Java 20」正式版のリリースを発表しました。 Java 20 is now available! #Java20 #JDK20 #OpenJDK Download Now: https://t.co/6hZhod56WB Release notes: https://t.co/3eTwYKn1Cw API Javadoc: https://t.co/QUNgT4ol6Y Features: https://t.co/enLcqDmBQX Inside Java on JDK20: https://t.co/WIzDOeTgZl pic.twitter.com/7ahbOPF4LQ — Ja

    「Java 20」正式リリース。スレッド間で共有できるScoped Values、複数スレッド処理をまとめるStructured Concurrencyなど新機能
    UhoNiceGuy
    UhoNiceGuy 2023/03/22
    イミュタブルならスレッド間で普通に情報共有できるのでは?どんなのだろう
  • 「Ruby」開発者・まつもとゆきひろが語る、「Winny」事件の理不尽な逮捕劇「プログラミングを奪われることほど残酷なことはない」|最新の映画ニュースならMOVIE WALKER PRESS

    映画TOP 映画ニュース・読みもの Winny 「Ruby」開発者・まつもとゆきひろが語る、「Winny」事件の理不尽な逮捕劇「プログラミングを奪われることほど残酷なことはない」 インタビュー 2023/3/20 20:30 「Ruby」開発者・まつもとゆきひろが語る、「Winny」事件の理不尽な逮捕劇「プログラミングを奪われることほど残酷なことはない」 2002年、「Winny」と呼ばれるファイルを簡単に共有できるソフトが開発され、試用版が「2ちゃんねる」に公開される。人同士が直接できる革新的なシステムは瞬く間にシェアを伸ばして注目を集めるが、映画ゲーム音楽などが違法にアップロードされる事態が続出し、深刻な社会問題へ発展。著作権侵害による逮捕者もが現れるなか、開発者である金子勇も著作権法違反幇助の容疑で逮捕されてしまう。 この事件映画化したのが『Winny』(公開中)。『ぜんぶ、

    「Ruby」開発者・まつもとゆきひろが語る、「Winny」事件の理不尽な逮捕劇「プログラミングを奪われることほど残酷なことはない」|最新の映画ニュースならMOVIE WALKER PRESS
    UhoNiceGuy
    UhoNiceGuy 2023/03/22
    プログラミングと2chで煽ることを区別するべきだと思う。微小カメラの開発はされるべきだが、盗撮愛好家サイトで紹介するのは如何かとは思う。犯罪に仕立て上げるためか、そこらへんをごちゃ混ぜにしたのはよくない
  • 【悲報】プログラマー終わる。MSがChatGPTを組み込んだプログラミングソフトを発表、誰でもアプリ開発が可能に : IT速報

    マイクロソフトはローコードでスマートフォン用の業務アプリケーションを開発する「Power Apps」と、CRMなどの既存の業務アプリケーションを組み合わせて新たな業務アプリケーションを開発できる「Power Automate」にChatGPTベースのAIを組み込んだ「Copilot in Power Apps」および「Copilot in Power Automate」を発表しました。 いずれも自然言語でCopilotに作りたいアプリケーションの内容を伝えると自動的にアプリケーションが生成される機能を備えており、プログラマだけでなく、あらゆるビジネスマンがアプリケーションを開発できるようになると期待されます。 続きはソース元で マイクロソフト、自然言語で誰でもアプリケーション開発が可能になる「Copilot in Power Automate」「Copilot in Power Apps」

    【悲報】プログラマー終わる。MSがChatGPTを組み込んだプログラミングソフトを発表、誰でもアプリ開発が可能に : IT速報
    UhoNiceGuy
    UhoNiceGuy 2023/03/20
    自然言語だと曖昧になるからプログラミング用の人口言語を作ったんでしょ。ChatGPTに思った通りの動作をさせる呪文を作れる職人が生まれるだけだよ
  • 退屈なことはPythonにやらせよう 第2版

    一歩先行くハイパフォーマンスなビジネスパーソンからの圧倒的な支持を獲得し、自作RPAの草分けとして大ヒットしたベストセラー書の改訂版。劇的な「業務効率化」「コスト削減」「生産性向上」を達成するには、単純な繰り返し作業の自動化は必須です。書ではWordやExcelPDF文書の一括処理、Webサイトからのダウンロード、メールやSMSの送受信、画像処理、GUI操作といった日常業務でよく直面する面倒で退屈な作業を、Pythonと豊富なモジュールを使って自動化します。今回の改訂では、GmailやGoogleスプレッドシートの操作、Pythonと各種モジュールの最新版への対応、演習等を増補しています。日語版では、PyInstallerによるEXEファイルの作成方法を巻末付録として収録しました。 訳者まえがき まえがき 第I部 Pythonプログラミングの基礎 1章 Pythonの基 1.1 

    退屈なことはPythonにやらせよう 第2版
    UhoNiceGuy
    UhoNiceGuy 2023/03/08
    Kindle版欲しいなぁ。PDFだとなくしそう。紙の本買うか
  • Ruby30周年イベント(後編):まつもと氏「Static Compiler for Ruby」を作りたい。道具立ては揃ってきた

    Ruby30周年イベント(後編):まつもと氏「Static Compiler for Ruby」を作りたい。道具立ては揃ってきた まつもとゆきひろ氏によって開発が始まったRuby言語の30周年を祝うイベント「プログラミング言語Ruby30周年記念イベント」が2月25日にオンラインで開催されました。 イベントでは関係者やRuby愛好家らによる過去30年の振り返りやRubyにまつわるライトニングトークなどが行われ、最後にまつもとゆきひろ氏による基調講演「D is for Dream, V for Vaporware」が行われました。 基調講演では、Rubyを開発する前にまつもと氏が手がけた、Rubyの原点となるソフトウェア「CXライブラリ」や、今回初めて名前が明かされた「Tish」という作りかけのプログラミング言語や、これまであまり語られることのなかった、さらにその前の学生時代に妄想していたプ

    Ruby30周年イベント(後編):まつもと氏「Static Compiler for Ruby」を作りたい。道具立ては揃ってきた
    UhoNiceGuy
    UhoNiceGuy 2023/03/03
    プロファイルを取って最適化手法を変えるという話か//型情報を追加できる動的言語の方がもしかして最適化に有利かも、とのことだが、そのアプローチは静的言語でも本質的には取れるのでは//subset Rubyは期待
  • Node.jsとJavaScriptアプリを単一の実行ファイルにする「Single Executable Applications」機能、Node.js 19.7.0で実験的機能として搭載

    2月21日にリリースされたNode.jsの最新バージョン「Node.js 19.7.0」で、Node.jsとJavaScriptアプリケーションを単一の実行ファイルにパッケージングする新機能「Single Executable Applications」が実験的機能として搭載されました。 一般にNode.jsのアプリケーションをデプロイするには、Node.jsのインストールや環境設定をするところから始めなければなりません。 今回新しく実験的に搭載されたSingle Executable Applications機能を使うと、そのまま実行可能な単一の実行ファイルを作ることができるため、それを配置するだけで簡単にデプロイができるようになる見通しです。 Single Executable Applicationsでは、postjectと呼ばれる新しいコマンドが用意されます。これを用いてNode.

    Node.jsとJavaScriptアプリを単一の実行ファイルにする「Single Executable Applications」機能、Node.js 19.7.0で実験的機能として搭載
    UhoNiceGuy
    UhoNiceGuy 2023/02/27
    Electronも1exeで配布できるようになるのかな?
  • オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena

    「オブジェクト指向するとプログラムが読めなくなるから禁止」のような話は昔からあって、新しい技術についてこれない人を揶揄するようなニュアンスで使われていましたが、実際にはこれはオブジェクト指向迷路にうんざりした現場での率直な意見だと思います。 オブジェクト指向は、まじめにやるほどプログラムを読みにくくするという性質をもっています。 ※ 使い方次第というコメントついてますが、だからこそちゃんと性質をしっておく必要があると思います。 オブジェクト指向の代表的な指針を3つあげると次のようなものがあります。 オブジェクト同士の連携としてプログラムを組む 単一責務の原則 インタフェースと実装の分離 まず、オブジェクト同士の連携でプログラムを組むと、コードが飛びまくって追いにくくなります。そして単一責務の原則により、小さいクラスが大量に生成されて、追いにくさがさらにあがっていきます。 ダイクストラ先生が

    オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena
    UhoNiceGuy
    UhoNiceGuy 2023/02/25
    オブジェクト指向否定論って、全部をstatic関数にするとかいう奴でしょ?(違)//
  • const Hoge: React.FC<Props>=()=>って書いてたら思考停止系と言われたので調べた

    VTeacher所属のSatokoです。 QAエンジニアフロントエンドエンジニアを兼任しています。 2006年、まだホリエモン率いるライブドア(現LINE)のモバイルチーム(現LINE出澤社長がリーダー)に配属も、同年1月にライブドアショックがあって出社0日で失職。その後、サイバーエージェントGREEなどを転々としてきたITバブルの残党(ナイスミドル系エンジニア)です😅 1.久しぶりにReactプロジェクトに参加 リズミカルにキーボードを タタンッ! として、

    const Hoge: React.FC<Props>=()=>って書いてたら思考停止系と言われたので調べた
    UhoNiceGuy
    UhoNiceGuy 2023/02/23
    できるだけ用途を制限された意図が一目でわかる書き方、という観点で見ると、関数オブジェクトを名前と紐付けする場合、それ専用の表記であるfunctionを使うという考え方//無名関数使うのHaskellとか関数型っぽくカコイイ
  • 何故Javaは敬遠されるのか? - Qiita

    何故かJavaは敬遠される!? 筆者はIT業界に努めて17年ほどです。 SESとして働きに出ることが多かったのですが、近年はWebエンジニアとして PHP(Laravel)を使った開発が多くなってきています。 そんな開発現場ですが、プログラミング言語の話題に上がると 「Javaはわからない」 「Javaって難しいんでしょ?」 「環境構築がなぁ・・・」 なんて話をよく聞きます。 私はJavaの方が経験した期間が長かったので、特にそういった苦手意識は無いのですが Laravelの現場でもそういった話を聞くので、 「フレームワークの特性や、コードの書き方は結構似ているところが多いのに、何でみんな苦手なんだろう?」 と思ってしまうのです。 今回はそのギモンについて、私が思っていることを書いていきます。 (注:Java嫌いな人を論破したいわけではありませんw) 原因その1:インフラ構造上、難しいと思

    何故Javaは敬遠されるのか? - Qiita
    UhoNiceGuy
    UhoNiceGuy 2023/02/22
    この文章読むとよけいJavaが難しそうに思える… Javaは難しいという疑問をことごとく肯定しているような…
  • 今までありがとう! 日本人プログラマー向けフォントの先駆者「Ricty」の開発が終了/優秀な後継者たちを評価してみてね【やじうまの杜】

    今までありがとう! 日本人プログラマー向けフォントの先駆者「Ricty」の開発が終了/優秀な後継者たちを評価してみてね【やじうまの杜】
    UhoNiceGuy
    UhoNiceGuy 2023/02/14
    いろいろ試したけどRictyが一番なんだよなぁ