Perlのカレンダー | Advent Calendar 2022 - Qiitaの22日目の記事です。 はじめに Wini.pmは、拙作の高機能軽量マークアップ言語markgaabをサポートするperlスクリプトです。これについて、この17日にアドベントカレンダーへの投稿として高機能軽量マークアップ言語をサポートするperl modulino:Wini.pmの2022年 - Qiitaを公開しました。しかし、当該記事を読み返してみるに、あまりにperlと関係ない話に終始してしまってしまいました。そこで補遺という形でもう一本書かせていただきます。 Wini.pmを使ってスクリプトを組むとこんなことができるという話です。 プログラマのためのWini.pm 前記事で説明したとおり、Wini.pmは単体でフィルタコマンドとしても静的サイトジェネレーター(SSG)としてもperlモジュールとしても
UNIXが生まれてから半世紀。脈々とソフトウエアの進化を支えてきた技術は、どのようにして今に至るのか? そこから学べるものとは? 日本UNIXユーザ会「jus」の法林浩之さんが、イベントレポートを中心に「UNIXの今」をお届けします! 日本UNIXユーザ会(jus)の法林です。この連載では、jusの活動報告を通して、IT関連のさまざまな話題をお届けしていきます。お楽しみください。 今回は、2021年8月に開催した「Learn Languages 2021」の模様をお届けします。 イベント概要 ・タイトル:Learn Languages 2021 ・日時:2021年8月28日(土) 12:00-17:00 ・会場:オンライン Learn Languagesとは? Learn Languages(通称:LLイベント)は、「複数のプログラミング言語を学ぼう」という趣旨のもとに開催しているイベント
というわけで一度投稿してみたかったエントリです!!! 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みたいな内容でお送りし
はじめに AtCoder Problems の Recommendation を利用して、過去の問題を解いています。 AtCoder さん、AtCoder Problems さん、ありがとうございます。 今回のお題 AtCoder Beginner Contest 113 C - ID Difficulty: 877 今回のテーマ、リファレンス n, m = gets.split.map(&:to_i) p = [] m.times do |i| y = gets.split.map(&:to_i) p[i] = [i, y, ""] end p.sort! {|a, b| (a[1][0]<=>b[1][0]).nonzero? || (a[1][1]<=>b[1][1])} pref = 0 cnt = 1 m.times do |i| if pref == p[i][1][0] cn
追記 階段数 = 足元の段 + 次の段 です。 @swordone さん、コメントありがとうございました。 階段の上がり方は、上記の通りですが、勘のいい方は フィボナッチ数 であることに気付くと思います。 そこで、連続した階段数を求め例.#.#...->1, 1, 3、組合せ数を総乗していきます。fib(1) * fib(1) * fib(3) n, m = gets.split.map(&:to_i) a = [] 1.upto(m) do |i| a[i] = gets.to_i end a[0] = -1 a.push(n + 1) b = [] 1.upto(m + 1) do |i| if a[i] - a[i - 1] == 1 puts "0" exit end b.push(a[i] - a[i - 1] - 1) end fib = [] fib[1] = 1 fib[2
なぜこんな文書を書いたか わたしは Jargon Fileの編集者で、またその他似たような有名文書いくつかの著者なので、しばしば熱心なネットワーク初心者から「ウィザード級の大ハッカーになるにはどうやって勉強すればいいの?」といったようなお尋ねメールを頂きます。でもかつて 1996 年に、こんな大事な問題を扱った FAQ や Web 文書 はみあたらないことに気がつきました。というわけで、これを書き始めました。多くのハッカーがいまやこれを決定版と見なしているし、つまり実際に決定版なんだと思います。でも、この問題について自分が唯一無二の権威だと主張するつもりもありません。気にくわなければ、自分なりのヤツをどうぞ。 この文書をオフラインで読んでいるなら、最新版は次のところにあります。 http://www.catb.org/~esr/faqs/hacker-howto.html なお、この文書の
Perl 6の名称を正式に「Raku」へ変更するというGitHubでの提案に対し、Perl生みの親のLarry Wall(TimToady)氏が支持を表明している(Larry Wall氏のコメント、 blogs.perl.orgの記事、 The Registerの記事)。 次世代Perlとして開発されていたPerl 6だが、正式リリース後もPerl 5の開発が進められており、「Perl」といった場合にPerl 5を指す状態が続いている。そのため、Perl 6の名前に「Perl」が入っているのはわかりにくいとして、8月からGitHubで名称変更が議論されていた。このスレッドでは「Raku (楽)」という日本語について、勘違いも含めてちょっと面白い議論になっている。 もともと「Raku」という名前は昨年、Perl 6のエイリアスとして使えるもう一つの名前を付けてほしいというZoffix Zne
おそらく先がない5つのプログラミング言語、といういろいろと怒りをかいそうな記事だが、どうせワタシが愛する C 言語なんかがまたやり玉に挙がってるんだろうと見たら、一番最初に Ruby が挙がっている…… この記事は TIOBE や RedMonk のプログラミング言語ランキングに Dice 独自の求人票情報を加味してるようだが、Ruby は落ち目という認識らしい。うーむ。 それ以外には Haskell、Objective-C、R、そして Perl が挙げられていて、この手の記事の定番といえる Perl、Swift 誕生後やはり定番である Objective-C はそうですかという感じだが、ビッグデータの時代に人気を高めた R 言語ですら、Python に追いやられつつあるというのはそうなんでしょうね。 それにしても Ruby が先がないという意見には異論が出るだろう。ネタ元は Slashd
カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること(あるいはその関数のこと)である。クリストファー・ストレイチーにより論理学者ハスケル・カリーにちなんで名付けられたが、実際に考案したのはMoses Schönfinkelとゴットロープ・フレーゲである。 ごく簡単な例として、f(a, b) = c という関数 f があるときに、F(a) = g(ここで、g は g(b) = c となる関数である)という関数 F が、f のカリー化である。 関数 f が の形のとき、 をカリー化したものを とすると、 の形を取る。uncurryingは、これの逆の変換である。 理論計算機科学の分野では、カリー化を利用すると、複数の引数をとる関数を、一つ
IPFire is a Linux-based operating system for firewalls. The project focuses on easy set-up and configuration. The project's latest release introduces an extra layer of protection against denial-of-service (DoS) attacks. "Since IPFire is very commonly deployed in data centres where denial-of-service attacks happen on a regular basis, we now have added better protection against those kinds of attack
最近Hadoopを使うために5〜6年ぶりにJavaをいじっています。 そんで、ちょっとばかり耐えがたいわけです。 例えばありがちな例題を挙げると、 ["google", "検索","開発"] のようなタグ(文字列)のリスト(でも配列でもなんでもいい)を受け取って [ {tag=>"google", enc=>'google'}, {tag=>"検索", enc=>'%E6%A4%9C%E7%B4%A2'}, {tag=>"開発", enc=>'%E9%96%8B%E7%99%BA'} ] のようなハッシュテーブルのリストに変換しなさい。 ただしパーセントエンコーディングを行う関数(でもメソッドでもなんでもいい) uri_encodingは与えられているものとする。 こんなこと、Webアプリケーションではよくやるじゃないですか。 んで、実際Perlなんかでは結構簡単に書けて #my @tag
WebibloはWebサイトを電子書籍に変換するソフトウェアです。JSONデータで変換設定を定義します。 WebibloはWebサイトをKindle用のmobiファイルに変換するソフトウェアです。Perlスクリプトで作られていて、JSONファイルの定義に沿って一気にコンテンツを取得して変換まで実行します。 実行しているところです。一度取得したコンテンツはキャッシュされるので失敗しても繰り返しやすいです。 最後にkindlegenを実行しますので予めダウンロードしてパスの通ったところに配置しておく必要があります。 出来上がったファイルをKindleアプリで閲覧しているところです。 目次も対応しています。 設定ファイルの例です。かなり細かく指定する必要があるのが難点ですが、これをみんなでシェアするのも面白いかも知れません。 Webibloはコンテンツ部分になるXPathを指定したり、チャプター
nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev. For a long time, it has been running on many heavily loaded Russian sites including Yandex, Mail.Ru, VK, and Rambler. Here are some of the success stories: Dropbox, Netflix, FastMail.FM. The sources and documentation are distributed under the 2-clause BS
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く