読者です 読者をやめる 読者になる 読者になる

基本的に怠Diary

学習ログを残したい

Emacs de PostgreSQL

Emacs PostgreSQL

EmacsでPostgres使いたい!


やだやだ!ぼくつかいたい!なんかかっこよく使いたい!


pgAdminやーだー!けんしゅうでつかってるし他のAdmin系でハマってだるくなってるから嫌だ!





と私のゴーストが言っているのでEmacsでデータベース管理ができるように設定していきたいです。


手持ちの本

Amazon CAPTCHA


に書いてある方法試してみたけどよくわかりませんでした。


というかsql-interactive-modeがなくて


sql-interactive-mode-menuみたいなコマンドは存在してて、実行してみたらパラメタが足りない的な単語が出てきて


調べてもよくわからなかったので別アプローチかけてみました。




それがsql-postgresです。


TrườngTX Blog




ここみて設定しました。



(setq sql-postgres-login-params
'((user :default "ログインユーザ")
(database :default "DB名")
(server :default "localhost")
(port :default 5432)))

てかこのコードelispなるものらしいが、

はてなのコード挿入のアレにそれがないのでのlispで囲っても良いものか


lisp過激派とかに殺されたりするの嫌なので素で貼る(面倒くさいだけ



これをinit.elにいれて、Emacs起動して、


M-xでsql-postgresいれてEnterバシバシ(確認はしよう!)さあログインできない。




なんも表示されずとりあえずEnter押したら


password for user DB名


とでてきてpassいれてもProcessがない的なメッセでておしまいでした。。。


とりあえずlogin...done


の後にパスワード入力したらログインできました。



ここらへんうまく調整できたらいいのですが・・・今日はここまで。



残りの時間はエロゲして本読んで寝ます。

コミュ障(ガチ)でも読書管理がしたい!

Ubuntu JavaScript Express MongoDB

達人プログラマ見ながらふと、私は思いました。








本を登録し、


そこから本を選択して読書を開始し、


途中経過(ページ)を登録し


読書の途中経過、リザルトなどを確認できること。


OSはUbuntu16.04LTS

DBはMongoDB(初めて触ります)

サーバサイドはNodejs+Express(こんな表記でいいのだろうか)


です。


MongoDBのインストールはぐぐって適当にやりました。


某サイトの猿真似で普通にできたのでプライベートのノートに書くだけにしときます。


Expressについてですが、普通にできませんでした。


Expressをnpmでインストールした後に


nodeなんて存在しないよ的なエラーがでてたので

sudo ln -s /usr/bin/nodejs /usr/bin/node

でなんとか動くようにしてます・・・w


インストール時名前がnodejsになってるアレの仕業みたいなので


aptに細工入れずにインストールした場合は今回みたいにシンボリックリンク貼るか


ちゃんと細工しましょう。私はこの開発環境はいつ消すかわからないのでそういう検証しません。


流石に検証してもいない古い記事のソースを貼るのもなんかあれなのでやりません。(今更


テーブル構成

books

b_id
name
max_pages
description

readings

rb_id
b_id
current_page
memo
starting_date
last_modified

finish_readings

frb_id
rb_id
end_date





いつものガバ英語




ちなみにこいつは現段階では無視。

checking_books

cb_id
rb_id
target_page
target_row
memo

target_rowは必須入力にはしないつもりです。


memoになんか文字列いれといて後から検索で引っ張ることができたりするといいのかなってテーブル。


そこまでやる気残ってないだろうなという想定のもとで止めときます。


実はもう少し追加したい機能があったりするのですが多分辿りつけないのでやめときます。


本に金額カラムを追加してそこから


購入した本の合計及び、読了した本の合計を使って


そこからいろいろ導き出して自分を煽りたいっての少しあります。






できたらいいなーというマインドの元、軽いテーブル設計だけ作りました。


去年のやらかしや


本年度のライフスタイル的には最後まで作る可能性は非常に低いです。


現在Expressの最初あたりでハマってるので続投は(ry




このままできなかったらやめるか、Laravelをベースに作りなおしになると思います。




とりあえずできなかったらDBにテーブル作って子供みたいにごっこ遊びして勝手に満足してくろーずします。

あーねんまつ

ポエム

今年は1人で年越ししました。


とうとう家族とも仲良くできなくなりました。


俺は今日も1人で、きっと来年も1人だと思います。


私がこうなってしまった経緯にはとても複雑で辛いものがありません。





あるわけないじゃないですか。


ただ、人よりわがままで頭が悪かったからこうなりました。






私はコミュニケーション力だけでは集団に戻ることはできません。


そんなの当たり前だろうと発言できる方は恐らく社内でとても頼りにされている


スーパーマンなのだと思います。


残念ながら私は糞雑魚うんこまんなのでそのような発言はできません。


今の会社は新卒で入社し、現状では私の未来の能力に賭けていただき、


なんとか居座らせていただいています。





結論から言えばそのような未来は来ません。その社員、無能だよ。



技術書一つ手に持てば、理解できずに100ページ付近で止まり、


理解しないままなんとなく進めて閉じ、


成果物一つろくに作れず、結局去年は何も作れませんでした。


でもこの社会はとても優しいのでそういう人間の生き方って存在します。


集団に媚びへつらうことです。それだけで生きていけます。


私は技術的に普通のそれに遥かに劣り、さらに媚の売り方が下手くそです。


私はどうすれば生きていけるのか、と常に考えていますが結局思考停止の


読書という対処を取っています。


多分最適解は友人を作るために外に出ることです。


何故それを行わないのか。


外に出て、人に見られることを想像して、自分の悪口言われるかもしれない


と被害妄想が外に出る前から始まるこの私にそれはとても厳しいです。













今の私にできることは一つ。この人生を何か他のものの所為にして精神を保つことです。


何故私には優れた才能が一つもなかったのか。

何故私はこのような見難い見た目なのか。

何故私は





でもそれって人のせいにする前に、自分に刺さってるんですよ。





なぜなら、

才能を真面目に磨こうとしなかったのも

見難いお腹や顔への対処をしなかったのも

すべて私だったからです。






そこまで考えると頭がもやもやしてくる。


私はどうすればいいのだろうか。このままサボるにももやもやが晴れねば苦しいだけで


改善するためには頑張らないといけないが、何をどう頑張ればよいのだ。





考えても考えても何も思い浮かばない。







そこで気がつく。





そうか、私の人生はもう詰んでいるのか。




考えをまとめていくうちに


すでに私の人生は締めに入っていることに気がつきました。




残りの人生どうしようかなんて考えるだけ無駄。








夜、寝る前、明日をどうやって生きるかを考えよう。


今日を精一杯生きよう。


明後日や明々後日のことを考えるのはやめよう。


私は今、やりたいと思ったことをやる。


数年後後悔しようが知らない。来年は土に帰ってるかもしれないのだから。

ミント、Golangまたやるってよ。

golang 趣味プログラミング Lubuntu

ちなみに元ネタ全く知らないよ。



暇だったのでクッソ有名なRSSライブラリ使って遊んでたよ。


github.com



これです。


ここのテストに書いてあるように利用すれば簡単にRSSで取得できました。



取得して後ろに日付つけたテキストファイルに保存まではできました。


後フィルタ(笑)機能もついていて、TitleとDescriptionに指定した単語が含まれていないものは弾くというものです。




package main

import (
	"fmt"
	"io/ioutil"
        "os"
	"regexp"
	"time"
	"bufio"
	"strings"
	"strconv"
	rss "github.com/jteeuwen/go-pkg-rss"
)

func main(){
	checkRSS("http://b.hatena.ne.jp/hotentry/it.rss")
}

func checkRSS(uri string){
	feed := rss.New(20,false,chanHandler,itemHandler)
	err := feed.Fetch(uri,nil)
	if err != nil {
		fmt.Fprintf(os.Stderr, "[e] %s: %s", uri, err)
		return
	}
}


func chanHandler(feed *rss.Feed, newchannels []*rss.Channel) {
	fmt.Printf("%d new channel(s) in %s\n", len(newchannels), feed.Url)
}

func itemHandler(feed *rss.Feed, ch *rss.Channel, newitems []*rss.Item) {
	contents := ""
	for _, item := range newitems {
		//別々よりこっちの方が早そう
		fmt.Println("title:" + item.Title + "\n")
		if isWordIncludingList(item.Title + item.Description){
			contents += "title:" + item.Title + "\n"
			for _, link := range item.Links {
				contents += "url:" + link.Href + "\n"
			}
		}
	}
	saveContentsLogFile(contents)
}

//受け取った文字列を日付付きのファイル名で./logの下に保存するよ
func saveContentsLogFile(contents string){
	t := time.Now()
	date := t.Format("20060102")
	hour := strconv.Itoa(t.Hour())
	ioutil.WriteFile("log/hatena_" + date + hour + ".txt",
								[]byte(contents),os.ModePerm)
}


func isWordIncludingList(title string) bool{
	var fp *os.File
	var err error
	
	fp, err = os.Open("list.txt")
	if err != nil {
		panic(err)
	}
	defer fp.Close()
	
	scanner := bufio.NewScanner(fp)
	for scanner.Scan() {
		ptr := regexp.MustCompile(strings.ToLower(scanner.Text()))
		if(ptr.MatchString(strings.ToLower(title))){
			return true
		}
	}
	if err := scanner.Err(); err != nil {
		panic(err)
	}
	return false
}

ほとんどパクったようなコードにゴミが混ざってるだけです・・・


これ自体進展させるとしたら

Sqliteを活用する。

・フィルタ機能をもう少し捻る。

GUIでいろいろ操作できるように。



これぐらいでしょうか。やる気は微妙にない。




RSSはもういい


次の記事はJUnitでなんかいろいろする記事の予定です。

敗北、逃走、また敗北。そして試験勉強へー

Lubuntu LPIC

敗北(ArchLinux)と逃走(ManjaroLinux)そして敗北(管理できない)。





ArchLinuxインスコできなくてManjaroに逃げたけどUpdate時間くっそ長いしアプリケーションショートカット消してしまって戻し方わからなかったし

何より使いづらかったのでカスタマイズしようとしましたが無理そうだったのでやめました。




とりあえずLubuntuにおちんちんつきそう。






世界最弱Linuxユーザです。








ついでにEmacs始めました。と言っても狂信的でもなく、

Vimもこれから普通に使っていくつもりです。


要するに経験というやつです。ただちょっと面白そうだったのでEmacs実践入門買いました。

Amazon CAPTCHA



2月辺りまでモノづくりやめてちょっとこいつと遊んでみようかなと思っている次第です。


React入門とは



多分Emacs Lispはやらない。Emacsでプログラミング環境整えて良さげならそれ使って再開といったところでしょうか。

ダメそうなら普通にIDEVimで頑張りましゅ。




なんかphp-modeがよさそうらしいのでそれにわりと期待してます。






後試験勉強本格的に始めました。


いつかLPIC-LEVEL1受験します!     ~完~






じゃなくて多分来年初めあたりに受けます。ちなみに受験するためにプロメトリック的なとこに会員登録する必要がありますが、


私はなんかネットワークの試験受けたときに登録していたのでそこらへんは多分問題ありません。




余裕やな!ガハハ


LPIC(Linux技術者認定試験)実施に関するお知らせ | プロメトリック



([∩∩])








([∩∩])<死にたいらしいな




Ruby認定なんとか取ったら二度と使わなそう。取るかもわからんけど








はぁぁぁぁぁぁぁぁん



sudo apt install -y emacs24
sudo apt install -y vim

い つ も の




Emacsの本読みつつ仕事中に記事を見つけては読み漁りながら勉強しています。


Twitting-modeとか入れたりして遊んでました。


そろそろプログラミングでも遊ぼうかなと思ってるところです。


とりあえず

emacs -nw

別ウインドウもいいけど こっちの方が見た目ゴタゴタしてなくて好き。

後org-modeのToDoリストも使い始めました。

使ってみると以外と楽しくて、まさに「環境」という感じでした。


後ファイルの切り替え、C-x 矢印キー

Vimで複数ファイル行ったり来たりとかわからなかったのでなんか新鮮でした。

普通にC-TABで移動する他エディタより好きです。



そして今辛いことはテキストの選択や切り取りがうまくできないこと。

全然わからない・・・。


しばらく隣によく使うコマンドだけでもいいから表示してくれたりしないかな。




ちなみにこの記事はEmacsで作成していません。

Ar-ch-ch-Linux

その他

絶賛やけど中です。


ThinkPad買いました。L560。

なんかアウトレットとかで安くて、どうせOSも吹っ飛ばすし

サポートなくてもいいかなーみたいなノリで6万4千円ぐらいで買いました。

んで手始めにArch Linuxいれてみようかなと思い立った次第ですが・・・w

普通にできませんでした💢💢



なのでとりあえずLinux Mint(笑)いれました。







んでいろいろ調べなおして、現在作業を再開しています。

ddコマンドの辺りから進んでないです。

Linux初心者だから仕方ない。

この後さらにつらそうな作業が残っているので

多分土日では終わらないでしょうね。。   でも一月はのんびり粘ろうと思っています。



babelの続きの記事をスタバでドヤ顔しながら作成しようと思ってましたが




インスコ作業次第となりそうですね。

Babel入門した〜その1〜

Babel JavaScript

Reactやったるで〜


でもこいつどうやって動かすんだろう。


そんなときブラウザで動くサイトを見つけました。



codepen.io



わーい!





ん? Babel・・・?



ぼくこれしってる! なんか・・・JavaScriptのサーバサイドのふれーむわーくだ!

つまりよくわからん。



というわけでこいつの使い方をほどほどに理解するのがゴール



1.まず動くものを(ry

Facebookつながりだね!

とはいえ情報が足りない。React Babelでググるとなんか環境構築的なのがいくつかでてきたのでそれを参考にする。


CLIいれときゃ問題ないやろ(適当

babeljs.io

英語・・・あっあっ


英語読めなくてもなんとかなるよとは言えないので不安な人は頑張って翻訳しよう!


私は別サイト見たりした。




ぱっけーじじぇーそんをつくるよ!
こいつはnpm installするときとかに便利なやつだよ。

てかpackage.jsonの使い方は沢山書いてあるけど

こいつとは!こういうやつだ! って説明全然でてこない。。。


環境のお品書きみたいなものなのだろうか。

npm君にこういうの欲しくてこういうことはじめにやっときたいからよろしく!

みたいな感じで渡すメモという認識。

JS詳しい人に殺されそうな説明だ。


間違ってたらごめんちょ。詳しく知りたい人はこれ見たほうがいいな。

npm package.json 日本語版 取扱説明書





さて、続き。

とりあえずディレクトリ作ってそこに移動しよう!

mkdir babel-test && babel-test

package.jsonをぱぱっとつくるすごいコマンド!

npm init -y


babel-cliをインストール!
後変換するReactとECMAScript2015のプラグインインスコ

npm install --save-dev babel-cli
npm install --save-dev babel-preset-react babel-preset-es2015

--save-devはpackage.jsonになんか書き込んでくれるやつだよ!

catなりvimなりmicroなりで確認すればわかると思うけど

.
.
"devDependencies": {
    "babel-cli": "^6.18.0"
  }
.
.

みたいなのが追加されてる。



んでpackage.json

   {
  "name": "babel-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
+    "build": "babel src -d lib"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-cli": "^6.18.0"
  }
}

+のとこ追加してやる。


そして

npm run build

でbuildのコマンドを実行!!!
babel src -d lib
やってく・・・れ?






> babel src -d lib

src doesn't exist




えっ


あわああわわわわなんでなんでなんで




と一日中慌ててたのは流石に面白かった。

英語読めないなら読めないって認めて1単語ずつ翻訳しろよ。



後で気が付きましたがちゃんと書いてあるんですよね。

npm君「srcがねーよ!!!!!」

いやこれ中学生でもわかる英語やろ。。。

こんなアホなとこでハマるの私だけやろなぁ。



というわけで

mkdir src 
npm run build






で?

なんかここからがbabel君のしごとらしいけど



えっと srcの下にreactのソースをJSに変換してlibにいれてくれるんやろ?モッピー知ってるよ


lib/test.js

var React = require('react');
var ReactDOM = require('react-dom');

ReactDOM.render(
  <h1>Hello, world!</h1>,
  document.getElementById('root')
);

チェケ☆

npm build run

npm君「は?(笑)」ERR!


私「」


今回はすぐにわかった。てか書いてあった。


.babelrc

{
  "presets": ["es2015", "react"],
  "plugins": ["transform-react-jsx"]
}


下がReactのプラグイン使いますよってことなのは予想できる。

上って何
使う言語・・・?ES2015とReact使うよ的な





は?






presetの意味は前もって決めるとかそんな感じらしい。

やはり使う言語を前もって決めるってことなのか?




ググってもよくわからない・・・!


英語大切だなやっぱ。



とりあえずできるとこまで


再び

npm build run

src/test.js -> lib/test.js


おお 確認確認

'use strict';

var React = require('react');
var ReactDOM = require('react-dom');

ReactDOM.render(React.createElement(
  'h1',
  null,
  'Hello, world!'
), document.getElementById('root'));





お、おう。