サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
anatofuz.hatenablog.com
こんにちは。id:anatofuzです。 これはPerl Advent Calendar 2024の15日目の記事です。 昨日はid:mackee_wさんによるaquaでperlを入れて使えるようになりました でした。relocatable-perl自分は低スペックのPCでとりあえずPerl動かしたいときによく使っています。 さて、PerlはC言語からの影響が強い言語ですが、C言語にあってPerlにない、というよりあったが使われてなかった機能にcase文があります。 かつてはPerlのコアにgiven-whenと呼ばれるcase文の機能がPerl5.10.1から導入されていました。 use v5.10.1; given ($var) { when (/^abc/) { $abc = 1 } when (/^def/) { $def = 1 } when (/^xyz/) { $xyz =
本日2024年12月13日を最終出社として、2021年の4月から新卒として入社してから3年半ほど努めていた株式会社はてなを退職します。 入社時はこんな感じでした。 anatofuz.hatenablog.com はてなではノベルチーム、システムプラットフォームチームを経験させてもらいました。 特に新卒時代からお世話になったノベルチームではWebアプリケーションエンジニアとしてやっていくとはこういうことだというのを叩き込んでいただき、今の自分が作られたと思っています。 speakerdeck.com 特に配属されて初めて自分のPC上でカクヨムの開発環境が立ち上がったときの感動は今でも覚えています。 学生の頃からPerlでプログラミングはしていましたが、PerlでWebアプリを書いて給料をいただくのは初めての体験でした。Webアプリケーションエンジニアとしても力をつけられたのはありがたい限りで
asdfコンパチのバージョン管理ツールrtxがmiseにリネームされていた - Acme::AnaTofuZ->new;に続いてmise(rtx)の小ネタ。 miseのセットアップではeval "$(~/.local/bin/mise activate zsh)"のようなものを.zshrcに書くだけで済むのが基本形になっている。 自分が操作しているターミナルで使う分には問題ないのだが、例えばVSCodeがmiseでいれたperlを呼び出したり、タスクランナーでnodeを動かそうとすると、yarn not foundみたいなエラーが出てくる。 これはmiseは他の*envと異なり、環境変数PATHそのものをダイナミックに書き換えることでバージョン管理を行っていることが影響している。 他のenv系はshimsと呼ばれるシェルスクリプトで環境ごとのコマンドを呼び出しており、環境変数PATHはsh
TL;DR asdf互換のRust製のバージョン管理ツールのrtxがmiseにリネームされてるよ brewもrtxではもう入らなくなっている(miseが入る) すでにrtxをbrewで入れていた場合はbrew upgrade時にmiseが自動でインストールされ、rtxが消される rtxにエリアスが貼られてるとかはないので、シェルスクリプト中のrtx表記は一律miseにリネームする必要がある miseの初回起動時にrtxのディレクトリからmiseにマイグレーションが自動で行われる ただしPythonなどはパスが変わってると動かなくなるので、人によっては入れ直しまたはマイグレーション前のディレクトリを環境変数で指定すること 詳細 いつものようにbrew updateとbrew upgradeをしたところ、rtxのコマンドが見つからない系のエラーがでた。 おいおいおいと思ってwhere rtxと
先日の2023/10/6 - 2023/10/7に卒業以来3年ぶりに沖縄に帰ってハッカーズチャンプルー 2023に参加してきました。 hackers-champloo.org 地味にその前週にOkinawa.pm(という名の飲み会)のために沖縄に行っていたので、なんと2週連続で沖縄に行ってました。 とはいえOkinawa.pmとハッカーズチャンプルーは全てにおいて優先されるイベントなので2週連続でも行くわけではあります。 前夜祭 id:touba_rumba先輩が受付やってたのが早速在りし日の沖縄っていう感じであまりにも良かったです。k_nishijimaさんやかびさんら沖縄でお世話になったみなさんも居たのがいきなり最高でした。 SAKURA innobase Okinawa は初めて行ったのですが、とても綺麗かつ設備も充実していて良い環境でした。いつか勉強会ここでしたいね。 懇親会では沖
こんにちは。そろそろ京都に引っ越して3年のid:anatofuzです。 先日のYAPC::Kyotoではスタッフをしていました yapcjapan.org コアスタッフではあるものの、昨年末から今年にかけて引っ越しがあったり、本業の仕事もなかなか大変で平日は仕事をしてそれ以外のことができない、土日は疲労という感じで身動きが取れない、様々なことが発生してメンタルも死*1という状況が数ヶ月続いてしまい、あまり準備にコミットすることができませんでした。ここはid:papixさんはじめスタッフの皆さんに非常に申し訳なく思っています。 その分準備と当日のスタッフ業こそはちゃんとやろうとしていて、当日は土俵の部屋番長をやっていました。主にslack/twitterで状況を確認しつつ、タイムキープをしながらメンバーと連携していく係です。土俵のスタッフのid:tomcha0079さん、id:nhayato
リッチなフロントエンドを開発しているとGraphQLを使いたくなるときがあり、さらにそのバックエンドをPerlで実装したくなるときもあるでしょう。 このエントリではPerlでGraphQL開発をしたい時に使える2023/02/24現在のPerlのGraphQL周りのライブラリ事情についてまとめます。 GraphQLフレームワーク graphql-perl GitHub https://github.com/graphql-perl/graphql-perl CPANではGraphQL https://metacpan.org/pod/GraphQL PerlでCPANモジュールを使ってGraphQLバックエンドを実装したいとなった場合に現状コレ一択。 PerlCareersの支援で資金援助を受けて実装されている。 世界観としてはThis module is a port of the Gr
これははてなエンジニアアドベントカレンダー2022 42日目の記事です。 昨日は id:k-murakami0609 さんの 過去に所属してたチームに転生したら導入したいもの でした。 はてなのノベルチームで日常的に使っている便利グッズ最高ですね!! みなさんもノベルチームにjoinして体験してください!!! さて今回は2022年にぼちぼち始めたCPANモジュールのメンテナを引き継ぐ活動についてお話しようかなと思います。 CPANモジュール CPANモジュールとはご存知プログラミング言語Perlのモジュールシステムのことです。 Perlインタプリタに付随しているコアモジュールも含めて、PerlではCPANと呼ばれるアーカイブにモジュールがアップロードされ、cpanmやcpmなどのツールを通してインストールし利用する世界観になっています。 TeXのモジュールアーカイブのCTANに影響されて作
TL;DR 特に順番は気にしないとき path+=('/hoo/bar/baz'); 最初にいれたいとき path=('/hoo/bar/baz' $path) PATH通そうとして壊れるヤツ UNIXを使っている上で避けて通れないのが環境変数$PATHでしょう。 :区切りにディレクトリを列挙して、列挙されているディレクトリ直下に置かれているバイナリファイルをコマンドとして使えるようにするアレですね。 そんな$PATHに新しいディレクトリを追加しようとして、ついつい次のような事故がよく置きます。 export PATH="/hoo/bar/baz" こうしてしまうと最初から$PATHに設定していたデータが吹っ飛んで、PATHの中身が/hoo/bar/bazだけになってしまいます。こうなるとlsとかのコマンドが使えなくなる訳ですね。 zshだと$pathで配列として扱える この問題は何が原因
これはPerlアドベントカレンダー2021の12日目の記事です。 昨日はshogo82148さんで、Perl 5.35.5 の iterating over multiple values at a time を先取りでした。 今回はPerlでもいい感じのモジュールのImportをしてくれるApp::perlimportsの紹介です。 App::perlImports Perlのモジュールロード ロードタイミング useの処理 import use時に差し込まれるモノたち あらためてApp::perlImports 使ってみる インストール方法 使い方 注意点 自動でuseしてくれる訳ではない 関数エクスポート以外のuseは工夫の余地がある メソッドの追加などの副作用で持つモジュールをuseしている場合は、--no-preserve-unusedに気をつける App::perlImport
なんか今日docker for macがアップデート入った。 今まで通りdocker-compose upしたらこんな感じの表示が出た $ docker-compose up Docker Compose is now in the Docker CLI, try `docker compose up` なんかdocker compose upしてみろとか描いてあったので使ってみた $ docker compose up [+] Running 0/1 もうちょっと煌びやかな感じの表示が出ていた。 それっぽいコンテナの起動ログが出た後に The new 'docker compose' command is currently experimental. To provide feedback or request new features please open issues at ht
ついに社会人になり、主戦場がmercurialからgitになりました。 gitは今まで脳死で[email protected]でcommitしていたのですが、娑婆にでると会社のドメインでcommitする必要性が出てきます。 しかし一般的な趣味プロダクトとかで会社のドメインを使うと不要な怒られが発生する可能性がある...!! 会社のプロダクトに関するものだけ会社のドメインを利用したい...!! という感じで、ディレクトリに応じてgitの設定を切り替えるようにしてみます。 リポジトリ管理 ディレクトリごとに設定を切り替える場合はリポジトリをローカルでどうやって管理するかが重要になってきます。 こういうときはghqを使うと良い感じにURLに応じてディレクトリを掘ってくれるので、会社のドメインに応じたディレクトリを勝手に作ってくれます。 今回は github.com/borderShojiみたい
はい blog.sushi.money 本題 ということで2021年4月1日より株式会社はてなに新卒入社しました。 職種はアプリケーションエンジニアで、勤務地は京都*1です。 チームはノベルチームなので、カクヨムなどのインターネットサービスに関わることになると思います。 はてなはPerlのアプリケーションがもりもりあるので、合法的にPerlを書くことができる環境で仕事をすることになります。(以前のインターン先では脱法Perlをキメていた) はてなとの関わり はてなとは2017年のサマーインターンに参加したりといろいろな関わりがありました。 サマーインターンでは近年まれに見る途中リタイアだったので、終わった後は色々とありました。 「自分はIT業界でやっていけるのだろうか。。。プログラミングしていけるのだろうか。。。」みたいなものですね。 YAPC::Tokyoや大学・大学院の学生生活を経たり
この記事はPerl Advent Calendar 2020と琉大 Advent Calendar 2020の11日目の記事です。 PerlはPerl5になって長いですが、現在の最新の安定版のバージョンは5.32です。 Perl5.32で取り入れられた(厳密には5.31からですが)のおもしろ機能として連鎖比較(Chained comparisons)が存在します。 今までPerlで数値などが特定の範囲に含まれているかどうかをif文で判定するには次の様に書く必要がありました。 if (10 < $n && $n <= 20) これがこう書ける様になります!!! if ( 10 < $n <= 20 ) {...} 便利!!!!!!!!!!!!!!!!!!!!!!!! ...........というわけで、この便利な連鎖比較がどの様に実装されているかを探検してみます。 言語処理系の実装 さて今か
というわけで一度投稿してみたかったエントリです!!! 2020年6月24日(水)に発売される WEB+DB Press Vol.117 の Perl Hackers Hub に「Perl歴史散策」を書かせていただきました!!みんな買ってくれ!!!!!! 沖縄だと多分無いですが大手書店では6月16日からテスト販売があるそうです!!!自分の近所の書店が大手書店だと思われる人は買ってください!!! ちなみに外出するのはな...という皆様のために電子書籍でも販売しています!!! 気になる内容 気になる内容ですが Perl1.0から現在のPerl5.32に至るまでの代表的なバージョン(1,2,3,4,5)の解説 構文の進化を追っていく インタプリタのC実装の特徴 当時のPerlのリポジトリの中身 Perl6/Rakuの歴史と現在 最新Perl5情報 ...と、個人的な趣味MAXみたいな内容でお送りし
こんにちは! id:anatofuzです。 皆さんのおかげで、ラトビアのリガで開催されたPerlCon2019に参加し、無事帰ってくる事ができました!!! 報告が遅れてしまいすいません 🙇 という訳でこのブログではPerlConの参加から帰国までのイベントレポートを乗せていこうと思います!! 旅レポート 初日 東京 -> ヘルシンキ 2日目 市場 スオメンリンナ島 近場の教会(生神女就寝大聖堂) ヘルシンキ大聖堂 テンペリアウキオ教会 ヌークシオ国立公園 3日目 エロマンガで朝食 公園 カンピ礼拝堂 ヘルシンキ市街 ヘルシンキ空港 リガ リガのホテル リガでの食事 3日目 (PerlCon 1日目) 移動 会場 オープニング、聞いたトーク 突然のトーク順番変更 部屋騒動 夜 4日目 (PerlCon 2日目) 朝ごはん 自分のトーク 聞いたトーク スピーカーディナーなど 5日目 (Per
はい という訳でWantedlyのサマーインターンに行っていました。驚くべきことにPerlはメインで動いてないです。 wantedlyinc.com 行くまで ちょっと前に「本採用の逆求人だと思って行ったらインターンの逆求人だった」サポーターズの逆求人イベントに行ったのですが、そこで id:izumin5210さんとid:yjmkzkさんとお話する機会があり、サーバーサイド側でやっていることが面白そうだったので応募するぞ!!! となりました。応募後は一度リモートで面談をして、そこで決定という感じです。 あの回のサポーターズのイベントにいたid:sosodemonaiくんやid:sathoeku先生もインターンにいたので、なかなかおもしろかったです golangは書いてないのでなぜOKだったのかはよくわからないですが「おもしろPerl沖縄県民採用」みたいな感はあった インターン先の印象 はて
追記(2019/07/08) カンパのご協力ありがとうございました!!! 目標金額を達成していましたので一旦停止致します!!! 皆さんありがとうございました!!!!!!!!!!!! こんにちは id:anatofuzです。 8月の7-9日の三日間にラドビアのリガでPerlConというPerlの国際カンファレンスが開催されます。 PerlCon 2019 | The European Perl Conference in Riga, Latvia 学生のうちに海外カンファレンスには行ったほうが良いという話を聞いており、 以前YAPC::Tokyoで登壇した「レガシーPerlビルド」をベースにPerlCon用にCfPを書いた結果、プロポーザルが通ったのでリガで登壇する予定です。 ですが、ラドビアへの交通費が予想以上にかかってしまい、行くことは可能ですが、今後の大学生活で利用したい資金(下宿先の
(感想は別で書く予定で, これはYAPCを通じて考えたエモい話です) 最近(1年くらい)は好きなことに対して自信が持てなかった気がする. YAPC::Kansaiの時などは, 勉強したてのPerlとAcmeモジュールが好きで, 書いているAcmeモジュールのロジックがコピペだろうと正直作っているだけで楽しかった. 最近の精神状態では, 意味を理解しないとロジックを書くべきではないとか思ってしまって多分書いてなかった気がする. Perlを書くこと.Acmeモジュールを使ったり読むこと.Perlの本を読んで勉強すること. その全てが純粋に楽しくて,その習得状況や書くコードの質などの差は確かにあるかもしれないが, それには本来優劣などは存在しない行為だと思う. 誰かと戦う為にジョークモジュールを作ることはないし, 何か強制的にコードを書く必要も本来はなかった. 純粋に楽しいからしていて,ただそれ
こんにちは id:anatofuz です.これは琉大情報工学科(知能情報コース) Advent Calendar 2018 4日目の記事です. 今日は皆さん大好きなPerl6についてです. Perl6とは Perl6に関しては僕の卒論を見ていただけると良いかと思います Perl6とはPerlっぽい別言語です. 誤解されることが多いですがPython2とPython3の関係ではなく,どちらかというとJavaとJavascriptっぽい関係です. 当初はPerl5の次期バージョンとして開発されていましたが, 開発が進むに連れて互換性の無さや新規文法がもりもり増えてしまった事で「あれ,これPerlじゃなくね?」という事で別の言語となりました. Perl6は設計と実装が分離しており,主要な実装はRakudoです. 現在の設計はテストスイートRoastを,実装に関してはドキュメントを見るという世界で
はじめに こんにちはid:anatofuzです. これはPerl Advent Calendar 2018 1日目の記事です. なぜ僕が初日を担当しているかというと以下のような経緯です. Perlアドベントカレンダーday 2,3,4,5が空いているのでそれぞれPerl2,Perl3,Perl4,Perl5.0を動かす話を乗せれば良いんですか— 八雲アナグラ (@AnaTofuZ) 2018年11月2日 day 1 お譲りしますよ!?— kobaken (@kfly8) 2018年11月3日 空けてしまいました(悪人)— kobaken (@kfly8) 2018年11月3日 ...というわけで id:kfly8 さんの思惑で(?)トップバッターになりました. よろしくお願いします. さて,初日なのですが, 当初の予定通りPerl1.0を動かす話にしようかな...とは思ったのですが 実際の
追記(2018/07/19) 処理速度ではなくてプログラムの起動時間というご指摘を受けたのでタイトルを修正しました🙏🙏 純粋な処理時間の測定は別途行おうと思います.後半の感想の部分は読み流して頂けると 🙇 🙇 目的 今回は以前のエントリで書いたようなPerl6の正規表現などを使い同じ処理をするプログラムが,各言語でどういったパフォーマンスの差が出るかの検証を行います. 題材 題材としてはmac os Xの /var/log/system.logのデーモンの回数を数え上げるというプログラムです. 処理の流れとしてはまずコマンドライン引数を確認し,それに応じてファイルを開きます. 開くことが想定されている/var/log/system.logファイルは次のような形式になっています. Jul 18 01:31:55 anatofuzMBP Dropbox[96084]: [0718/01
これはPerl入学式春のブログリレー3日目のエントリです。 昨日はPerl入学式校長のid:papixさんのエントリでした。 Perl入学式の基本スタンスである「プログラミング未経験者の方がプログラミングを好きになってもらえる/良いエンジニアとなる」という事を改めて考え直せました。 さて僕からはPerl入学式に参加してみようかなと思う皆さんに向けて,Perl入学式を完走するとできるようになることについて書いていこうかなと思います。 出来ること 母国語が持てる ここで言う母国語とは、我々が普段会話に使っている日本語ではなくて、プログラミング言語の母国語です。 母国語、つまりbaseとなる考えをPerlで持つことによって多言語の習得がしやすくなります。例えばrubyやpythonやGoなど…多種多様な言語も「あぁPerlのアレね…」という感じで理解していく事ができます。 これは僕が1番Perl
okinawapm.connpass.com という訳でLTです いつも通り飲み会の後半でLTをするというスタイルで、前々日にリバースエンジニアリングをした事を微塵も感じさせないLTが出来たと思います。楽しかった。 内容 おおよそこのリポジトリのPerl1.0を利用した話です。なお大体のコードはPerl5でも動きます。 その後わかった話としてはPerl1.0では連想配列が何故かダイナミックスコープとして設定されており、これは別のファイルをopenしてその結果をevalしたものでも実行可能です。つまり useっぽいのがPerl1.0では出来なくはないです。 続編 ちなみにPart1と書いてある通り続編をする予定です。お楽しみに
今すぐ登録 元ネタ review-of-my-life.blogspot.jp 構成 という訳で作ったコードはこちらとなっております。 当初Dockerで動かそうとしていたのでレポジトリ名に名残があります。 github.com 今回はPlack + LINE::Bot::API + Werbservice::YDMMの大まかに3つのモジュールを利用して書いています。まさか自分で作ったモジュールを使うことになるとは思ってなかった。 PerlからLINEBotを叩くにはyappoさんが書かれたPerl HackersHubの記事を読めば大体分かる世界観です。 第44回 LINE Messaging APIで作るchatbot―LINE::Bot::APIとngrokでお手軽に! 実際今回作ったwebアプリも、ほぼサンプルコードの助けを得ながらPlackアプリとして書いた感じです。 ちなみにデ
3月3日(土)にOISTでYAPC::Okinawaが開催されました。 僕id:anatofuzはブログ書いたりとか、当日の某アカウントの中の人をやっていたりと、なんとYAPC::Okinawaのスタッフをやっていました。当日はそのお仕事をしており、トークを集中して聞けなかったので後日スライドで補間していきます。なのでこのエントリではトークの感想はちょっとしか書いてないです…。許してつかーさい…。 今ブログを書いていて、なんとなくエモい気分になっているのでこのエントリではエモい話をします。 (というかこのブログではエモい話しかしていないのでは) YAPC::Okinawaとの関わり 僕がYAPCをOkinawaですると聞いたのは、Perl入学式を受講している真っ只中だった。東京から id:ar_tama さんと id:nekokak さんが来ていて(当時はお二人のことは何も知らなかった)
これはPerl Advent Calendar 2017 15日目のエントリです。 広告 YAPC::Okinawaは現在カンファレンス参加チケット・トークプロポーザルを絶賛募集中です!!!是非ご応募ください!!! yapcjapan.org さて今回のエントリですが,実際にAPIクライアントが完成…とまでは時間の都合上行かなかったので,大まかな実装の内容と機能についてのご紹介となります。また実装についてアドバイスなどがあれば感激です!!!(むしろそこが目的) CPAN名前空間にはWebService::* というものがあり,こちらには主にAPIクライアントのCPANモジュールが登録されています。 この名前空間についてはpapixさんの資料が詳しいのでそちらをお読みください。 今回は練習も兼ねてタイトルにある通りDMM.comのAPIクライアントの作成を行っています。 DMM APIクライ
これは Perl入学式アドベントカレンダー3日目の記事です。 こんにちは id:anatofuz です。ようやく寒くなってきた沖縄から失礼します。 そういえば去年もアドベントカレンダーに参加していて,あれから1年経ったのか…と思っています. あれから1年か…と思っているので,去年のアドベントカレンダーからの僕とPerl入学式について書いていこうと思います。その為後半になるに連れてエモさが加速していきます。色々とすいません。 Perl入学式in沖縄でメインスタッフした 昨年はin沖縄の受講生だったのですが,今年はin沖縄のメインスタッフとして講師したりしていました。(そういえば最後の入学式で id:papixさんから「次は運営だね(ニッコリ」的ななリプを貰ったような気がする…) 一部資料改正などにも携わることが出来て,初めてGithubでpull-requestを出すという経験をしたりしまし
所謂インターネットで「最高の夏」と言われているはてなインターンが先日終わったので報告です. 実際にどんな内容なのかは ここ とか見ると良いかと思います. タイトルにもある通り,今回全日程を送っているわけではなくて,1/2.つまり後半パートには進めなかった感じです. ※このエントリを見るよりは,多分完走した他のメンバーや過去の参加者の方々のエントリを見るほうが為になると思うので,そちらを見て欲しいです.*1 応募まで 最近Perlを書くことが多かったので,Perlを使っている企業としてはてなのインターンに応募しました. 他の企業も複数応募して,受かった所が1つ,ダメだった所が3つほどあった感じでした. はてなはJSONでプロフィール的なものを送るので,Perlで書いて送信したと記憶に残っています. 使ったスクリプトは消えていて,何を送ったかまではイマイチ覚えていないという雰囲気です. その後
このページを最初にブックマークしてみませんか?
『Acme::AnaTofuZ->new;』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く