タグ

programmingに関するytRinoのブックマーク (71)

  • Naming is Hard

  • Optics: 「パス」に型を付ければ、データ全体に型を付ける必要はない - Lambdaカクテル

    あまり知られていない関数型言語のおもしろ概念として、Opticsというものがある。 Opticsとは、オブジェクト指向言語で言うところのSetter/Getterを一種の関数として捉え、いくつかの便利な特性を付与したものの総称だ。この便利な特性によって、Setter/Getter以上のことをパワフルにこなせる。 最も有名なOpticsはLensであり、色々な解説資料が(主にHaskell向けに)出ている。 blog.recruit.co.jp さて、これまでのOpticsを紹介する資料はSetterとGetterとしての側面に注目しがちだったので、じゃあOpticsの何が良いのか、Scalaでやる意義は何か、という側面をこの記事で紹介しようと思う。 Optics -- vs. copyメソッド地獄 Opticsは合成可能である Opticsはボトムアップのアプローチである Opticsがう

    Optics: 「パス」に型を付ければ、データ全体に型を付ける必要はない - Lambdaカクテル
    ytRino
    ytRino 2023/06/07
    面白い
  • とにかく日本の住所のヤバさをもっと知るべきだと思います|inuro

    「住所の揺らぎ程度のことにAIを使いたいだとかデジタル音痴」だの「住所の正規化なんてExcelで2時間あれば作れそう」だの、たいへんフットワークの軽やかな言説の数々に、位置情報界隈のみならず住所の正規化や名寄せに少しでも関わったことのあるエンジニアが総立ちでマサカリを投げていたのも記憶に新しい今日この頃ですが(2023年6月6日)、この手の騒動は周期的に起こってる印象です。 ということはつまり いつまで経っても解消されない、解決が困難な課題である その困難さが界隈以外に共有されていない であるわけで、その都度Twitterにトリビアが投下されてはTLが賑わい華やかではありますが、そろそろ自分の整理としてもどれだけ日の住所システムがカオスで、その計算機的な処理がいかに困難かをメモっておこうかと思いました。 なおこの件については既にQiitaにGeoloniaの宮内さんが鼻血の出そうな良エン

    とにかく日本の住所のヤバさをもっと知るべきだと思います|inuro
    ytRino
    ytRino 2023/06/07
    きれいな落ちで大変楽しませていただきました(他人事感) いやほんとこれを解決できたら英雄だね
  • 【第5回】「型」はウェブシステム開発に「エンドゲーム」をもたらすか | GeeklyMedia(ギークリーメディア) | Geekly(ギークリー) IT・Web・ゲーム業界専門の人材紹介会社

    伊藤直也さんが「今逢いたい」ソフトウェアエンジニアに声をかけて対談を重ねてきたシリーズの最終回は、これまでの対談の文章化を手がけたラムダノート株式会社の鹿野桂一郎さんとの異色対談です。コンピュータ技術書や記事の編集者であると同時に仕事趣味でHaskellのプログラムも書く鹿野さんの視点を通し、現代のウェブシステム開発に伊藤さんが何を見ているのか、特に「型」と「エンジニアの学び」というこれまでの対談に通底するテーマについて掘り下げます。 ・伊藤 直也さん / 株式会社 一休 執行役員 CTO 新卒入社したニフティ株式会社でブログサービス「ココログ」を立ち上げ、CTOを務めた株式会社はてなでは「はてなブックマーク」などの開発を主導。グリー株式会社では統括部長としてSNSを担当した。2016年4月、一休に入社し執行役員CTOに就任。 ・鹿野 桂一郎さん / ラムダノート株式会社 代表取締役社長

    ytRino
    ytRino 2023/05/25
    TaPL原書を学生のときに読んでいるのはむしろ専門性が高いからだという気もするけど。 研究室の輪読でやったり
  • YAPC::Kyoto 2023ノベルティのPerl Poemを読み解く - Hatena Developer Blog

    チーフエンジニアエンジニアリングマネージャのid:taraoです。先日開催されたYAPC::Kyoto 2023にはたくさんの方にご参加いただけまして、ありがとうございました。 トートバッグに書かれたPerlコード YAPC::Kyoto 2023には、はてなもスポンサーとして参加しており、会場で配布されたトートバッグのデザインも提供していました。そのバッグの片面にPerlのコードが書かれていたことにはお気づきいただけたでしょうか? コードを書き写すと以下のようになります。 use feature qw(try); try { Something->new; } catch ($your_dream) { tell $your_dream and seek our $future, @ YAPC::Kyoto, 2023; } 今回のカンファレンスのテーマは「try/catch」だったの

    YAPC::Kyoto 2023ノベルティのPerl Poemを読み解く - Hatena Developer Blog
  • 部分型における変性と極性 - なぜScalaの変性は+や-で指定するのか - 貳佰伍拾陸夜日記

    この記事はScala Advent Calendar 2022の19日目です. Scalaではジェネリック型の変性(variance)は+や-で指定しますが, 他の言語(たとえば, C#, Kotlin)ではoutやinだったりします. この記事では変性の意味を整理して, なぜScalaでは+/-の記号を使うのか説明します. 追記ただし, ここで説明している内容は基的にC#やKotlinでも成立する(はずな)ので「なぜこれらの言語では+/-の記号を使わないのか」を説明するものではありません. 個人的には+/-の方がわかりやすいと思うし, out/inの記法は扱っている概念が簡単であるかのような誤解を生む(悪く言えば騙す)のでどちらかと言うと嫌いです. 発端 こういう話題がありました. Scala は共変が + で、反変が - なので理論重視? なのに対して、Kotlin と TypeSc

    部分型における変性と極性 - なぜScalaの変性は+や-で指定するのか - 貳佰伍拾陸夜日記
  • よわよわエンジニアがTAPL(型システム入門)を読んだら

    こんにちは,sititou70です.私は社会人2年目のよわよわWebフロントエンドエンジニアであり,「数学」とか「証明」とは無縁の人生を送っています. そんな私ですが,がんばって型システム入門(通称:TAPL)というを読み終えました.全32章,503ページ,牛乳パック1分の重さがあり, 自立します. 自立するは大抵やばいです. TAPLの序文を見ると,想定読者は プログラミング言語と型理論を専門とする大学院生および研究者 プログラミング言語の鍵となる概念に触れたい,計算機科学の全分野の大学院生および習熟度の高い学部生1 となっています.記事では 「そんなを,学生や専門家でない人間(私)が読んだらどうなるのか」 について書きます.専門的な用語は避けますので,TAPLの雰囲気だけでも感じ取ってもらえたら嬉しいです. どうなったのか 宇宙語が読めるようになった 「型安全」を説明できるよ

    よわよわエンジニアがTAPL(型システム入門)を読んだら
    ytRino
    ytRino 2022/05/09
    一人でTAPLを読破するよわよわエンジニアというのも大概バトル漫画並のインフレではなかろうか…すごい
  • コードは、業務のレア度や重要度には関心を示さないのだ - Magnolia Tech

    noteからの転載 つまり、何が言いたいかと言うと、タイトルの通り”コードは、業務のレア度や重要度には関心を示さないのだ”ということ。 人間が意味を見出さないといけない。 重要な業務のロジックだから品質保証をしっかりやろう!と言っても、実行するコンピュータはそんなことに関心を示さないし、そんな色付けをできるプログラミング言語を、私は知らない。そこに人間が意味を見出さないといけない。 当たり前のようで、これがなかなかコンセンサスが得られないことなのだ。 システムに実装されている業務と、人間が認識する業務の違いってレアリティの高い状態に対するスタンスじゃないかって思っていて、人間は「それは超レアだから、普段は気にしない、起きたら考える」って言えるけど、システムはそれを等しく(レアじゃないことと同じ粒度で)実装しなければいけなくて…— magnoliak🍧 (@magnolia_k_) Feb

    コードは、業務のレア度や重要度には関心を示さないのだ - Magnolia Tech
  • 世界一わかりやすいClean Architecture - nuits.jp blog

    項は「C# Tokyo オンライン「世界一わかりやすいClean Architecture」他」による発表の登壇原稿となります。過去に発表した.NET版の記事はこちらにアーカイブしています。 稿のサンプルコード・PPTはこちらで公開しています。 「CC BY-SA 4.0」で公開していますので、気に入っていただけたら営利目的含め、ライセンスの範囲で自由に利用していただいて問題ありません。 github.com また動画を以下で配信しています。よろしければご覧ください。 世界一わかりやすいClean Architecture はじめに まず初めに、クリーンアーキテクチャの誤解されがちな二つのことについてお話させていただきます。 その上で、クリーンアーキテクチャの質とは何か?押さえておくべき、当に重要だと考えている三つの事について、お話しします。 注意事項 さて題に入る前に、少し注意

    世界一わかりやすいClean Architecture - nuits.jp blog
  • モブプログラミングに向いてない私の話 - 誰かの役に立てばいいブログ

    新型コロナウィルスの影響も長引いてますが、皆さま無事お過ごしでしょうか。私は幸い無事です。 日ごろチームでソフトウェア開発をしているのですが、近年社内ではペアプログラミングやモブプログラミングが流行しています。 私のいるチームでもここ二年ほどモブプログラミング(ないし類似のプラクティス)に取り組んできました。 モブプログラミングについて正確にどのようなものかは以下の記事などをご参照いただければと思います。 簡単にまとめると、要求分析やコーディング等幅広い開発作業を、同じ場所に集まったチームの共同作業でこなしていくというものです。 このご時世ですので、最近はオンラインのミーティングルームに集合する形式でしたけど。 www.agilealliance.org ここから先は、非常にパーソナルな、私に限定された体験になります。 どの人・チームにも適用できる話ではありません。ではありますが、どの人・

    モブプログラミングに向いてない私の話 - 誰かの役に立てばいいブログ
    ytRino
    ytRino 2020/11/06
    それな "知識や経験量の差が大きいと一方的なレクチャーになることが頻発" とはいえこれは何目的でどう進めるかってとこにも依りそう
  • 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita

    はじめに 先日ツイッターで見かけた呟き pic.twitter.com/33Yk02hu1U — TOMO (@tomozh) October 14, 2020 そういうこともあるのか的な反応もあるようなので具体例を挙げてみることにする。 例1 所謂FizzBuzz問題。 #include <stdio.h> void fizzbuzz(int n) { int next; int i = 1; do { printf(i % 15 ? i % 5 ? i % 3 ? "%d\n" : "Fizz\n" : "Buzz\n" : "FizzBuzz\n", i); if (i++ >= n) next = 0; } while (next); } int main(void) { printf((char[]){""}); // この位置にprintfが無いとなぜか動かない fizzbuz

    「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
    ytRino
    ytRino 2020/10/28
    大学の課題でC書いてるときに1・2度経験がある😇
  • テキシコー | NHK for School

    この番組は、思わず頭の中で手順を組み立て、先を予想したくなるような興味深い実験、手順の組み合わせを改善していく楽しさを伝えるアニメーション、さまざまな仕事や物の中にプログラミング的思考が活かされていることを伝えるコーナーなどで構成されています。番組の中では、実際にコンピューターを使ったプログラミングを体験するシーンは出てきません。コンピューターへの苦手意識やICT 環境を問わず、誰でも楽しくプログラミング的思考を育めます。コンピューターを使ったプログラミングへの導入としてはもちろん、実際のプログラミング体験をした後でも、活用できる番組です。

    テキシコー | NHK for School
  • 長男がプログラム(でゲーム)を作りたいと言い出したので、Javascriptの書き方..

    長男がプログラム(でゲーム)を作りたいと言い出したので、Javascriptの書き方とブラウザでの動作確認を軽く教えた 次男も感化されたようで長男の真似をし始め、今は簡易な動作のHTMLファイルであれば作れるようになっている ある日、二人の空気が険悪だった(大喧嘩したあとの空気だった) まずは長男に事情を訊いてみると、とあるプログラムの方針で対立したとのこと それは「じゃんけんゲーム」だった 画面でグーチョキパーのいずれかを選びボタンを押すと、相手(CPU)の「手」と勝敗が表示されるというものだった 次男はまずCPUの「手」を乱数で決定し、画面に入力された「手」と比較して勝敗(と引き分け)を決める、素直な処理だった 長男はそれに飽きたのか、まずは乱数で「勝ち」「負け」「引き分け」を乱数で最初に決めてしまい、その後で結果に応じたCPUの「手」を決定するというロジックだった 次男はこれが気に入

    長男がプログラム(でゲーム)を作りたいと言い出したので、Javascriptの書き方..
    ytRino
    ytRino 2020/07/28
    いい話
  • ノーコードは形を変えた現代のRPGツクールなのではないか

    この記事について。 2030 年 「エンジニアです。コードは書けません。」|__shinji__| note 自分はそもそもビジュアルプログラミングやオーサリングに興味があり、ノーコードは興味の範疇でありつつも、現状のもの、現状の「コード抜きで作れる」ような謳い文句は厳しいと思っています。それを、RPG ツクールを例に説明します。 はじめに、ノーコードを分類する 記事では、「専用の管理画面で編集し、出力のためにコードを書かない、もしくはコピペ程度」のものをノーコードとして扱います。 その中でさらに種類ごとに分類してみます。このような定義があるわけではなく、自分の主観的で暫定的な分類です。 タイプ 1: データベースから自動的にフォームを生成 Google App Sheet MS Power Apps タイプ 2: 高水準 API のパイプライン Zapier IFTTT 古の Yaho

    ノーコードは形を変えた現代のRPGツクールなのではないか
    ytRino
    ytRino 2020/06/24
    なにげに途中のリンクがScroll To Text Fragmentのやつになっていた
  • 新型コロナウイルスの影響で「半世紀以上前のプログラミング言語の使い手」が急募される事態に

    アメリカ・ニュージャージー州のフィル・マーフィー知事が、2020年4月4日の記者会見で「プログラミング言語COBOLのスキルを備えたボランティアが必要です」と訴えました。その背景には、新型コロナウイルスの影響で失業保険の請求が急増しているため、COBOLで記述された古いシステムの改修や維持管理を行える人材が必要になったという事情があります。 COBOL-coding volunteers sought as creaking mainframes slow New Jersey's coronavirus response • The Register https://www.theregister.co.uk/2020/04/05/new_jersey_seeks_cobol_volunteers/ COVID-19 Response: New Jersey Urgently Needs

    新型コロナウイルスの影響で「半世紀以上前のプログラミング言語の使い手」が急募される事態に
    ytRino
    ytRino 2020/04/06
    "パンデミックが終わったら、2000年問題の時に行われたはずの取り組みをもう一度行い、国中の時代遅れのシステムを更新しましょう。これ以上待っていると、また別の災いが起きかねません"
  • 本番環境でやらかしちゃった人 Advent Calendar 2019 - Qiita

    番環境でやらかしちゃった人のアドベントカレンダーです。 例) DB吹き飛ばした 番サーバをデストロイした ネットワーク設定をミスって番サーバにアクセス出来なくなり、サーバが世界から孤立した などなど... 以下の2点については必須項目なので、記述お願いします。 惨劇はなぜおこってしまったのか 二度と惨劇を起こさないためにどうしたのか もう二度とあの惨劇を繰り返さないために、みなで知見を共有しましょう。

    本番環境でやらかしちゃった人 Advent Calendar 2019 - Qiita
    ytRino
    ytRino 2019/11/18
  • まつもとゆきひろの履歴書|仕事中にこっそり作ったRubyが世界を驚かせるまで #ぼくらの履歴書 - ぼくらの履歴書|トップランナーの履歴書から「仕事人生」を深掘り!

    ※この記事は2019年8月に取材・撮影した内容です 私たちが使う便利なアプリの数々は、“プログラミング言語”によって作られています。言語の種類は数え切れないほど存在していますが、「多くの人々に利用されているもの」となると、ごくわずか。優れたプログラミング言語を生み出せる人物は、世界的に見ても一握りなのです。 その数少ない人物のひとりが、日にいます。プログラミング言語・Ruby(ルビー)の作者である、ソフトウェア技術者のまつもとゆきひろ( @yukihiro_matz )さんです。使い勝手の良さや生産性の高さから、まつもとさんの生み出したRubyは世界中で高い評価を受け、まつもとさん自身も世界中のコンピュータエンジニアから「Matz(マッツ)」の愛称で知られるようになりました。 では、まつもとさんは戦略的に、現在のキャリアを築き上げてきたのでしょうか。その答えは「NO」です。むしろ、「自分

    まつもとゆきひろの履歴書|仕事中にこっそり作ったRubyが世界を驚かせるまで #ぼくらの履歴書 - ぼくらの履歴書|トップランナーの履歴書から「仕事人生」を深掘り!
  • らいおんの隠れ家 : ポール・グレアム「アイデンティティは控え目に」 - livedoor Blog(ブログ)

    ポール・グレアム「アイデンティティは控え目に」を翻訳しました。原題はKeep Your Identity Smallです。親切な皆様、コメントや人力検索でのアドバイスをよろしくお願いいたします。翻訳にあたってコメント欄でttamo様、practicalscheme様、punkaholic様、TeX様からのご協力を得ています。ありがとうございます!! アイデンティティは控え目に 2009年2月 どうして政治や宗教が、お決まりの役にも立たない議論を引き起こすかについて、私は今日ついに理解した。 一般にネットのフォーラムでは、宗教について何を話しても宗論になってしまう。なぜだろう? どうして宗教でそうなり、Javascriptとかパン焼きとかその他のことを論じるフォーラムでは、そうならないのだろう? 宗教が違うのは、人は宗教に関してなら、まったく専門的知識を持っていなくても意見を持って良いと考え

    ytRino
    ytRino 2019/08/15
    "参加者全員のアイデンティティに関わっていない時だけ、人はある話題について有意義な議論ができる。政治と宗教が地雷原なのは、とても多くの人々がそれをアイデンティティにしているからだ。"
  • ISUCON8 予選問題の解説と講評 : ISUCON公式Blog

    予選の問題作成を担当したDeNAのkarupaneruraです。 予選に参加した皆様、お疲れ様でした。 楽しんで頂けましたでしょうか。 お陰様で大きなトラブルもなく無事に予選を終えることができました。 参加者の皆様をはじめとした皆さんのご協力がなければ成し得ないことでした。 ご協力いただいた皆様、ありがとうございました。 課題アプリケーション今回の課題はイベントのチケット予約アプリケーションでした。 ユーザーを作成、またはログインを行うと座席を予約することができます。 座席は抽選で決まる仕組みになっており、ランダムに決まった座席が即座に分かるようになっています。 埋まっている座席は黒く塗りつぶされ、自分の獲得した座席は緑色の字で表示されています。 また、自分の座席をクリックするとキャンセルを行うことができます。 マイページでは自分の最近予約(orキャンセル)した席を5件、最近予約(orキャ

    ISUCON8 予選問題の解説と講評 : ISUCON公式Blog
  • ホーム - CloneTracker

    当社はCookieを使用して、お客様が当社のWebサイトでより良い体験を得られるようにしています。引き続き閲覧する場合は、プライバシーポリシーに同意したことになります。

    ホーム - CloneTracker