タグ

ブックマーク / qiita.com (63)

  • Mac のターミナルに `CAL` と打ち込んだときの挙動を追った話 - Qiita

    みなさん、こんにちは。 最近、曜日や日付の感覚とかがあまり意識できない不健康な生活をしております。 @takano32 です。 そんな私は月曜日とか休日明けとかによくターミナルに cal って打ち込んで日付を確認したりします。 date でもいいし、 Mac なら右上に日付が出ていたりするわけですが、習慣なんだからしょうがない。 ところがですね。今日、Mac の仮想端末に Caps Lock が入ったまま CAL と打ってしまったんですよ。 「ノー、サッチコマ…えっ?なんかカレンダーでてる!」というね。 そこまでなら「あー、HFS+ のファイルシステムってデフォルトのフォーマットでは大文字と小文字を区別しないから、小文字の cal が呼ばれたのかな」って思うわけですが、よく見ると変なんですよ。 小文字 cal と 大文字 CAL の出力 小文字 cal のカレンダーはこんな感じ $ cal

    Mac のターミナルに `CAL` と打ち込んだときの挙動を追った話 - Qiita
    tsekine
    tsekine 2016/11/22
    n* コマンドあるあるじゃね?俺の Solaris だと awk ショボイぞ、節子それ awk ちゃうで、nawk やみたいな。
  • JavaScriptの1msは4ms - Qiita

    はじめに JavaScriptのタイマー処理(setTimeout(), setInterval())は1000分の1秒の精度(ms)で遅延時間を指定することができます。 setTimeout(function() { // 1ms後に実行してほしい alert('hello!'); }, 1); 見ての通り、上記のコードは第一引数に渡した関数が1ms後に実行されることを期待して書かれていますが、実際にこれを実行すると4ms以上の遅延が発生する可能性があります。 これは、JavaScriptエンジンの実装によって、4ms以下の設定値は4msに矯正するという処理が行われているためです。 ※追記)厳密には上記処理のみを実行した場合は4msへの矯正は行われないようです。4msへの矯正が行われる条件として当記事最下部に追記を行っておりますので併せてご参照下さい。 なぜ4msなのか 実はこの4msと

    JavaScriptの1msは4ms - Qiita
    tsekine
    tsekine 2016/10/22
    コメントの “そしてインターバルが保証されていない以上、「目盛り」が1msか4msかはあまり大きな問題じゃない” の通り。大きな勘違い。
  • Python のリファクタリングでイケてないコードを別に美しいオブジェクト指向設計ではない普通のコードにする方法 - Qiita

    Rubyのリファクタリングでイケてないコードを美しいオブジェクト指向設計のコードへ改良するための方法 - その1 その2 その3 これを Python でやってみます 元のコード 元の Ruby 版をできるだけ真似してみます。テストは py.test を使います。 #ordersreport.py from collections import namedtuple Order = namedtuple("Order", "amount placed_at") class OrdersReport: def __init__(self, orders, start_date, end_date): self.orders = orders self.start_date = start_date self.end_date = end_date def total_sales_within

    Python のリファクタリングでイケてないコードを別に美しいオブジェクト指向設計ではない普通のコードにする方法 - Qiita
    tsekine
    tsekine 2016/07/21
    「Python != Java, なんでも class にしない」はよく言われる話。'in' オペレーターは便利なので、納得のリファクタリング。Ruby どうこうに関係なく、とてもPythonらしさが現れてる超良記事。namedtuple万歳 :)
  • [翻訳] 技術向上ガイド - Qiita

    はじめに jacksuzukiさんの記事 「ロシアの天才ハッカーによる【新人エンジニアサバイバルガイド】」 を読んで、非常に興味深かったので、この中で 「技術的なスキルをマスターしよう。もっともよい教材のリスト」 として紹介されていたGoogle社作成の資料を翻訳してみました。 検索しても日語訳が見当たらなかったので、 翻訳してみましたが、 もし他に適切な翻訳や、 誤記、誤訳などありましたらご指摘下さい。 ちなみに具体的な参考資料の記載がありますが、 原文が米国を対象として記載していますので、 日国内のサービス(dotinstallなど)は記載されていません。 原文 原文はこちら:Technical Development Guide 以下翻訳です このガイドは、自分のペースで実践的な学習を通して、あなたの技術的な(学問的、非学問的)スキルの向上を助けるためのTipsや資料を提供します

    [翻訳] 技術向上ガイド - Qiita
    tsekine
    tsekine 2016/06/07
    結局その先は全部英語コンテンツなので、翻訳する意味があまりよくわからない。そしてこれをブクマしてる人はどうしたいのだろう。
  • glibcの脆弱性対策(取り急ぎiptables/firewalldで叩き落とす!)for CVE-2015-7547 - Qiita

    glibcの脆弱性対策(取り急ぎiptables/firewalldで叩き落とす!)for CVE-2015-7547LinuxSecurityiptablesfirewalldglibc はじめに glibcでヤバメな脆弱性キター! 「glibc」ライブラリに脆弱性、Linuxの大部分に深刻な影響 - ITmedia エンタープライズ Google Online Security Blog: CVE-2015-7547: glibc getaddrinfo stack-based buffer overflow CVE-2015-7547: Critical Vulnerability in glibc getaddrinfo - SANS Internet Storm Center Carlos O'Donell - [PATCH] CVE-2015-7547 --- glibc ge

    glibcの脆弱性対策(取り急ぎiptables/firewalldで叩き落とす!)for CVE-2015-7547 - Qiita
    tsekine
    tsekine 2016/02/18
    不正確。そのまま鵜呑みにしちゃダメ。
  • Excel方眼紙を支える技術2016 - Qiita

    POIを使ったExcel帳票の出力は、システムエンジニアにとっては日常茶飯事、おちゃのこサイサイであります。 takezoen先生による2015年版はこちらになります。 ここで紹介されている、S式からExcel方眼紙を出力するライブラリaxebomber-cljは、こちらをご覧ください。 特筆すべきはaxebomber-cljでは、Excelにありがちな文字切れが起こらないというところです。そもそもExcel方眼紙は、入力文字列が自動改行されない制約を設けて、利用者が意図的な位置で改行をコントロールするために発明されたフォーマットであります。しかし、その特異な見た目が災いし、単に敬遠される存在にとどまっております。axebomber-cljは、文字幅とセル幅を計算し、文字切れしない位置で自動的に改行するようにしています。これにより、Excel方眼紙の文字切れしにくさを活かしつつ、煩わしさを

    Excel方眼紙を支える技術2016 - Qiita
    tsekine
    tsekine 2015/12/19
    黒魔術すぎる
  • 実務で役立つシェル系Tips - Qiita

    パスの末尾に/があるかないかを気にしたくない 文字列を結合してパスを生成したりするときに、パスを格納した複数の変数を文字列結合するときがあります。 dirHome="/var/lib/hoge/" workDirName="work" echo "${dirHome}${workDirName}" # /var/lib/hoge/workと表示される しかし、dirHomeやworkDirNameのような変数をコンフィグファイルで設定していたり、実際に参照するところと定義箇所が遠いときがあると厄介なことが起こりえます。 例えば、下記のようにdirHomeの末尾に/がなかったらどうなりますでしょうか?

    実務で役立つシェル系Tips - Qiita
    tsekine
    tsekine 2015/11/15
    ほとんど shell script 関係ないし、例に出てる変数名に統一性ない。path//to/file と / が重なっても別にええやん。それより読みやすさの方が大事。
  • Linuxに関わる人が一度は読むべきStackOverflowまとめ - Qiita

    なぜStackOverflowか Upvote/Downvoteの仕組みにより、自然とベストプラクティスが蓄積されている 世界中のプログラマの目に晒されているため質が高い 答えが幾つか出されているため視野が広がる・一つの手法に固執することがない 英語の勉強にもなる StackOverflowのおすすめの見方 質問はまずしっかり理解する それに対する答えを比較してみて、なぜそう動くのかを考える コメント欄はFont Size的には小さいが、かなり濃いコメントが書かれていることが多いので暇なら目を通す 10. Looping through the content of a file in Bash? ファイルの内容をループで取得するためのベストプラクティス。 (2015/10/23 : 節修正しました。@heliac2000 さん、@kawazさん、ありがとうございました。詳しくは記事コ

    Linuxに関わる人が一度は読むべきStackOverflowまとめ - Qiita
    tsekine
    tsekine 2015/10/24
    10. はファイルの中身によっては動作しない。また、echo 関数が糞なdashとかいうシェルだと誤動作の危険。StackOverflow で upvote が多くても、それが正しいとは限らない。
  • 飛行機搭乗方法のシミュレーション - Qiita

    はじめに 私はほぼ毎週飛行機に乗るため、飛行機搭乗時に、「混雑を避けるため、後方座席のお客様からご案内いたします」という案内、非常に良く聞くのですが、いつもこのアルゴリズムにあまり納得がいっていませんでした。 搭乗時の混雑の原因は主に二つあります。 1. 手荷物の上部収納 2. 既に乗客が座っているよりも奥の座席に入る場合(例えば、通路側に既に座っている人がいる時に、窓側の席に座ろうとすると、一度通路側の席の乗客が立つ必要がある) 私は、この2点については、後方座席・前方座席を分けることによって、むしろ上記渋滞発生箇所が近くで発生してしまい、より混雑を生むように思っていました。 全ての乗客を早く搭乗させることを目的とするならば、例えば窓側の乗客を先に搭乗させれば上記の混雑はある程度解消されます。しかし、飛行機では上部収納がいっぱいになってしまって席の近くの収納棚が使えないことがしばしばあり

    飛行機搭乗方法のシミュレーション - Qiita
    tsekine
    tsekine 2015/09/24
    Myth Busters になかったっけ?
  • 検索ではあんまり出ないbashの便利技 - Qiita

    bashでは記号類をたくさん使うので、この書き方は何?と思っても検索でなかなか出てこないことがあると思う。 そこで知っていると便利なコマンドを残しておく。 随時追記予定。 確認に使用したbashのバージョンは以下のとおり。

    検索ではあんまり出ないbashの便利技 - Qiita
    tsekine
    tsekine 2015/09/21
    特に驚くようなことは書いてない
  • プログラミングスタイルガイドのスタイルガイド - Qiita

    文書は、プログラミング言語向けのスタイルガイドに向けたスタイルガイドである。 文書へのフィードバックはQiita上のコメントにて受け付ける。 構造 対象を明確にする そのスタイルガイドがどのような状況のどのような対象に向けたスタイルガイドであるか規定すること。 状況や対象は広すぎてはならない。 理由: 対象はスタイルガイド記述者には自明かもしれないが、似て非なる言語に誤用されたり、特定分野のアプリケーション向けスタイルガイドが他分野のアプリケーションを理不尽に拘束したりすることがある。これを防ぐべきである。 良い例: 「文書はRuby on Railsアプリケーション向けのスタイルガイドである」 「スタイルガイドはX社におけるRubyプロジェクトに適用すべきスタイルを規定する」 悪い例: (何も書かない) 「文書はX社におけるすべての開発に適用される ... 述語メソッドや述語関

    プログラミングスタイルガイドのスタイルガイド - Qiita
    tsekine
    tsekine 2015/08/26
    “spam (Pythonのみ)” :)
  • ターミナルのディレクトリ移動を高速化する - Qiita

    tl;dr よく使われるコマンドの一つに cd コマンドがあります。ターミナル生活の 80% 近くは cd と ls である、という英文記事を何処かで見かけました。それを効率化しようという Tips です。 目的 cd はよく使われるのに使い勝手が悪いコマンドである気がしてなりません。cd コマンドは有効なパス(相対パス、絶対パスは問わず)しか解釈してくれないからです。つまり、存在していて尚且つパスが解決できるものに限るのです。例えば、ホームディレクトリにいるときに、/home/lisa/work/dir に行こうとして cd dir とだけタイプしても no such file or directory (そんなディレクトリは見当たらないよ!)と言われてしまいます。きちんとした経路でなければならないのです。いちいちパスを覚えていない場合や、部分的にしか思い出せない場合には結構面倒ですよね

    ターミナルのディレクトリ移動を高速化する - Qiita
    tsekine
    tsekine 2015/08/08
    これ自体はどうでもいいけど、実装とかブコメは参考になりそう
  • プロセスの多重起動をアドバイザリロックで防止する・改 - Qiita

    以前シェルスクリプトの多重起動をアドバイザリロックで防止する案を書きましたが・・・ ShellScript - プロセスの多重起動をアドバイザリロックで防止する - Qiita [キータ] この方法だとロックファイルが残りっぱなしになるので気持ち悪いです。。。 シェルスクリプト自身をロックすればいいかな? と思ったのですが・・・ Bash - flock(1)でシェルスクリプトの排他制御(Linux) - Qiita [キータ] 追記で開かれた状態で実行しようとすると bad interpreter: Text file busy となり、排他制御の目的は達せられてもやっぱり気持ち悪いです。 bash hoge.sh などと呼べば回避できましたが、それはそれでやっぱり気持ち悪いです。./hoge.sh と書きたいです。 そこで、シェルスクリプト自身を読み込みで開いて排他ロックするようにして

    プロセスの多重起動をアドバイザリロックで防止する・改 - Qiita
    tsekine
    tsekine 2015/07/26
    これはスッキリ。
  • クラスの落とし穴1 - プロパティの初期化 - Qiita

    クラスの落とし穴1 - プロパティの初期化 (この投稿) クラスの落とし穴2 - メソッドとクロージャ クラスの落とし穴3 - 継承 クラスの落とし穴4 - プライベート変数の実装 はじめに javascriptでもクラスを作成する事が多くなってきました。 しかし、「javascriptにはクラスがない」とよく言われ、実装側が擬似的にクラスを定義しています。 クライアントサイドで大規模開発が増えてきたため、オブジェクト指向の概念で実装したいと思っているのでしょう。 javascriptでは安易な疑似クラスの作成によって見事落とし穴にはまる事があります。 ここでは、javascriptにはないクラスをうまく実装する方法を順に追って説明します。 "落とし穴とは、 うまく動いているけど気がついていないだけで実はマズい実装の事 とします 簡単なクラスの実装 クラスの定義には幾つかの方法がありま

    クラスの落とし穴1 - プロパティの初期化 - Qiita
  • (0, eval)('this')とは何なのか - Qiita

    この(0,eval)('this')はいったい何なのか。調べた。 調べた結果 これはindirect eval callを使用した、どのスコープでも必ずグローバルオブジェクトのthisを取得するためのテクニックであった。 ES5ではevalを直接呼び出すと、引数のコードはそのスコープで実行されるが、間接的にevalを呼び出すと、引数のコードは必ずグローバルスコープとなるそうだ。なので引数のthisは必ずグローバルオブジェクトとなる。ブラウザではwindowとなり、Nodeではglobalになるのだ。実際どうするかだが、eval関数を変数に代入し、その変数で実行すればよい。 // Nodeで実行 var obj = new (function(){ this.direct = eval('this'); var ev = eval;// 変数に代入 this.indirect = ev('t

    (0, eval)('this')とは何なのか - Qiita
    tsekine
    tsekine 2015/07/02
    デジャブ?どっかで全く同じネタみたな……
  • ちゃんとEager Loadingをした結果、逆に遅くなった件 - Qiita

    背景 N+1を起こしている箇所があったので必要なデータをEager Loadingしてデプロイをした その結果、逆にレスポンスが劣化した… tl;dr 1:N のような関連の場合、eager_load(LEFT OUTER JOIN)した上で1の側にLIMITをかけると非常に遅いクエリが出来るケースがある 関連するモデル Message/Attachmentの2つ Messageは複数のAttachmentを持つ class Message has_many :attachments scope :latest, -> { order(id: :desc) } end class Attachment belongs_to :message end

    ちゃんとEager Loadingをした結果、逆に遅くなった件 - Qiita
    tsekine
    tsekine 2015/06/30
    TL;DR TD;LR とはなんぞや(中身は見てない)
  • JavaScript 巻き上げについて - Qiita

    妹 妹から「巻き上げについて説明して!」(妹いないけど)って言われたのでわかりやすいコードを書くよ。 まずはこれ。 var global = "foo"; var hoge = function(){ console.log(global); var global = "bar"; console.log(global); } hoge();

    JavaScript 巻き上げについて - Qiita
    tsekine
    tsekine 2015/05/14
    “定義したスコープ(関数)内では、変数宣言は予め先頭で行うのが望ましい。” そんなことはない。
  • 指定時間内に関数が終了しなかったら何かするデコレータ - Qiita

    昨日投稿したTipsの改良版です。通知する部分をハンドラ関数を渡すようにして分離し任意の処理を行えるようにしました。 また、@methaneさんに教えていただいた functools.wrap を使ってみました。このデコレータがついた関数をpaverの@taskにもしてみたのですがヘルプがNoneとなり docstring が表示されなかったのはこれを使っていなかったからのようでした!(functools.wrapを使うとヘルプにdocstringが表示されました) from functools import wraps def on_timeout(limit, handler, hint=None): ''' 指定した実行時間に終了しなかった場合、handlerをhint/limitを引数にして呼び出します @on_timeout(limit=3600, handler=notify_

    指定時間内に関数が終了しなかったら何かするデコレータ - Qiita
    tsekine
    tsekine 2015/04/18
    デコレーター書く人には functools.wraps 必須。
  • bashのTips色々 - Qiita

    概要 bashの記法は独特なものが多く毎回ググってしまうのでまとめて(と言いつつまとまりがないですが。。。)おこうと思います。 ある程度まとまってからpostしようとか思ってたらごちゃごちゃになっちゃいました。 bashで使えるという意味なのでposixシェル共通のネタも混ざってます。 随時更新します。参考になれば幸いです。 参考 man bash リファレンスマニュアル Advanced Bash-Scripting Guide カッコ色々 bashでは色々なカッコがありますが、よく違いが分からず使っていたりするのでまとめてみます。 []と[[]] []はtestコマンドのaliasです。[[]]じゃないとできないこととしては、以下のようなものがあります。 空白を含む文字列をクォートしなくてOK var='abc 123' # []の中だとクォートしないとエラーになる [ $var =

    bashのTips色々 - Qiita
    tsekine
    tsekine 2015/04/15
    ハマりポイントがいくつかあるので、自分で調べましょう
  • インフラエンジニアとしてよく使うコマンド集 - Qiita

    私がよく使うコマンド集となります。 参考に頂けたら幸いです。 随時更新するかと思います。 コマンドを打つ前に覚えておく事 ①サーバに負荷がかかるコマンドを打つ場合、下記をコマンドの先頭に付けましょう $ ionice -c 2 -n 7 nice -n 19 # -c 2:ディスクI/Oの実行優先度をベストエフォートで実行 # -n 7:さらにこのコマンドの優先度を低くする # -n 19:プロセスの実行優先度を一番低くする

    インフラエンジニアとしてよく使うコマンド集 - Qiita
    tsekine
    tsekine 2014/10/22
    インフラエンジニア特有のBashコマンドがあるのかと思ったらBashが全く関係ない :(