けんつの煽られ駆動開発記

何か作るときは大抵誰かに煽られた時です。

最速のEchoサーバーを目指して、LinuxKernelモジュールを作っていく part4

はじめに 前回、実装したはずの機能で特にacceptでコケる問題がなかなか解決出来なかったので毎回おなじみになりつつあるこのサイト linux/include - Elixir - Free Electrons さらに今回は、この本も参考にして書いていく www.oreilly.co.jpまず色々、調べ…

最速のEchoサーバーを目指して、LinuxKernelモジュールを作っていく part3

はじめに 前回まで rabbitfoot141.hatenablog.com rabbitfoot141.hatenablog.comこの二回でカーネルモジュールで標準出力や、カーネルスレッドを動かすところまでやった。 今回はこれをTCPサーバー化するのを目標にやっていく。 ネットワーク周り さくっと実…

全てのプログラマに捧げるScala入門

はじめに Scala入門 参考文献 書いた人 さいごに はじめに Qiitaの方に次のようないくつかのScala入門記事を掲載していた。java経験者のScala入門メモ [基礎知識] - Qiita java経験者のScala入門メモ [関数、クラス] - Qiita java経験者のScala入門メモ [ケ…

全てのプログラマに捧げるScala入門 パターンマッチ

はじめに 前回はコレクションについてさらっと触れたが今回は、パターンマッチについて触れる。 しかし、例によってパターンマッチは用途がかなり多いのでここでは基礎的なことにのみ限定して紹介する。 パターンマッチ match文というのがScalaには存在する…

全てのプログラマに捧げるScala入門 コレクション

はじめに コレクション 不変と可変 コレクションにおける不変と可変 性能特性 シーケンス リスト 配列 バッファ コレクションと関数 map filter foreach おわりに はじめに この記事ではScalaのコレクションについて解説する。 しかし、コレクションをすべて…

全てのプログラマに捧げるScala入門 トレイト

はじめに トレイト ミックスイン おわりに はじめに Scalaで規模の大きいプログラムを作成する場合にモジュール化するのは非常に重要なことである。 そこでモジュール化のための機能をココでは紹介する。 JavaにおけるInterfaceと同等の機能を持つtraitであ…

全てのプログラマに捧げるScala入門 クラスとオブジェクト、ケースクラス

はじめに メソッド クラス 継承 補助コンストラクタ オブジェクト ケースクラス applyメソッド おわりに はじめに 前回の続きで、今回はクラスとオブジェクトについてまとめていく。 その前に、メソッドについて触れていなかったのでそこもまとめる。 メソッ…

全てのプログラマに捧げるScala入門 Scalaの基本編

はじめに Scalaでコードを書く 変数 データ型 制御構文 {}式 if式 while式 for式 最後に はじめに Scalaを入門する上でこれは外せないというものを紹介していく。 ここでは主に、Scalaのプログラムの基本形式や変数、データ型の扱い ifやforなどの制御構文に…

全てのプログラマに捧げるScala入門 ラムダと高階関数、カリー化

はじめに ラムダ式 無名関数 高階関数 カリー化 はじめに Scalaをああだこうだ使っているけど、いまいちココらへんが理解できていないので なんとなくまとめて整理してみる。 ラムダ式 上の参考サイトを元に値を引数で一つ受け取って、それに1加算して返す関…

最速のEchoサーバーを目指して、LinuxKernelモジュールを作っていく part2

はじめに 前回はカーネルモジュールで出力をやるところまでやった。 rabbitfoot141.hatenablog.com 今回は、気合でカーネルスレッドを扱えるようにする。 実装 EchoサーバではTCPを使用する、それをスレッドでああだこうだして複数接続を可能にしたい。その…

最速のEchoサーバーを目指して、LinuxKernelモジュールを作っていく part1

はじめに これから諸事情でLinux Kernel moduleとして動作する最速(?)のEchoサーバを作ることになったので Echoサーバを作る過程をまとめていく。 今回はとりあえず、環境構築からKernel moduleで「Hello,World」的なことをするまでをやる 開発環境構築 参考…

Hadoopを使ってみた

はじめに インフラに興味をもってから、その中でも特に分散システムや分散並列処理に興味を持ったので有名な分散処理フレームワークであるHadoopを使ってみる。 今回は以下の記事を参考にして自分のUbuntu 16.04上で動かす。 Apache Hadoop 2.5.0 セットアッ…

Twitter APIのScalaラッパーを作っている話

はじめに 夏休み、特にすることがなかったのとTwitter4Jに憧れてScalaでTwitter4SというTwitter APIのラッパーを作り始めた。 初めは標準ライブラリだけでごり押すつもりが色々ありいくつかライブラリを使用しているがある程度出来た為、概要をまとめる。た…

形態素解析とngram、マルコフ連鎖を用いてもののけ姫風の文章を生成する。

形態素解析とngram,マルコフ連鎖を組み合わせる 前回紹介した記事ではrabbitfoot141.hatenablog.comngramをいくつかの文字で分割するタイプにしたが今回は形態素解析を用いていくつかの形態素で分割し、マルコフ連鎖を使って文章を生成する。 今回の概要 形…

n-gramとマルコフ連鎖の理論と実装、もちろんScalaを使って。

対話システムを作りたかった 対話システムという名の対話botを作っているがいきなり深層学習はハードルが高すぎたから人工無能から始めることにした。 この記事の流れ 今回の記事は次のように進んでいく。 n-gramのとは n-gramのサンプル マルコフ連鎖とは n…

Oracle Code Japan Tour in Sapporoに行ってきた

はじめに Oracle Code Japan TourがSapporoにくるとのことで初めて情報系のイベントに参加してみた。 というわけで実際に得た情報をあれこれまとめてみた。すごいメモのような感じになっているので間違ってたらコメントなどくれると嬉しい。 Feed Back from …

自分なりの、プログラミングを楽しむためのベストプラクティス

はじめに 大学や専門学校、高校中学や老若男女問わず、これからプログラミングを始める初心者の人がどうすればプログラミングを楽しめるか。 案外むずかしいこの話題に関して、自分の経験を踏まえた自分なりのベストプラクティスをまとめてみた。 自分は高校…

日本語版NetBeans8.2をUbuntuにいれてみた

なぜかNetBeansをいれることになった 友達曰く、「NetBeansが英語なのとプロジェクトを開けない」とのことで実際に検証してみた。 普段はVSCodeかVimとsbtでScala,Javaしか書かない人間のUbuntuにはそんな便利なもの入ってるわけもなく 実際に導入しながらそ…

【メモ】sbtで自作ライブラリを使えるようにした話

とりあえず公開したかった。 なんか公開したかった。 sbtで使えるようにしたかった。 何をやったか とりあえず次のサイトを参考にしてあれこれしたqiita.com qiita.com d.hatena.ne.jp 具体的には ライブラリをビルドする github pagesを作成しそこにビルド…

Newton-Raphson法と単位円内接正多角形を使った円周率近似をScalaでやってみた

やってみた C言語縛りは面白くないので例によってScalaでやってみた こんなやつをコードにした まずNewton-Raphson法は次の式におけるxの値を求めるこのあと登場するけど、単位円内接正多角形を使う近似では漸化式をつかっていくわけだけども その中で平方根…

Newton-Raphson法を用いた円周率近似

Newton-Paphson法の基礎原理 Newton-Raphson法とは次の式を満たすxの値を見つけるアルゴリズム ここではg(x)を任意の微分可能な関数としてCを実数定数とする。 つまりNewton-Rapshon法は次の式を満たすxの値を見つけるアルゴリズムとなる。 つまり以下の様に…

githubでコミットしても芝生が生えなかったわけ

昨日、githubの自分のレポジトリにコミットしてたら唐突に芝生が生えなくなった。それで色々ググった結果 masterブランチじゃないとだめ ローカルレポジトリの登録アドレスがgithubアカウントのメールアドレスになっていないとだめ forkしたやつもだめ みた…

遺伝的アルゴリズムとその応用

遺伝的アルゴリズム ~Genetic Algorithm~ 遺伝的アルゴリズム(Genetic Algorithm)とは、近似解を探索するアルゴリズム。 主にランダム性を持って要素を変化させる。進化的アルゴリズムの一つでもある。このアルゴリズムはデータを遺伝子として表現し、一つ一…

確率的解析と乱択アルゴリズム

確率的解析と乱択アルゴリズム 確率論と計算機における問題解決の手法として 確率的解析と乱択アルゴリズムについて解説していく。 ここでは以下の問題を考える。 雇用問題 問題: あなたは秘書を雇おうとしている。 その際にあなたは代理店を利用することに…

gdbを使ってコアダンプの原因を解析

コアダンプは嫌いだ。 大学やその他情報系専門科のある学校に通ったことがある人が一度は触ったことがあるであろう、C言語。 こいつは近年の言語に比べてものすごく面倒くさい書き方をするし、手間もかかる。 中でも最悪なのが「コアダンプ」の文字。 これは…

セキュリティミニキャンプ北海道2016に参加してきた

初めてミニキャンに参加してきた LOCAL学生部に加入して、しばらくしてからミニキャンのお知らせが回ってきたから何をやるんだという感じで詳細を見てみると…。Linuxでハードウェア制御、スマホアプリでサーバサイドへの攻撃と対策、クラウドセキュリティ基…

さくっとアセンブリ入門 hello,world編

さくっとアセンブリ入門 なんとなくアセンブリをはじめてみる レジスタがーとかメモリがーっていうお話は割愛 とりあえず「Hello,World」 まずはお決まりの「Hello,World」から .globl main main: movl $4,%eax movl $1,%ebx movl $msg,%ecx movl $13,%edx i…

メディアンフィルタ

メディアンフィルタ 移動平均法ではn*nの局所領域における濃度の平均値を領域中央の画素が保有する濃度として扱ったが 別の画質改善法にメディアンフィルタというものがある これは局所領域中の濃度値の中央値を領域中央の画素が保有する濃度として扱う方法…

サイトをリニューアルしたから今回使ったものをまとめてみた

はじめに 今回自分のサイトをリニューアルしたので kentsu-141.github.io これに使ったものをざっくりまとめてみる 基本的なデザイン まず基本的なデザインはこのホームページを見て思いついた sard.website ただ画像なんかを用意するのがめんどくさかったの…

C言語 構造体

6章 構造体 構造体とは、操作しやすいように一つの名前でまとめられた 1つ以上の異なった型の集まりであるこの構造体と呼ばれるものは大きなプログラムで特に複雑なデータを組織化するのに役立つ それは関連したデータを実体としてでなく一つの単位として扱…