院卒新人サラリーマンのメモ代わり

備忘としてのメモを記載

プログラミング基礎

reduceって思ったより有能?

reuceの仕組みを理解したら予想以上に便利な関数な気がしてきた。mapやfilterもreduceでかけるよね。 書いてみよう。

reasonと戯れる

let rec insert = (lst: list(int), n: int): list(int) => switch (lst) { | [] => [n] | [first, ...rest] => switch (first < n) { | true => [first, ...insert(rest, n)] | false => [n,...lst] }; }; let rec insSort = (lst: list(int)): list(int) =…

reasonというプログラミング言語

ocamlって面白いなー javascriptに若干似てるなー とか思ってたらocamlをjavascriptっぽくかけるreasonって言語があることを知った。ocamlの考え方のままjavascriptと同じようにかけるからいいと思う。 いくつか例 ocamlだと let add1 = func x -> x+1 {name…

プログラミングの基礎 ocaml

1周目、軽く読み終わり。概要 ocamlを用いて初心者に関数言語での考え方を教えるすごく面白い。 再帰関数って結構ややこしいなって思ってたけど、これ読むと再帰のほうがシンプルでわかりやすい気がしてくる。 mapやfilterの実装もあるから、理解が深まる。…

ドットインストール有料会員になってみた

先々週ぐらいからドットインストールの有料会員になってみた。 有料会員になって感じたメリットについて。・再生速度を変えられる これが一番大きい。 もともと、動画はタイピングしながら説明するため結構ゆっくり喋ってる。 そのため、1.6〜2倍でも支障が…

Webプログラミングが面白いほどわかる本

linuxのコマンドやgitの使い方から解説。 web開発を本格的に初めてみたいって人向け。 とてもわかり易いし、自分もここで躓いたなってとこが解説されててとても良い。 こんな感じの教材で授業が進めてもらえたら、誰でもまずまずのものが作れるようになると…

世界が変わるプログラム入門 読了

面白かった。 本のサイズは小さく、図も多いからとても読みやすい。 プログラマの頭の中を覗いてみようを軽くした感じ。 コーディングではなくその前の設計が大切だと述べ、そこを重点的に語ってる。三目並べを一緒に設計していく。 設計がしっかりしてるか…

再帰関数

再帰関数には2種類ある。 先頭再起:関数の先頭で再起が起こる 末尾再帰:すべての処理を行ってから再起が起こるどちらも上から下までを往復する。 末尾再帰は上で処理したデータを下に渡した、下から処理したデータが返ってくる。 先頭再起は上では下を呼び…

ベジェ曲線を学ぶ

adobe Xdでお絵かき学ぼうとしたらアンカーやハンドルとかわからないから調べた。 ベジェ曲線というのがあるらしい。 ガバガバ理解でまとめる。 以下、2つの関数の間の点を求めることを線形補間という。 始点と終点を線形補間すると得られる線分を1次ベジェ…

mac ifconfig コマンドがないとき

ネットワークの勉強をしていてifconfigコマンドを打っても コマンドが見つからなかったからその対処法 osはmac sierra、シェルはzsh1, ❯ whereis ifconfig でifconfigがどこにあるか確認 2, ❯ echo $PATH | tr ':' '\n' でパスを確認 3, pathが通ってなけれ…

基礎からわかるTCP/IP ネットワークコンピューティング入門 読了

細かいところは読み飛ばしながらも読了。 TCP/IPについてのイメージをなんとなくつかめた気がする。2週目読もう

ネットワーク基礎4

TCP/IP インターネット通信で利用されている通信プロトコル 大きく分けて以下の4つの機能に分類できる・アプリケーション層(HTTP, SMTP) ユーザがコンピュータ上で動かすアプリのこと・トランスポート層(TCP/UDP) アプリ間で通信できるようにする役割 データ…

ネットワーク基礎3

TCP/UDP パソコンに着いたデータをアプリまで届ける役割 各自のパソコン内で処理する。UDP IPに次の2つの機能が追加されただけ ・データが壊れてないことを保証する(チェックサム) ・アプリ間通信を実現する(ポート番号でアプリを識別)TCP ・コネクショ…

ネットワーク基礎2

データという荷物があったとして、 それを郵便で送るとすると ペイロード 荷物本体 Ethernet トラック IPアドレス 宛先 MACアドレス 次の取扱局 ARP 宛先をもとに次の取扱局を決める IPアドレスで宛先を決めると ARPが次に送るべき場所をMACアドレスとして教…

ネットワーク基礎1

ネットワークの基本は機器を1対1で接続すること(ポイントツーポイントと呼ぶ) 3つ以上機器を接続するにはハブを使う(マルチポイントと呼ぶ)違うネットワークとつなぐにはハブとハブをルータでつなぐ 3つ以上のルータを繋ぐ際のハブをプロバイダと呼ぶ違…

ダックタイピング

ハードウェアの抽象化について学んでたら、ふとダックタイピングを思い出した。CDやUSB、ハードディスクは構造がぜんぜん違うけど 同じようにファイルの読み書きができるから外付けメモリって読んでいいよね。って考えたらダックタイピングの理解がだいぶ深…

基礎からわかるTCP/IP ネットワークコンピューティング入門

読んでる途中。 著者の考えには共感できるし、文体は読みやすいのだけど ネットワークの知識ゼロの僕にとっては難しい。 もう1段階レベルが低いものを読もう。前半のパソコンの仕組みのところは 今の僕でも読めるし、とても参考になるからそこはしっかり読む…

emmet wrap

emmet wrap 後から全体をcontainerで囲みたいときとかに使えるvscodeではデフォだとショートカットキーがないから 設定で追加すると地味に便利

vscodeでemmetを使う際の注意点

vscodeでは+で終わるものはサポートされてないそうです だから、table+ とかは展開できないEmmet: unable to expand abbreviations containing plus sign, like: 'ol+', 'ul+', 'table+',.. · Issue #37686 · Microsoft/vscode · GitHub

論理

プログラマの数学より &&と||はAという条件によってBを調べるかどうか判断している条件付き論理積(&&) A && B A = false のとき Bは調べずにfalse A = true のとき Bの値に等しい #以下のプログラムは同じ if(A && B) 処理 end if(A) if(B) 処理 e…

プログラマの数学

高校〜大学1年の数学をプログラミングに役立ちそうな項目から説明してる。 数学ガールの秘密ノートぐらいの難易度で読みやすく面白い。著書自身も触れているが、プログラミングで数学を利用する機会は少ないが知っていると使える機会があるかも。ちょうど、…

ヒープソート

まず、失敗作を def heap(array,n) return if n<=0 parent = (n - 1) / 2 # 親の位置 if array[n] > array[parent] array[n], array[parent] = array[parent], array[n] end heap(array,parent) end def heap_sort(array,sorted) return sorted << array.shi…

curlとは

”下位10%だけが解けない問題” を見てcurlってコマンドを知った。 CUI版のブラウザみたいな感じでリクエスト送ったりapiを叩いたりできるらしい。以下の2ページがcurlを全く知らない人でもわかりやすく説明されてた。curlを全く知らない人向けにcurlでLINEに…

バブルソート

バブルソートも"後ろから前へ小さいもの"ではなく"前から後ろへ大きいもの"って考えたら ループの終了条件とかがだいぶわかりやすくなる気がする #バブルソート2 def bubble_sort(array) for k in 1...array.length for i in 0...array.length-k if array[i]…

クイックソート

クイックソートって両端から要素を調べて、入れ替えて..を繰り返すと思ってたけど pivotより大きいものと小さいもので分けちゃえばそんなことしなくて済むのか。 それに、こうした方が再帰の考えが使いやすい。 これなら実装できそう。 なっとくアルゴリズム…

なっとくアルゴリズム

なっとくアルゴリズムを読み始める。 pythonで書かれてるけどrubyで実装してみよう。

アルゴリズムをはじめよう実装(ruby)

アルゴリズムをはじめようをrubyで実装 #二分探索 def binary_search(array, serch_num) head = 0 tail = array.length - 1 while head <= tail center = (head+tail) /2 case array[center] <=> serch_num when -1 head = center +1 when 0 return puts "見…

アルゴリズムをはじめよう

"アルゴリズムをはじめよう"を読む アルゴリズムの説明と擬似コードまでは書いてくれてるからこれをrubyで実装してみる

vscodeとatomの比較

atomからvscodeに乗り換えて感じたこと。 主にrubyです。メリット ・rubyの補完ができる atomでのruby補完はなぜかあまりにも遅くて使い物にならなかった・色分けが細かい ruby用の拡張でテーマをより細かくシンタックスハイライトしてくれるのがある・実行…

ruby python javascript どれ学ぶ?

よく比較されそうなこれら3つのプログラミング言語について個人的な感想ruby こんな人におすすめ ・仕事以外でwebアプリを作りたい 特徴 ・webアプリを比較的簡単に作れる ・悪い意味で独特な書き方 ・これから廃れる言語python こんな人におすすめ ・日常業…