並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 43181件

新着順 人気順

STDの検索結果1 - 40 件 / 43181件

  • 機械学習を使って東京23区のお買い得賃貸物件を探してみた - データで見る世界

    さて、改めて今回の目的を確認しておくと、機械学習を使って東京都23区のお買い得賃貸物件を発見しよう、というものです。前回までの記事で、お買い得賃貸物件を発見するためのデータを収集し、分析にかけられるよう前処理してきました。 www.analyze-world.com www.analyze-world.com 今回の記事では、いよいよ機械学習を使って分析していきましょう。前回まではPythonを使っていましたが、この分析ではRを用いています。なお、コードはGitHub(https://github.com/ShoKosaka/Suumo)に上げておきますので興味ある方は参照ください。 最初に、データの中身をざっくり見ていきます。具体的には、分析のキーになるポイントをグラフにしながら、賃貸物件の現状や変数同士の関係性を把握していきます。 データ探索 まず、23区の中でどこが物件数が多いのかを

      機械学習を使って東京23区のお買い得賃貸物件を探してみた - データで見る世界
    • こうしてGoogleに入社した(kumagi編) - Software Transactional Memo

      Googleオフィスの窓からの眺めをGoogle Photoが自動加工したもの TL;DR AtCoderやろうぜ Googleの(僕から見て)偉い人が立て続けにブログを書いており ctrl-x-s.blog hoge.blog ここ数件の僕のブログへの反響を読んでも「Googlerだから特別」みたいな意見が散見され、入社へのハードルが変に高く見られてしまっている気がするので、僕がGoogleに入社する準備として取り組んでいた事とそのレベルを紹介する。程度の低さに安心して欲しい。 英語 英語の論文は興味の赴くままに読んでいたため読むことに関してはあまり苦手意識は無いものの、絶対的な英語力に関して言うとTOEIC500点というスコアが端的に表している。これがどれぐらいかというと、得意分野から外れると長文を読む速度と精度がガタ落ちし、リスニングも結構な単語を聞き落とし、文脈からの推測と辛うじて

        こうしてGoogleに入社した(kumagi編) - Software Transactional Memo
      • 因果関係がないのに相関関係があらわれる4つのケースをまとめてみたよ(質問テンプレート付き) - Take a Risk:林岳彦の研究メモ

        どもっす。林岳彦です。ファミコンソフトの中で一番好きなのは『ソロモンの鍵』です*1。 さて。 今回は、因果関係と相関関係について書いていきたいと思います。「因果関係と相関関係は違う」というのはみなさまご存知かと思われますが、そこをまともに論じていくとけっこう入り組んだ議論となります。 「そもそも因果とは」とか「因果は不可知なのか」のような点について論じるとヒュームから分析哲学(様相論理)へと語る流れ(ここのスライド前半参照)になりますし、統計学的に因果をフォーマルに扱おうとするとRubinの潜在反応モデルやPearlのdo演算子やバックドア基準(ここのスライド後半参照)の説明が必要になってきます。 その辺りのガッツリした説明も徐々に書いていきたいとは考えておりますが(予告)、まあ、その辺りをいちどきに説明しようというのは正直なかなか大変です。 なので今回は、あまり細かくて遭難しそうな話には

          因果関係がないのに相関関係があらわれる4つのケースをまとめてみたよ(質問テンプレート付き) - Take a Risk:林岳彦の研究メモ
        • 2つのExcelファイルの差分を比較するツール - 蒼の王座・裏口

          Excel 2013では、標準で2つのExcelファイルを比較して、差分を表示するツールが同梱されていますので、使用方法を説明します。 1.ファイルメニューを選択します。 2.オプションを選択します。 3.アドインを選択します。 4.管理から「COMアドイン」を選択します。 5.設定ボタンをクリックします。 6.Inquireにチェックを入れ、OKボタンをクリックします。 7.INQUIREタブを選択します。 8.比較したいExcelファイルをあらかじめ2つ開いておきます。 9.ファイルの比較を選択します。 10.ファイルを比較します。比較ボタンをクリックします。 11.結果が表示されます。

            2つのExcelファイルの差分を比較するツール - 蒼の王座・裏口
          • 江添亮のC++入門

            序 本書はプログラミングの経験はあるがC++は知らない読者を対象にしたC++を学ぶための本である。本書はすでに学んだことのみを使って次の知識を説明する手法で書かれた。C++コンパイラーをC++で書く場合、C++コンパイラーのソースコードをコンパイルする最初のC++コンパイラーをどうするかというブートストラップ問題がある。本書はいわばC++における知識のブートストラップを目指した本だ。これにより読者は本を先頭から読んでいけば、まだ学んでいない概念が突如として無説明のまま使われて混乱することなく読み進むことができるだろう。 C++知識のブートストラップを意識した入門書の執筆はなかなかに難しかった。ある機能Xを教えたいが、そのためには機能Yを知っていなければならず、機能Yを理解するためには機能Zの理解が必要といった具合に、C++の機能の依存関係の解決をしなければならなかったからだ。著者自身も苦し

            • Webデータ分析&データサイエンスで役立つ統計学・機械学習系の分析手法10選 - 銀座で働くデータサイエンティストのブログ

              追記 2016年3月に以下の記事によってこの内容はupdateされています。今後はそちらをお読み下さい。 主に自分向けのまとめという意味合いが強いんですが(笑)、僕が実際に2013年6月現在webデータ分析&データサイエンスの実務でツール・ライブラリ・パッケージを利用しているものに限って、統計学・機械学習系の分析手法を10個挙げて紹介してみようと思います。 追記 回帰分析(特に線形重回帰分析) 独立性の検定(カイ二乗検定・フィッシャーの正確確率検定) 主成分分析(PCA) / 因子分析 クラスタリング 決定木 / 回帰木 サポートベクターマシン(SVM) ロジスティック回帰 ランダムフォレスト アソシエーション分析(バスケット分析・相関ルール抽出) 計量時系列分析 おわりに おまけ1:「素性ベクトル+分類ラベル」なるデータ前処理 おまけ2:グラフ理論*10 {igraph}パッケージでグラ

                Webデータ分析&データサイエンスで役立つ統計学・機械学習系の分析手法10選 - 銀座で働くデータサイエンティストのブログ
              • 健康になろうと自転車通勤を始めたら、逆に不健康になった話 - 今日学んだこと

                結論から先に書くと、横紋筋融解症なる病気になりました 自転車を買ったのです! 少し前に引っ越したんですが、その理由が「駅前に住んでると、夜中まで酔っ払いがうるせえ!」だったので、できるだけ駅から遠いところに引っ越したんですよ。 で、引っ越したのが都内なのに駅まで4キロくらいかかるという超絶立地な場所。静寂を求めて引っ越したのにお隣のギシアンが毎晩聞こえてくる環境だったのは誤算でしたが(窓閉めれば聞こえないのが救い)。 そんな環境なので自転車が必要となり、毎日使うものなら少しは良いものをと購入したのが写真のクロスバイクです。 予算諸々込みで8万円でと自転車屋で伝え、オススメしてもらったこちらのTREK FX 7.2が我が愛車となりました。 お高いチャリすごい! 僕からしたら相当お高いチャリですが、この業界(?)の中ではエントリーモデル。だけど僕はそんなこと知りません。今まで乗ってきた自転車と

                  健康になろうと自転車通勤を始めたら、逆に不健康になった話 - 今日学んだこと
                • 2016年、C言語はどう書くべきか (前編) | POSTD

                  (訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「本文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり

                    2016年、C言語はどう書くべきか (前編) | POSTD
                  • プロフェッショナルのデザイナーがよく使う21種類のフォント

                    ウェブデザインの世界においてどのようなフォントが好まれて使われているのかを調査した結果、21種類のフォントが選び出されたそうです。どれもこれも使い勝手の良さそうな、見やすくわかりやすい、それでいてインパクトのある英文フォントばかりなので、覚えておいて損はありません。 プロフェッショナルのデザイナーによく使われている21種類のフォント一覧は以下から。 21 Most Used Fonts By Professional Designers | instantShift Helvetica Frutiger Myriad Pro Avenir Std Trajan Optima Std ITC Franklin Gothic Std Futura Bickham Script Univers Eurostile Interstate Trade Gothic Gill Sans Warnock

                      プロフェッショナルのデザイナーがよく使う21種類のフォント
                    • プログラムがメモリをどう使うかを理解する(1)

                      この記事の狙い この記事は、端的に言えば この図が言わんとしていることを理解できるようになるための解説を目指しています。 昨今のプログラミング環境において、メモリの管理方法やその実態は、詳細を知らずとも目的を達成できるようになっています。といっても、実際にはメモリは無尽蔵に使えません。制約が厳しい環境下で動かさねばならないプログラムもありますし、多少潤沢に使える環境であっても、無駄に浪費するよりは、必要最低限のメモリで効率よく動作するプログラムの方が、多くの場面においては良いプログラムと言えるでしょう。 メモリのことなど知らなくてもプログラムを書けるのは一つの理想ではありますが、現実的にはその裏に隠されている(抽象化されている)仕組みを知っておいたほうが有利です。また、昨今のレトロゲームにおけるタイムアタックで駆使されるメモリ書き換えのテクニックなども、何故そういったことが可能なのかを知る

                        プログラムがメモリをどう使うかを理解する(1)
                      • はじめに - アルゴリズムとデータ構造大全

                        はじめに このドキュメントは,主に競技プログラミングで出題される問題を解く際に利用できるアルゴリズムやデータ構造をまとめたものです.特定の問題にはあまりフォーカスしないため,問題を解く際の考察の仕方等の内容はありません.詳しく,正確に,分かりやすく書いていこうと思っています. このドキュメントは執筆途中です. 想定する読者 C++を用いたプログラミングに慣れている方を読者として想定しており,C++言語の仕様や,文法にはあまり触れません.また,計算量という用語についても説明しません.ただし,償却計算量など,計算量の見積もりが複雑なものについては必要に応じて説明します. コードについて このドキュメントで登場するコードは,可読性向上のため,以下のようなコードがファイルの先頭に記述してあることを前提としています.また,適切な問題を用いてコードの検証がなされている場合は,コード周辺にのように,検証

                        • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

                          UNIXの基本的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 本稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。本稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

                            diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
                          • C言語のポインタはメモリを想像できれば理解できる | 100% Pure NEET

                            最近、C言語のポインタは難しいって話をプライベートでして、そのときにした説明をまとめてみた。 コンピュータのメモリがどのようになっているか想像する これはHex Fiendというソフトを使ってあるファイルのHexダンプを見たものだけど、コンピュータのメモリも同じような構造になっているのでこれを使う。類似のソフトはHex Editorなどで検索すれば出てくるだろう。 コンピュータのメモリはこうしたずらずらと数値が記録されたマス目の連続のような構造をしている。Hex Editorなのでこれは16進数で表現されている。1バイトは16進数2桁で表現される。Hex Editorでは普通は1バイトごと、あるいは4バイトごとに区切って表示する。このエディタは一区画ごとに8桁の16進数があるので4バイトごと。 ポインタを使うのに重要なのはたぶん、こうしたメモリの内容を頭の中で思い浮かべることができることだ

                            • 制御工学の基礎あれこれ

                              In English ■初めに PID制御や現代制御などの制御工学(理論)の基礎や、制御工学に必要な物理、数学、ツール等について説明します。 私のプロフィールを簡単に説明しますと、私は自動車関連企業に勤めており、そこで日々制御工学(理論)を利用しながら設計開発をしております。 ここで説明する内容は、制御理論を扱い実際にモノに実装していく上で最低限理解しておいた方が良い内容と思います。 少しでも皆様の役に立ち、学力の底上げに貢献し、ひいては日本の発展、ひいては人類の発展に貢献できたらこの上ない喜びです。 内容を説明する際に次のことを心掛けています。 ① できるだけシンプルに。より少ない文章で内容を的確に説明する。 ② 1ページの記事のボリュームを多くし過ぎない ③ 文字のフォントは大きすぎず、行間を開けすぎない。(画面スクロールが頻繁になると情報が伝わりづらくなる) ④ 内容の説明とは直接関

                              • Rustは何が新しいのか(基本的な言語機能の紹介) - いもす研

                                Rust は、Firefox を開発する Mozilla が開発し、次世代ブラウザの開発に使っているプログラミング言語です。借用検査という概念を導入することによりメモリ安全およびデータ競合安全をコンパイラが保証する言語であり、2015年中頃の安定版のリリースあたりから次第に注目を集めるようになりました。 メモリ安全とは、メモリの範囲外アクセスや二重解放、ヌル参照、未初期化領域へのアクセスがない状態を表します。ただし、Rust の言うメモリ安全とは、メモリリークをしないことを保証するものではありません。 データ競合安全とは、あるひとつのオブジェクトに対しての読み込みおよび書き込みのが同時に起き結果が不定になる状態にならないことを表します。競合状態とは異なります。 無名関数という概念を様々な言語が次々と導入したように、プログラミング言語は相互に影響を及ぼし徐々に変化しています。Rust は「寿

                                • パーティションのリサイズ・作成・コピー・変換・完全消去などが簡単にできるフリーソフト「Partition Wizard Home Edition」

                                  Windows2000/XP/Vista/Windows7の32ビット版と64ビット版で動作し、パーティションの作成・削除・フォーマット・コピーなどが可能なのがこのフリーソフト「Partition Wizard Home Edition」です。 RAIDもサポートしており、2TB以上のパーティションサイズを認識可能、パーティションの復元もでき、さらにはFATをNTFSに変換、隠しパーティションの作成、不可視になっている隠しパーティションを見えるように変更するといったことも可能です。ほかにも、各種復元ソフトでデータを元に戻されないようにするため、全セクタを0や1といったパターンで埋め尽くして特定パーティション内のデータを容易に復元できないようにしたり、さらには米国国防総省規格(DoD:Department Of Defense)によって完膚無きまでに完全消去して絶対に復元できないようにすると

                                    パーティションのリサイズ・作成・コピー・変換・完全消去などが簡単にできるフリーソフト「Partition Wizard Home Edition」
                                  • できるだけ嘘を書かずに計算量やオーダーの説明をしようとした記事 - えびちゃんの日記

                                    計算量についてのお話です。対象は、プログラミング経験はあるが計算量のことを知らない初心者から、計算量のことを知っているつもりになっている中級者くらいです。 数式を見たくない人にとっては読むのが大変かもですが、深呼吸しつつ落ちついて読んでくれるとうれしいです。 それから、この記事が自分には合わないな〜と思ったときは、(別の記事を Qiita とかで検索するよりも)この記事の一番下の 参考文献 にある本を読むことをおすすめします。Amazon の試し読みで無料で読めます*1。 TL; DR 関数の増加度合いのことをオーダーと呼ぶよ 計算量は、入力サイズ(など)を受け取ってアルゴリズムの計算回数(など)を返す関数だよ その関数のオーダーについての議論がよく行われるよ オーダーを上から抑えるときは \(O\)、下から抑えるときは \(\Omega\) を使うよ オーダーを上下両方から抑えたいときは

                                      できるだけ嘘を書かずに計算量やオーダーの説明をしようとした記事 - えびちゃんの日記
                                    • 世界各地で発生したランサムウェア WannaCry の感染事案についてまとめてみた - piyolog

                                      2017年5月12日頃から、世界各地でランサムウェアに感染する被害が相次いで報告されています。ランサムウェアはWannaCry等と名前が付けられているもので、これに感染する原因として、Windowsの脆弱性、及びその脆弱性を用いたNSAが開発したツールが関係している可能性があると各国のCSIRTやセキュリティベンダが注意喚起等を公開しています。Microsoftは今回の感染事案を受け、WindowsXPなどのサポートが切れたOSを対象とした緊急の更新プログラムも公開しました。 ここではこの世界中で発生したランサムウェア WannaCry の感染被害などについてまとめます。 インシデントタイムライン 以下は主に国内の関連事象を整理したもの。 日時 出来事 2016年9月16日 MicrosoftがSMBv1の使用停止を強く推奨する記事を公開。 2017年1月16日 US-CERTがSMBv1

                                        世界各地で発生したランサムウェア WannaCry の感染事案についてまとめてみた - piyolog
                                      • アルゴリズムの世界地図 - Qiita

                                        0. アルゴリズムとは? まず、アルゴリズムとは何かを説明します。(0 節の説明はスライド「50 分で学ぶアルゴリズム」 の説明を参考にして書きました) さて、次の問題を考えてみましょう。 問題: 1 + 2 + 3 + … + 100 の値を計算してください。 単純な方法として、式の通りに 1 つずつ足していく方法が考えられます。すると、以下の図のように答えが計算されることになります。 これで答え 5050 が正しく求まりました。これはれっきとした アルゴリズム であり、この問題を 99 回の足し算 で解いています。しかし、計算回数が多く、計算に時間がかかるのではないかと思った方もいると思います。 ここで、方法を変えて、「1 + 100」「2 + 99」「3 + 98」…「50 + 51」の合計を求めることで、1 + 2 + 3 + … + 100 の値を計算してみましょう。 50 個の

                                          アルゴリズムの世界地図 - Qiita
                                        • いやなブログ - 文字列操作の比較表: Ruby, Python, JavaScript, P...

                                          文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)

                                          • さくらVPSとnginxリバースプロクシで最速WordPressブログを作る方法(ベンチマーク付き)

                                            負荷的に厳しくなってきたので sakuratan.biz を Apache(さくらスタンダード)から nginx(さくら VPS 512)に移転しました。 頻発していた 503 もほとんど出なくなって快適です。 Apache から VPS の nginx へ WordPress を移転したいと考えている人もいるかなーと思いましたので、さくら VPS で nginx リバースプロクシを使った WordPress ブログの構築する方法をがっつり書いていきたいと思います。 結構長文になってしまいましたので、先に索引を載せときます。 nginx とは nginx が速い理由 リバースプロクシ さくら VPS にインストールするシステム構成 EPEL パッケージリポジトリのインストール MySQL のインストール PHP のインストール nginx のインストール nginx と PHP FastC

                                              さくらVPSとnginxリバースプロクシで最速WordPressブログを作る方法(ベンチマーク付き)
                                            • 【Day-14】株価や仮想通貨で使える、5つのテクニカル分析を解説&Pythonで実装してみた - プロクラシスト

                                              データ分析ガチ勉強アドベントカレンダー 14日目。 時系列データでまず思いつくのは、株価のチャートですよね。 また、最近はやっている仮想通貨。私も最近coincheckに入金しました。 ビットコイン取引所 "coincheck" やっぱ、実際にお金が絡むとちゃんと勉強しようって言う気になる!笑 せっかくチャートを見るわけだし、その見方について勉強しておこうと思いました。 そしてせっかくなので、自分で実装してどういう仕組みなのかまで知っておこうと思いました。 理系だからね、分からないものを使うのは嫌だからね。 というわけで、Python(主にPandasとMatplotlibを用いながら)でテクニカル指標についてやっていきます。扱うデータは三年分の日経平均株価。 指標について知りたい人も、自分で実装してみたいという人もどうぞ。 テクニカル分析とファンダメンタル分析 実装において ローソク足

                                                【Day-14】株価や仮想通貨で使える、5つのテクニカル分析を解説&Pythonで実装してみた - プロクラシスト
                                              • GLUTによる「手抜き」OpenGL入門

                                                資料: 今までにあった質問 リフレッシュレートの変更 AUX 版, Indy 版, 書籍版 床井研究室 (OpenGL 関連記事) 柴山 健伸 先生 (システム工学部情報通信システム学科) の混沌としたサンプル 陳 謙 先生 (システム工学部デザイン情報学科) の Motif を使ったサンプル 中山 礼児 氏 (経済学部 2000 年卒) の Delphi についての解説 The OpenGL WEB Site (OpenGL の総本山) GLUT - The OpenGL Utility Toolkit (OpenGL.org の GLUT のページ) OpenGL Code & Tutorial Listings (OpenGL.org のチュートリアル集) OpenGL Technical FAQ (OpenGL について良く聞かれる質問) OpenGL FAQ 日本語 (OpenG

                                                • QGISを使って「災害データを地図で分析」してみよう 初心者向けの入門マニュアル|NHK取材ノート

                                                  分析を身につけるには実際に「手を動かす」ことが一番の近道です。 分析ソフトと自治体のオープンデータを使った分析の進め方をとことん詳しく、マニュアル風にご説明します。やってみたいけど難しそう、わからない!という方の参考になればうれしいです。 (※あくまでもイメージをつかむためのものですので、詳しくはネットや参考書など他の情報もご覧ください) 今回のゴール地震による津波で浸水が想定されている区域に、子どもが通う施設がどのくらいあるのか。公開データから分析、可視化する。 以前、私が分析に携わったこの記事では、津波によって浸水が想定されている区域に、高齢者施設がどのくらいあるかを調べました。 このときのデータは、県や自治体などから取材で提供を受けたものがベースになっていました。そのままオープンにすることはできないので、今回は高齢者と同じく避難に手助けが必要な、「子どもの施設」に津波のリスクがあるか

                                                    QGISを使って「災害データを地図で分析」してみよう 初心者向けの入門マニュアル|NHK取材ノート
                                                  • まさか俺が。HIVに感染したゲイがたどる最初の3ヶ月

                                                    HIVに感染してからの2~3ヶ月 HIV。性感染症(STD)の一種で、様々な教育や非営利団体などの尽力により、今や知らない人はいないくらい有名な疾病になりました。ここでは、実際にHIVに感染したゲイの筆者が辿った日々をお伝えすることで、あなたがもしHIVに感染したらどのような日々を辿るのか、イメージする参考にして頂けたらと思います。 「結果をお知らせします。あなたは陽性です。」 私がHIVに感染したことが発覚したのは、2014年の4月頃です。友人がHIV検査に行くというのを聞いて、行こう行こうと思いながらも、なんだかんだで行ったことのなかったHIV検査に私も行くことにしました。私が行ったのは新宿駅にとても近い東京都南新宿検査・相談室です。基本HIV検査は予約が面倒くさいのですが、この東京都南新宿検査・相談室は混雑状況をWEB上で見て、WEB予約ができて簡単な上、新宿駅から徒歩3分程度と近い

                                                      まさか俺が。HIVに感染したゲイがたどる最初の3ヶ月
                                                    • 誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Y's note

                                                      日付型の変換処理 Date/Timestamp変換のまとめ - Yuta.Kikuchiの日記 10言語のプログラミング言語に対してそこそこの知識を保有している@yutakikucです。いろんなプログラミング言語を使用していると文法を覚えるのは大変ですよね。PHP書いている途中からJavaScriptの文法を誤って書き始めたり... それぞれの言語の文法の違いを事細かく覚える事は無理に近いです。今日はそんな各種言語仕様の記述で難解なDateTime/TimeStampについて紹介したいと思います。扱うのはWeb系のメジャープログラミング言語のSQL/C++/Java/JavaScript/Perl/PHP/Python/Rubyになります。Mysqlからデータを取り出した後や、WebAPIから取得したデータを表示用の日付フォーマットに変換する事があると思うのでそこで利用できる知識になるかと

                                                        誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Y's note
                                                      • Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog

                                                        はてなアプリケーションエンジニアの id:takuya-a です。 この記事では、Microsoft の検索エンジン Bing で採用された BitFunnel アルゴリズムを紹介します。 昨年のエンジニアアドベントカレンダーでは、文字列検索のアルゴリズム全般について紹介しました(文字列アルゴリズムの学びかた - Hatena Developer Blog)。今年はそのなかでも、インデックス(索引)を使った全文検索アルゴリズムについてのお話になります。 この記事の前半は全文検索の入門にもなっていますので、検索技術になじみがない方にも楽しんでいただけるのではないでしょうか。 逆に、「そんなのもう知ってるよ!」という方は、本題である「BitFunnel アルゴリズムの詳細」から目を通していただければと思います。 この記事は、はてなエンジニア Advent Calendar 2017の21日目の

                                                          Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog
                                                        • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

                                                          配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)

                                                          • モダン C++ プログラミング - 日本語公開記事 - Confluence

                                                            このドキュメントはサイボウズ社内のトレーニング用に作成したものです。 作成時点では C++11 はまだあまり利用できない状況でしたので、C++98 ベースの記述になっています。 いずれ更新を予定しています。 モダンの定義モダンとはテンプレートメタプログラミング(TMP)を駆使することです。嘘です。 宗教論争に意味はないので、ここでは 「最近の C++ の仕様・機能を理解し、C より実装効率が良く不具合の少ない」 プログラミング技法を「モダン C++ プログラミング」と定義します。 つまり、不具合が少なく、かつ C にはもう戻れなくなるような効率の良さを達成するものです。 学習効率(ROI)が極めて良くないような技法(例えば TMP)は、この定義では除外されます。 勉強方法お勧めの順序は以下。決して全部を読もうとしないこと。 C++ Language Tutorial のような、あっさりした

                                                            • 小人閑居して: 「ぐへへお姉ちゃんパンツ何色」から始めるクラス解説

                                                              2011年12月6日火曜日 「ぐへへお姉ちゃんパンツ何色」から始めるクラス解説 「ぐへへお姉ちゃんパンツ何色」はこれ以上ないほどオブジェクト指向であり、しかも理想的な実装をしていることに気づきました。これを用いてオブジェクト指向を説明してみようと思います。 ある人が「ぐへへお姉ちゃんパンツ何色」と質問するのは、お姉ちゃんオブジェクトの保持するpants_color変数を取得しようとする手続きと見ることが出来ます。つまり oneechan.pants_color を取得しようとしているわけです。 ではどうすればいいのでしょうか? 考えてみましょう。直接パンツを見ればpants_colorを取得することができますね。 クラスを使わないとすればこんな書き方が考えられます。 struct oneechan{      int pants_color; }; 構造体でひな形を宣言します。

                                                              • ガベージコレクションの実装法と評価

                                                                1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

                                                                • 高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development

                                                                  先日、TimSortというソートアルゴリズムが話題になりました。TimSortは、高速な安定ソートで、Python(>=2.3)やJava SE 7、およびAndroidでの標準ソートアルゴリズムとして採用されているそうです。 C++のstd::sort()よりも高速であるというベンチマーク結果1が話題になり(後にベンチマークの誤りと判明)、私もそれで存在を知りました。実際のところ、ランダムなデータに対してはクイックソート(IntroSort)ほど速くないようですが、ソートというシンプルなタスクのアルゴリズムが今もなお改良され続けていて、なおかつ人々の関心を引くというのは興味深いものです。 しかしながら、オリジナルのTimSortのコードは若干複雑で、実際のところどういうアルゴリズムなのかわかりづらいところがあると思います。そこで今回はTimSortのアルゴリズムをできるだけわかりやすく解

                                                                    高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development
                                                                  • 「あきらめたらそこで試合終了ですよ」という言葉の意味。 - Something Orange

                                                                    先日の「物語夜話ラジオ」がおもしろかったので、インスパイアされて記事を書いてみる。 テーマは「あきらめたらそこで試合終了ですよ」。近頃、この言葉の意味をつくづく実感するようになった。そうなのだ。あきらめたらそれまでなのだ。 以前、ぼくは、この言葉を一種の根性論として理解していた。勝負が見えていてもとにかくあきらめずさいごまで全力を尽くせ、という意味だ、と。 しかし、最近ではもうすこし違う意味に解釈している。ひとは、じっさいには可能なことでも、不可能だと思い込んでしまうことがある。そしてそう認識したとたん、本当に不可能になるのだ、ということ。 たとえば、ぼくもそうだけれど、「自分は絵を描けない」というひとがいる。が、目が見えて、手が動かせるなら、物理的な意味では、描けないはずはないんだよね。 ようするにそれは「描けないと思い込んでいる」だけなのだ。もちろん、技術的な巧拙はある。そのままではへ

                                                                      「あきらめたらそこで試合終了ですよ」という言葉の意味。 - Something Orange
                                                                    • マルチスレッド・プログラミングの道具箱

                                                                      まえがき クラウド上の仮想サーバから手元のスマートフォンまで、いまや複数のCPUコアを搭載するマルチコアはどこにでもある環境になりました。ハードウェア側が並列(Parallel)・並行(Concurrent)処理に向けて急速に進化する一方で、ソフトウェア側つまりプログラミング言語の進化はさほど追い付いていません。並行処理記述の手軽さを求めた Go言語 や、マルチスレッド処理の安全性を重視する Rust言語 などが登場してはいるものの、「普通にプログラムを記述するだけで複数CPUコア環境で高速に走るプログラミング言語」は遠い夢物語のままです。 モダンなプログラミング言語や並列・並行処理ライブラリは、複雑で難解なマルチスレッド処理を直接記述しなくてすむよう、安全性・利便性の高い抽象化レイヤを提供します(例:Go言語のgoroutineとchannel、Rust言語の Rayonライブラリ)。し

                                                                        マルチスレッド・プログラミングの道具箱
                                                                      • Twitter で医師が拾われて Google のソフトウェアエンジニアになって 3 年半が過ぎました - nodchipの日記

                                                                        はじめに 『天才』はつくれる 競技プログラミング同好会競技就活部門 Google は世界最高のプログラミングスクールである 雇用形態と働き方 ソフトウェアエンジニア (SWE) Google でのお仕事 Google の面接の内容 Google の面接の問題の種類 コーディングクイズ 知識を吐き出す系 Open-ended question システムデザイン Google の面接の評価基準と対策方法 知識 技能 マインドセット Google の面接のタブー Google の面接の心構え 面接官への話し方 話す量 エリート意識 自己愛 優秀さ、知識量に対するこだわり Google の面接のテクニック 入力条件を確認する 入力の条件を簡単にできるか交渉する テストケースを作って提示する 関連する知識を答える 正しく修正する 競技プログラミングと Google の面接 おわりに はじめに nuc

                                                                          Twitter で医師が拾われて Google のソフトウェアエンジニアになって 3 年半が過ぎました - nodchipの日記
                                                                        • Value Objectについて整理しよう - Software Transactional Memo

                                                                          Value Objectとは何であるか? マーチン・ファウラーのPatterns of Enterprise Application Architecture(PofEAA)やエヴァンス・エリックのDomain Driven Design: Tackling Complexity in the Heart of Software(DDD)が原典であるが、PofEAAではこう切り出している。 When programming, I often find it's useful to represent things as a compound. プログラミング時は物をcompound(合成物)として表現すると便利なことがしばしばある。 例えば2次元空間上での座標のように複数のメンバ(属性)を持つ物は便利である、と。しかしそれらを比較する方法は一意ではない、そこで Objects that a

                                                                            Value Objectについて整理しよう - Software Transactional Memo
                                                                          • Linuxのプロセス間通信 - Qiita

                                                                            この記事について LinuxのIPC(プロセス間通信)を紹介します。 プロセス間通信とは Inter Process Communication(IPC)はプログラムの実行単位であるプロセスの間で行われるデータ交換のことを指します。プロセスの依存関係は可能な限り疎結合になるようOSで管理されています。そのため、IPCはLinux OSの機能を経由して行う必要があります。 OSがプロセスに提供するデータ交換の方法はひとつだけではありません。それぞれ特徴のある多彩な方法を提供しています。 ここで紹介するのは以下の5つです。 共有メモリー セマフォ マップドメモリー パイプ ソケット通信 (他にありましたらコメントで教えていただければ幸いです。) それでは、見ていきましょう。 共有メモリ プロセス間で同じメモリを共有します。 共有メモリの最大の利点はそのアクセススピードにあります。 一度共有メモ

                                                                              Linuxのプロセス間通信 - Qiita
                                                                            • 艦隊これくしょんの通信がとてもじゃないけど見てられない

                                                                              その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】Hiro H.

                                                                                艦隊これくしょんの通信がとてもじゃないけど見てられない
                                                                              • 現役高校生が、AtCoderでレッドコーダーになるまでにやってきたこと。プログラミング上達の秘訣を全て教えます - Findy Engineer Lab

                                                                                こんにちは、はじめまして。筑波大学附属駒場高等学校 3 年生(今年 4 月から東京大学に入学予定)の米田優峻(@e869120)と申します。私は競技プログラミング(競プロ)が趣味で、AtCoder・情報オリンピック・パソコン甲子園などの大会に出場しています。2021 年 3 月時点で、AtCoder では赤色(レッドコーダー)です。また、国際情報オリンピックの 2018 年/2019 年/2020 年大会で金メダルを獲得しています。*1 とはいえ、決して簡単にこの記録を手に入れられたわけではありません。何度も挫折と失敗を経験しながら自分のスキルを磨いた結果、競プロを始めてから 3 年後にはレッドコーダーになることができたのです。 今回は「わたしの選択」というテーマで寄稿の機会を頂いたので、私が中学 1 年生の秋に競技プログラミングを始めてからレッドコーダーになるまで、そして国際情報オリンピ

                                                                                  現役高校生が、AtCoderでレッドコーダーになるまでにやってきたこと。プログラミング上達の秘訣を全て教えます - Findy Engineer Lab
                                                                                • 徐々に高度になるリングバッファの話 - Software Transactional Memo

                                                                                  リングバッファのイメージ図 1. リングバッファとは何か 機能的にはFirst In First Out (FIFO)とも呼ばれるキューの一種であるが、リング状にバッファを置いてそれの中でReadとWriteのインデックスがグルグルと回る構造をとる事によって容量に上限ができることと引き換えに高速な読み書き速度を得たものである。キューを単に実装するだけなら山ほど方法があって線形リストを使ってもいいしスタックを2つ使っても原理的には可能だ。その中でもリングバッファを用いた方法の利点はひとえに性能の高さでありメモリ確保などを行わないお陰でシステム系の様々な場所で使われている。 これの実装自体は情報系の大学生の演習レベルの難度であるが少し奥が深い。まずリングバッファのスタンダードなインタフェースと実装は以下のようなものである。 class RingBuffer { public: explicit

                                                                                    徐々に高度になるリングバッファの話 - Software Transactional Memo