Perlの正規表現における「先読み/後読み」に関する私的まとめ

はじめに Perlの基礎文法をある程度身につけて、本職のプログラマーほどではないにせよ、趣味や自分の本業を助ける程度のことができるようになってくると、そのもう一段先、ぐらいのことを知りたくなってくる。現在のぼくにとってそれは正規表現の「先読み/…

バイリンガルニュースとGoogle音声入力による文字起こしでリスニング練習

最近、バイリンガルニュースというポッドキャストをよく聴いている。 bilingualnews.libsyn.comホスト/ホステスのマイケルとマミさんが、英語と日本語を混ぜこぜにして、世界の様々な分野の時事ネタを中心に話しているプログラム。音声だけでも面白いけど、…

carvo update

Perl製の英単語ゲーム `carvo` をけっこう大幅にアップデートしました。 GitHub - note103/carvo Macだと音声も出るようになっているので、音声付き動画も作りました。 6秒目ぐらいで急に音が出ます。 www.youtube.com 以下、つれづれに。 昨日も別のところ…

bashのエラーにハマって直った

最近は作業記録をけっこう細かい粒度で付けているのでわかるのだけど、昨日普段どおりに付けた最後の記録が 2017/06/14 Wed 13:07:02 今から**やる だったので(**の部分は業務内容なので割愛)、少なくともその時点までは正常だったのが、次の記録では …

変数は「箱」か?(3)

概要 本記事では、「プログラミング入門者に初めて《変数》を教えるとき、どのように説明することが適切か」ということ、そして「その際に《箱》を喩えに用いることで生じる問題を、別のどのような説明を用いることで解消できるか」ということについて考える…

Qiitadonについて語る

というわけで、Qiitadonについて書いてみたいと思います。Qiitadonは、今週の初めにオープンしたQiita/Incrementsによるマストドン・インスタンス。qiitadon.com公式アナウンスはこちら。 Qiita ユーザー向けの Mastodon インスタンス Qiitadon を試験的に公…

ノンプログラマーに求められるもの

ノンプログラマーがプログラミングを覚えることにより普段の業務負担を軽減させる、みたいな流れが徐々に活気を帯びてきたというか、この本なんてその象徴のようにも思えるのだけどwww.oreilly.co.jp ふと我が身を振り返ってみると、ぼくが趣味でプログラミ…

基本情報技術者試験の結果

元々はとくに報告する予定はなかったのだけど、ネタになりそうな結果だったので一応書いておく。先月半ばに受けたこちらの試験。 note103.hateblo.jpちょうどひと月後の先週、5/17に正式な合格発表があり、成績(得点)も公開されたようだったのだけど*1、「…

crontabでPerlスクリプトを動かそうとしてハマった話

crontabとは 以下がわかりやすいです。www.server-memo.net@songmuさんによる以下のシリーズも充実しています。 gihyo.jpそのcrontabでPerlのスクリプトを動かそうと思ったところ、以下のようなハマり方をしたのでメモ。 crontabとは crontabはシステムPerl…

2つの配列から重複を弾く(Perlで)

いきなり例題から。以下のような2つの配列があるとき、 my @fruits1 = qw/orange banana apple lemon/; my @fruits2 = qw/orange banana/; @fruits1のうち@fruits2とカブるものをカットして、重複しないappleとlemonだけ@fruits1に残したいとする。こういう…

怖くないwhile

※おもにPerlの話です。非エンジニアながら趣味でプログラミングに入門したのが2013年の夏。そろそろ4年になろうとしているけど、Perlの基礎を学びはじめてからつい最近まで、一貫して怖かったのがwhile文だった。怖い、というのも変な気がするが、ようはすぐ…

基本情報技術者試験を受けてきた

結果 参考書 経緯 勉強した感想 ぼくは算数ができない ぼくは長文が読めない C言語から表計算へ 謝辞 今後 結果 先週日曜(2017/04/16)、基本情報技術者試験というのを初めて受けてきた。同日中に解答が公式に配布されて、翌日さっそく自己採点したところ、…

最近よく使っている自作ツール(3) select.pl

TL;DR Transcript 余録 補足 TL;DR www.youtube.comちょうどひと月ぐらい空いてしまいましたが、以下のシリーズの続きです。note103.hateblo.jpnote103.hateblo.jp今回は、複数のファイルを直感的に選択して、それらに同じコマンドを渡すためのツールです。…

プログラミングを学ぶ理由

ひさしぶりに彼女とお茶を飲んで、まったり雑談していたら、不意に あなたがそんなに好きなプログラミングっていうの、私に教えてみてよ と煽ってきたので、彼女のMacBook AirのシステムPerlで、ターミナルから「Hello」が出力されるだけのコードを目の前で…

MacVimで簡単にウィンドウを切り替える

なぜ今まで気づかなかったのか……? たまたまキーを打ち間違えたら実現した。コマンドを押しつつ「 [ 」か「 ] 」を押すとどんどんウィンドウが切り替わる。 これ、今まで一番欲しかったやつや!!Excelで複数のファイルを開いているとき、コントロール+TAB…

最近よく使っている自作ツール(2) delete.sh

前回に続き、掲題の件。 前回の内容は、以下。note103.hateblo.jp今回紹介するのは、以下。github.comと言っても、シェルスクリプト1本ですが。このツールには前段があって、以前にこのブログでも紹介した「trash」というソフトウェアがあるのだけど、note10…

最近よく使っている自作ツール(1) choco

プログラミングの学習にともない作った自分用のコマンドラインツールというものがあって、折りに触れこのブログでも記録&紹介しているのだけど、それでも以前に紹介した後に手元でどんどんアップデートしつつも外には出せていないものや、新たに作ったけど…

21世紀の文字起こし(2)

以前に書いた記事からだいぶ間が空いてしまったけど、 note103.hateblo.jp今回はその続編というか、スピンオフ的な経過報告。ちなみに、一つ前の記事でも本件の環境設定に関することを書いているので、よろしければどうぞ。 note103.hateblo.jp 目次 目次 今…

AudacityとSoundflowerをセットするまで

昨年11月に長期プロジェクトがひと段落して、軽いマシンがほしかったので(重量的な意味で)、MacBookを購入した。以前のマシンから環境をそのまま引き継ぐか、少し迷ったが、把握していない不要データごと引っ越すのもいやだな、と思ってイチからいろいろ入…

Vimで今見ているバッファを「現在日時+好きなファイル名」で保存する

vim

この自分でVimに設定した「今見ているバッファを現在時刻のファイル名で保存する」がめちゃ活躍している。実際はその後もう少し手を入れて現在時刻+好きなファイル名にできるようにしてあるのでブログにしたいが・・ https://t.co/i5lOZRvLal— Hiroaki Kado…

プログラミング入門を支える技術

こちらはPerl入学式アドベントカレンダーの21日目の記事です。 昨日は@karkador73さんの「Perl入学式に参加して、いろいろ刺激を受けた件」でした。 ぼくは普段 in東京のメンバーとしかつながりがないので、すごく新鮮な話でした。 @karkador73さんがPerl入…

Gitでブランチ名を入力補完する方法がわかった

git

ここ数日、Perl入学式の講義資料を修正する作業をやっているのだけど、 公式サイト www.perl-entrance.org 講義資料のあるリポジトリ GitHub - perl-entrance-org/workshop-2016 作業風景 current status pic.twitter.com/dLa2bQRlO6— Hiroaki Kadomatsu (@n…

最近買った技術書: CとC++

長らく続いたプロジェクトがひと段落し、先週末にようやく髪を切りに行った。前回行ったのはまだ暑い7月か8月で、さすがにどうかという状況だったが、幸いというか何というか、とくに人と会う仕事でもなかったのでずっと放っておいたのだった。その帰り、い…

bcコマンドで電卓計算(小数の)

ちょっとした数字の計算をしたい、けど電卓出すのは面倒……ということがよくある。ぼくはちょっと前まで簿記の勉強をやっていたので、マイ電卓がすぐ手の届くところにあるのだけど(一番体に近い引き出しの中)、そこから出すのすら面倒、と感じてしまうこと…

Perlにおける日本語文字化け対策の私的まとめ

環境づくり utf8プラグマ openプラグマ binmode関数 標準入出力もopenプラグマにまとめる まとめ 付録 Perlで日本語のテキストを処理しているとけっこうな割合で文字化けにハマる。 近いことについては以前ここでみっちり書いたが、 note103.hateblo.jp どう…

Perlのオブジェクト指向をつかんだ

経緯 概念 実例 参考書籍 まとめ・展望 経緯 2013年の春にふと「よし、プログラミングやろう」と決めてその夏にYAPC::Asiaに参加して、その直後に買ったのが以下の本。すぐわかる オブジェクト指向 Perl作者: 深沢千尋出版社/メーカー: 技術評論社発売日: 20…

GOPATHの設定でハマって解決した話

「みんなのGo言語」が話題だから、というつもりでもなかったのだけど、やはり影響はあるかもしれない。みんなのGo言語【現場で使える実践テクニック】作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太,稲葉貴洋出版社/メーカー: 技術評論社発売日:…

Vimと日本語編集(2): 修正前後の原稿の差分を一瞬でチェックする

Vimと日本語編集シリーズ第2回。 前回はこちら。 note103.hateblo.jpけっこうニッチな内容だったと思うが、今回はもう少し使用頻度&汎用性が高いかもしれない。 前提・状況設定 よくある解決策・その何が問題か 解決策 別解 fugitive.vim / Gdiff diffsplit…

Vimと日本語編集: 長文の中の見出しだけを抽出する

vim

以前にすでに書いたような気がしていたが、ブログ内を検索しても出てこなかったので書いておく。 最近とくによくやる作業。 課題と前提 実践: 最小限の工程 応用: 夏目漱石「草枕」より 工夫: マッピングに仕込む 別解: tagbarを使う まとめ 課題と前提 たと…

中島聡著『なぜ、あなたの仕事は終わらないのか』感想: 最大のパフォーマンスを引き出すために

Kindle Unlimitedで読めると知って、本書を読むためにKindle Unlimitedに登録した*1。なぜ、あなたの仕事は終わらないのか スピードは最強の武器である作者: 中島聡出版社/メーカー: 文響社発売日: 2016/06/08メディア: Kindle版この商品を含むブログを見る…

『スクラム実践入門』感想: チーム開発の参考書

発売後けっこうすぐに買ってはいたのだけど、少し目を通してそのままにしていたのを2週間ぐらい前から少しずつ読み直して、けっこうみっちり最後まで読んでみた。スクラム実践入門 ── 成果を生み出すアジャイルな開発プロセス (WEB+DB PRESS plus)作者: 貝瀬…

最近のcarvo: pecoとchoをくっつけた

ブログで紹介するのはもう1年ぶりぐらいになるかな、と思ったけど直近だと去年の11月に書いていた。note103.hateblo.jpとはいえ、リポジトリのほうを更新するのは久しぶり。 GitHub - note103/Carvo このリポジトリ、README.mdもChangelogも前バージョンから…

21世紀の文字起こし

気づき そもそも文字起こしとは そもそも文字起こしとは(2) 音声入力による文字起こしの実践法(Mac) 1. 素材音声の再録音 2. Soundflowerの準備 3. Mac内部で再生+聞き取り 4. 音声ファイルが終わるまで再読み込みなどのケア まとめ 〜そしてtextlint編…

Vim の地味だけどよく使う設定

普段 Vim を使っていて、つくづく「このマッピング便利だな〜」と思うものをご紹介します。 空行・スペース処理 1行ごとに空行を入れる 空行をカットする 行内のスペースをカットする 全角英数字を半角にする Markdown記法のリスト化 日時をすぐに出す 曜日…

OCamlのインタプリタで日本語の文字を扱う

あれはおそらく2013年、Perl入学式に初めて参加する直前頃だったと思うのだけど、以下の本を購入し、プログラミングの基礎 (Computer Science Library)作者: 浅井健一出版社/メーカー: サイエンス社発売日: 2007/03メディア: 単行本購入: 17人 クリック: 409…

C言語の航海日誌(5)〜文字列をポインタで渡す〜

前回の知見と繋がりながらもちょっとズレる発見があったのでメモします。note103.hateblo.jpまず前回の復習をしておくと、int型の数値をこんなふうにポインタで渡す、ということをやった場合。 #include <stdio.h> void foo(int *c, int *d) { printf("*c: %d\n", *c)</stdio.h>…

正規表現の最短マッチに関するVimとPerlの違い

以前にも近い話題でひとつ書いたのですが、note103.hateblo.jpそれと重なりながらもちょっとズレるトピックでけっこうハマったので、おもに未来の自分用にまとめておきます。 例題 以下の文字列に対して、最初の apple だけマッチさせるパターンを考えてくだ…

変数は「箱」か?(2)

以下の記事の続編です。 note103.hateblo.jp 目的を共有する 「わかりやすい」が意味するもの ヒューリスティック 参照渡しと値渡し 名札の問題 新たな喩えの案 「物体」ではなく「情報」として扱う 値渡し(スカラー変数) 値渡し(配列) 値渡し(ハッシュ…

choっと作った便利なツール

以前の記事で、dirmove というディレクトリ間をさくさく移動するための自作コマンドラインツールを紹介しましたが、note103.hateblo.jpこれを @mattn さんによる cho というコマンドラインツールと組み合わせたらさらに便利になってしまい、以前の時点でも自…

textlintをVimから使う

textlintをVimの定番シンタックスチェック用プラグインである scrooloose/syntastic から使える、ということは @azu さんのブログ記事や、同じく @azu さんによる最初のぼくのtextlint記事に対して頂いたブックマーク・コメントなどを通して、情報としては把…

textlintの設定をアップデートした

前回の記事には、珍しくたくさんのブックマークが付いていました。note103.hateblo.jpあんなに長文だったのに……。励みになりました。ご紹介くださった方々、ありがとうございます。 さて、今回はそれ以降の知見として、いくつかtextlint への理解が深まり、…

textlintで日本語テキストの文字校正を試してみた

はじめに 導入 textlintrcを設置 最初のつまずき prh を使ってみる | 2度目のつまずき 追記: 絶対パスにも対応して頂きました prh を使ってみる(2) | 辞書を選ぶ 結果をテキストファイルに書き出す 追記: [39m[32m などを消す方法 コードを書く tx.sh text…

Webページ・ソーシャル文字校正サービスの案

前提 案 1. 対象を記録する 2. 修正案を書き込む 3. 備考を加える 4. 閲覧&コミュニケーション場所へ 5. 問題解消へ まとめ 前提 充実したブログ記事を読んでいるときなどに、ちょっとした誤字や「ここ入れ替えたほうが読みやすいんだけどな〜」と思える記…

変数は「箱」か?

ここ数日、業務が落ち着く頃合いを見計らっては週末に行われるPerl入学式の資料に手を入れていました。 参加登録場所: Doorkeeper Perl入学式 in東京 第2回 〜構文基礎編〜 - Perl入学式 in東京 | Doorkeeper 講義資料 workshop-2016/slide.md at master · p…

最近のC言語に関するVimシンタックスチェック状況

以下の記事で紹介したC言語のシンタックスチェックの方法について、続報。note103.hateblo.jpその段階では、このように記述していたのだけど。 Plug 'rhysd/vim-clang-format' let g:clang_format#code_style = 'WebKit' let g:clang_format#style_options =…

VimでMarkdownをカンタンにHTML化する

note103.hateblo.jp以前に上の記事を書いたのは、もう1年以上前のこと。だから、というわけでもないのだけど、少し方法がアップデートされているので差分を記してみておきます。まず、以前の方法を簡単にまとめると、 Markdown記法で何か書く。 自作の md2ht…

Perlで配列を1行ずつカンタンに出力したい

Perlの小ネタシリーズ。と言いつつ、文章はそこそこ長いです。 課題 さっそくですが、以下のような配列があるとして、 my @colors = qw/red blue orange green yellow/; このまま出力すると、 #!/usr/bin/env perl use strict; use warnings; use feature 's…

Perlの正規表現で後ろからマッチさせる

わかってみると単純ながら、けっこうハマったのでメモ。以下のような文字列があるとして、 my $fruits = '/apple/orange/grape/lemon/banana/'; このうち「lemon」の一つ前にある果物だけを取り出したい、とする。ただし、上記ではその果物が「grape」であり…

C言語の航海日誌(4)

参考書の通読や写経も続けていますが、今日はちょっと寄り道というか予習というか、そんな感じでポインタの自習を。たとえば、こんなコードがあったとして。 fruits.c #include <stdio.h> int main(void) { int apple = 3; int lemon = 8; printf("リンゴ: %d\n", app</stdio.h>…

C言語の航海日誌(3)

少し日が空きましたが、写経は少しずつ進めていて、前回から今日までに8本のサンプルコードを写経しました。ページで言うとp101〜157まで。 全340ページなので、もうすぐ半分に辿りつきそうです。写したコードは、たとえば以下。 #include <stdio.h> #include <stdlib.h> int ma</stdlib.h></stdio.h>…