タグ

ブックマーク / medium.com (41)

  • ヒープについてわかりやすく解説してみた – Yasufumi Taniguchi – Medium

    的なデータ構造であるヒープについて、概要、計算量と実装、そして最もシンプルな応用であるヒープソートを紹介します。MITが講義や資料を公開しているMIT OpenCourseWareのアルゴリズムとデータ構造の講義 が非常にわかりやすかったので、その内容に沿ってまとめました。この記事ではHeaps and Heap Sortの内容を以下の順序で解説します。 ヒープの概要ヒープの表現ヒープの構築ヒープの計算量ヒープの実装ヒープソート1. ヒープの概要ヒープ (heap) は優先度付きキュー (priority queue) の実装の1つです。優先度付きキューは集合 (set) を扱うデータ型で、集合に含まれる要素が何らかの優先度 (priority) 順に取り出されるという特徴を持っています。学会のポスター発表を回るときや、旅行先での観光地巡りでは、優先度に基づいて要素を取り出すことが重要

    ヒープについてわかりやすく解説してみた – Yasufumi Taniguchi – Medium
  • 超巨大高性能モデルGPT-3の到達点とその限界. この記事では、超巨大言語モデルGPT-3の技術的な解説、GPT-3達成したことと… | by akira | Jul, 2020 | Medium

    この記事についてこの記事ではGPT-3[1]の解説をします。内容のサマリは以下の通りです。 GPT-3の前身であるGPT-2では、巨大なデータセット+巨大なネットワークで言語モデルを構築し、各タスクで学習させなくても良い結果が得られた。GPT-3では、さらに巨大なデータセット+さらに巨大なネットワークで言語モデルを構築し、数十のサンプルを見せると凄く良い結果が得られた一方、様々なタスクに言語モデルのスケールアップのみで対応することへの限界が見えてきた。人種、性別、宗教などへの偏見の問題や、悪用に対する課題もある。この記事の流れは以下の通りです。 Transformer, GPT-2の説明GPT-3のコンセプトと技術的な解説GPT-3ので上手くいくタスクGPT-3で上手くいかないタスク偏見や悪用への見解 Transformerまず、GPT-3の前身となったGPT-2に入る前に、その中に使われ

    超巨大高性能モデルGPT-3の到達点とその限界. この記事では、超巨大言語モデルGPT-3の技術的な解説、GPT-3達成したことと… | by akira | Jul, 2020 | Medium
  • 日本もハーバード大のコロナ対策案を大至急検討すべきだ

    初版:2020/4/26 9:00公開 Ver2.0: 2020/4/26 21:00 対策会議でのIT活用検討について追記しました。 Ver2.1: 2020/4/27 13:20 タイトルの誤記を修正しました。 2020/4/20付でバーバード大のCenter of Ethics (倫理センター)が、”Roadmap to Pandemic Resilience”というタイトルのコロナ封込めプランを発表した。 彼らのプランは、ロックフェラー財団の支援を受け、経済学、公衆衛生、技術、倫理の専門家が集まって立案したもので、今までのプランにない具体性と実行可能性をもっているプランだと感じている。以下にそのプランの概要と日における導入検討における検討ポイントを説明しておきたい。 なお、この”Roadmap to Pandemic Resilience”だが、当然ながらレポートは英語である。た

    日本もハーバード大のコロナ対策案を大至急検討すべきだ
  • Pythonのアンダースコア( _ )を使いこなそう!

    Pythonは一番書きやすいプログラミング言語と知られ、多くの人の第二外国語(英語に次ぎ)です。でもGithubGitlabで他人のコードを参照した時や自分でclassを書いてる時、こういう疑問はあったでしょうか: 「def __init__(self): の__init__のアンダースコアは何故二つなのか?」 「def _func(x): と def func(x): とdef func_(x): に違いはあるのか?」 「y, _ = func(x)のアンダースコアは何か?」 そんな色んな所で使われてるアンダースコアの使い方を、今回整理して説明してみました! アンダースコアの使い場所Return値を無視する。関数の名付けで使い方を区別する。数字を読みやすくする。インタプリタで最後に表示された値を代表する。以上4種類の状況でアンダースコアを使いこなす事により、読みやすいpythonicな

    Pythonのアンダースコア( _ )を使いこなそう!
  • 「Infrastructure as Codeに疲れたので、僕たちが本来やりたかったことを整理する」を1年掛けて整理した

    こんにちわ。rwle1212です。 記事は JAWS Days 2020 で話す予定でしたが、昨今の事情によりオンライン開催となったため、登壇予定の内容を記事にしたものになります。 登壇していれば諸般の事情により左手首を骨折したネタが使えたのですが、ブログでは伝わらないので非常に残念な思いをしております。という話はどうでも良いので題に入ります。 50分の登壇内容なので少々長くなりますが、お付き合いください。 JAWS Days 2019で登壇した内容の振り返り昨年の JAWS Days 2019 で「Infrastructure as Codeに疲れたので、僕たちが来やりたかったことを整理する」という内容で登壇しました。 まずは上のリンクに添付されているスライドを5分位で読めると思うので一読頂いて、下の文に進んで頂ければと思います。 そもそもInfrastructure as Cod

  • ミルクボーイがアジャイルを説明したら

    序章駒場「最近、うちのおかんがシステム開発に興味を持っててなぁ、名前は忘れたらしいんやけど、迅速に開発できて、仕様変更にも対応できる、素晴らしい開発手法を取り入れてるところがあるらしいんやわ〜。」 内海「そんなもんアジャイルに決まってるがなぁ〜! 今やシステム開発と言えば、アジャイル。素早く変化に対応できるってゆーのが特徴なんよ。そもそも名前が “迅速” を意味する英語やねんから、アジャイルに決まってるがなぁ〜。」 チームの人数駒場「最初、オレもそう思たんやけどな、なんでも 40 人ぐらいで開発してるらしいんやわぁ〜。」 内海「ほなぁ、アジャイルちゃうかぁ…。アジャイルでは 5〜9 人ぐらいが推奨されてるからなぁ〜。40 人もおったら、とてもやないけど、コミュニケーションが成立するとは思われへんなぁ〜。効率の悪い伝言ゲームになるのは目に見えてるからなぁ〜。おかん、他にもなんか言うてなかった

  • How To Build a Memory Card Game Using Classes and Protocols in Swift

  • エンジニアのコーチング by Kent Beck

    以下は、Kent Beckによる「Coaching Engineers」の翻訳です。人の許可を得て掲載します。tl;dr 有償でエンジニアのコーチをします。詳細と待ち時間についてはお問い合わせください。 物語の結末2018年2月にFacebookを退職する直前に、トップ1%のエンジニア(現在および過去にレベルE7以上だったエンジニア)のオフサイトミーティングに参加しました。海辺のリゾートでバスを降りると、私がコーチをしていた生徒が複数いることに気づきました。そのうち何人かは昇進したことを知っていましたが、その他の生徒には驚かされました。 私にとって、胸がはちきれるほどの誇り高き瞬間でした。私は、生徒たちと関係を築き、彼らの成功のために心の底から尽力してきました。多くの生徒らが成功を収めたことを目の当たりにして、私は大いに驚き、嬉しくなりました。物語はさらに続きます。 Facebookの上

    エンジニアのコーチング by Kent Beck
  • データ指向アプリケーションデザイン

    AmazonでMartin Kleppmann, 斉藤 太郎, 玉川 竜司のデータ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理。アマゾンならポイント還元が多数。Martin Kleppmann… 手軽に扱えるデータの量や種類が増える一方、CPUの性能はムーアの法則通りには成長しなくなり、大規模データ処理では、多数のマシンを活用する分散処理が欠かせなくなってきました。クラウドの普及とともに多数のマシンを自ら調達せずとも分散システムを構築できるようにもなっています。 しかし驚くべきことに、今までこの分野に入門するための定番の書籍がありませんでした。分散処理にデータ処理が加わる融合分野である上、オープンソースプロジェクトの進化も速く、専門家同士でも共通の理解を構築するのが非常に難しかった分野です。このを上手に使うと、既存のOSSプロジェクトの位置付けや、

    データ指向アプリケーションデザイン
  • Google Apps Script は何が強くてどんなときに使うべきかプラクティスをまとめてみた

    はじめにGoogle Apps Script は無料で色んなことが実現できるため、ついつい「全て GAS でやっちゃおう」みたいな話になりがちです。Google Apps Script も万能ではないので、強み・弱みを理解した上で他の選択肢と比較して使うのをお勧めします。 Google Apps Script のプロジェクトを 2–30 個作ってきた中で、自分なりのプラクティスをまとめてみます。 この内容は Cloud Next ’18 in Tokyo で登壇したときの内容を含んでいます。この登壇から半年以上経ったのでアップデート部分も以下にまとめています。 Google Apps Script の強み・弱みまず、強みと弱みについてまとめてみます。 強み 1. Google Apps の API を簡単に呼び出すことができる一番の強みはこれだと思います。Google Apps Scrip

    Google Apps Script は何が強くてどんなときに使うべきかプラクティスをまとめてみた
  • Airbnbが教えてくれたスタートアップをスケールさせるための7つの教訓

    In 2012, shortly after Airbnb acquired our startup, I overheard one of the co-founders (Joe Gebbia) giving guidance to… 彼がやっていたスタートアップがAirbnbに買収されてから7年間、Airbnbでプロダクトをスケールさせた経験から得られた7つの教訓を書いている。スタートアップ関連のブログは数多くあれど、これは最近読んだ中でもずば抜けて秀逸。ここに書かれていることはどんなスタートアップにもあてはまるだけではなく、コーポレートでイノベーションを起こそうとしている人、新規事業に取り組みたい人にも役に立つヒントが満載である。ここで紹介されている7つのポイントを簡単に取り上げるが、ぜひ時間をかけてゆっくり全部を原文で、さらにはそこからリンクされている記事も良記事ばかりなのでそち

    Airbnbが教えてくれたスタートアップをスケールさせるための7つの教訓
  • 不確実性と道標としてのコンセプト

    DMMに転職して以降、キャリアについて話してほしいという登壇依頼が多く似た話をする機会が数回あったのですが、その中でもコンセプチュアルスキルというか不確実性との立ち向かい方について先日社内に投稿していた内容をベースにこちらにも記事化しておきます。(ちなみにペパボのあんちぽさんからのリクエストが記事化のきっかけです。) コンセプチュアルスキルキャリアや長期の目標を検討するとき、そこには 資産(現状自分が持っているスキル・知識・ツールなどのリソース)スコープ環境要素が制約条件として存在しています。 自分の持ち物については理解しやすいですね。今自分が置かれている状況で使えるものを考えてみると、そこにはスキルや資、時間、知識など様々な自分の資産が存在しています。「今ここ」を検討する上で自分の資産を知るということは分かりやすい要素です。資産を無視した状態で目標を検討しても、その目標を達成することは

    不確実性と道標としてのコンセプト
  • プログラミング教育は割と大丈夫かもしれない — 但しChromeが入れられればね。

    先ほど、地元の小学校の6年生の全児童を対象に、プログラミングの「体験」授業をしてきた。受験シーズンで欠席がちらほらあったが、3クラスで合計90人ほどが参加した。放課後ではなく、正規の授業枠である。 CoderDojo仲間の田中さん。一緒に、授業してきた帰り道。対象とした小学校世田谷区の公立校で、今年度利用を開始した新校舎のため、インフラは恵まれている。渋谷区のように児童全員にPCがあるほどではないが、無線LANの速度などは十分と言えそうだ。 世田谷区の公立小学校Windows タブレットが全校で40台ほどWiFiの速度が15~50Mbps6年生のスマートフォンの普及率はかなり高そう (8~9割か) ※英語の分かる児童が1割くらい ※実は私の母校でもある。’90年当時、FM TOWNSが2台放置されていて、よく遊んでいたのを覚えている。30年経ってタブレットに替わり、一般教室でも使えるように

    プログラミング教育は割と大丈夫かもしれない — 但しChromeが入れられればね。
  • 「良いエンジニア」を言語化してみました

    「VOYAGE GROUP エンジニアの公開ガチ評価会」に参加して、最近考えていた「良いエンジニア」像がかなり良い感じだと思うようになりました。 「ガチ評価会」自体の内容は他の方のブログに譲るとして、「ガチ評価会」で聞けなかった部分、つまり「普段だったら『ビジネス的側面からの技術投資判断』とかも聞くんだけど」と言っていたところが、まさに聞きたいところだったのでニヤッとしました。聞けなくて残念♪ 妥協ない挑戦元々ピクシブの技術力評価においては、「最近やった妥協ない挑戦は何ですか?」というのをキーワードにやってました。 解決すべき課題に対して、どういう背景があって、どういう事前調査をして、どういう実装をして、どう考察するか、というところまでをきちんと考えて仕事することに成長があるんだよ、というメッセージ性です。 そんなこと言っても普段は妥協ばっかりですって?いえいえ、相反する選択肢の中で、何を

    「良いエンジニア」を言語化してみました
  • 心理的安全性が高くアジャイルな組織設計

    心理的安全性の高いチームを作るためにサーバントマネージャーに徹する話などを聞くことがありますが、なんか大変そうだなーと考えてたら、これは組織設計の課題だと思ったわけです。 サーバントマネージャーは過渡期と割り切って、来の仕事である課題解決に時間を使えるようにしていったほうがいいです。 心理的安全性とは他者の反応に怯えたり羞恥心を感じることなく、自然体の自分を曝け出すことのできる環境や雰囲気のことを指します。 だそうです。失敗するかも…と早めに言えることはアジャイルな組織には必須です。 心理的安全性は1人のメンバーが日常的にコミュニケーションする相手との視座、視野、視点が近いと高くなると仮説を立ててみました。 視座、視野、視点の図 https://tech.drecom.co.jp/viewpoint-of-being-leader/視座が離れてる例:リーダーが超ベテランでメンバーが超若い

    心理的安全性が高くアジャイルな組織設計
  • プロダクトマネージャーは、自分達が「頭がいい」ことを理解しなければならない – Teruhisa Fukumoto – Medium

    みなさんこんにちは。 チャットボット開発のスタートアップでプロダクトマネージャー(以下PM)兼エンジニアをやっている福です。 先週11月6日~7日にかけて、プロダクトマネージャーカンファレンス2018(pmconfjp)が行われましたね。僕も参加してきましたが、「PMという職種が市民権を得てきている」というのが、当日の盛況ぶりから伝わってきました。 さて、今回はカンファレンスで色々な方と接して改めて感じた「PM」という人種について(偉そうに)語っていきたいと思います。例によって、この記事は僕の妄想に基づいた怪文書となっています。 「頭がいい」とは今回もタイトルを刺激的にしてみたわけですが、僕はPMの地位を不当に上げるために「頭がいい」という表現を使ったわけではありません。ましてや、PM上げをすることで遠回しに「オレは頭がいいぞ」という主張がしたいわけでもありません。 僕はPMの「頭の良さ

    プロダクトマネージャーは、自分達が「頭がいい」ことを理解しなければならない – Teruhisa Fukumoto – Medium
  • 「現場のためのSwift4」を読んだ

    Amazonで澤田孝志, 今村哲也, 染谷昌利の現場のためのSwift4 Swift4.1+Xcode9.3対応。アマゾンならポイント還元が多数。澤田孝志, 今村哲也… 「Swift4」というより「現場のための」タイトルから受ける印象としては「Swift初心者はSwiftという言語について理解できる・Swift中級者は言語のバージョンが3→4にアップデートされたけどどうなったのかキャッチアップできる」みたいな感じだったのですが、中身はもっと広範囲に及ぶ、挑戦的なでした。主にフォーカスされているのは開発工程全体。それゆえ、の袖には👈こんなふうに書かれています。 なお、こので言う「開発」の対象はiOSアプリです。そういう意味でも、「Swift4」というタイトルは少しミスリーディングかもしれませんね。 対象読者層広い領域をカバーしているだけあって、多様な読者層を対象に書かれている

    「現場のためのSwift4」を読んだ
  • 30代から始めるYouTube入門

    YouTube ≠ ヒカキンたぶん、YouTubeは「ネタ動画」のイメージが強すぎる。「ヒカキン」に代表されるユーチューバーが、目立ってしまうせいだろうか。実際には、テクノロジー旅行料理、建築ほか、あらゆる分野の動画があるにも関わらず、この誤解が「大人の」ユーザを遠ざけているように思えてならない。 YouTubeのトップページがこれでは、手が出せないのも分かる。「煩いTVから離れたのに、わざわざYouTubeなんか?」と切って捨ててしまうのは、あまりにもったいない。実は、YouTubeには30でも60代でも満足するコンテンツで溢れている。誇張なく、「Nスぺ」並みのコンテンツがごろごろ。 まずは一つ、(ちょっとNスペ路線ではないが) 私をYouTubeに引き込んでくれた動画を紹介しよう。Peaceful Cuisine (1.3M)は料理系のひとつ。日人のチャネルながら、海外アクセスも

    30代から始めるYouTube入門
  • https://link.medium.com/1jsAtPLA6T

    デザイン思考は、問題を探索・解決するための方法です。リーンは、私たちの信念を試し、適切な成果につなげる方法を学ぶためのフレームワークです。アジャイルは、ソフトウェアの変化していく状況に適応するための方法です。 デザイン思考は、能力と学習に関するものです。スタンフォードd.schoolのCarissa Carter主任は、デザイナーを高める能力について、素晴らしい記事を書いています。たとえば、曖昧さ、共感的学習、統合、実験などが、その能力として挙げられています。意味を生み出し、問題の枠組みを設定し、潜在的な解決策を探索する、デザイナーの能力が重要なのです。 『誰のためのデザイン?』の著者であるドナルド・ノーマンは「デザイナーは最初のアイデアに満足しない」と述べています。あなたも考えてみてください。最初のアイデアが最高のアイデアだったことはありますか?意味や新しいアイデアが生まれるのは、物事を

    https://link.medium.com/1jsAtPLA6T
  • プログラミングを教えるときの10のポイント (という論文の紹介)

    1. ギークの遺伝子なんてないことを心に留めようよく、「プログラミングには得意不得意がある(some kids get it, and some kids don’t)」とか、さらには「プログラミングには向いていない子がいる」とか聞きますね。 大学のコンピュータサイエンスの授業の成績分布が、とても良く理解できる生徒と何もわかっていない生徒にくっきりわかれる、という話も聞きます。当でしょうか?Patitsasらの最新の研究によると、実際にはそんなことはなく、くっきりと成績の分布が分れてしまったコンピュータサイエンス入門のクラスは、5.8%に過ぎなかったそうです。 この論文では、「プログラミングには得意不得意がある」という迷信は、プログラミングを学びだしたときに躓きがちな生徒でなく(意識的か無意識的かにかかわらず)、スムーズに学ぶ生徒の方へ教える時間や熱意を費やすことにつながり、ひいてはコン

    プログラミングを教えるときの10のポイント (という論文の紹介)