タグ

プログラミングとtech-技術に関するWindymeltのブックマーク (24)

  • 自分を救うプログラミング|naoya

    子どものころは絵を描くのが好きだった。 学校の休み時間は、クラスメートはみな外にサッカーをしにいっていたが一人教室にのこってノートに漫画を描いている、そんな小学生だった。 自宅に戻っても、自室にこもってよく漫画を描いていた。 漫画と書くいっても、別に人を楽しませるために描いているわけではなかった。もちろん褒められると嬉しかったが、それが目的だったわけではなく、いま思えば、それは自分で自分を癒すかのような行為だった。自分を救うために絵を描いていた。 絵を描いているときは、それに夢中で没頭していて、ほかの何にも代えがたい時間を過ごすことが出来た。この時間が、どこか自分の救いになっていた。 中学二年生ぐらいになって思春期にさしかかった頃だろうか。教室で絵を描いていると浮いてしまうことに気づいて、恥ずかしくなって、描かなくなった。 それでもやっぱり絵を描いたりなにか作品を作ったりするのは好きだった

    自分を救うプログラミング|naoya
  • 全ての開発者が知っておくべきUnicodeについての最低限の知識

    2003年には「プレーンテキストなんてものは全く存在しない」と言われ、テキストの解読には文字コードの情報が必須となっていました。しかし、2023年になるまでの20年の間に絵文字などのおかげでUnicodeの利用率は98%へと到達し、再び文字コードを気にせずにすむ時代がやってきています。そんな時代において、正しくUnicodeを使うために必要な知識をエンジニアのニキータ・プロコポフさんが解説しています。 The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses!) @ tonsky.me https://tonsky.me/blog/unicode/ Unicodeの歴史と利用率の推移をまとめたグラフは下図の通り。2000年代後半から急速に普及が進んでいったこ

    全ての開発者が知っておくべきUnicodeについての最低限の知識
    Windymelt
    Windymelt 2023/10/05
    ICU便利で、文字数計数とか便利なユーティリティあるんですよね
  • Vacuous truth - Wikipedia

    In mathematics and logic, a vacuous truth is a conditional or universal statement (a universal statement that can be converted to a conditional statement) that is true because the antecedent cannot be satisfied.[1] It is sometimes said that a statement is vacuously true because it does not really say anything.[2] For example, the statement "all cell phones in the room are turned off" will be true

  • Early Work

    初期の作品 --- Early Work Paul Graham, October 2020 これは、Paul Graham: Early Work を、原著者の許可を得て翻訳・公開するものです。 <版権表示> 和訳テキストの複製、変更、再配布は、この版権表示を残す限り、自由に行って結構です。 (「この版権表示」には上の文も含まれます。すなわち、再配布を禁止してはいけません)。 Copyright 2020 by Paul Graham 原文: http://www.paulgraham.com/early.html語訳:Shiro Kawai (shiro @ acm.org) <版権表示終り> Paul Graham氏のエッセイをまとめた『ハッカーと画家』の 邦訳版が出版されました。 出版社の案内ページ Amazon.co.jp サポートページ 2020/10/20 翻訳公開

    Early Work
    Windymelt
    Windymelt 2020/10/22
    Paul Graham/“ 人がすごい成果を出せない最大の理由のひとつは、ださいものを作ってしまうことへの恐れだ。 この恐れは非理性的なものではない。”
  • Functor / Applicative / Monad が表すもの

    https://kazu-yamamoto.hatenablog.jp/entry/2019/04/11/111238 の記事に触発されて,ちょっと書く気になった.こちらも面白い記事なので,ぜひ参照してほしい. Haskell 2020 で Applicative が追加される見込みだ (そもそもちゃんと 2020 年に出るのか怪しそうだが).それを踏まえて,標準ライブラリに入る Haskell の特徴的な一連の型クラス Functor / Applicative / Monad の個人的な捉え方を書いておこうと思う.なお,あくまで個人的な捉え方なので,形式的でないし,広く受け入れられている考え方とは乖離している可能性があるので,そこは注意してほしい. 概要 それぞれの型クラスが表すものは端的に言えば, Functor 変換の一般化 Applicative 関数適用の一般化 Monad 手

    Functor / Applicative / Monad が表すもの
    Windymelt
    Windymelt 2020/10/17
    “ Functor 変換の一般化 Applicative 関数適用の一般化 Monad 手続きの結合の一般化 だと思う.”
  • 条件変数の利用方法 - cpprefjp C++日本語リファレンス

    標準ヘッダ<condition_variable>で提供される、条件変数(condition variable)の利用方法について説明する。 簡単のため、条件変数condition_variableとロックunique_lock<mutex>の組に対してのみ説明を行う。 condition_variable_anyクラスは、任意のロック型と組み合わせ可能なことを除き、その利用方法はcondition_variableと同じである。 利用の目的 条件変数オブジェクトのみを単体で利用するのではなく、必ずミューテックス(排他制御)オブジェクトと、同ミューテックスで保護されるデータ状態を表す変数群(以下、"ステート"と呼ぶ)という3つの組で利用すること。 条件変数オブジェクトとは、複数スレッドがこの共有"ステート"を更新/参照する場合に、"ステート"の更新を他スレッドに通知/"ステート"が指定条件

    Windymelt
    Windymelt 2020/07/23
    “条件変数オブジェクトとは、複数スレッドがこの共有"ステート"を更新/参照する場合に、"ステート"の更新を他スレッドに通知/"ステート"が指定条件を満たすまで待機する処理を、効率的に記述するための同期機構であ
  • 2018年の段階で私が知らないこと

    Originally written in: English • Русский (авторский перевод) Translated by readers into: Deutsch • Español • Français • Português do Brasil • Svenska • Tiếng Việt • తెలుగు • 日語 • 简体中文 • 繁體中文 • 한국어 Read the original • Improve this translation • View all translated posts 多くの人は、私が実際に持っている知識量より遥かに多くのことを知っていると思い込んでいる。それは悪い事ではないので文句を言っているわけではない。(世の少数派の人達は、努力して資格を得ているにもかかわらず、逆の偏見に苦しめられている。それはイケてない。) この記

    Windymelt
    Windymelt 2019/01/18
    良かった,はげみになる
  • [翻訳] コードレビューについて

    この記事は::..: glen.nu :.: ramblings :.: on code review :.::の意訳記事です。@9len氏の許可を受けて投稿しています。誤り・修正などがありましたら、@iwashi86までご連絡いただけますと幸いです。 This article originally appeared in English at :..:: GLEN D SANFORD :.: RAMBLINGS :.: ON CODE REVIEW ::..: and has been translated with @9len’s permission for posting to this blog in Japanese. この記事は2014年3月に書いている。Twitterでユーザ検索チームを私が率いていたころの話だ。この記事は、コードレビューに関するセオリー・アプローチを体系化

    [翻訳] コードレビューについて
  • Algoogle

    Algorithm for Programming Contest 文字列 比較 Rolling-Hash法(Rabin-Karp法) 検索 Aho-Corasick法(複数パターン検索) グラフ 最短路 Warshall-Floyd法(全点対最短路) Dijkstra法(単一始点最短路) フロー Ford-Fulkerson法(最大流) Dinic法(最大流) 最小費用流 木 Prim法(最小全域木) Kruskal法(最小全域木) HL分解 関節点 橋 彩色数 Math 整数 剰余 高速剰余変換(FMT) 多項式 行列 積 線形方程式の解(Givens) 探索 2分探索 解析 高速フーリエ変換(FFT) 有理数(分数) 幾何 平面 点 直線と線分 円 凸包 データ構造 Union-Find-Tree Segment-Tree Segment-Tree(2次元) Binary-Index

    Windymelt
    Windymelt 2016/12/06
    競技プログラミングで使われるアルゴリズムの一覧
  • デメテルの法則 - Wikipedia

    デメテルの法則 (Law of Demeter, LoD) または最小知識の原則 (Principle of Least Knowledge) とは、ソフトウェアの設計、特にオブジェクト指向プログラムの設計におけるガイドラインである。 このガイドラインは1987年の末にかけてノースイースタン大学で作成された。簡潔に言うと「直接の友達とだけ話すこと」と要約できる。基的な考え方は、任意のオブジェクトが自分以外(サブコンポーネント含む)の構造やプロパティに対して持っている仮定を最小限にすべきであるという点にある。 「デメテルの法則」という名前は、この法則がアダプティブプログラミングとアスペクト指向プログラミングに関する研究であるデメテルプロジェクトの成果であることに由来する。プロジェクト名は農業の女神であるデーメーテールにあやかっている。 オブジェクト指向プログラムにデメテルの法則を適用する場

    Windymelt
    Windymelt 2016/10/25
    オブジェクトがどこまでの範囲で別のオブジェクトを呼べるか.「使えるドットは1つだけ」
  • 30のプログラミング言語でFast inverse square rootを実装してみました! - プログラムモグモグ

    あなたの好きな言語は何ですか。そして、あなたの好きなアルゴリズムは何ですか。 好きな言語があると、その言語でどんな問題でも解決しようとなりがちになります。その言語を極めるのは素晴らしいことですが、その言語や似たような言語でしかコードが書けなくなったり、他の言語に対して見向きもしなくなってしまう可能性があります。 勇気を出して新しい言語にチャレンジしてみませんか?色々な言語に挑戦してみませんか? 何から始めればいいか分からない。次にどの言語を学べばいいか分からない。いま特に何も困っていない。何でも得意な言語で書けてしまう。そういう人が多いのではないでしょうか。 新しい言語にチャレンジするきっかけを作る一つの方法は、ある特定のアルゴリズムを一つ決めて、あらゆる言語で実装してみることです。解く問題が大きすぎると力尽きてしまうので、せいぜい20〜30行程度で書ける簡単なものが良いでしょう。大事なこ

    30のプログラミング言語でFast inverse square rootを実装してみました! - プログラムモグモグ
    Windymelt
    Windymelt 2016/07/25
    「比較プログラミング言語学」すてきな発想.いろんな言語を習得したい.
  • データ構造はクラスに任せた!だから、アルゴリズムはstatic関数で書くぜ!!(キリッ - みねこあ

    きむら(K)さんち経由、実はオブジェクト指向ってしっくりこないんです!。いろいろ強烈なインパクトが満載で、スルーできませんでした。 特に「メンバー関数をstatic宣言すればインスタンス宣言をしなくてもいい」ということ知ってからは、メンバー関数を従来のファンクションのように使っている。共有変数も、pubulic static宣言していまう。したがってプロパティなんて作らない。 staticを理解していない人のコードを見ると、いちいちインスタンス宣言しているので笑ってしまう。 ぎゃーっ....。人はまわりを笑っているつもりでも、逆にまわりに嗤われていますよ、絶対。 ここ以外にも突っ込みどころ満載のエントリーですので、読みながら突っ込むお手々が止まらなくって、腕がつりそう。そんな突っ込み連打なエントリーもおもしろそうですが、わたしはそういうのは上手く書けないので(性格がネチっこいから、なんだ

    データ構造はクラスに任せた!だから、アルゴリズムはstatic関数で書くぜ!!(キリッ - みねこあ
    Windymelt
    Windymelt 2015/05/06
    「クラスはサブルーチンの拡張として生まれた」という重要な指摘。
  • ヨドバシ定期便を作った - おともだちティータイム

    Amazon 定期おトク便大好きっ子の僕は定期便を 30 以上登録して、日常のあらゆるものを勝手に送ってもらう生活をしていた。 しかし、ここ 1 年くらい Amazon 定期おトク便の対象商品が減って (買い合わせ対象になると定期便で送れなくなる、一度の配送が 3000 円を越えていたとしても) いった結果、定期的に買うものを自動化できなくて凄い辛い思いをしていた。 そして今月ついに箱ティッシュが買えなくなり、なぜか 1890 円もする異常なティッシュを勧められるようになってしまった。 これは困った。多少高くても定期的に送られてくる便利さを見込んで使っていたのだけど、さすがに箱ティッシュに 1890 円払うつもりにはなれない。そこで Amazon 定期おトク便を全て解約した。 そして、ヨドバシドットコムの操作を自動化することを目標とした。 なお、自動化は、お手軽なツールで出来るものでは無く

    ヨドバシ定期便を作った - おともだちティータイム
    Windymelt
    Windymelt 2015/02/10
    勝手にカートに入れてくれるのは便利だ
  • 出、出~~wwwww銀行員待行列解説奴~wwwwwww - モナドとわたしとコモナド

    銀行員待行列(Banker's deque)、二つのリストで構成奴~~wwwww 入奴と出奴~wwwwwwwww ↓入奴 三(^o^)ノ [(^o^)ノ, (^o^)ノ, (^o^)ノ] ヽ(^o^)三 [ヽ(^o^), ヽ(^o^), ヽ(^o^)] ↑出奴 追加は入奴にcons、取り出しは出奴にuncons奴~wwwリストなので基定数時間奴~wwwwww リスト枯渇防止の為、リストの長さに以下の条件課奴~~~wwwwww length (入奴) <= length (出奴) * 3 + 1 length (出奴) <= length (入奴) * 3 + 1 条件充足不能場合、|length (入奴) - length (出奴)| <= 1なるよう余剰分反転後短い側の末尾に結合して調整奴~wwwww時間計算量O(length (入奴) + length (出奴))必要~~~~wwww

  • コードレビューの話

    新卒エンジニア向けにコードレビューを「する」話をしました。 http://hisaichi5518.hatenablog.jp/entry/2014/10/29/165721

    コードレビューの話
    Windymelt
    Windymelt 2014/11/12
    コードをレビューする側としてのTips集といった感じ。
  • オブジェクト指向の設計と実装の学び方のコツ

    質問への回答(35件)を、ブログにまとめているのでこちらご覧ください https://little-hands.hatenablog.com/entry/2019/08/31/genba_de_ddd 「Mix Leap Study 特別編 - レガシーをぶっつぶせ。現場でDDD! コラボカンファレンス」登壇資料 ブログ:https://little-hands.hatenablog.com/ Twitter:https://twitter.com/little_hand_s 質問箱:https://peing.net/ja/little_hands

    オブジェクト指向の設計と実装の学び方のコツ
  • プログラミング原則一覧 - Strategic Choice

    見つけた時に逐次エントリしている「プログラミング原則」カテゴリの一覧です。不定期に追加しています。プログラミング一般デメテルの法則DRY原則YAGNIKISS原則OAOOUNIX哲学可逆性曳光弾直交性契約による設計 DbCプログラマの三大美徳PIEの原則SLAPパフォーマンスチューニングの格言驚き最小の原則オブジェクト指向プログラミングパルナスの規則抽象データ型サブタイプ求めるな、命じよコマンドとクエリ分離原則オブジェクト指向設計パターン言語生成・使用分離の原則パターンの定義IOP

    Windymelt
    Windymelt 2014/05/01
    まとめられていて便利。読み返したい。
  • クラス設計に関するメモ

    経験的にこのようにした方がよいと思った点についての記録です。 仕事で大規模(2000クラス超)かつ製品寿命がながいパッケージソフトを作っていた関係で、 ちょっとした設計の間違いが、 あとあとで大変な苦労する羽目になったりすることを経験してきました。 このような規模が大きいアプリケーションを作ることはなかなかないかもしれませんが、 なにかの参考になれば、と思います。 継承する前に委譲を検討する Singleton パターンを使うときの注意 Template Method パターンを使うときの注意 クラス間の依存に関する注意 クラスの粒度 Singleton の問題を回避できるか? 継承する前に委譲を検討する 継承はスーパークラスの仕様をよく理解しておかないと、 バグを作りこみやすいので十分注意する必要があります。 メソッドのオーバーライドをするときも、 public void foo(){

  • 新機能および新端末追加のお知らせ | Remote TestKit

    2013/11/28 新機能および新端末追加のお知らせ 2013年11月28日(木)実施のシステムメンテナンスが終了いたしましたのでご報告いたします。 尚、メンテナンス完了に伴い新規機種・機能を追加いたしました。 下記のとおり 1. Android 4.4に対応 Remote TestKitAndroid 4.4(KitKat)に対応しました。 あわせてレンタルできる端末にNexus 5を追加いたしました。 2.新規機能追加 自動キャプチャ ファーストビュー機能 「複数端末同時操作」による画像保存時にページ全画面のキャプチャに加え、端末ディスプレイに最初に表示される画面を同時に保存する機能を追加いたしました。 機能によりレンタルした端末でWebページの確認をする際に1画面に表示される範囲がひと目で確認できるようになりました。 3.レンタル端末の新規追加 最新端末の追加 ご要望にお答えし

    新機能および新端末追加のお知らせ | Remote TestKit
  • Applicativeのススメ - あどけない話

    この記事の目的は、Applicative 信者による Applicative スタイルの布教です。 簡潔に結論を述べると、 foo = do a <- m1 b <- m2 return (f a b) のようなコードを書きたくなったら foo = f <$> m1 <*> m2 と書きましょうということ。 合い言葉は、「do と return をなくせ!」です。 FunctorとMonadの間 Functor を特殊化した型クラスがMonadで、Monadの方が強力です。なぜなら、メソッドが増えるからです。 Functorのメソッドはfmapです。fmapの別名を (<$>) といいます。(この記事では、(<$>) と liftM を同一視します。) そして、Monadのメソッドは、ご存知の通り (>>=) と return です。 FunctorとMonadの間にApplicative

    Applicativeのススメ - あどけない話