windowsでroswellする。

yoshitiaです。

なんかもう年の瀬ですね。

 

小ネタにcommon lispのroswellをwindowsでセットアップしたときの話を。

 

roswellって何よ

github.com

common lispっていくつも処理系(スクリプト実行とかコンパイルしてくれるやつ)

がありまして、時々顔を出す処理系ごとの差分がつらいんだとか。

そのあたりの差分を気にせずに使うためのもの。

quicklisp等の便利なツールの設定もやってくれるっぽい

 

windowsでのインストール

windows7とwindows10で確認した。

roswellのページにwindows用のバイナリのリンクがあるので

32bitか64bitか選んでダウンロード、パスを通す

次にコマンドプロンプトからコマンドを実行する

ros setup

 これで最低限の設定ができる。

デフォルトの処理系はsbclと呼ばれるものがセットされる

 

エラーが出た場合

大抵はros setupで終わるはずですがエラーが出てしまう事も。

common lispはエラー吐くときはちょっとしたものでも

エライ量出るので一旦テキストファイルに吐き出して対処する

ros setup > err.txt 2>&1

よくわからない場合は

標準出力 標準エラー出力 リダイレクトでググれば幸せになれます。

 

日本語対応(sbcl前提)

homeに.sbclrc置いてもrosで起動する時はロードしてくれないっぽいので

ros -L sbcl-bin +R -l ~/.sbclrc

 と書いてから後ろにrunや実行ファイル名やらを書く。

毎回これ書くのはやってられないのでbatファイルを作る。

@echo off
@rem ros.bat - roswell起動用batファイル

call C:\roswell\ros.exe -L sbcl-bin +R -l ~/.sbclrc %*

これをbatファイルに実行すると.sbclrcの設定を読み込んで実行してくれる。

.sbclrcの中身はこれを参照。

it-memorandum.seesaa.net

問題としては使用する処理系の種類がbatファイルに書いたもの固定になってしまうのでroswellの利点、気軽に処理系切り替えができなくなる。

今のところ他にやり方がわからないのでこれでやってみる。

いっそroswell使うときは日本語扱わないほうが面倒減るかも。

使い方

common lispではスクリプトファイルを作るとき、

処理系ごとに書き方やコマンドオプションが異なることがありまして。

渡したい相手の処理系に合わせて書く、見たいな事が起きたり起きなかったり。

roswellを使うと

ros init hello

これでhello.rosファイルができる。

できたファイルに実行したい処理を追加で書き込めばスクリプトファイルが作れる。

処理系の差分はroswellが吸収してくれるので気にしなくていい。

Unix系OSならrosファイル単体で実行できるように書かれているのですが

windowsではその部分が動かないので

ros hello.ros

のようにしてスクリプトを実行します。

 

実行ファイル作成

common lispの処理系はスクリプトコンパイルしてexeファイルを生成できます。

実行ファイルの作成方法は処理系ごとに(ry

roswellの場合は

row build hello.ros

 でexeファイルを作成できます。

 

REPL

 lisp系言語だと当たり前の様についてくるアイツです。

roswellだと

ros run

 で現在セットしている処理系のREPLが起動します。

 

処理系の追加

ros install

これで追加可能な処理系一覧を確認可能です。

ros install clisp

のように指定してインストールします。

ros use clisp

使用する処理系を変更するときはros useです。

 

参考

takoeight0821.hatenablog.jp

Comments on VimConf2017 speaker from participant

VimConf 2017 - An international Vim Conference

note: I'm sorry if it comes to strange expression because it is machine translation.
to @haya14busa

It's amazing that incsearch will be a built-in feature of Vim!

to @fatih

Because vim-go is too amazing, I also agree that Vim will become the share top of the golang development editor.

 
to @mattn_jp, @kaoriya, @k_takata

 It was interesting content but why are there so many Windows countermeasures?

 

to @cocopon

I'm using it right away but it's better to see than default!

f:id:yoshitia:20171105175100j:plain

 

 to @t9md

vim-mode-plus is really amazing!
I would like to convert it to atom if there is no problem with large files.

 

to @senopen

It may be desirable to protect POSIX, but I'd like to hold back POSIXism. Is not it hard to work hard without using new and useful things?

 

to @ShogoMatsu

Shogoware is beautiful!

 

to @dice_zu

I think it's wonderful, but
Are not you doing too much Vim build everyday?

 

to @p_ck_

I really agree that regular expressions are too early for humanity. That is difficult.

 

to @lambdalisue

I also saw last year's announcement!
Why are you so much to give presentations even though you are not native English speakers?

 

to All

Happy Vim Life!

 

Vimかサクラエディタで固定長フォーマットを相手にする

( ´_ゝ`)ノシ

yoshitiaです。

VimConf 2017 は例年と違うようなのでちょっと期待してます。

 

固定長フォーマットって? 

以下のリンク参照で。

http://www.ipc.tohoku-gakuin.ac.jp/simlab/comlec/comop/prog05b.html

 

面倒な点

・行の左端から何番目かが重要

・改行コード無しの1行の場合、pagedownキー・pageupキーは無力。

 

Vimの場合

大体基本機能でok。

・フォーマット頭部分にカーソル移動

    固定長フォーマットは大体頭部分にどのフォーマットか判別するための値があるので

   それを指定して検索。

    nまたはNで前後の検索結果にカーソル移動。

 

・指定の桁数に移動

例: フォーマット開始桁から101桁目の場合。

Vimのノーマルモードのコマンドは使うコマンドの前に数字を入力すると

数字の回数だけ操作を繰り返す。

100hと入力するとカーソルが100桁分移動する。

サクラエディタの場合

・フォーマット頭部分にカーソル移動

    検索でやる。

    一度検索したらF3キーまたはShift+F3キーで

    前後の検索結果に移動できるので便利

 

・指定の桁数に移動

例: フォーマット開始桁から101桁目の場合。

基本のショートカットにはなさげなので

 マクロを用意する。※サクラエディタにはマクロ機能があります。

今回はカーソル移動をまとまった回数移動できるマクロを使います。

固定長フォーマットのファイルでカーソル移動するには

左右にカーソルキー100回分を1回のキー操作で移動できたら便利。(1000回分もありかも)

S_Right(0); // カーソル右移動
S_Left(0); // カーソル左移動

拡張子macのテキストファイルを右移動用、左移動用を作って

一回のキーで移動させたい回数コピペする。

サクラエディタのマクロでループさせる方法見つけられなかったので

詳しい人記事とか書いてくれないかなぁ。

nagoya-neko.com

あとはショートカットキーにマクロを割り当てて

ショートカット一回で100文字分移動とか1000文字分移動できるようにする。

その他、サクラエディタのマクロは以下のページ内にあるリンク先にマクロ構文があります。

http://sakura-editor.sourceforge.net/htmlhelp/HLP000107.html

マクロは今回の様に何回も同じキーボードショートカットを繰り返すときに力を発揮します。

例えば特定の単語の頭に余分に1文字ついていて、コピー&ペーストをしてたから

何箇所も修正する必要がある場合、

マクロの記録でF3, Deleteの操作を記録、

後は1回だけ特定の単語を検索してからマクロ実行を繰り返せばokです。

如何に繰り返しの操作になる所を見つけるかがポイントです。

あとがき

私がVimのtips記事を書くときに

サクラエディタでの操作方法を併記することがあるのは

「特定のエディタの機能を覚える」ではなく、

テキストエディタの機能を覚える」ことを意識しているからです。

新しいエディタを使う必要がある時役に立ちます。

忙しい人のRuby on Rails 5.0

( ´_ゝ`)ノシ

yoshitiaです。

スタートアップテクノロジーさん主催のRuby on Railsもくもく会

(直近の会は定員枠全部埋まる盛況でした。)

に参加して

Ruby on Railsチュートリアル

少しずつ消化しています。

startup-technology.connpass.com

Railsチュートリアル

しっかりしたやり方を覚えるには凄く素晴らしいのですが

プログラミングはじめての人だと結構詰むので

一通りコピペしたらその日で軽く動くところまでは

行く程度の内容を並べてみます。

 

環境構築について

この記事ではCloud9のみで記述しています。

Cloud9でなければRuby on Railsが出来ないわけではありませんが

環境構築の経験がないと厳しいです。

Cloud9の利用が難しい場合は近所で開催されているIT系の勉強会か

詳しい人に手伝ってもらってください。

 

プログラミングで最初にぶち当たる壁はプログラムやアプリケーションを

作れるようにコンピュータをセッティングする環境構築です。

とにかくプログラミングを体験してみたいけど環境構築が難しいという話であれば

OS選ばないのならJavaScript

Windowsならコマンドプロンプトからのbatファイル作成・Excel VBA

MacLinuxであればシェルスクリプト

これらから始めるのはアリだと思います。

参考リンク: Cloud9入門(ドットインストール)

https://dotinstall.com/lessons/basic_c9

 

環境構築

railstutorial.jp

Cloud9。以上。

(登録に要クレジットカード。この記事の範囲内の使い方なら料金は発生しない)

2017/11/11 クレジットカードを持ってない場合、Vプリカのカード番号でもOKみたいです。

 

リンク先の1.2.1から1.2.2まで完了できれば最低限の準備が整います。

$ gem install rails -v 5.0.3

時々こんな感じで$マークの後にgemやらrailsやら書いてある説明があった場合は

Cloud9のワークスペース画面下にあるbashと書いてる辺りに

$マークの表示があるところがあるのでそこに$から後ろの文字を入力して

Enter押して下さい。って意味になります。

ディレクトリとファイルのリストはCloud9のworkspace画面の左側に表示されているのでその中のファイルをダブルクリックするとファイルの中身が表示されます。

ファイルの中身はメモ帳などと同じように入力が可能です。

Ctrl+Sで保存もできます。

最初のRailsアプリ

環境構築が出来たら早速Railsアプリの作成になります。

railsguides.jp

Railsガイドの

3.2 ブログアプリケーションを作成する

ここから読み進めつつやっていけばokです。

railsを動かしてみる場合は

Railsガイドで $ rails new blog している場合、

$ cd ~/workspace/blog

を入力してEnter

$ rails server -b $IP -p $PORT

 を入力してEnterをした後に

Cloud9の画面上部にあるPreviewをクリック、

Preview running Applicationをクリック。

成功するとrailsアプリの動いている画面が確認できます。

 止めるには rails server~を入力した部分をクリックした後に

Ctrl+Cです。

ここまで一通りできればrails newから始めるタイプの参考書の内容は

大体始められると思います。

 

では良いRailsライフを。

その他: 説明していない事

この記事では最低限の事しか書いていませんが

他にも覚えることはあるので検索のヒントになる単語だけ置いておきます。

Gemfile

Gemfile.lock

bundle install

bundle update

git コマンド

git config --global

git init

git add -A

git commit -m

git remote add

git remoto set-url

github

ssh key

公開鍵

秘密鍵

git branch -b

git checkout

git checkout -f

git push

git pull

heroku

heroku toolbelt

デプロイ

basic認証

Vimでウガンダに寄付してvim onlineに名前を載せる

yoshitiaです。

とある研修でVimに出会ってから大体10年になるので

記念に寄付をしたわけで。

正直な話vim onlineに名前を載せたかったもので・・・。

 

ちょっとやり方失敗したのでその記録を。

 

Vim hall of honourに名前を載せる条件

・100ユーロ以上の寄付を行う

・寄付後、メールでregistration keyが届くので

それをvim onlineで作成したアカウントにに入力

 

 寄付を行うやり方で失敗した。

paypalのdescriptionを"Vim registration"にして寄付しないと

条件を満たさないっぽい。

 

最初ICFFのサイトから寄付した。

 

改めてvim onlineのリンクから寄付を実施。

無事Vim hall of honourに名前を載せることができました。

 

オチ

Q. やり方間違えた寄付はどうしたの?

A. 一旦寄付したものをやっばなし、とやるのもアレなんで

訂正せずにそのまま寄付。

Ruby on Railsでhttpサーバgemの指定

( ´_ゝ`)ノシ

 MS de:codeの2日目の記事書いてない、

と思い出したらもう8月末orz

de:codeは参加者多いから誰かが書いてると思うので

私が書かなくてもいいな(言い訳)

 

本題。

railsチュートリアル(rails5.0対応版)でpumaの設定をセットしたら

pumaはwindowsに対応してない?らしくてエラーが出るようになった。

ローカルで軽く動作確認したいだけならwebrickで十分なので

rails serverでwebrickを指定して起動できる方法を探したらあった。

対象gemバージョン: rack-1.6.0beta later

$ RACK_HANDLER=webrick rails s

 これで起動させればwebrickで起動する。

rackのバージョンは

$ rake about

で確認できます。

RACK_HANDLERについて

gemのrackで利用する環境変数

値が指定されている場合は指定されているgemを利用する。

指定されていない場合の動作はpuma > thin > webrickの優先度で

設定があるか確認してhttpサーバを起動する。

 

お世話になってる勉強会

今年の7月くらいから株式会社スタートアップテクノロジー

@naoki_m1006さんが主宰されている

【初心者歓迎!】Ruby on Railsもくもく会@渋谷

(リンクは2017/08/19開催時の募集。)

に何度か参加しています。

今のところ土曜日の14時開催が基本のようです。

html?それRailsで使うんですか?

レベルの初心者の方も参加されてるので

必要なのは案内通りやる気、PC、教材(これは無くてもなんとかなる)です。

早く一通り覚えたい。

MS de:code2017 1日目に参加

yoshitiaです。

今年のアップデートでkindleに音読機能付いた情報にガタッとなっています。

 

本記事はde:code 2017 1日目に参加したセッションの記録です。

 今回のyoshitiaの目当てはAIより開発手法まわりの話でした。

基調講演

初参加でよく知らなかったのですが

de:codeは米国で開催されているイベント MS build の内容を

日本でも紹介するものらしい。(+日本向けの追加セッション)

メインテーマとしては「AIスゲー」だった気がする。

デモではスピーカーの方が滞在先のホテルで見つけてきた落ち葉を

AIで品種判定してた。

 

『変わらない開発現場』をかえていくために ~エンプラ系レガシー SIer のための DevOps 再入門~

 内容は開発手法の紹介ってよりSIerに開発手法やソフトウェアの更新を行う上で

考慮することは、って話でした。

雑に言うと軍隊が装備を更新したり新装備に合わせた部隊編成変更するには、

みたいなノリ。

内容はweb記事で確認できます。

blogs.msdn.microsoft.com

 

 DevOps でリードタイムを 8 か月から最短 1 週間まで短縮!! マネージャや開発チーム変化の赤裸々話

こちらはwebでネタにされる典型的なタイプのSIer

段階を踏んで少しずつDevOpsの手法を取り込んでいった苦労話です。

新しい技術を導入するのは外部から人材呼ぶくらい思い切らないと

厳しそうだなぁ。

 

channel9.msdn.com

日本企業の生産性を根本から改善する 8 つの習慣とその事例

 DevOps等2000年以降色々と出てくる米国から発信されてくる

開発手法について日本が導入する場合の困難について解説しています。

日本の開発現場は他国より不確実性忌避と長期志向が高いそうです。

言葉をくだくと、まずはやってみよう・駄目元でチャレンジを簡単に認めない、

一旦決めたものは簡単に変えたがらない傾向です。

それがいいか悪いかは人それぞれだと思いますが

新しい開発手法を受け入れたり生産性上げる目的には向かないので

取り入れていきたいものが8つの習慣だそうです。

詳細は以下のリンクで。

simplearchitect.hatenablog.com

 

War is over : ブラウザエバンジェリスト達とWebの未来を語ろう

MicrosoftgoogleMozillaのブラウザまわりに関わってる人が

集まって話してるってのが時代変わった感あった。

webでもコンパイルって単語が当たり前になってきてるのか・・・。