非同期プログラミングについて、イメージだけを超速で掴むための記事を書きました。非同期プログラミングが全くわからない人、具体的には、「async await ってなに……?」「for 文で実行していくのと何が違うの……?」レベルの人を想定しています。 非同期プログラングって何? 同期的じゃないプログラミングです。同期的ということは、プログラムが上から下に順々に実行されるということです。つまり、普通のプログラムはだいたい同期的です。言い換えれば、非同期プログラミングは順番が入れ替わる(可能性)のあるプログラムです。なぜそんなことをするかについては後述します。 ペペロンチーノを作りたい あなたはペペロンチーノを作りたいとします。以下のタスクが必要です。パスタを茹でる(5 分) ニンニクを切る(1 分) ソースを作る(4 分)、ただしニンニクを切っている必要がある 盛り付けをする(0 分)、ただ

はじめにPythonやJavaScript、PHPなどのさまざまなプログラミング言語で"for文"というものが最初に出てきますよね。どの教材でもfor文は使われ、絶対にプログラムでも多用しています。アンチパターンもいくつかありますが、逆を言えば、アンチパターンがあるくらい使い方があります。 最初に思うはずです。 「なんで、for文ってforなの?」 これまでに受け入れてきてしまった"for"について由来を見てみましょう。知らなそうなエンジニアに自慢してみてください。 for文とは 基本的な使い方としては、何かの指示に従って配列オブジェクトなどに対して、適用できる「〇〇の分だけ、同じ処理をしてね!」というものです。 (for文とはなんぞ、別にやらんでいいやろ!と思われるかもですが、簡単にPythonで書いておきます。) 同じ処理を繰り返すので「ループ処理」とも言われます。ではなぜloopじ

ググっても出てこなかったので。 2つの楕円が接している(内接 or 外接)かどうか判定する方法についてです。ついでに衝突判定もできます。 衝突判定だけしたい方 以下で説明する方法でも判定自体はできますが、非常に非効率です。悪いことは言いません。GJK法などを使いましょう。凸同士なので簡単にできます。 どうしても接触を判定したい方 心して読み進めてください。 事の発端 まだそんなにバズってないけど宣伝していいらしいので.AI でも普通のプログラマーでもない優秀なプログラマーたる皆さんは,もちろん楕円が接するか判定する方法を知っていますよね? 私は一昨日実装しました.各位の解法に興味があります.よろしくお願いいたします. — 青い楕円形のぜろ (@0_uda) October 4,2022 もちろん楕円が接するか判定する方法を知っているので、書くことにしました。 楕円の表現方法 楕円とはい

なぎせ ゆうき @nagiseゲームで 「壁をすり抜けるバグどうなってんだ!?」 みたいに言われがちですけども、プログラミングやると 「すり抜けない衝突判定、どうやってんだ!?」 ってなりますからね🤔2022-09-28 17:07:17 リンクWikipedia 衝突判定 衝突判定(しょうとつはんてい、Collision Detection)とは、「2つ以上のオブジェクトの交差を検出する」という計算機科学上の問題であり、具体的には「ある物体が別の物体に当たったか(衝突したか)どうか」を判定するプログラム処理のことを指す。ロボット工学、計算物理学、コンピュータゲーム、コンピュータシミュレーション、計算幾何学など、さまざまなコンピューティング分野で応用されている。 衝突判定のアルゴリズムは、2Dオブジェクト同士の衝突判定と3Dオブジェクト同士の衝突判定に分けることができる。 ビ 14

とが @togazo よく親御さんらから「ウチの子はコツコツした作業が得意だからプログラミングに向いてるかも」という意見を聞くが、この頃思うに「コツコツした作業を面倒と思わない子」はプラモデルの組み立てなどの細かい作業に対する耐性は高そうだが「ラクをするために頭を使ってコードを書く」のは微妙な気がする2022-06-10 13:25:37 とが @togazo コツコツした作業が得意過ぎちゃうと、明らかに簡略化できそうなのif-elseのelse ifが80以上連続しても「条件分岐が長くて大変だったなあ😊✨」と感想を延べこそすれ、深く疑問に思わない展開がさあ…(実話2022-06-10 13:28:23

blog.codinghorror.com Stack Overflow の共同創業者、あるいは「FizzBuzzテスト」を広く世に知らしめた(?)ことで知られる Jeff Atwood が、彼の世代にもっとも影響を与えた BASIC 時代の本を取り上げている。 それは1970年代に刊行された BASIC Computer Games だが、この本に掲載されたゲームを遊ぶために BASIC のコードを打ち込んだよねということで、日本でいうと1980年代のマイコンBASICマガジン(ベーマガ)に近い存在だろうか。 で、単にノスタルジーでこの昔の本を取り上げているのではなく、彼はこれに掲載されたゲームの BASIC のソースコードをJava やPython や C# など8つの現代のプログラミング言語に移植するプロジェクトを立ち上げている。github.com ライセンスは The Un

はじめに ある乱数生成器が N 個のセットのなかからランダムに一つを返すとき、その返り値をそれよりも小さな範囲に収まるようにしてから利用したい、という要件にたまに出会います。例えば、[0, 2^32) の範囲内の乱数を生成する乱数生成器を利用できる環境で、サイコロの目をランダムに計算するには、何らかの方法を使って [0, 6) の範囲の乱数に収める必要があります。このような getrandom(2) や /dev/urandom を使った乱数生成器の例以外にも、例えば Int64 のユーザー属性値を入力にしてユーザーを 10 種類に均等に分類したいという類の要件を過去にレビューしたこともあります。 ある値域をより小さい値域にマップするために、よく利用されるのは剰余(モジュロ)演算です。乱数生成器の例でいえば、その返り値を X とすると、 X % 6 を計算すれば結果は [0, 6) に収ま

こんにちは、Choimirai Schoolのサンミンです。 0 はじめにお父さんと子供たちで「Peanut Butter and Jelly (PB&J) Sandwich」を作る様子を録画した動画。 これは、子供たちにプログラミングを教える上でも大変効果的な方法✨。面白いし、結果を見てどんな改善が必要なのか考えるのでアルゴリズムの基礎が学べる。pic.twitter.com/JoCJcINg9u — Sangmin @ChoimiraiSchool (@gijigae) July 6, 2021 息子と娘さんが書いた指示書に従ってサンドイッチを作るお父さん。自分たちが思った通りではなく、書いた通りに動いているお父さんに気付き、指示書を改善しつつもまだまだ足りない箇所が多い。 ▲Peanut Butter and Jelly (PB&J) Sandwich 動画のスクリプトを文字起こし

中学・高校数学で学ぶ、数学×Pythonプログラミングの第一歩:数学×Pythonプログラミング入門 「Pythonの文法は分かったけど、自分では数学や数式をプログラミングコードに起こせない」という人に向けて、中学や高校で学んだ数学を題材に「数学的な考え方×Pythonプログラミング」を習得するための新連載がスタート。連載コンセプトから、前提知識、目標、本格的に始めるための準備までを説明する。 連載目次 この連載では、中学や高校で学んだ数学を題材にして、Pythonによるプログラミングを学びます。といっても、数学の教科書に載っている定理や公式だけに限らず、興味深い数式の例やAI/機械学習の基本となる例を取り上げながら、数学的な考え方を背景としてプログラミングを学ぶお話にしていこうと思います。 今回は、それに先だって、プログラミングを学ぶ上で数学を使うことのメリットや、Pythonでどのよう

世の中には、全てのパターンを網羅的に調べることができないほど複雑な事象がある。 その一部の要素に乱数を用いて網羅性の代替とすることを、人類は「シミュレーション」という科学っぽい名称で呼んだ。 しかし、乱数を用いるシミュレーション(モンテカルロ・シミュレーション)は、科学を途中過程に置いた信仰だと思う。 乱数を用いた時点で、結果がそれこそ神のみぞ知る厳密解に合致しているのか、多くの場合わからない。 そもそも、その合致を数式的に証明できるのであれば、シミュレーションなんか必要ないわけで。 それは、大規模シミュレーションとか呼ばれるものなんかで特にそうだろう。 大規模となれば、計算には莫大な時間と費用がかかる。 なので、乱数の使用数に比して、統計的信頼度を満たすほどの回数で試行するのは困難であろう。 そうなると、厳密解への合致はそのシミュレーションへの信頼感といった信仰によってしか期待できない。

DX(デジタルトランスフォーメーション)Excelを自動化できる!Pythonのモジュール「OpenPyXL」で効率化してみた 現在では表計算ソフトのExcelは企業の業務に欠かせない存在となっていますよね。 ですが、実際に活用していくと不便さを感じる場面もあり、これが業務の足かせとなって効率を下げてしまうことも。ところが今このExcelはプログラミング言語「Python」と組み合わさることで、操作を自動化して業務の効率化を行えるようになっています。 ちなみにどうやって自動化を行うのかというと、ExcelとPythonを結び付けるモジュール「OpenPyXL」を活用していくのです。 今回はこのExcel+Pythonで何ができるのかからExcel+Pythonを実現する「OpenPyXL」の基礎や準備について。また、簡単なExcelファイル、「シート」「セル」の操作方法をそれぞれ説明して

yamdas.hatenablog.com 今月のはじめに書いたポエムだが、割と反響もあり、多くの人に読まれたエントリになったようでありがたいことである。 www.oreilly.com ワタシがエントリを書いた数日後に、ずっとこの話題に関して注目してきたマイク・ルキダス(オライリーメディアのコンテンツ戦略担当副社長)が、未来のプログラマにクリエイティブな仕事は残されているだろうか、というワタシの問題意識に偶然にも答える文章を書いている。この話題のフォローアップの意味で、今回はこのエントリの内容を紹介したい。 まず取り上げられているのは、マイクロソフトのBuild カンファレンスで CTO のケヴィン・スコットが語った、GitHub の何千ものプロジェクトのコードを学習したAI が実際にプログラムを作成する実験プロジェクトの話である。このAI は、コメント内容から関数本体のコードを生
「プログラミングスクールってどう思いますか」への、個人的な回答メモ。LINEのウェブ制作系のオープンチャットで、 「おすすめのプログラミングスクールはありますか?」 「エンジニアに転職したいです。何からやればいいですか?」 「おすすめの勉強方法を教えてください」 など、プログラミング未経験の方によるこの質問から始まって、独学の方法についての意見交換が始まる展開を何度か見ている 初心者なのに数十万かけてスクールに通おうとしている人が多かったのが意外だったので、個人的な考えを長文でまとめたものである。 「リモート研修中にクビになった法政大の〜」という記事を見て、既視感があったので増田に貼る。 昨今のコロナ以前に書いたので、コミュニティの利用方法は若干今の現実と即してないと思う。 この文章は、ある程度の本音と持論を語るために、あえて冗長な長い文章の形式をとっている。 なぜならば世間一般の「エン

私は卑下しているわけではなく、ガチでプログラミングの才能が無い。他に才能があるといわれる分野は持っているが、プログラマとしてはガチで三流だ。 そんな私が、今でも夢のようなのだけど、長年あこがれた米国マイクロソフトのドリームチームのポジションを得ることができた。今回はどうやってそのポジションをゲットすることができたかについてシェアしてみたい。 ガチの三流プログラマ 私はガチでプログラミングの才能が無い。プログラミングを始めたのは確か、10歳ぐらいだろうか?だからキャリアはスーパー長い。三流というのは謙遜ではなくて、自分と過去に仕事したことがある人なら知っていることだと思う。私には人より出来ることもある。それはコンサルティングだったり、アジャイルや、DevOps のコーチ、そしてエヴァンジェリストだ。日本のマイクロソフトではプレゼンは必ず上位だった。私は過去を振り返ると、何回もプログラマになろ

「Excelデータをプログラムで扱うのなら、VBA(Visual Basic for Applications)を使うべし」。多くの人はそう思っているでしょう。もちろんVBAはMicrosoft Officeのソフトを操るのにとても便利なプログラミング言語ですが、弱点もあります。 その1つが、Officeにしばられてしまうこと。業務に必要なデータ量がExcelや「Access」のカバーする範囲で収まらなくなったら、もう扱えません。 また互換性の問題から、Windows上で書かれたVBAのソースコードは基本的に、macOSやLinuxでは動かせません。VBAはプログラミング初心者にとって理解しやすい一方で、コードが冗長になりがちという側面もあります。 今からプログラミングを学んで業務を自動化したいなら、筆者はPythonをお薦めします。Pythonはシンプルで勉強しやすく、ライブラリーが豊富

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く