タグ

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

  • 僕の自作ツールが大学のサーバーをダウンさせてしまった日の話|くりきん

    2021年10月25日、この日は僕がただの大学生から、大学のサーバーをダウンさせた"犯人"へと変わった日です。 小説みたいな書き出しをしてみましたが、これは嘘みたいな当の話で、ふと思い出して懐かしくなったので回想録として note に残すことにしました。 出来事の概要2年前の2021年10月、何が起きたかを簡単に書くと以下の通りです。 ・大学の授業や課題を管理するためのシステムを拡張するツールを作った ・ツールが予想以上の人数に使われ、結果として大学のサーバーに負荷がかかりサーバーが落ちる事態になった ・大学から呼び出しを受けることになった 時系列を追って、この note で出来事の全容を書きたいと思います。 使いづらい LMSまず前提として、私の大学では毎日の授業や課題は授業支援システム、通称 LMS と呼ばれるオンラインのシステムで管理されています。 実際のLMSの画面しかし、この

    僕の自作ツールが大学のサーバーをダウンさせてしまった日の話|くりきん
    akatuki_sato
    akatuki_sato 2023/11/28
    めっちゃいい話やん。自分は大学のメールサーバ壊した事あります。すぐ名乗り出たし、めっちゃ謝った思い出・・・
  • 100万倍速いプログラムを書く - Qiita

    この記事はなんなの プログラミングを始めたばかりで高速化の大枠が全くわからず意味不明なことをしていた在学時、こんな資料があったら良かったのになあ、と思って書いたもの。 書いて、在学時研究室に押し付けた後紛失したと思われていたものが発掘されたもの。 要約 ライブラリがあるならそれを使う。 ライブラリが無ければ、ボトルネック部分を探してそこだけ高速な言語で書きなおすか、可能なら事前コンパイルする。 最初から全てを Low-Level な言語で書くと大変、でも結果のプログラムは速い。 以下の時間の計測ではインポートにかかる時間は除いています。 使用するもの Python(3系) Numba Scipy Line Profiler Fortran(gfortran) QUADPACK QUADPACK以外の導入方法の説明は色んな所にあるので各自でお願いします。上3つに関しては、個人的にはAnaco

    100万倍速いプログラムを書く - Qiita
    akatuki_sato
    akatuki_sato 2017/07/18
    三つの心(コンパイル,Fortran,ライブラリ)がひとつなれば、一つの理想は100万ぱわー(ゲッターロボ分かる人だけ)
  • WEB+DB PRESS Vol.99の「良いコード」を本気でコードレビューしてみた - give IT a try

    はじめに Twitterを見てたら、気になる雑誌の特集を見つけました。 WEB+DB PRESS Vol.99の「Rubyで学ぶ!良いコードって何だろう?」という特集記事です。 WEB+DB PRESS Vol.99 作者: ?橋健一,谷口禎英,井大登,山崎勝平,大和田純,内村元樹,坂東昌哉,平田敏之,牧大輔,板敷康洋,大?浩崇,穴井宏幸,原口宗悟,久田真寛,ふしはらかん,のざきひろふみ,うらがみ,ひげぽん,池田拓司,はまちや2,竹原,片田雄樹,渋江一晃,WEB+DB PRESS編集部編出版社/メーカー: 技術評論社発売日: 2017/06/24メディア: 大型この商品を含むブログを見るRuby大好き!きれいなコード大好き!!な僕にとっては、この特集は読まずにはいられません! 早速買って読んでみました。 お~、なるほど、たしかにいいことが書いてある! うんうん、そうそう・・・あれ?この

    WEB+DB PRESS Vol.99の「良いコード」を本気でコードレビューしてみた - give IT a try
    akatuki_sato
    akatuki_sato 2017/06/30
    正しいんだけど、大人数で開発してる現場だと、(良くも悪くも)ローカルな書き方があって そういう場合の整合性を如何に取るか?みたいな記事も読みたい。
  • 大学院在学中にレールに乗ったまま起業した話 - chokudaiのブログ

    レールに乗らないで起業するのがブームみたいなので、レールに乗ったまま話もしようかなぁ、と思ったので、書いてみます。 参考: (2021/04/01追記 リンク先が危険なページになってたので、リンクを削除しました。) 過去を語りながら起業に至った経緯を語るのが流行ってるみたいなので、便乗しようかなあ、と思います。もう5年目だけどねw 中学・高校時代 小学校時代は、算数が得意で、筑駒って言う凄い中学に入りました。 でも中学だと、それが全然通用しませんでした。得意分野ならついていけるものの、苦手科目はお話にならず、下1割から2割の成績でした。このあたりで僕は悟ります。僕はそれなりに頭がいいけれども、トップクラスと戦えるほど、平均的に頭が良い人間ではない、ということを。 高2で肘を壊し野球部をやめ、パソコン研究会に頻繁に顔を出すようになります。といっても、そこではボードゲーム麻雀やパソコンのフリ

    大学院在学中にレールに乗ったまま起業した話 - chokudaiのブログ
    akatuki_sato
    akatuki_sato 2016/09/20
    石田氏「覚えておきます」
  • 【プログラミング】退職した先輩が書き残していったコメントがひどすぎる・・・ - 意識低い系ドットコム

    こんにちは、意識低い系サラリーマンのKENです。 今回は零細IT企業でシステムエンジニアをしている僕が遭遇した酷いコメントについて。 でもわかるC#プログラミング 第3版 (でもわかるプログラミング) 作者: 粂井康孝 出版社/メーカー: SBクリエイティブ 発売日: 2016/02/27 メディア: 単行 この商品を含むブログ (2件) を見る 通常プログラムを組むときは、プログラミング言語を使ってソースコードを書いていきます。でもプログラミング言語だけでひたすら書いていると、第三者が読んだときや後から自分で見返したときにわかりづらいので、「コメント」と呼ばれるメモ書きを付記することがあります。あります、というかほとんどの人はそうします。 例えば、「C#」というプログラミング言語だと、行の先頭に「//」と打つと、その行はプログラムの一部としては解釈されず、単なるメモ書きとコンピュー

    【プログラミング】退職した先輩が書き残していったコメントがひどすぎる・・・ - 意識低い系ドットコム
    akatuki_sato
    akatuki_sato 2016/04/21
    オフショアでベトナム語のコメントで「あとでやる」って書かれてたことに比べたら全然平気。ちなみに やってなかったので自分で直した。。。
  • 今さら聞けない、変数や関数の命名規則と、まず覚えるべき英単語200

    Wikipediaより) ハンガリアン記法のメリット 論理型であるbFlagと、文字列型であるsNameが bFlag + sName となっていれば誤りであることがわかる。 型の記述が2文字程度で済むので、変数名が短く済む。 ハンガリアン記法のデメリット 暗黙の型変換ができない。変数の型を変更するごとに変数名まで変更しなくてはならず、命名法に添って名前を付けるのが面倒。 (同じユーザーIDでも使い方によってはsUserid、iUseridなど) キャメル記法 文字のラインが凸凹になる様をラクダのこぶになぞらえてキャメル記法と名付けられた。 大文字小文字を区別する言語と区別しない言語があるので使う場合は全体を統一すること。 先頭の文字を大文字にするか小文字にするかで2つのパターンがある。 アッパーキャメルケースまたはパスカルケース(1単語目から大文字) 悪い例 $userparamete

    今さら聞けない、変数や関数の命名規則と、まず覚えるべき英単語200
  • 小学校低学年へのプログラミング教育には効果がないと考えたほうがいい - きしだのHatena

    子どもへのプログラミング教育は早ければ早いほどいいというものではない。 最近子どもへのプログラミング教育が話題になることが多いけど、恐らく小学3年生までの子どもへの効果はほとんどなく、小学4年生でもほとんどの子どもには難しいと思う。 人間の知能の発達には段階があって、必要な段階に達していないうちにそれが必要な教育を行っても効果は望めない。 まず、なんでこのエントリを書いたかというと、プログラミングには適した発達段階があるということを知らないと、その発達段階に達する前にプログラミング教育を行って、もちろんプログラミングは出来なくて、その子には適性がないという判断をしてしまうとうことが起きてしまうんじゃないかと思ったからだ。 まだ適した段階まで来てないだけなのにプログラミング教育をして失敗して「この子にはプログラミングができなかった/興味をもたなかった」という実績を作ってしまうことによって、将

    小学校低学年へのプログラミング教育には効果がないと考えたほうがいい - きしだのHatena
    akatuki_sato
    akatuki_sato 2016/01/08
    『こんにちはマイコン』のゲームセンターあらし「せやな」
  • トヨタの車のソースコードはスパゲッティコード山盛り? - YAMDAS現更新履歴

    Toyota Unintended Acceleration and the Big Bowl of “Spaghetti” Code | Safety Research & Strategies, Inc. O'Reilly Radar で知った記事だが、この記事自体は2013年、トヨタがオクラホマ州での急加速を巡る訴訟で和解した後に書かれたものである。 この記事で面白いのは、Michael Barr が20ヶ月以上にわたりトヨタ車で使われているソースコードを、Philip Koopman カーネギーメロン大学教授がトヨタエンジニアリングの安全プロセスを精査した話で、両者ともトヨタのソフトウェアがスパゲッティコード山盛りなことを証言している。 トヨタの生産方式はアジャイル方面においてソフトウェア開発手法に多大な影響を与えている。ところでそのトヨタが開発するソフトウェアの品質はどうなんだ

    トヨタの車のソースコードはスパゲッティコード山盛り? - YAMDAS現更新履歴
    akatuki_sato
    akatuki_sato 2015/06/05
    ヘーキヘーキ、そのうちAIがクラス変数に落としこむ作業をやってくれるから(錯乱)
  • 決めようぜ最高のプログラム言語を綱引きで :: デイリーポータルZ

    PHPがdisられる時代は終わった~っ! いくぜおまえら~!」「PHP!」「PHP!」(PHPはこの後一回戦で敗退しました) さる2015年1月29日。横浜大さん橋ホールで行われたエンジニア勉強会イベント「CROSS 2015」にて「第一回 プログラム言語対抗綱引き」が行われた。 コンピュータの世界を支えるプログラム言語がその至高性を競い腕力でぶつかる、言語間戦争に決着をつける大会である。 40人の勇者(プログラマー)により死闘を繰り広げたのはC、PerlPHPPythonRubyJavaScriptGoJava。 結果、Goの圧倒的勝利で幕を閉じたのだった。あらためて記事でその全貌をレポートしていこう。 知ってた? 綱引きの掛け声の「オーエス」ってあれ、「OS(オペレーションシステム)」のことなんだぜ? 英語版もご用意しております! English article↓↓↓

    akatuki_sato
    akatuki_sato 2015/02/05
    (; ・`д・´) PHPが負けただと・・・・
  • なぜプログラミングを学ぶことが必要なのか - Minecraftとタートルと僕

    はじめに 中学生たちに「なぜプログラミングが必要なのか」を教えてみた - WirelessWire News(ワイヤレスワイヤーニュース) この記事を読んでの感想になります。 将来的に3Dプリンタが家庭内で普通に使われる時代には、きっとプログラミングの必要ないUIができているはずです。 テレビがリモコン一つで操作できるように、電子レンジが前面のパネルボタンだけで操作できるように、炊飯器がボタン一発でおいしいご飯を炊くように。逆にそうでないと、家電として家庭内に3Dプリンタが普及するわけがありません。 しかし、テレビのリモコンボタンの数が増え操作が複雑になる一方であることからわかるように、シンプルなUIで家電の機能の全てを引き出すというのは無理があります。 紹介記事中にある、 プログラミングをできるようになるということは、人類の叡智を利用できるようになるということ は至言です。 プログラミン

    なぜプログラミングを学ぶことが必要なのか - Minecraftとタートルと僕
    akatuki_sato
    akatuki_sato 2015/01/30
    作り手にならなくても、プログラムの発注側になることは多いのでクソクライアントにならないためにも必要
  • 義務教育におけるプログラミング教育の課題と可能性 - WirelessWire News(ワイヤレスワイヤーニュース)

    昨年から義務教育段階でプログラミングを教えるかどうか、というのが話題になっています。 筆者の感覚としては、プログラミングを教えるとしたら義務教育段階しかないかな、と思っています。 というのも、高校生は受験があるので、受験に関係ない科目はできるだけやらない方向になりがちです。 中学一年生、二年生くらいまでなら教養の一種として美術や技術家庭科をやるのと同じようにプログラミングを学ぶ機会を与えることができるのではないかと思います。 反面、小学校の場合、前提とされる数学的知識が少なすぎてプログラミングの基礎的なことは学べても、質的にプログラミングを道具として使いこなす段階まで進むのは難しいかもしれません。 しかし同時に大きな課題があります。 それは、教員の不足です。 情報の教員免許ができてからまだ時期が浅く、仮に義務教育でプログラミングを教えようとしても教員の数が足りなくて実現が困難であると

    義務教育におけるプログラミング教育の課題と可能性 - WirelessWire News(ワイヤレスワイヤーニュース)
    akatuki_sato
    akatuki_sato 2015/01/27
    業務以外の勉強も必須だし、そうなるよなぁ>ただでさえ仕事で疲れてる職業プログラマーがこうしたイベントに積極的に参加するのはなかなか難しい
  • 関数名によく使われる英単語(動詞)の意味とニュアンス | PHP Archive

    PHP に限らず、プログラミングで使われる多くの関数名は「動詞+目的語」という命名規則になっていることが多く、「insertPost()」であれば投稿を挿入するという意味が名前から読み取れます。 では投稿を削除する場合は delete でしょうか? それとも remove でしょうか? 関数は基的に英語を使うのが鉄則ですが、似たような意味を持つ単語などが多く厳密な意味の違いがわかりにくいことがあります。 そこで、プログラミングで関数名として一般的に使われている頻出語句をピックアップし、主な用途と細かい意味、ニュアンス、使い分けについて調べてみました。 追加・作成 set

    akatuki_sato
    akatuki_sato 2014/12/18
    他動詞と自動詞関係なく、この動詞+目的語(名詞)で関数作れば、大きくなミスには成らない。
  • Gree Fast Processor: PHPを3倍(くらい)速く | GREE Engineering

    ごあいさつエントリだけというのもなんなので、引き続きfujimotoです。実質上1つめのような気がするこのエントリでは、PHPが3倍くらい(少なくとも2倍くらいは...)速くなるGree Fast Processorというのを先月作ってみたのでご紹介です。 すぐわかるまとめ Gree Fast Processorというのを使ってみると、シンプルなsymfonyのプロジェクト(xav.ccで試しました)でも2倍弱、結構複雑なアプリケーションだと7倍くらい速くなったりします。いくつかの制約がありますが、パフォーマンスに飢えているかたはお試しください。 こちらはなんかすごい速くなっている感じのグラフ(一番上が速くなった版のRequests per Second、赤が通常版のRequests per Second): これはさすがにbest caseすぎる気がしますが、普通にやっても2倍弱くらいは

    Gree Fast Processor: PHPを3倍(くらい)速く | GREE Engineering
  • 英語とプログラミング、どちらを優先して学ぶべきか? - ICHIROYAのブログ

    photo by Rayi Christian W 僕の子どもたちはもう成人したのだけど、もしまだ子どもたちが小さいとしたら、たぶんプログラムを勉強しておけよ、と勧めたと思う。 実際はやったことは、「英語はなんとかしておけ」で英会話教室に通わせたりしたけど、プログラミングを勧めたことはなかった。 英語は学校や大学受験でそれなりに勉強せざるをえないけれど、プログラミングはその場所を与えてやらなければ学ぶ機会は限られているだろう。そう考えると、英語よりもプログラミングを勧めてやったほうがよいのかな、とも思う。 そもそも、英語もプログラミングも何かをするためのツールにしか過ぎないから、知らなくてもなんとかなる。 たとえば、英語にしても(あるいは中国語にしても)、できる骨董屋ならいつの間にか商売のできるレベルに到達していて、正式に習わなくてもなんとかしてしまう。 プログラミングでも、できる起業家な

    英語とプログラミング、どちらを優先して学ぶべきか? - ICHIROYAのブログ
    akatuki_sato
    akatuki_sato 2014/06/26
    まずは日本語じゃね?で、次に数学。
  • 第1回 福森匠大(sora_h)~高校に進学せず、週3でITベンチャーに通うはたらきかた | gihyo.jp

    右も左もわからないシューカツ中の女子大生・つつみともよが会社訪問。第1回はクックパッドで働き始めたばかりの@sora_h。なんと現在15歳の若きRubyコミッターを訪ねました。 クックパッドの台所にて。この日はクックパッドのみんなと手打ち蕎麦を作ったとか 「うちで働いてみる?」 ともよ:年齢を知ってびっくりしたんですが、そらはーくん、私より7歳も若い(のに働いてる)なんて……! sora_h:今は高校に進学せず、クックパッドで働いています。中学にも、最初の半年を除いてほぼ行ってないです。学校に行かず家でコード書いてるか勉強してるか、インターネットしてました。 ともよ:勉強は嫌いじゃなかったんですね。 sora_h:単純になじめなかっただけかなあ。話題が合う相手がいなかったんです。高専進学も考えたんですが、中3の秋に高専カンファレンス[1]行ったあたりから、なんとなく、高専行っても一緒かなと

    第1回 福森匠大(sora_h)~高校に進学せず、週3でITベンチャーに通うはたらきかた | gihyo.jp
    akatuki_sato
    akatuki_sato 2014/06/23
    こういう天才(?)が飛び級で大学卒業させる制度が無いことが、日本の問題点だよ。
  • 昔の自分に教えてあげたい、新人プログラマへ伝えていること | Act as Professional

    最近、この春に職業プログラマになった人達と話す機会に恵まれているので、共通して話すことを書いてみる。 大概、○○について、聞かせてください。とか、いろいろ聞いてくる人達は、羨ましいぐらい、すごく意識高い。 彼らは会社での仕事のプログラミングを上手にやりたい。ってのは、あたり前だし、 どうやってテストを綺麗に書くか? テスト書きながらプログラミングするってのをどう学ぶか? 綺麗な設計はどうやるのか? 仕事でコードを書いていくってのは、どういうことなのかとか? すごいコードはどうやって書くのか?とか、いろんな事を学びたくて、何から学ぶべきなのか見失っているのではないかというぐらい、やる気に満ちあふれている。人それぞれ、やる気の方向性や現在のスキルセットが違うから何をしたいのか、した方が良いのかは異なっている。 だけど、ざっくり共通しているのは、結局のところ「ある程度のプログラマとしての実力をつ

    昔の自分に教えてあげたい、新人プログラマへ伝えていること | Act as Professional
  • TechCrunch

    [A version of this piece first appeared in TechCrunch’s robotics newsletter, Actuator. Subscribe here.] Earlier this month, Google’s DeepMind team debuted Open X-Embodiment, a database of robotic

    TechCrunch
  • プログラミングの生産性を上げるには - 聞かれてもいないことを喋る

    Yak Shaving の誘惑に打ち克つ ソフトウェアを作っている途中で、「これを作るのを効率化するためには ○○ が必要だ」と思い、来やっていた作業の手を止めて ○○ を作り始めてしまうことは往々にしてある。 しかしその作り上げた ○○ が最終的に当に(長期的にみて)効率化に役立ったケースは、自分の経験からいって 10 個のうち 1 つくらいではないかと思う。 効率化のための努力をするなということではない。大事なのは、アイデアを寝かせることだ。 人はゴミみたいなアイデアでも、気付かずにこれこそが素晴らしいアイデアだと信じこんでしまう。自分の考えたアイデアには愛着が湧くものだ。 そのアイデアが当に優れているかどうか客観的に判断するには時間が必要だ。最低でも 1 晩、できればもう 2, 3 度は同じ必要性を感じてから作るのがいい。 1 回しか必要性を感じたことのないものをその場の勢いで

    プログラミングの生産性を上げるには - 聞かれてもいないことを喋る
  • スパコンで約2時間36分かかったという、5×5の魔方陣の全解列挙を、パソコンで試す(C ) | 配電盤

    魔方陣の解の列挙は並列化しやすそうな問題ですが、ここでの方針では、探索効率を上げるためには条件分岐が不可欠なので、(「数」を求めるだけだとしても)GPGPUでうまくやる方法がわかりません。そこで、CPUに載っているコアのみで並列化します(Xeon Phiなら簡単なのでしょうか→追記参照)。 一番外側の、0から(1<<25)-1まで変化する変数iのループをOpenMPで並列化します(schedule(guided)では遅くなります。schedule(auto)はVisual C++でサポートされたら試します)。変数iは上の図の緑の部分(カンで5個にしました)を各数5ビットで表現し、つなげたものです。マスに入りうる数は1から25までなので、5ビットというのはちょっと冗長ですが、とりあえずはよしとしましょう。 出力はバイナリ形式で、1つの解に25バイト使います(1つのマスに入る数を1バイトで表現

    スパコンで約2時間36分かかったという、5×5の魔方陣の全解列挙を、パソコンで試す(C ) | 配電盤
    akatuki_sato
    akatuki_sato 2014/03/17
    今日のイオリア・シュヘンベルグはここですか
  • 命名するという行為 - 林檎の木

    http://codic.jp/ プログラミングをする上で一番時間のかかる作業ってなんだと思いますか? アルゴリズムを考えること? タイピングしてプログラムを組むコーディング作業? いえいえ違いのです、変数・関数などの名前を考えるのが一番時間がかかる。 これ冗談じゃなくて結構おおむねほぼ当の話です。難しいのですよ名前を付けるっていう行為は。ナウシカにおいて、巨神兵をオーマと名付ける事によって自我に目覚めたように、対象の存在意義を定める行為に等しい。だから対象がなんであるかをとことん考え抜く必要があるのです。この関数はどういった機能を持っているのか、この変数はどのような値を格納するためのものか、このクラスは何を表現しているのか、存在するとはなにか、生きるとは。往々にして思考が哲学的な方向に脱線したりしてとにかく時間がかかる。 それに加え一度決めてしまうと、なかなか別の名前に変えるというのも

    akatuki_sato
    akatuki_sato 2014/01/06
    動詞+目的語である程度カバーできるんだけど、今までの慣習との調和を考えるのが厄介なんだよね(差が激しいと周りに負荷がかかる)