Bercriber's Blog

すべて 日記 音楽 短歌 振り返り プログラミング

2021/04/30 20:19


ギター買った

買うまでが一番楽しい説。めっちゃ難しいんですが、こんなんでしたっけ。こんなんだった気がする。レフティの小型のセミアコ/フルアコを探したら、これくらいしかなくて、お高い感じだけど、まあ、人生豊かにできる可能性があるのならいいやと、その値段の価値はあるのだろうと、買ってしまつたしだいです。この先、同じようなレフティの小型の箱ものを買おうと思ったら、フルオーダーかひたすら中古定点観測をするかあろうな。そう思うと安かった方なのかもしれない。どちゃくそかっこよいです。

Rozeo Ladybug SM-TBC DHB Left Hand Vintage Sunburst


2021/04/29 23:31


APIを使ってMarkdownをはてなブログに投稿する

const http = require('https')
const fs = require('fs')
const process = require('process')
const matter = require('gray-matter')
const escapeHtml = require('escape-html')

const USER = 'hoge'
const APIKEY = 'fuga'
const APIURL = 'https://blog.hatena.ne.jp/$user/$user_blog_url/atom'
const KEY = USER + ":" + APIKEY

const post = fs.readFileSync(process.argv[2], 'utf8')
const gray = matter(post)

//http.get(APIURL + '/entry', {auth: KEY}, (res) => {
//  let data = ''
//  res.on('data', (chunk) => data += chunk)
//  res.on('end', () => console.log(data))
//})

const date = (new Date())).toLocaleString()

const category = gray.data.category.split(/\s+/).map(c => `<category term="${c}" />`).join('\n')

const xml = `\
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
       xmlns:app="http://www.w3.org/2007/app">
  <title>${gray.data.title}</title>
  <author><name>bercriber</name></author>
  <content type="text/x-markdown">
  ${escapeHtml(gray.content)}
  </content>
  <updated>${date}</updated>
  ${category}
</entry>
`

let req = http.request(
  APIURL + '/entry', 
  {
    method: 'POST',
    auth: KEY,
    //headers: {
    //  'Content-Length': Buffer.byteLength(xml)
    //}
  }, 
  (res) => {
    console.log(res.statusCode)
  }
)
req.on('error', (e) => console.error('hatenaPost error: ' + e))
req.write(xml, 'utf8')
req.end()

2021/04/29 18:59


積読を処分しようとかたずけとともに始まる読書は謝罪

無読罪の償い


2021/04/29 18:51


わからない わからない わからないと言いつつ最善手を指すやんけ

そうなんだね。


2021/04/29 18:40


白黒はっきりさせる矛盾に一同なっとくする一部始終

あ、それでいいんですね。


2021/04/26 13:03


Vimで楽にBlogを書く

このブログは投稿をGithubにpushして公開になる。
流れとしては

この一連をVimrcにまとめたのが以下。楽になりました。

" Blog 
command! BlogNew call BlogNew()
augroup Blog
  autocmd!
  autocmd BufWritePost $HOME/Github/blog/md/*.md call BlogUpload()
augroup END

function BlogNew()
  let l:dir = $HOME . "\\Github\\blog"
  let l:file = strftime("md\\%Y_%m_%d_%H_%M.md")
  let l:header = "---\ndate: " . strftime("%Y/%m/%d %H:%M") . "\ntitle: \ncategory: \n---\n"
  execute "cd " . l:dir
  execute "e " . l:file
  execute ":normal i" . l:header
endfunction

function BlogUpload()
  let l:cmd = "git add md/*.md && git commit -m 'new md' && git push"
  echo system(l:cmd)
endfunction

2021/04/25 21:52


できるできないはやってみなくちゃわからない先にある「続かない」

練習をしなくちゃうまくならないとわかっているはずのピアノに埃
勉強をしないことによって未来が変わるその前に死ぬといい
話は死んだ by ニーチェ
その話は誤解を生むからそんな話はしていなふりをする


2021/04/24 11:57


Next.jsで静的にネストしたルーティングでページを生成する

// pages/blog/category/[...id].js

export function getStaticPaths() {
  let ps = getPostList().map(p => getPost(p))

  let categoryList = [Category]
  let categorizedPosts = {CategoryName: [Post]}
  
  // カテゴリーの記事全部を10記事ごとにわけてページを作りたい
  let pageSliceLength = Math.ceil(categorizedPost.length / 10);

  // type Paths = [{params: {id: [path]}]
  // ファイル名が[...id].jsであればidがキーになる
  let paths = []
  for (let category in categorizedPost) {
    for (let index = 0; index < pageSliceLength; index++) {
      // /blog/[$category]/[$index] 
      const id = [category.toString(),index.toString()]
      paths.push({params: {id}})
    }
  }

  return {paths, fallback: false}
}

export function getStaticProps({params}) {
  const [category, index] = params.id

  const ps = getPostList().map(p => getPost(p)).filter(p => p.category == category)
  const posts = ps.slice(index * 10, index * 10 + 10)

  return {
    props: { posts, category, index }
  }
}

2021/04/21 21:55


20万円のギター買うつもりになってる

8歳くらいの時に机にぶら下がってたら机が倒れて、倒れた机と床の間に左中指と薬指をはさんでつぶしてしまい、つぶした指先が変形、ギターの弦を抑えられない手になってしまった。そのことに気づいたのが14才の時に普通のストラトギター買った時。すぐに挫折してツライ感じになってた。それから10年してピアノを初めて、楽しいのだが全然うまくならない。左手と右手が同時に動かせない。これもこれで練習が足りないと言えばその通りなんだけどツライ。簡単なコード押すくらいはできるので、それでカラオケしてる。楽しい。

でもなんか行き詰っている感があり、どうしたもんかと思っていたら、最近unravelのn-buna remixが発表されて、そのMVの中でGibson ES330を使っていた。最近ヨルシカ信者になっているのでこれが刺さって、ギターをどうにかもう一度引けないものかと思った。左手で引けないのであれば、右手で引けばいいのではないかと思い、左利き用ギター、レフティギターを探し始めた。そのなかでもES335系のセミアコを探した。理由はかっこいいのと生音でも程よく響き、練習できそうな感じだから。レフティのセミアコはかなり珍しく数が限られている。いくつか見つけたがどうにも微妙。初めてのレフティギターに14万で入門ってハードル高いんだよな。続くのかも分からんし。

あとヤフオク、メルカリあたりで珍しいのが10万からちょこちょこでてる。SeventySevenのEXRUBATO-STANDARDとか良さそうで、6万円からオークション始まって10万で入れたら速攻で抜かれてどうしたもんかなぁと悩み中だがあと一日で終わるので悩んでいる暇なしなのも困る。レフティという変な条件さえ入れなければ種類も豊富で、価格帯も半分以下とかざらにある。右利き用を安く買って、ナットをレフティ用に変えて、弦貼りなおせば、とりあえず弾ける形にはなるのだろうけど、ノブ類が絶対邪魔になるからストレスだろうな。指先を怪我したことがこんな風に影響してくるとは思わなかった。30万~40万の本家のGibsonのES335のレフティが出てるがさすがに買えない。そんな感じでセミアコ以外にも選択肢を広げ、フルアコも物色。その中で良さげなのを見つけた。

ES335系はでかいのが気になっていたのでそれを解消してくれるサイズだ。フルアコだが小さいので生音のボリュームも小さめであろうと勝手に予測。家練習では生音は小さい方がありがたい。しかし20万だ。入門者が買っていい値段じゃないはずだが、三日くらい一日中「レフティ ギター」「レフティ セミアコ」「レフティ フルアコ」「レフティ アコギ 薄い」「アコギ 消音」とかかんとか検索しまくって欲望が飽和状態にあるので20万が妥当な値段に思えてきており、ほぼ買う気になっている。別に予算は問題ないのだが(そんなわけない)、レフティじゃなければ5万で十分買えたはずなのに、レフティの制約で巡り巡って、RozeoのLadybugという素晴らしいギターにたどり着いてしまった。これはもうしょうがないのではないか。しょうがないね。わっしょい。わっしょい。


2021/04/20 17:40


同じことばかりしていることは無駄ではなく洗練への通過点

blogをがっつりリファクタリングしたらコードがすっきりしすぎて、今までやってきたことはなんだったんだ感があふれる。最初からやればよかったんだが、書きながら仕様を決めていくスタイルなので難しい。シンプルとはカオスを作り出した上で、そのカオスをリファクタリングしていくことによって生まれるのではないかと思う。



48