タグ

ブックマーク / qiita.com (174)

  • ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita

    NTT データ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 今回はソートについて記します。 0. はじめに データ構造とアルゴリズムを学ぶと一番最初に「線形探索」や「ソート」が出て来ます。これらのテーマは応用情報技術者試験などでも頻出のテーマであり、アルゴリズムの Hello World とも呼ぶべきものです。 特にソートは、 計算量の改善 ($O(n^2)$ から $O(n\log{n})$ へ) 分割統治法 ヒープ、バケットなどのデータ構造 乱択アルゴリズムの思想 といった様々なアルゴリズム技法を学ぶことができるため、大学の授業でも、アルゴリズム関連の入門書籍でも、何種類ものソートアルゴリズムが詳細に解説される傾向にあります。記事でも、様々なソートアルゴリズムを一通り解説してみました。 しかしながら様々な種類のソートを勉強するのもよいが、「ソートの使い方」や

    ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita
  • C++完全理解ガイド Rev1.4.01 - Qiita

    はじめに C++を完全理解したので完全理解ガイドを書く。 最初に言っておくがタイトルは詐欺で、実際はポエムである。 僕は仕事C++を書いたことはないのでなんか変なことを言っているかも知れない。 ところで無職になったので、普通にC++で職がほしい。 2018年6月から受託で仕事をもらい、毎日C++17を書いています。 2018年9月から雇用され、毎日C++17を書いています。 かなり雑に書いているはずなので、コメント等でどんどんマサカリを投げてほしい。 僕は何者か 工学部を卒業して4年ほど高校の理科教師をやっていたが、現在無職になった人。 工学部を卒業して4年ほど高校の理科教師をやっていた。 最初は良かったのですが、授業に慣れ、このまま自分の成長が止まってしまうのかとなぁと思い、辞めて無職に。 一ヶ月無職を楽しんだあと、某から受託でC++を書く仕事をもらい、C++17を書いている。 主にツ

    C++完全理解ガイド Rev1.4.01 - Qiita
    kenyuy
    kenyuy 2018/03/29
  • 格安スマートリモコンの作り方 - Qiita

    材料費400円の赤外線送受信器を、1,800円のラズパイZeroに載せて、Google Homeから操作する方法を、ゼロから丁寧に解説します。 安くても高機能 むしろ市販のスマートリモコンではできない、きめ細かな操作も簡単に実現できます。(例えば こんなこと ができます。) 簡単 電子回路を作ったことのない初心者でも作れるよう、電子部品の買い方から、丁寧に説明します。 電子工作の基 ラズパイでの電子工作が初めてなら、こちら → Raspberry Piの電源でLEDを1個光らせてみる - ツール・ラボ (素晴らしく丁寧な解説なので、予備知識ゼロでも理解できるはず。) ここで紹介するスマートリモコンの回路も、まずはブレッドボードを使って、半田付けをせずに試作します。 試作品をしばらく使ってみて問題がないようなら、基板に半田付けして完成させます。 半田付けが初めてなら、こちら → うまくいく

    格安スマートリモコンの作り方 - Qiita
  • 「暗号化」の反対は「復号化」じゃなくて「復号」なんだよ - Qiita

    言いたいことはタイトルで全部言ってしまってますが、以下細かい内容を。 scivolaさんのQiita などの技術系の記事で残念に思うポイントに触発されて、普段から思っていたことを書いてみました。 まず「暗号化」とは何か。これを説明する時には以下のような図が使われます。 暗号化 ----------------------------------> 平文 暗号 <---------------------------------- ??? 元になる「平文」があって、それを「暗号」「にする」から「暗号化」ですね。 じゃあ「暗号化」の逆の操作をする、上の図の「???」の部分はなんと言えばいいのでしょうか。 平文にするから「平文化」? 流石にこんな言い方をする人は見たことないですね。 元になる単語が「encrypt / decrypt」で"en"と"de"が対になるためか、「復号」という訳語が当て

    「暗号化」の反対は「復号化」じゃなくて「復号」なんだよ - Qiita
  • GitHub に AWS キーペアを上げると抜かれるってほんと???試してみよー! - Qiita

    🤔 前書き 稀によくある 、AWS を不正利用されちゃう話、 AWSで不正利用され80000ドルの請求が来た話 - Qiita 初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話。 - Qiita AWSが不正利用され300万円の請求が届いてから免除までの一部始終 - Qiita ブコメ等で GitHub にはアクセスキーを検索するBOTが常に動いていて、公開するとすぐに抜かれて不正利用される 的なコメントがつくのを何度か目にしたのですが、 当にそんな BOT が動いているの? どのくらいの時間でキーを抜かれて、不正利用が始まるの? というのが気になったので、検証してみました。 GitHub にそれっぽいパブリックリポジトリを作成、権限が一つもついてない AWS のアクセスキー&シークレットアクセスキーをうっかり公開、外部から利用されるまでの時間を計測します。

    GitHub に AWS キーペアを上げると抜かれるってほんと???試してみよー! - Qiita
  • 個人開発ならHerokuよりDokkuを使おう - Qiita

    皆さん個人開発してますか? 個人開発の時にせっかく作ったならリリースして誰かに見てもらいたい・使ってもらいたいですよね。でもあまりお金はかけられない。 静的サイトならgithub.ioやfirebase hostingがありますが、Webアプリケーションだと使えません。 ちょっと前まではHerokuがデファクトな選択肢でしたが、スリープしたりで不便だったりします。 そんな方にDokkuがオススメです。 DokkuはOSSのPaaSで、シェルスクリプトを実行するだけでインストールができるHerokuライクなアプリケーションです。 自分はVultrという激安VPSにインストールしています。 実際どうなのか? インストール方法や基操作等は以下が参考になるので割愛します。 - Getting Started with Dokku - DockerでミニHeroku!「Dokku」をさくらのクラウ

    個人開発ならHerokuよりDokkuを使おう - Qiita
    kenyuy
    kenyuy 2018/01/16
  • 知っておきたいLinuxファイルシステムの概念 - Qiita

    ファイルシステムとは ファイルシステムとは、データとメタデータをある構造に従ってストレージデバイス上に格納したものを指す。 ファイルシステムの作成には mkfs(8) コマンドを使用する。 全体アーキテクチャ 以下の図の通りである。詳細は以下で説明する。 ファイルシステムの構造 ここでは、古典的ファイルシステムであるext2をベースに説明する。 ファイルシステム内で領域を割り当てる基単位を論理ブロックという。ディスクデバイスの連続する物理ブロックから構成される。論理ブロックサイズ1024,2048,4096バイトのいずれかを選択できるが、これは mkfs(8) のパラメータとして与える。 ディスク上では、以下のように格納される。※ext2の構造はブロックグループごとに分かれており、もう少し複雑になっている。 ブートブロック・・・OSを起動する情報を保存する。すべてのファイルシステムでブー

    知っておきたいLinuxファイルシステムの概念 - Qiita
  • OSSのデータ可視化ツール「Metabase」が超使いやすい - Qiita

    Metabase、まじでイケてる。 1日で、Re:Dashから乗り換えました。 Metabaseとは OSSのデータ可視化ツール。Re:Dashとかと同じ類。 AWSとかに乗せて、誰もが見れるダッシュボードを作ったりする時に使うと、俺かっけーってなります。 スクリーンショット 実際に社内で運用している様子をモザイク付きでお見せします。 毎日みているダッシュボード。これの4倍くらいの数値見てる。 ダッシュボードの編集。マウスで簡単に位置や大きさの変更ができる。 クエリビルダー的なやつがあり、グルーピングとか超絶便利。SQL書けない人でも、単一テーブルとかだったら余裕かと。 グラフ化も簡単。 SQLでのクエリ編集画面。ちゃんと補完してくれる。 Metabaseの良い所 見た目が格好いい。 インストールが簡単。 openjdk-8-jdk入れて、jarファイル置くだけ。 豊富なデータソースに対応

    OSSのデータ可視化ツール「Metabase」が超使いやすい - Qiita
  • 「Oh shit, git!」を簡単に和訳してみた。(追記あり) - Qiita

    翻訳元: Oh shit, git! gitは使いにくい! Gitは難しい: 中身を破壊にするのは簡単なのに、過去の過ちを修正する方法を見つけるのは極めて困難だ。ドキュメントには修正するコマンド名が書かれていても、その名前を知らなければ使いものにならない。これは「鶏が先か、卵が先か」というジレンマを抱えている! だから私が陥った数々の問題をいかにして抜け出すかを書いた。 なんて事だ!私は大変な誤ちを犯した!タイムマシンを呼び出すにはどうすればいい!? git reflog # you will see a list of every thing you've done in git, across all branches! # each one has an index HEAD@{index} # find the one before you broke everything git

    「Oh shit, git!」を簡単に和訳してみた。(追記あり) - Qiita
    kenyuy
    kenyuy 2017/12/20
  • Markdownで書ける、よさげなWikiサーバーソフトまとめ - Qiita

    ※この記事は僕のブログ(最近始めました)のクローン記事です。 なんとなく、グループ内部用のWikiに最適なやつって無いのかなあと思ったのです。特にどのグループというわけじゃありませんが、ええ、なんとなく。 サーバー設置型のWikiソフトウェアというと国内で有名なのはPukiWikiでしょうか。設置も手軽で拡張性も高く、すでに慣れ親しんだWikiですが、最近では各方面がMarkdownを採用してそれに慣れ親しんでしまい、このブログもプラグインを入れてMarkdownで書いているぐらいなので、Markdownで書けるWikiを探していたのです。 必要要件はこんな感じ。 サーバー設置型 グループ内部向けのポータル的Wikiに適している Markdownで書ける 使い方が簡単 日人に厳しくない デザインがナウい というわけで昨日から丸2日ぐらいぶっ通しで調べぬいた結果はっぴょー。どんどんぱふぱふ

    Markdownで書ける、よさげなWikiサーバーソフトまとめ - Qiita
    kenyuy
    kenyuy 2017/11/12
  • Linus Torvalds氏によるGitの内部構造の解説 - Qiita

    初めに LinusによるGitのinitial commitのREADMEの訳です。 社内のSVNからの移行を促すために資料を整備していたのですが、SVNでやっていたことを移し替えたりコマンドを覚えたりするより内部構造を知ったほうが早いことに気づきました。 それで、gitの内部構造についての解説資料を色々見ていたのですが、データ構造については原作者のこのREADMEに言い尽くされている気がします。のみならず、gitを使うものが抱くべき精神性のようなものが示されており、深い感銘を覚えました(ヒャッハー)。 README: ”GIT - 馬鹿コンテンツトラッカー” コミットメッセージ:git, 地獄からきたインフォメーションマネージャ gitの意味 "git" は何を意味することも出来る、お前の気分次第だ。 3文字で、発音可能で、実際のUNIXシステムで共通コマンドとして使われていないものであ

    Linus Torvalds氏によるGitの内部構造の解説 - Qiita
  • フロントエンドチェックリスト(日本語訳) - Qiita

    GitHubで公開されているフロントエンドチェックリストというドキュメントが、網羅されている内容が幅広く便利そうだったので、日語に翻訳しました。 日語版は、以下のGitHubリポジトリにあります。GitHub側と自動的に連携するようにしておりますので、誤訳や誤りなどがあれば GitHub のプルリクエストまたは Issue で報告していただけると幸いです。 https://github.com/miya0001/Front-End-Checklist 日語版への貢献方法 最終更新日時: 2017-11-19 03:50:47+09:00 (未翻訳) Front-End Checklist The Front-End Checklist is an exhaustive list of all elements you need to have / to test before lau

    フロントエンドチェックリスト(日本語訳) - Qiita
    kenyuy
    kenyuy 2017/11/02
  • 良いエラーメッセージの書き方 - Qiita

    エラーには大抵「エラーメッセージ」が付いています。 自分は過去に、エラーメッセージの内容を雑にしてしまい後悔することがよくありました。 その経験から、良いエラーメッセージの書き方を考えました。 エラーメッセージを2つに分類する まず、エラーメッセージといっても次の2つのパターンで大きく異なってきます。 (1) ユーザーが見るエラーメッセージ (2) 開発者が見るエラーメッセージ (1) ユーザーが見るエラーメッセージ 内部実装のことは書かないようにする

    良いエラーメッセージの書き方 - Qiita
  • 1バイトが8bitに定まったのは2008年 - Qiita

    はじめに 【2022/02/03追記】 Twitterで、1バイトは何ビットかというのが話題に上り、この記事も急に参照されるようになりました。 話題になることで識者の方々から私自身も知らない知識を得ることが出来ました。 最終的には、ITmedia NEWSの大原雄介さんの下記の素晴らしい記事が産まれることになったので良かったです。 1バイトの定義 なぜ、1バイトは8bitになったのだろうという疑問から調べはじめました。 昔は4bitCPUがあったわけだし、その時も1バイトが8bitなのか4bitではないのか?という疑問がわいたわけです。 結論から書くと当時4bitCPUの場合、1バイトは4bitだったわけです。 とはいえ、CPUの値がそのまま1バイトになるわけではないです。 1bit CPU はできるのか?によると 長い歴史の中で、CPUのbit長はALU長でもなくアドレスバス長でもな

    1バイトが8bitに定まったのは2008年 - Qiita
  • 日常から使えるUnix系OS業務効率up技 - Qiita

    気分転換に、普段からLinuxで作業する上で割と便利なツールだったり小技を共有します。知ってたらごめんね 一応全部MacでもLinuxでも動くはずです。 高速化系 axel , aria2c http://qiita.com/sarumonera/items/2b30999d7d41a4747d74 https://goo.gl/gsFrCT https://wiki.archlinuxjp.org/index.php/Aria2 http://qiita.com/TokyoMickey/items/cb51805a19dcee416151 こいつらは割と有名(?)かなと思います。やってることはcurlやwgetとほとんど変わらず、サーバにHTTPリクエストを送ってレスポンスを取ってくるだけなのですが、ダウンロードを高速化するためにtcpコネクションを何も貼って、相手サーバーに負担をかけ

    日常から使えるUnix系OS業務効率up技 - Qiita
  • 【学習メモ】LinuxCUI初心者が早く知りたかったコマンド(操作も) - Qiita

    はじめに Linuxを学ぶ上で 先に教えて欲しかったことを書きます。 つまりは、教える機会があれば先に伝えておきたいことです。 便利なキー操作や誤りがあればぜひ教えてください。 また、この記事に対してmorimorihogeさんの分かりやすい補完がありますので、ぜひそちらと合わせてお読みください 流れ 1.キーボード操作編 知ってると便利なショートカット。 2.用語・概念編 知ってるとひらめくかも。 3.コマンド編 知っておくべき重要なコマンド、時短になるコマンド。 キーボード操作編 補完機能 Tab連打。 連打すると勝手にlsしてフォルダ内のファイル一覧を教えてくれる。 候補が絞られると勝手に名前を補完してくれる。 入力間違いでもBackspaceやDeleteできない ^H^H^Hや^[[3~、^[[Dが表示されて涙目。 Ctrl + U で入力したものがきれいに消える。 パスワードを

    【学習メモ】LinuxCUI初心者が早く知りたかったコマンド(操作も) - Qiita
    kenyuy
    kenyuy 2017/07/29
    いいね。
  • 100万倍速いプログラムを書く - Qiita

    この記事はなんなの プログラミングを始めたばかりで高速化の大枠が全くわからず意味不明なことをしていた在学時、こんな資料があったら良かったのになあ、と思って書いたもの。 書いて、在学時研究室に押し付けた後紛失したと思われていたものが発掘されたもの。 要約 ライブラリがあるならそれを使う。 ライブラリが無ければ、ボトルネック部分を探してそこだけ高速な言語で書きなおすか、可能なら事前コンパイルする。 最初から全てを Low-Level な言語で書くと大変、でも結果のプログラムは速い。 以下の時間の計測ではインポートにかかる時間は除いています。 使用するもの Python(3系) Numba Scipy Line Profiler Fortran(gfortran) QUADPACK QUADPACK以外の導入方法の説明は色んな所にあるので各自でお願いします。上3つに関しては、個人的にはAnaco

    100万倍速いプログラムを書く - Qiita
  • 和英辞典・自動翻訳だけじゃダメ!もっといい英語名を見つけるためのTips集 - Qiita

    はじめに プログラマのみなさんはコードを書くときによく英語を使うと思います。 だけど、英語って難しいですよね。 僕自身もそうですが、クラスの名前やメソッドの名前、テーブルのカラムの名前を考えたりするときは「これ、英語でなんて言うんだろう??」と頭を抱えることが多いはずです。 他にも、トラブルが発生したときにWebサービスのサポートに英語でメールを書いたりする場合もあります。 そんなとき、安易に頼ってしまいがちなのが、オンラインの和英辞典や自動翻訳の類いです。 ですが、和英辞典や自動翻訳だけが適切な英語を探す唯一の方法ではありません。 むしろ、僕に言わせれば和英辞典や自動翻訳は質の悪い英語を作り出してしまう原因になりやすいです。 なので、僕はできるだけ和英辞典や自動翻訳には頼らないようにしています。 でも、こんなふうに言うと「えー、そんな!じゃあ和英辞典や自動翻訳以外にどんな方法があるの!?

    和英辞典・自動翻訳だけじゃダメ!もっといい英語名を見つけるためのTips集 - Qiita
  • Linuxのパッケージをアップデートしたあとrestartが必要なプロセスを見つける方法 - Qiita

    はじめに 脆弱性対応のためのアップデート作業というものは頻繁に発生するものですが、番運用しているシステムではサービスへの影響を最小限にしたいものです。 アップデートした後、出来ることなら必要なプロセスだけリスタートさせることで済ませたいのですが、どのプロセスをリスタートすれば良いのか、そもそもOS再起動しないと反映されないものなのか、判断が付かない場合が少なくありません。 そのような場合のため、再起動が必要なプロセスを見つけたり、OS再起動が必要かどうかアドバイスしてくれるコマンドがあります。 Redhat系 「yum-utils」パッケージに入っている「needs-restarting」コマンドを使います。 # needs-restarting -h Usage: needs-restarting: Report a list of process ids of programs th

    Linuxのパッケージをアップデートしたあとrestartが必要なプロセスを見つける方法 - Qiita
  • プログラマーのためのR言語入門 - Qiita

    なにやらR言語界隈が盛り上がってるそうで。 こちらのIEEE SPECTRUMが発表している2015年の人気言語ランキングではついに6位にまで登ってきています。 この流れにのってR言語を始める人も多いと思いますので、ポイントをまとめておくメモです。 統計とか機械学習とかの内容ではなくプログラム言語としての部分ですのでご注意を。また、1からしっかりではなく、他の言語と違っているところ中心です。 追記: やっと続編も書けました。 プログラマーのためのR言語入門 その2 ~分析・表示編~ ざっくりとどんな言語? 統計の機能が盛りだくさんのスクリプト言語です。 似ている言語は?と聞かれるとPythonと答えています。 環境 以下をインストールします。 R言語 RStudio RStudioはR用のIDEです。R言語単体のインストールでも簡易なエディタはついてきますが、何かと便利なRStudioがお

    プログラマーのためのR言語入門 - Qiita