タグ

programmingとtipsに関するstealthinuのブックマーク (10)

  • PHP7から定数配列がOPcacheに乗るので巨大配列が使い放題という話 - hnwの日記

    PHP 7.0のリリースから約5年が経過し、そろそろPHP 8.0のリリースも見えてきました。人によっては使い始めて5年目になるはずのPHP 7.xですが、いまだに新しい発見があったりして面白いですね。 稿ではPHP 7.0から入った定数配列に関する性能改善について紹介します。 PHP 5時代は配列の組み立てコストが大きかった プログラミング上のテクニックとして、辞書データを連想配列としてプログラム中に記述し、これを必要に応じて使うというものがあります。たとえば次のコード例を見てみましょう。このような連想配列を持っておけば、プログラム中で国名コードをを扱う際に実在するかをチェックしたり、国名の日語表記に変換したりといった処理ができるわけです。 <?php $country_name = [ 'jp' => '日', 'us' => 'アメリカ合衆国', 'ru' => 'ロシア連邦'

    PHP7から定数配列がOPcacheに乗るので巨大配列が使い放題という話 - hnwの日記
    stealthinu
    stealthinu 2020/08/13
    PHP7から定数だけだとOPcacheに入れてくれるから速いと。しかしPHP7になってもう5年というところに一番の衝撃を覚えたわ…
  • あなたの生産性を向上させるJupyter notebook Tips | リクルートテクノロジーズ メンバーズブログ

    このエントリは全9回を予定する18卒新人ブログリレーの第3回です. はじめまして.今年度よりリクルートテクノロジーズに入社した河野 晋策です. 7月からQassチームにて検索ロジックの改善を行っています. Qassチームは,検索基盤の運用や検索ロジックの改善を行っているチームです. 詳しくは以下の記事をご覧ください. 検索組織の機械学習実行基盤 リクルート全社検索基盤のアーキテクチャ、採用技術、開発体制はどうなっているのか Elasticsearch+Hadoopベースの大規模検索基盤大解剖 記事の想定読者:普段Jupyter notebook・Jupyter Lab,Google Colaboratoryを使っている方,またこれから使おうと考えている方 記事の概要:jupyter notebookの知見共有 はじめに Jupyter notebookとは 近年,データの重要性が様々な

    あなたの生産性を向上させるJupyter notebook Tips | リクルートテクノロジーズ メンバーズブログ
    stealthinu
    stealthinu 2018/10/17
    Jupyterのtips。当然colabでも使えるというかcolabのための情報もあって良い。
  • 使いやすいシェルスクリプトを書く

    できればシェルスクリプトなんて書きたくないんだけど,まだまだ書く機会は多い.シェル芸やワンライナーのような凝ったことではなく,他のひとが使いやすいシェルスクリプトを書くために自分が実践していることをまとめておく. ヘルプメッセージ 書いてるシェルスクリプトが使い捨てではなく何度も使うものである場合は,体を書き始める前に,そのスクリプトの使い方を表示するusage関数を書いてしまう. これを書いておくと,後々チームへ共有がしやすくなる.とりあえずusage見てくださいと言える.また,あらかじめ書くことで,単なるシェルスクリプトであっても自分の中で動作を整理してから書き始めることができる.関数として書くのは,usageを表示してあげるとよい場面がいくつかあり,使い回すことができるため. 以下のように書く. function usage { cat <<EOF $(basename ${0})

    stealthinu
    stealthinu 2014/05/20
    色つけるとかはクリアコードさんも書いてたな。こうやってある程度ひな形化してあるとそれベースにして書きやすい。ということでこれコピーしてひな形にしとこう。
  • 正規表現の機能の覚書き

    はじめに「はじめての正規表現」がホッテントリ入りしていますが、 導入としては、何に使うのかがわかりやすくて良いのではないかと思います。 あれを見て、基機能をまとめてみたくなったので、正規表現の基的な機能について書いてみます。 (正規表現が初めてという人は「はじめての正規表現」を先に見たほうがいいと思います。) 例では「検索」か「置換」をするものとして話を進めていきます。 (「はじめての正規表現」が実例を中心にしたのに対して、こちらは機能を中心に書きます) 正規表現は、プログラミング言語やその他のツールなど、それぞれで微妙な違い(方言)があるので、その点には注意が必要です。 (表記法が違ったり、ここに紹介する機能がサポートされていなかったり、逆に紹介していない機能をサポートしていたりする場合があります) メタ文字とリテラル文字正規表現には、メタ文字とリテラル文字というものがあります。 メ

    正規表現の機能の覚書き
    stealthinu
    stealthinu 2014/03/24
    正規表現まとめ。簡潔にまとまってて実用的。
  • Macでバックスラッシュ記法を使うときの注意 | prime factor

    ものすごく基的なことですが、はまってしまったのでメモしておきます。 optionを押しながら¥(円マーク)で\(バックスラッシュ) Macでバックスラッシュ記法を使うときに「¥(円マーク)」をそのまま使うと、式展開されなかったり、エラーが発生したりします。

    stealthinu
    stealthinu 2012/11/01
    macのsublimeで「¥n」入力してもどうしても改行されないので変だなあ…と思って調べた。Option+¥で「\」バックスラッシュが入るからこれで入れないとダメ。
  • TwitterのステータスIDが53bitを越えたお話 - tmytのらくがき

    僕の記事の間違いを指摘していただいているすばらしい記事です。僕の記事よりこちらの記事をご覧ください。 http://archive.guma.jp/2010/12/twitter-json.html 先日、29日の7時過ぎごろにTwitterのステータスIDが53bitを越えました。 こんな中途半端なビット数を超えただけでなぜこんな記事にするかというと、一部のクライアントで動作がおかしくなることがあるからです。 (14:14 追記しました) (14:31 もひとつ追記しました) TwitterAPIはXMLとJSONの2種類で結果を取得できます。このうちXMLで処理してる場合は内部で64bit INTで処理していれば特に問題は起きません。 問題が起きるのはJSONの場合です。JSONはJavascriptでevalすればそのまま中身が取り出せることからもわかるように、Javascript

    TwitterのステータスIDが53bitを越えたお話 - tmytのらくがき
    stealthinu
    stealthinu 2010/12/02
    うーん、やっぱ53bit超の影響でおかしなこと起こったって可能性が高い気がする。ということは、該当tweetをHootSuiteから再度RTしようとしたら再現するはず。試してみよう。
  • よく使用する関数・標準モジュール一覧 - Perl入門ゼミ

    Perl › よく使う関数・モジュール よく使用する関数・標準モジュールの一覧です。これらの関数を覚えておけば、Perlをより便利なものにすることができます。詳細な解説は避け、簡単なサンプルを紹介しています。戻り値のあるものについては$retという記号で表しています。 また、よく使用する特殊変数、標準モジュールについても、解説しています。各項目から、関数の詳細にもリンクしていますので、便利にご利用ください。 数学関数 文字列操作 配列操作 ハッシュ操作 ファイル入出力 ファイル・ディレクトリ操作 時刻・時間 その他の重要な関数 関数とモジュールのドキュメントの調べ方 よく使用する特殊変数 よく使用する標準モジュール 数学関数 abs 絶対値を求めるにはabs関数を使用します。 $ret = abs $num; abs(-3)は3になります。 sqrt 正の平方根を求めるには、sqrt関数を

    よく使用する関数・標準モジュール一覧 - Perl入門ゼミ
    stealthinu
    stealthinu 2009/09/07
    perlでよく使う関数とかモジュールだけ抽出して紹介。
  • regexp - ^$でなくて\A\zを使おう : 404 Blog Not Found

    2009年03月09日00:30 カテゴリLightweight LanguagesTips regexp - ^$でなくて\A\zを使おう まずは回答から。 正規表現で「制御文字以外」のチェック - ockeghem(徳丸浩)の日記 文字エンコーディングの妥当姓 制御文字(\x00〜\x1f, \x7f)のチェック 文字列長のチェック このうち後ろ二つを正規表現として書くにはどうすればいいかを考えていました。 こういう時には、「全文字がOKならOK」と考えるのではなく、「一文字でもNGならNG」と考えると楽になります。それは「スペースと非制御文字以外」なのですから、/[^ \S]/が求めていた正規表現で、=~ではなく!~が使うべき演算子ということになります。全角スペースもOKにしたければ、/[^ \x{3000}\S]/。[追記参照] [Run via Codepad] #!perl -

    regexp - ^$でなくて\A\zを使おう : 404 Blog Not Found
    stealthinu
    stealthinu 2009/03/09
    制御文字をはじく
  • 自作pmをuse libする - 半径5メートル

    下にlibとかつくってそこにおいた自作pmをuseするとき、相対パスで呼び出してしまうと実行ディレクトリが違う場合(cronでまわしたりとか)に都合が悪かったりします。 そこで、以下のようにBEGINブロック内でスクリプト自身のパスをとってきてからuse libとかしてるんですが、このやり方おかしかったりしないんだろうか。もし、もっとこうした方がいいとかあればぜひお教え下さい。 ├ main.pl ├ lib └ Hoge └ Foo.pm#!/usr/bin/perl use strict; use warnings; use File::Basename; my $w_dir; BEGIN { $w_dir = dirname $ENV{_} } use lib "$w_dir/lib"; use Hoge::Foo; my $foo = Hoge::Foo->new("tester0

    自作pmをuse libする - 半径5メートル
    stealthinu
    stealthinu 2008/07/16
    FindBin::libs
  • いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl

    スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru

  • 1