タグ

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

  • 仕事や研究で使えるGNUParallelによる並列処理 - Qiita

    はじめに 「100種類の学習済みモデルの性能調査をしておいて、テストデータは10種類あるよ」 こう言われた場合、作業の方法は複数ある。 1. 1000(100 x 10)回試験を実行する。 2. プログラムを書いて自動化し、1回の実行で1000回試験を行えるようにする。 3. テストデータを1つに結合して100回試験を行い、後で10種類に戻す。 1はどんなに1回の試験に時間がかからなくてもまず選択しないだろう。プログラムに多少自身があるならおそらく2を選んだのではないか。 2を選んだ理由は「自動化できてるから待ってるだけで終わる」とか「人的ミスが減り、時間がかからないから」などが挙げられるだろう。 しかし、プログラムの作成に1000時間かかっていたとしたら?それなら3(もしくは1)が最も成果を挙げられる方法となる可能性がある。 また、プログラムの作成に時間をかけて、そのプログラムが今回の試

    仕事や研究で使えるGNUParallelによる並列処理 - Qiita
  • プログラミング言語をすぐに試せる「プレイグラウンド」まとめ。2024年版

    新しいプログラミング言語やライブラリ、フレームワークを学ぶには、実際にそれらを試して挙動などを見てみることが大事ですが、実行環境を用意するのは手間がかかります。 そこで役立つのが、いわゆる「プレイグラウンド」と呼ばれる、Webブラウザでプログラミング言語やライブラリ、フレームワークをすぐに試すことができるサービスです。 主要なプログラミング言語の公式サイトには、実際にその言語をすぐに試せるプレイグラウンドが用意されていることも多く、また公式サイト以外にもネット上にはさまざまなプレイグラウンドがあります。 プレイグラウンドを使えば、気軽にいろんなプログラミング言語やライブラリ、フレームワークを試せます。 この記事ではそうしたプレイグラウンドをまとめてみました。ここで紹介したプレイグラウンドの他にも、あなたのお気に入りのプレイグラウンドがあればX/Twitterやブックマークのコメント、メール

    プログラミング言語をすぐに試せる「プレイグラウンド」まとめ。2024年版
  • GPTが人知れず既存の名刺管理アプリを抹殺していた話 - Qiita

    抹殺は言い過ぎかもしれませんが簡易な名刺管理アプリであれば自作で十分という時代がきていたようです これで紙の名刺からはきっとバイバイできるでしょう! 名刺管理アプリ作ってほしいといわれた それは2/22のお話。 ことの発端は別の部署からかかってきた一の電話でした。 新規事業の部署でいろいろな取引先様と付き合いがあるものの、紙の名刺が非常に多く管理に困っているとのことのことです。 私は小売業に勤務しているしがない一社員で、現在Eコマースの戦略立案に関する部署に所属しています。 電話先の方は、以前一緒の部署で勤務したことがある方です。現在新規事業のプロジェクト推進をしており、冒頭のような課題感を持っているため既存の名刺管理アプリ導入を考えたのですが、あまりのお値段の高さに卒倒して私に藁をもすがる思いで連絡されたようです。 これまでのアプリは名刺の識別専門のAI()を使っていた 話を聞いてみた

    GPTが人知れず既存の名刺管理アプリを抹殺していた話 - Qiita
  • 保守・理解しやすいコードを書きたい! 〜VSCode拡張機能で循環的複雑度と戦う〜 - Qiita

    参考: 循環的複雑度 ちなみに githubで最もやべー関数を発掘するという記事では、循環的複雑度が高い関数が紹介されています。 ものによってはリンク切れしてしまっていますが、最も複雑度が高いのはnode(JavaScript)のjo関数で5505だそうです。想像もつかない... どのようにすれば循環的複雑度を低く抑えられるのか? 計算方法から考えると、forやifによる分岐を減らしていくことが必要となります。 そのために、分岐の入るロジックを別関数として切り出し、1つの関数でやる事を絞り、分離することを理想として目指していきます。 とはいえ、いちいち複雑度の計算なんてしていられないですね。 そこで役に立つのが次のVSCode拡張機能です。 Code Metrics (VSCode拡張機能) この拡張機能は、TypeScriptJavaScriptの関数・メソッドに循環的複雑度を表示して

    保守・理解しやすいコードを書きたい! 〜VSCode拡張機能で循環的複雑度と戦う〜 - Qiita
  • ブラウザのみの統合開発環境 StackBlitz の紹介

    初めに この記事は StackBlitz の紹介になります。 初めに言っときます。 StackBlitz は滅茶苦茶凄いです。 現状 JavaScript 系のフレームワーク・ライブラリは勿論。(Next.js / Nuxt.js / jQuery等) Node.js自体も動かせます。 WASM を利用して PythonWordPress も動きます。 (2023/10/24 現在) ブラウザのみで開発が完結します。 疑問 でも貴方は今こう思ったかもしれません。 Q. でもお高いんでしょ? A. 基的には無料です。 Q. 基的? 使えるプロジェクトの数とか制限されてるんでしょ? A. されてません。 無料アカウントで 無制限です そして今こう思ったのではないでしょうか。 [*] でもなんか裏が有るんでしょ? 無料はおかしい。 確かにおかしいです。 サーバーを動かすのにも電力やクラ

    ブラウザのみの統合開発環境 StackBlitz の紹介
  • htmxとは何なのか? その背景にある思想について - Qiita

    先日、Qiitaに投稿された一つの記事が注目を集めました。 元記事では、htmxというJavaScriptライブラリが英語圏で認知を獲得しているとして、インストールの仕方から使い方について公式のドキュメントの全体にわたって簡単に説明が行われています。 さまざまなプラットフォームでこの記事に対する反応を観察してみると、どちらかというと懐疑的な見方のほうが優勢のように見受けられます。ただ、多くのコメントは誤解に基づいているように見受けられました。「JSが要らない」といった元記事のミスリードによるところも大きそうですが1、なぜhtmxが大きく支持を得つつあるのかを理解するには、背景情報を含めて理解することが必要です。 htmxは、最近の複雑化するフロントエンド技術に対する単なる逆張りではありません。これまで30年ほどのあいだウェブ上のシステムを支え続けた「ハイパーメディア」の持つ強力さに今一度目

    htmxとは何なのか? その背景にある思想について - Qiita
  • もうjsなんていらない!世界で流行っているHTMXについてまとめてみた - Qiita

    HTMXとは HTMXは、JavaScript を記述せずに、Ajax通信や高度なUXを実現できるライブラリ。 軽量 で 高速 で、既存のサーバーサイドのフレームワークとシームレスなやり取りができる。また、AJAX通信の発火、フォームの送信処理、DOMの更新などを既存のHTML要素を拡張するだけで可能とする。WebSocketやSSEにも対応しているので、チャットアプリなどにも適している。 2023 JavaScript Rising Starsでは、 フロントエンド・フレームワーク部門で見事2位に輝いた!(一位はReact、全部門だとshadcn/ui) 似たような機能として、Ruby on RailsHotWireがあるらしい。 2024年はHTMXがくると言われているぐらい世界で騒がれているのだが、あまり日では流行っていない。以下はGoogleトレンドで調べた結果である。 アメリ

    もうjsなんていらない!世界で流行っているHTMXについてまとめてみた - Qiita
  • プログラミング言語 HTML 入門

    はじめに 以前 uhyo さんにより「HTML はプログラミング言語である」と示されたことは記憶に新しいところですが、昨年末の HTML, The Programming Language の登場により、その主張はより強固なものとなりました。現代ではもはや、HTML は立派なプログラミング言語であるということは疑いようがありません。 この記事では、プログラミング言語 HTML, The Programming Language について、その概要と基的な文法について説明します。そして最後に、HTML プログラミングの応用例として FizzBuzz やフィボナッチ数列の実装例を見ていきます。 HTML, The Programming Language HTML, The Programming Language (以下 HTML と略します) は、HTMX を開発していることで有名な B

    プログラミング言語 HTML 入門
  • 【日本人エンジニア必携】英語命名規則の決定版 - Qiita

    弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 はじめに 英語での適切な命名は、コードの可読性や保守性を向上させるために重要です。適切な命名規則を守ることがコードの理解や共有において不可欠です。 英語での命名規則を学び、適切な命名を行うことで、コードの読みやすさや保守性を向上させ、チーム全体でのコードの理解を促進する手助けとなります。 この記事では、日エンジニア英語での命名規則を理解し、適切な命名を行うための指針を提供します。 命名フローチャート 変数 関数 クラス 1. 変数 1-1. boolean 1-1-1. 存在するかどうかのフラグ 名詞 + exists

    【日本人エンジニア必携】英語命名規則の決定版 - Qiita
  • 【図解】Pythonのライブラリ 24選+α - Qiita

    Pythonにはライブラリが沢山あります。ライブラリとは便利な機能を持ったプログラムを集めたものを言い、このライブラリを上手く使うことで色々なことを実現できます。 今回はこのライブラリを用途別で図解にまとめました。 Pythonでプログラムを組む際の参考になりましたら幸いです。 ※簡単にまとめているだけなので、詳しい中身は公式ドキュメント等をご確認ください。 追記(2023/12/25) 当記事がありがたいことに好評いただけたので、Pythonの基礎も図解化しました。あわせてご活用いただけますと幸いです。 機械学習 機械学習 ⊃ 深層学習という包含関係です。 ざっくり言うと、特定のタスク(分析の方向性が明確)に対して予測できるのが機械学習で、より複雑なデータも処理できるのが深層学習です。 ただし深層学習はその分、学習に要する時間やデータは多くなります。 【機械学習入門】scikit-lea

    【図解】Pythonのライブラリ 24選+α - Qiita
  • プログラミング初心者がゲーム感覚で楽しく学べる無料サービス16選|苦しんでプログラミングを学んだ柴犬(くるしば)

    こんにちは。 苦しんでプログラミングを学んだ柴犬こと、「くるしば」と申します。 元々コンサルタントの仕事をしていましたが、独学でプログラミングを学習し、Webサービスを作って起業しました。 その後個人で開発したサービスを売却したり、また別のIT系の会社を創業、経営したりしています。 去年の8月から下記のTwitterにてプログラミング学習に関して発信し始め、ありがたいことに10000人以上の方々にフォローして頂きました。 プログラミング初心者に絶対覚えてほしい、ググる時の効率が10倍上がるコツ pic.twitter.com/hK1ZhNavwh — くるしば | 読めば10倍効率が上がるプログラミング学習の教科書 (@shiba_program) September 13, 2022 技術書Webサービス、QiitaやzennのWeb記事など、最近は当にプログラミングを学習できるコン

    プログラミング初心者がゲーム感覚で楽しく学べる無料サービス16選|苦しんでプログラミングを学んだ柴犬(くるしば)
  • はじめに - Writing an OS in 1,000 Lines

    書では、小さなOSをゼロから少しずつ作っていきます。 OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.01はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。 書では素朴なコンテキストスイッチ、ページング、ユーザーモード、コマンドラインシェル、ディスクデバイスドライバ、ファイルの読み書きをC言語で実装します。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1000行未満です。 「1000行なら1日でできそう」と思うかもしれませんが、初学者には少なくとも3日はかかるでしょう。OS自作のハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法・能力を習得する必要がありま

    はじめに - Writing an OS in 1,000 Lines
  • SECCON CTF 2013 online予選 forensics 400

    SECCON CTF 2013 オンライン予選のフォレンジックス400点の解法です。 競技中は解けませんでしたので、終わってからじっくり解いてみました。 問題:QRコードの断片を読み取れ 富士山麓で焼け落ちたQRコードの断片が発見された。 損傷が激しい。内容を復元することはできるだろうか? qr-photo.jpg QRコードの仕様について詳しく知らなかったので、調べました。 http://ja.wikipedia.org/wiki/QR%E3%82%B3%E3%83%BC%E3%83%89 ・バージョンがある(1〜40) ・誤り訂正レベルがある(L,M,Q,H) ・モードがある(数字、 英数字、8ビットバイト、漢字) ・どのモードを使っているかを表すモード指示子がある ・文字列/データの長さを表す文字数指示子がある ・QRコードは読み取り精度を高めるためにマスク処理が行われている ・どの

    SECCON CTF 2013 online予選 forensics 400
  • The Story of Mel - For longer date than mine.

    (以下の記事は2006年3月5日に書いたものです) ハッカー界に伝わる英雄叙事詩「The Story of Mel」の翻訳です。有名な割に Web 上で読める日語訳がなかったので訳してみました。誤訳や間違いはコメント欄で指摘してくれれば幸いです。 - プログラミングの硬派な面について捧げられた最近の投稿で、 次のような率直で大胆な宣言がされた: 物のプログラマは FORTRAN で書く。 恐らくいまならそうだろう ライトビールと電卓と”ユーザフレンドリ”なソフトウェアが支配する この堕落した時代では しかし古き良き時代、 ”ソフトウェア”という言葉が滑稽に聞こえ 物のコンピュータがドラムと真空管でできていた時代、 物のプログラマはマシン語で書いた。 FORTRAN でない、RATFOR でもない、 アセンブリ言語ですらない マシン語で。 生の、何の飾りもない、 謎めいた16進数で

    The Story of Mel - For longer date than mine.
  • 「とにかく日本の住所のヤバさをもっと知るべきだと思います」に、住所正規化コンバータはどこまで応えられるのか、やってみた - ジャスミンソフト日記

    note.com を読みました。私自身も日の住所の扱いを何とかしないと業務アプリケーションの運用に支障が出ると感じ、2003年に「住所正規化コンバータ」というソフトウェアをリリースし、20年が経過しました。現在は国際航業株式会社様に取り扱っていただいています。 www.kkc.co.jp このブログにあるような指摘にどこまで応えられただろうかということで、社内で試してみました。利用したバージョンは最新の R7.2.0 で、住所マスタは2022年秋版と組み合わせました。その結果を公開します。 住居表示 丁目表記と地番表記の混在に対応しています。 浦安市舞浜2-1-1 郵便番号 都道府県 市区町村 町域 小字・丁目 番地・号 マッチレベル 2790031 千葉県 浦安市 舞浜 2 1-1 号レベル 浦安市舞浜2-11 郵便番号 都道府県 市区町村 町域 小字・丁目 番地・号 マッチレベル 2

    「とにかく日本の住所のヤバさをもっと知るべきだと思います」に、住所正規化コンバータはどこまで応えられるのか、やってみた - ジャスミンソフト日記
  • アメリカの職場ではなぜドキュメントも無いのに人が去っても問題ないのだろう?|牛尾 剛

    アメリカの職場にいると、日にいるときよりも身近でレイオフだとか、職を変えるというのを頻繁に見かける。先日もそういう場面があったのだが昔日で働いていた時のことを思い出した。 ドキュメントを書く理由 日のソフトウェア企業にいたときは、「納品物であるから」という理由以外にも、「人がいなくなったときに会社が困るから」という理由でもドキュメントを書くことが推奨されていた。しかし、少なくとも今の職場ではそんな理由でドキュメントを書くのは推奨されていないのに、なぜ問題にならないのだろうとふと思った。 うちのマネージャは、バディ制ににして、みんな休暇できるようにしようとは言っているが、多分当に退職対策ではないと思う。 チームのメンバーが抜けたときも、「とても残念で、ワークロードをどうしようという問題はあるけど、彼女の門出を祝福しよう」言っていた。つまり、こちらでも「工数」は問題になるけど、「引継ぎ

    アメリカの職場ではなぜドキュメントも無いのに人が去っても問題ないのだろう?|牛尾 剛
  • jq が jqlang organization に移譲されました - プログラムモグモグ

    JSONを操作するコマンドラインツールであるjqは、これまでオリジナル作者であるStephen Dolan氏 (@stedolan)のリポジトリ(github.com/stedolan/jq)で管理されていました。 メンテナンスはNico Williams氏 (@nicowilliams)とWilliam Langford氏 (@wtlangford)の二名が行なっていましたが、近年は活動が減っておりメンテナンスが滞っていることが度々指摘されていました。 最新のリリースは2018年11月に行われた1.6であり、その後に様々なバグ修正やパフォーマンス改善、新機能の実装が行われているのにリリースされておらず、またissueやPRも放置されがちになっていました。 さらにCI (AppVeyor)は常に落ちるので、簡単なドキュメント修正でもCIが通らず苦情が来る、数か月放置されたPRは作った人が諦

    jq が jqlang organization に移譲されました - プログラムモグモグ
  • WebブラウザでPythonが動作する!PyScriptの詳解 | gihyo.jp

    鈴木たかのり(@takanory)です。今月の「Python Monthly Topics」では、Webブラウザ上でPythonが動作するPyScriptについて、内部構造なども含めて詳しく解説したいと思います。 PyScript公式サイト(https://pyscript.net/) Warning:PyScriptは現在非常に活発に開発が進んでいるプロダクトのため、将来的にこの記事のサンプルコードが動かなくなる可能性があります。記事執筆時点では最新バージョンであるPyScript 2023.03.1で動作確認しています。うまく動かない場合はPyScriptの公式ドキュメントなどを参照してみてください。 PyScript - PyScript documentation PyScriptとは? PyScriptは公式サイトに「Run Python in Your HTML」と書いてあると

    WebブラウザでPythonが動作する!PyScriptの詳解 | gihyo.jp
  • 6502 アセンブラ プログラミング入門 / 新山 祐介

    概要: この記事では 8ビット CPU 6502 を 使ったアセンブラプログラミングを紹介する。 「アセンブラプログラミング」とは、プログラミング言語を使わず、 CPU のネイティブ命令列を直接書くプログラミング方法である。 6502 はいまから約50年前に開発され、 ファミコンや Apple II など多くのハードウェアで利用された。 しかし、その原理は今日のコンピュータとほとんど変わっていない。 ここでは 6502 のプログラミングを通して、コンピュータの質を学ぶ。 6502 プログラミング入門 コンピュータの原理 レジスタとは 16進数とは 6502エミュレータを使った演習 メモリに値を格納する メモリの値を増加させながらループする アセンブラを使ったプログラミング 最初のプログラム (改良版) アセンブラを使ったジャンプ命令 差分アドレッシング 条件分岐 条件分岐 その2 16ビ

  • ChatGPTにCtrl+Fを覚えさせるアプローチについて

    この記事は何 Techカテゴリに含まれてこそいるものの、この記事はあくまで理論の側面でアプローチについて語るメモのようなものです。このアプローチに沿ったプロンプトやプログラムを書いてはいるものの、まだ期待通りの挙動をするとは言い難いです。 なぜ公開したかというと、自分より賢くて素早い誰かが理屈だけを見て代わりにやってくれたりしないか、という期待からです。 ChatGPT Plus(GPT-4 APIではない)とPythonを使います。 今回作ったプロンプト そういう前提を踏まえ、まだ完成していないプロンプトを掲載します。 プロンプト(コードブロック記法の関係で```が``に置換されている) # イントロダクション あなたはCLIを使用中の凄腕エンジニアとして振る舞ってください。 今からゲームをしましょう。 あなたの目の前にとあるtxtファイルがあります。 このtxtファイルに書かれている内

    ChatGPTにCtrl+Fを覚えさせるアプローチについて