programmingに関するrjgeのブックマーク (88)

  • 破綻しない Vue.js アプリケーション開発のために大切なこと / How to make a robust Vue.js application - Speaker Deck

    2018/10/15 に JSLounge の活動として UUUM株式会社様で行った発表のスライドです。

    破綻しない Vue.js アプリケーション開発のために大切なこと / How to make a robust Vue.js application - Speaker Deck
  • 分散システムの限界について知ろう

    ↓↓↓↓訂正あります。↓↓↓↓ 2018/07/02に株式会社エフコード社内で行われた勉強会のスライドです。 訂正版(随時更新中): https://docs.google.com/presentation/d/15HOMfAbtdWwO48njcB8IdkN3kVAMu3wsmZo0O3S-f_4/edit?usp=sharing 専門家による資料・専門家向けの資料ではありません。自分自身で学習し、論文・文献等を読解してまとめた内容となります。間違い等あるかもしれませんが、あれば是非コメント頂ければと思います。 【訂正事項】 スライド16: 誤:たった一つのプロセスが故障しただけでも有限時間で合意できない 正:たった一つのプロセスが故障しうるだけでも有限時間で合意できない スライド20: 誤: 重要: あるschedule σ1, σ2 がdisjoint (nodeが被ってない) なら

    分散システムの限界について知ろう
  • ぼくたちのかんがえたさいきょうのi18n国家

    記事は下記のtweetから始まるスレッドに触発され、@qnighyや@na4zagin3からアイディアを拝借して書いた。 i18n力が最強の国は国内に複数の言語があり、そのうちいくつかは他国でも使われている言語の方言で、1バイト文字での代替表記が困難で、歴史的にISO-2022ベースの文字コードとUnicodeと独自エンコーディングが混在していて、フリガナなどの特殊な組版規則があり、右書き左書き縦書きを併用し、 — Masaki Hara (@qnighy) 2018年8月6日 皆さんのおかげで最強のi18n国家が建設されつつある。一瞬で滅びそう — Masaki Hara (@qnighy) 2018年8月6日 長い前置き ソフトウェアのi18nは難しい。自文化では当たり前と思っていてハードコードしてしまった仮定が崩れて、大幅な再設計を余儀なくされるからだ。気づいて再設計できればまだ良

    ぼくたちのかんがえたさいきょうのi18n国家
    rjge
    rjge 2018/08/07
    覚えがあるものもあれば思いもしなかったものもあり、読んでいるだけで目眩がした…世界は広い…
  • タイムゾーン呪いの書 - Qiita

    コメント欄で「Software Design 誌 (2018/12) に寄稿した内容や修正などをこちらの記事にも適用したい」と言ったあと、やるやる詐欺でずっと放置していましたが、三年近く経ってようやく 2021年 7月に大幅に改訂し、同時に Zenn に引っ越すことにしました。 タイムゾーン呪いの書 (知識編) タイムゾーン呪いの書 (実装編) タイムゾーン呪いの書 (Java 編) なにやら長くなりすぎたので三部構成になっています。 この Qiita 版は、しばらく (最低一年は) 改訂前のまま残しておきます。 タイムゾーンの存在はほぼ全ての人が知っていると思います。ソフトウェア・エンジニアなら多くの方が、自分の得意な言語で、タイムゾーンが関わるなにかしらのコードを書いたことがあるでしょう。ですが、日に住んで日仕事をしていると国内時差もなく1 夏時間もない2 日標準時 (Japa

    タイムゾーン呪いの書 - Qiita
  • イマドキのJavaScriptの書き方2018

    PySpa統合思念体です。これからJavaScriptを覚えるなら、「この書き方はもう覚えなくていい」(よりよい代替がある)というものを集めてみました。 ES6以降の難しさは、旧来の書き方にプラスが増えただけではなく、大量の「旧来の書き方は間違いを誘発しやすいから非推奨」というものを作り出した点にあります。5年前、10年前のやウェブがあまり役に立たちません。なお、書き方が複数あるものは、好き嫌いは当然あると思いますが、あえて過激に1つに絞っているところもあります。なお、これはこれから新規に学ぶ人が、過去のドキュメントやコードを見た時に古い情報を選別するためのまとめです。残念ながら、今時の書き方のみで構成された書籍などが存在しないからです。 たぶん明示的に書いていても読み飛ばす人はいると思いますが、すでに書いている人向けではありません。これから書くコードをこのスタイルにしていくのは別にいい

    イマドキのJavaScriptの書き方2018
  • 市場バグを引き起こした優秀なデータたち - ボドゲを愛するテスト屋さん

    ※この記事は「ソフトウェアテストの小ネタ Advent Calendar 2017 - Qiita」用の記事です。 ソフトウェアテストの小ネタ 2日目担当のオムそばです。 実はちゃんとした(?)記事を書くのはこれが初めてなので、生暖かい目で見ていただければ。 そんなわけで早速表題の件、市場バグを引き起こした優秀なデータたちをご紹介します。 今回は、よくある「半角記号」、「空白やスペース」などは割愛させていただきます。 (2017/12/26追記)"市場バグ"という言葉に違和感や疑問を持たれた方は、こちらの記事をどうぞ。文言について整理してみました。 ■日時に関するデータ ・1969/12/31、2038/1/20:UNIX系のシステムに有効なデータ。UNIXのシステム時刻は1970/1/1 開始なので、それ以前のデータを打ち込むと予期せぬエラーが発生する可能性がある。また、同様に2038/

    市場バグを引き起こした優秀なデータたち - ボドゲを愛するテスト屋さん
    rjge
    rjge 2017/12/04
    “498-0000:愛媛愛知県と三重県に存在する重複した郵便番号” ここに住んでると自動入力の恩恵を受けられないどころか下手すると違う入力されちゃったりするのかな。つらい。
  • x + 0.25 - 0.25 = xが成り立たないxとは何か|Rui Ueyama

    スタンフォードのコンピュータサイエンスの授業で、ときどきこれは良問と思う問題がテストで出ることがある。僕の印象に残っているのは「xをfloatとするとき、x + 0.25 - 0.25 = xが成り立たないxを求めよ」というものだ。浮動小数点数を理解していないと、両辺が同じにならないケースがあるほうが不自然に思えるだろうから、この問題は浮動小数点数の奇妙さを結構うまく突いていると思う。この問題を元に浮動小数点数についてちょっと説明してみよう。 まずコンピュータ上での数について少し考えてみよう。コンピュータにおける数と、数学の整数や実数は、よく考えてみると全然違う。コンピュータは有限の記憶領域しか持っていないので、無数にある数を表すことが根的にできない。つまりコンピュータ上の数は「物の数になるべく似せた別の何か」だ。現実的には、例えば32ビットの数なら2^32パターンしか表せないので、そ

    x + 0.25 - 0.25 = xが成り立たないxとは何か|Rui Ueyama
  • GitHubが「Teletype for Atom」リリース。開発者向けエディタ「Atom」でも、複数プログラマが同時にコード編集可能

    GitHubは、オープンソースで公開している開発者向けのエディタ「Atom」で複数のプログラマがリモートでコードの編集を行える追加機能「Teletype for Atom」のベータ版をリリースしました。 Teletype for AtomをインストールしたAtomでは、Portal(ポータル)と呼ばれる機能が利用できるようになります。自分のAtomをポータルにすることで、ほかのプログラマを自分のAtomエディタに招待できるようになり、複数のプログラマで同一のコードが編集可能になります。 複数のプログラマが自分のエディタから同時にコードを編集可能 以下は公開されたデモ動画から、「Teletype for Atom」の動作を紹介しましょう。 Atomエディタ右下のポータルボタンをクリック。ID番号が生成されます。

    GitHubが「Teletype for Atom」リリース。開発者向けエディタ「Atom」でも、複数プログラマが同時にコード編集可能
  • ソフトウェアの互換性と僕らのUser-Agent文字列問題|Rui Ueyama

    いろいろな環境で動くプログラムでは互換性のためにその場しのぎのことをしないといけないことがよくあるけど、歴史が積み重なってくると、アドホックな技の上にアドホックな技が積み上がる喜劇的な状態になることがある。こういう問題は認識するのは簡単だが直すことは誰にもできない。まさに僕がそのような体験をしたのでちょっと説明したい。 僕は仕事としてオープンソースのlldというリンカを書いている。リンカというのはコンパイラが生成したバイナリファイルをつなぎ合わせて最終的な実行ファイルやDLLを作成するプログラムで、知らない人も多いと思うけど、何をコンパイルしても最後にはリンカが動いている。lldは既存プログラムより何倍も速くてビルドが早くなるというので最近は結構人気が高まっていて、FreeBSDなどのいくつかのOSが全面的にスイッチしようとしたり、あるいは大規模プロジェクトChromeや、どうもFire

    ソフトウェアの互換性と僕らのUser-Agent文字列問題|Rui Ueyama
  • 絵文字を支える技術の紹介 - Qiita

    絵文字を扱う上で知っておくと良いかもしれないことをまとめてみました。 Ruiさんの記事を見て、「EmojiはSurrogate Pair以外にも、色々とおもしろい技術があるんですよ〜」思って書いてみました。 なお、書いた人はAndroidの人間なので、特に表記していない場合は主にAndroid上での動作のことを書いてます。 またQiita初めてなので読みにくい部分等がありましてもご容赦ください。 サロゲートペア(Surrogate Pairs) このエントリーを書くきっかけにもなったサロゲートペア。なぜこれが導入されたかの経緯は、Ruiさんのブログエントリーに譲るとして、技術的な解説をします。 サロゲートペアは、U+0000..U+FFFFに収まりきらなかった範囲のUnicodeコードポイント(U+10000..U+10FFFF)を、なんとか16bitでエンコードしようとして導入されました

    絵文字を支える技術の紹介 - Qiita
  • 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama

    UnicodeのUTF-16エンコーディングではほとんどの文字(コードポイント)は2バイトで表現されるが、Unicodeに後から追加収録された文字の多くは4バイトで表現される。4バイト文字がうまく扱えないプログラムというのはわりとよくある。しかし世界中で広く使われるようになった絵文字がよりによって4バイト文字であるせいで、そのような文字が扱えない問題がよいペースで解決に向かいつつある。それについて少し説明してみようと思う。 Unicodeが80年代から90年代初頭にかけてデザインされたときの目標の一つは、Unicodeに含まれる文字数を65536個以内に収めることだった。現代の文章を実用的なレベルで表すためには、漢字などを含めてもそれだけの種類の文字があれば十分だと考えられたのだ。当然これは1文字を2バイトで表すことを念頭に置いていた。つまりコンピュータの揺籃期から当時に至るまで単純に英語

    絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama
    rjge
    rjge 2017/11/13
    “ある意味、ここ数年でコンピュータの歴史上で初めて、英語圏ですらASCIIの範囲内では日常的に文字が足りないという状況になったともいえる” 実害がある状況じゃないとなかなか物事って動かないよね
  • ブラウザの脆弱性とそのインパクト

    セキュリティ・キャンプ全国大会2017の講義資料です(Masato Kinugawaさんとの共同制作です)。

    ブラウザの脆弱性とそのインパクト
  • 正式採用の「Kotlin」で挑戦! 初めてのAndroidアプリ開発 ~ストップウォッチを作ってみよう~ - エンジニアHub|Webエンジニアのキャリアを考える!

    エンジニアHub > 記事一覧 > 正式採用の「Kotlin」で挑戦! 初めてのAndroidアプリ開発 ~ストップウォッチを作ってみよう~ 正式採用の「Kotlin」で挑戦! 初めてのAndroidアプリ開発 ~ストップウォッチを作ってみよう~ Kotlin入門者に向け、手を動かして学べるテキストをお届けします。Kotlinは、2011年7月に登場したモダンなプログラミング言語ですが、Androidアプリの開発言語として、Google I/O 2017で正式採用され、一挙に浸透してきました。稿では、Kotlinの特徴を紹介し、簡単なAndroidアプリとしてストップウォッチを作ってみます。 アプリエンジニアの池田惇です。Google I/O 2017で、Androidの開発言語としてKotilnが正式に採用されました。少し前から業務でもKotlinを採用していたのでとても嬉しいです!

    正式採用の「Kotlin」で挑戦! 初めてのAndroidアプリ開発 ~ストップウォッチを作ってみよう~ - エンジニアHub|Webエンジニアのキャリアを考える!
  • Railsを書き始めたばかりの人に特にオススメ。Rails流のコードの書き方を教えてくれる rails_best_practices を使ってみましょう

    Post author:Aki Asahara Post category:コードレビュー Reading time:3 mins read Post published:2017-07-20 Ruby on Rails を使ったシステム開発では The Rails way や Rails 流と言った開発手法に沿って行うことで高い生産性を保持できるようになります。つまり流儀をきちんと学び、それに従って開発するのが大事です。 そうした流儀、ベストプラクティスをチェックできるツールが rails_best_practices になります。単に文章などで読むだけでなく、コードを静的解析して指摘するツールを使うことで、何が間違っていてどう書くべきなのかがはっきりと分かるようになるでしょう。 rails_best_practices のインストール rails_best_practices のインス

    Railsを書き始めたばかりの人に特にオススメ。Rails流のコードの書き方を教えてくれる rails_best_practices を使ってみましょう
    rjge
    rjge 2017/07/21
    “データベースへのインデックスのつけ忘れや、RailsではロジックはControllerではなくModelに書きましょう、使っていないメソッドや使っていないhelperファイルを削除しましょうといった事”
  • DDDの始め方

    DDDを始めるにあたって実施したことを実例を交えて紹介しています。 内容 - DDDとは何か - なぜDDDをやるのか - 実際にどうやって導入したか

    DDDの始め方
    rjge
    rjge 2017/07/21
    複雑な業務ほどサブドメインを適切に区切るのって難しいと思うんだけど、どういうふうに進めてんだろ。やっぱり関係者と試行錯誤しながらなんだろか。
  • 一日8時間、60日間ペアプロしてみて思った日常ペアプロのコツ. 一日だいたい8時間、今日まであわせて60営業日くらい、固定ペアのペアプログラミン… | by Naohiro Oogatta | Medium

    一日だいたい8時間、今日まであわせて60営業日くらい、固定ペアのペアプログラミングで新規アプリのクライアントからサーバまで開発してみました。チームにエンジニアがちょうど二人だったので。 もはや日常がペアプロです。ペアプロ以外でやってるのは簡単なバグ修正やちょっとした環境整備で、あとはすべて二人で開発しています。ちなみにまだまだ続いています。狂気です。 いい大人が二人集まって狂気を選ぶことになったわけは、成果も出てないしまだ書けません。でも今って、ペアプロやモブプロがブームだって聞きました。それじゃあアホみたいにやってる人間としては黙ってられないです。基的なことはおいといて、とりあえずこれだけはってつくづく思ったのとか、ペアプロを有意義に長く続けるコツをまとめてみました。 (ちゃんとした話は ペアプログラミングの5W1HとFAQ / 5W1H and FAQ of Pair Program

    rjge
    rjge 2017/07/20
    “嬉しいときは嬉しいって言う。悲しいときは悲しいって言う。いま頭が真っ白になってると思ったら、いまおれ頭が真っ白になってるって言う。” 恋人同士のやりとりみたいだなって思った
  • フロントエンド開発の基本知識(2017年夏) - Qiita

    10年ぶりくらいに Web 開発に再デビューしなくてはならなくなった筆者が見た、現代のフロントエンド開発の基知識についてまとめます。フレームワークを使ったシングルページアプリケーション開発が対象です。若干の不正確には目をつむってズバリ言い切るスタイルで書いていきます。 Node.js 現代のフロントエンド開発には Node.js を使います。フロントエンド開発を強力にサポートするいくつものツールが Node.js で実装されているからです。 Web 開発で言語処理系というと、Ruby on Rails のような Web アプリケーションフレームワークを思い浮かべるかもしれません。もちろん Node.js にもそのようなフレームワークはいくつも存在しますが、フロントエンド開発で使うツールはそれとは全然関係ありません。 これらのツールを使うことによって解決するのは、以下のような要望です :

    フロントエンド開発の基本知識(2017年夏) - Qiita
  • ある文系プログラマがテックリードを任されるまでに学んだこと ── 最前線で生き延びる4つの戦略 - エンジニアHub|若手Webエンジニアのキャリアを考える!

    ある文系プログラマがテックリードを任されるまでに学んだこと ── 最前線で生き延びる4つの戦略 コンピュータサイエンスの専門教育を受けず、20代半ばで格的なプログラミングを始めた文系エンジニアが、いかに学び、考え、生き延びてきたのかを伝えます。 こんにちは。白山(@fushiroyama)と申します。現在は新聞社のデジタル事業部署で、モバイルアプリ開発のテックリードをしています。 自分のエンジニア人生を振り返ると、これまでの道のりは決して平坦ではありませんでした。コンピュータサイエンスの専門教育を受けず、格的にプログラミングを始めた年齢も23、4歳と決して早くありません。 そんな自分が、いかにして開発チームのリーダーを任せてもらえるまでになったか? 考えてみると、次の4つの戦略で生き延びてきたようです。 自分だけの居場所を見つける 必要な知識を効率的に取捨選択する 他のエンジニアに差を

    ある文系プログラマがテックリードを任されるまでに学んだこと ── 最前線で生き延びる4つの戦略 - エンジニアHub|若手Webエンジニアのキャリアを考える!
    rjge
    rjge 2017/07/04
    “一晩のうちに覆すような魔法は、残念ながら存在しません。” ”体系的な知識は、学んだそばから役に立つような代物ではないかもしれませんが、技術者の基礎体力としていつか自分を助けてくれます。”
  • 「Open Source Friday」をGitHubが提唱。金曜日は自分の好きなオープンソースに貢献しよう - Publickey

    「Open Source Friday」をGitHubが提唱。金曜日は自分の好きなオープンソースに貢献しよう これはもともとGitHub社内で行われていた運動を広げ、誰でも参加しやすいようにしたもの。 下記はOpen Source Fridayの提唱を紹介する同社ブログの記事「Contribute on Open Source Friday · GitHub」からの引用です。 Over the last three years, we've encouraged GitHub employees to take time at least every fourth Friday to work on open source and share what we're working on with each other. Open Source Friday has grown from t

    「Open Source Friday」をGitHubが提唱。金曜日は自分の好きなオープンソースに貢献しよう - Publickey
    rjge
    rjge 2017/07/04
    Github提唱のプレミアムなフライデーだ
  • コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD

    私は時折、コーディングに対する考え方を変えさせられるような、従来と非常に異なるプログラミング言語に出会います。記事では、その中でも特に気に入っている発見をいくつかご紹介したいと思います。 これは、先賢による「関数型プログラミングは世界を変える!」的な投稿ではありません。記事で挙げるのは、もっと「知る人ぞ知る」的なリストです。多くの読者の方にとって、以下の言語やパラダイムは聞いたことのないものが大半だと思いますので、私が経験したように、これらの新しい概念を学ぶ楽しさを感じていただければ幸いです。 注:私は以下の言語の多くに関して最低限の経験しかありません。その発想に引き込まれたのであって、専門的知識は持ち合わせていないため、訂正すべき点や誤りがあればどうぞご指摘ください。また、記事で取り上げていない新しいパラダイムや概念に出会った方は、ぜひお知らせください。 最新情報:記事が r/p

    コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD
    rjge
    rjge 2017/06/28
    記号プログラミングとか知識ベースプログラミングとか面白そう