タグ

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

  • ヘタクソなコードを書いてもいい - 覚書

    プログラミング言語のお作法から外れたコードやメンテ性が悪いコードを書くのはダメとよくいわれます。わたしは学生の頃、そういう意見を過剰に気にしていました。コードを書くことそのものに慣れていないのに綺麗に書こうとして手が動かず、動かないがゆえにコーディングの練習が進まない、という悪循環になっていました。そうすると何もアウトプットしないまま知識だけが増えていって、自分がこれくらいできそうというイメージと実際のプログラミング能力とのギャップで苦しみました。 この意識が薄れたのは、あるときものすごく手が早い人のコードを偶然見たときでした。たしかにちゃんと動くものができているんですが、そのコードの中身は当時の私の基準からいって*1おぞましいほど汚いものでした。そこで「これはわたしが書けば100倍くらい綺麗なコードを書けるんでは…」と一瞬思ったんですが、その後すぐに「あ、自分は知識はあるけど練習してない

    ヘタクソなコードを書いてもいい - 覚書
    ywv
    ywv 2021/07/12
    手直しは明日の自分と同僚のためにやってるので、そこだけ相容れないなと思いつつも、大体は同意。とりあえず手を動かすの大事。
  • 【PHP8.0】PHPにヌルセーフ演算子が導入される - Qiita

    $user = null; echo $user->address->country ?? ''; PHPのプロパティは元よりnull安全なので、存在しないプロパティだろうがnullだろうがプリミティブ型だろうがいきなりプロパティを取り出せます。 取れない場合はE_NOTICEが発生しますが、??を使えば黙殺できます。 しかしメソッドはだめです。 echo $user->getAddress()->getCountry() ?? ''; // Fatal error: Call to a member function getAddress() // 1 if (method_exists($user, 'getAddress')) { if (method_exists($user->getAddress(), 'getCountry')) { echo $user->getAddres

    【PHP8.0】PHPにヌルセーフ演算子が導入される - Qiita
  • COBOLってこんな言語

    日経xTECHの元記事を読んでもCOBOLの特徴があんまり伝わってこない感じだし、かといってそれをディスってもしょうがないので、書いてみた。 https://anond.hatelabo.jp/20190205192741 COBOL質的にはDSLなんだけど、一見汎用プログラミング言語に見えてしまってRubyPythonなんかと比較するのが誤解のもとではあると思う。今の人でも知ってそうなCOBOLに似ている言語はたぶんSQLで、データを処理するための専用言語。ただ、SQLは頑張ればすごく複雑なこともできるパワフルな言語で、だからこそ現代でも生き延びているわけだけど、COBOLはわりとシンプルなデータ処理を想定している感じ。 SQLだけでアプリケーションを作れないのは触ったことある人なら誰でもわかると思う。普通はJavaRubyで全体の流れを記述してデータベース入出力をSQLで書く。

    COBOLってこんな言語
    ywv
    ywv 2019/02/07
    すごく腑に落ちる説明だった
  • 批判続出のサマータイム導入案、標準時を通報している情報通信研究機構に聞いてみた - 弁護士ドットコムニュース

    批判続出のサマータイム導入案、標準時を通報している情報通信研究機構に聞いてみた - 弁護士ドットコムニュース
  • 上級プログラマってどんな本読んでるの?中堅プログラマがマウンティング取られないための名著8選 - 世界が幸せで在ります様に

    この記事を読もうと思ったということは,あなたはそこそこできるプログラマ,あるいは社内でも自他ともに優秀と認められるほどの実力者かもしれません. ただし,そんな状況でも業界で名が知られる優秀な人や社内の上級プログラマと対峙した時身構えてしまい相手の不思議な理論に屈服してしまう経験はありませんか?気でプログラミングをすれば互角,あるいは言語によっては自分の方が明らかに上だと自負できる状況にもかかわらず. そんな中,そこまで優秀そうに見えないのにうまくマウンティングを回避しているプレーヤーを見たことはないでしょうか? 彼らと自分は何が違うのか? 簡単に言えば,知ってるコンピュータ科学の量と,何らかの物事に対して同調するのではなく先駆者的にそれを宣言することです.それを少しでも発揮できる名著をこれからご紹介します. ※安心してください,日語の書籍だけ紹介します. Coders at Work

    上級プログラマってどんな本読んでるの?中堅プログラマがマウンティング取られないための名著8選 - 世界が幸せで在ります様に
  • アロー関数が実装された - JS.next

    概要 ES2015を象徴する機能である、アロー関数構文の実装がついにV8で始まった。 無名関数を短く書ける   [3.28.31] アロー関数は無名関数の省略記法である。 今までこう書いていたのが、 var fn = function (a, b) { } こうスッキリ書ける。 var fn = (a, b) => { } 「=>」が矢のように見えることから「アロー」関数と言う。 更に短くできる これが、 [1, 2, 3].map( function (v) { return v * v } ) // [1, 4, 9] アロー関数だとこうなるが、 [1, 2, 3].map( (v) => { return v * v } ) // [1, 4, 9] 引数が一つの時には「()」を省略できるので、こう書ける。 [1, 2, 3].map( v => { return v * v } )

    アロー関数が実装された - JS.next
  • 乱数生成器とゲームと諜報活動の話|Rui Ueyama

    ゲームなどを作っているとランダムさが必要になることがあるけど、コンピュータは基的に毎回全く同じように動くので、乱数を作り出すのはそう簡単なことではない。Wi-FiやHTTPSなどの暗号は乱数のランダムさに質的に依存しているので、高品質な乱数生成は世の中的にも重要な話題である。ここでは乱数生成について話をしてみよう。 ゲームではイベントがプレイヤーに予測不可能であればよいだけなので、真の乱数列ではなく擬似乱数列というものを使うことが多い。擬似乱数列は人間にはランダムにみえるけど、実際は何らかの数式によって順番に生成されているだけの数の列で、初期値を毎回違うものにしておくと、人間には毎回違う数列が生成されるようにみえる。初期値には現在時刻を使うことが多い。現在時刻は普通の用途では毎回違うからだ。 昔のゲーム機は現在時刻の設定がなかったので、ファミコンなどでは、起動してからの経過時間を疑似乱

    乱数生成器とゲームと諜報活動の話|Rui Ueyama
  • 「プログラミングの常識」を時々見直す必要性について|Rui Ueyama

    自分の中のプログラミングの常識というものは、ときどき現実のハードウェアに合わせて調節しないといけない。ハードウェアが進歩し続けているので、コンピュータで簡単にできることと相対的に難しいことのバランスが変化し続けているからだ。ここでは特にストレージにフォーカスして書こうと思う。 昔はメモリが相対的にとても貴重な資源だったので多くのプログラマがメモリを節約することに血道を上げていた。例えばWindowsの初期の頃に設計されたデータ構造には、メモリをバイト単位ででもいいから節約したいという意図の痕跡がいまでも多く見受けられる。DRAMの次に速い記憶装置はHDDだったので、メモリが足りなくなればHDDにデータを保存せざるを得ないのだが、DRAMとHDDのランダムアクセスの速度差は、机の上のの開いているページを見るのと、そのAmazonで注文して到着するのを待つのと同じくらいのスケールで違うの

    「プログラミングの常識」を時々見直す必要性について|Rui Ueyama
  • 「ゼルダの伝説 BotW」にバグが少ない理由

    素晴らしいオープンワールドゲームならいくらでもある。「The Elder Scrolls V: Skyrim」、「ウィッチャー3 ワイルドハント」、「グランド・セフト・オートV」、「Fallout 4」など、巧妙に作り込まれた膨大なスケールのゲームは特に海外のタイトルが多いように思う。それらと比べても遜色のない国産タイトル「ゼルダの伝説 ブレス オブ ザ ワイルド」(以下、BotW)だが、他のオープンワールドゲームより優れている点があるとすれば、バグの少なさなのではないだろうか。僕はハイラルの世界を150時間以上冒険しているが、バグらしいバグに遭遇したのは片手で数えられる程度の回数しかないのだ。 では、なぜBotWはこんなにもバグが少ないのか。「何年も入念に開発してきたからだ」とか「細かいところを丁寧に作り込む日人の職人魂が備わっているから」とか、そんな理由でも片付けられそうな気がするが

    「ゼルダの伝説 BotW」にバグが少ない理由
  • Pythonの環境構築を自分なりに整理してみる

    機械学習ブームなどにより、 Python を触り始める Rubyist が増えてきたと思います。その際に問題になりやすいのが環境構築です。Rubyだと rbenv がデファクトスタンダードになっているのに、なぜか Python に… 私の立ち位置もともとは、数年前まで 年に一回Python3でNLTKやらscikit-learnやら機械学習や自然言語処理の環境を作ろうと試みては失敗してPython使うものかと思っていた人でした。それが、Anacondaで環境導入すると、面倒なことは何も考えずに済むということを知り、CookpadではAnacondaを前提に環境構築を勧めていました。 今は、ymotongpooに「郷に入っては郷に従え」と言われたため、pip+virtualenv/venvで全てをこなしていますが、これで困ったことは特にありません。macOS, Windows, Linux

  • 【急募】PC9801プログラムの解析(リバース)の依頼/外注|その他(システム開発)の仕事 [ID:1559652]

    プロジェクト概要 PC9801で作成されたEXEファイル2の解析(リバース)を実施したいと考えており、 PC9801経験・リバースエンジニアリング経験豊富なシステムエンジニアの方々を募集します。 ※解析対象のプログラムは20年以上前に自社開発したものであり、解析するにあたっての 法的問題等はございません。 ■お仕事の詳細: ▽解析依頼の目的・概要 ソースコード、仕様書等が一切存在せず、保守が不可能となってしまっているため、 現行で動作している2のEXEを解析し、既存プログラムの動作仕様を明らかにすることが目的です。 開発言語等も不明ですが、プログラム自体はCUIベースで単純なロジックのものと 推測しております。 ※対象プログラムの詳細については応募頂いた方に別途ご説明させて頂きます。 ▽現行の環境等 ・PC9801実機(型番はBX02)+ ドットインパクトプリンター(型番不明) ・A

    【急募】PC9801プログラムの解析(リバース)の依頼/外注|その他(システム開発)の仕事 [ID:1559652]
    ywv
    ywv 2017/08/24
    出力ロジックの推測が困難って暗号化してるのか、それともハッシュ的なものでも吐かせてるのか…/ぽつぽつ応募者が出てきてる…怖いもの見たさか冷やかしか。
  • プログラマをクソコードで殴り続けると死ぬ - megamouthの葬列

    ここにクソコードがある。 誰が作ったかはわからぬ。それが、どのような経緯でクソコードとなったのか、 あるいは、最初からクソコードであったのか、それらは全てクソコード自身が知るのみである。 ファーストコンタクト ある日、営業からシステム案件を打診されたので見積もりして欲しい。というメールが来る。 とある企業の既存システムに機能を追加する簡単な案件ですが、なななんとソースや仕様書をご支給いただけます! と、それはサンタにプレゼントが貰えると信じて疑わぬ子供のような真っ直ぐなメールである。 ソースコードが入った圧縮ファイルを受け取ったプログラマは、早速、コードを読んでみる。 そのシステムが当にいいコードで書かれているかを判断するには時間がかかるが、 クソコードであるかはおおよそ30分でわかる。 インデントがタブとスペースどちらかに統一されていないとか、フレームワークの誤用があるとか、またはフレ

    プログラマをクソコードで殴り続けると死ぬ - megamouthの葬列
  • PythonでWebスクレイピングする時の知見をまとめておく - Stimulator

    - はじめに - 最近はWebスクレイピングにお熱である。 趣味機械学習のデータセット集めに利用したり、自身のカードの情報や各アカウントの支払い状況をスクレイピングしてスプレッドシートで管理したりしている。 最近この手の記事は多くあるものの「~してみた」から抜けた記事が見当たらないので、大規模に処理する場合も含めた大きめの記事として知見をまとめておく。 追記 2018/03/05: 大きな内容なのでここに追記します。 github.com phantomJSについての記載が記事内でありますが、phantomJSのメンテナが止めたニュースが記憶に新しいですが、上記issueにて正式にこれ以上バージョンアップされないとの通達。 記事内でも推奨していますがheadless Chrome等を使う方が良さそうです。 - アジェンダ - 主に以下のような話をします。 - はじめに - - アジェンダ

    PythonでWebスクレイピングする時の知見をまとめておく - Stimulator
  • apollo11号のソースコードを読みつつ - aerith7’s blog

    これはなに? はじめに AGCあれこれ Temporary I HOPEHOPEHOPE ASTRONAUT NOW LOOK WHERE YOU ENDED UP ふと気になりました いい時代ですね 1201&1202エラー なにそれ? カ、カルマンフィルターだー!!! カルマンフィルターの開発経緯 その他面白コメントアウト集 TRASHY LITTLE SUBROUTINES(つまんないサブルーチン) NUMERO MYSTERIOSO(神秘の数字) OFF TO SEE THE WIZARD COME AGAIN SOON HONI SOIT QUI MAL Y PENSE(悪意を抱く者に災いあれ)、NOLI ME TANGERE(私に触れるな) PINBALL_GAME_BUTTONS_AND_LIGHTS.agc おわりに 反省 参考文献 これはなに? この記事はeeic Adv

    apollo11号のソースコードを読みつつ - aerith7’s blog
  • 「有害なgoto」「時期尚早な最適化」、そしてプログラミングにまつわる神話は諸悪の根源である | POSTD

    以下のプレゼンテーションは、私がPapers We Love Madridの初会議で発表したものです。講演のテーマは、Donald Knuthの論文「Structured Programming with Go To Statements」(goto文を用いた構造化プログラミング)でした。 我々が人間として抱える最大の問題は、信念と現実を混同することである。 – Alan Kay それ(goto)を禁止するか、それとも使わない方向へ教育するかが問題だ。 – Donald Knuth この記事では、神話についてお話ししたいと思います。Googleで 神話(myth) の定義を検索してみると「広く信じられているが誤った信念や観念」とあり、dictionary.comを見ると「立証されていないか誤った共通的信念であり、社会制度を正当化するために用いられる」と説明されています。ここで問いたいのは、

    「有害なgoto」「時期尚早な最適化」、そしてプログラミングにまつわる神話は諸悪の根源である | POSTD
  • gitにおけるコミットログ/メッセージ例文集100

    私はコミットログの書き方に悩む英語の苦手な人間である。実際、似たような人は世の中に結構いるようで、頻出単語を集計したりまとめたものは既にあって役に立つのだけれど、これらはあくまで単語の話であり、具体的な文を構成する過程でやっぱり困る部分がかなりあった。 要するに、どういう時にどういう文が使われているのか、ということを示した例文集が欲しいのである。ググると他にも「例文集があればいいのに」みたいな声はあるくせして、しかし誰も作ろうとしない。何なんだお前ら。それじゃ私が楽できないじゃないか。 仕方なく自分でまとめたので、増田に垂れ流しておく。 はじめにここで挙げているコミットログは全て実際のコミットログからの転載である。当然ながら各コミットログの著作権はそれぞれの書き手にある。いずれも各英文でググれば出てくるし、フェアユースの範囲なら許してくれるだろうと考え名前とプロジェクト名は割愛したが、ここ

    gitにおけるコミットログ/メッセージ例文集100
    ywv
    ywv 2016/07/26
    これはありがたい…常備薬として置いときたいな
  • 関数や変数のネーミングに悩んだら「codic」に日本語名を入力するとある程度解決するかも

    codicとは codicは、日頃、変数名や関数名に頭を悩ませるプログラマのためのネーミング辞書です。 以前は、プログラマ向けの単語辞書といった感じだったのですが、Ver.3からは、「日語を入力すると、ふさわしい名前を勝手に生成してくれる」という仕様になりました。 例えば関数名を作るのに、「従業員数を取得する」と入力するだけで「get_employee_count」という名前を勝手に生成してくれます。 これだけでも、かなり便利なんですが、codicにはその他にも、プログラミングのための便利な機能が満載だったので、その使い方などを紹介したいと思います。 codicの使い方 codicの主な機能は、日語を入力すると、勝手にネーミングを生成してくれると言うことです。 ただ、ちょっとした使い方次第で、より便利に利用できるので、その使い方などの紹介です。 基機能 まずは、基的な機能、「日

    関数や変数のネーミングに悩んだら「codic」に日本語名を入力するとある程度解決するかも
    ywv
    ywv 2015/09/14
    すごく楽できそう!
  • SLOBSERVER - L'actualité de Second Life

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    SLOBSERVER - L'actualité de Second Life
  • 私がコーディングで垂直方向にそろえるインデントをとる理由 | POSTD

    先週、 Hacker News上で興味深い議論が行われました 。テーマは Linux Kernelのコーディングスタイル についてです。 議論の中で私は、 コーディングで垂直方向にそろえるインデントをとるべきか というささやかな聖戦を仕掛けました。私は全面的に賛成です。理由を説明しましょう。 垂直方向にそろえるインデントをとるとは? 簡単な例を挙げてみます。 int robert_age = 32; int annalouise_age = 25; int bob_age = 250; int dorothy_age = 56; ちょっと見ただけで、「bob_age」がおかしいと分かるでしょう。また、目視であちこち探さなくても、全ての値が整数であることが簡単に確認できます。 この考え方は 一般的に 共有 されているわけではありません。ですので、なぜ 多くの 人たち がこれを有効なスタイルガ

    私がコーディングで垂直方向にそろえるインデントをとる理由 | POSTD
  • 1