タグ

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

  • Javaで新元号に対応する - Qiita

    新元号に対応したjdkは今後リリースされるはずだけど、そんな簡単にアップデートできない方(自分含む)に。 前提 Oracle JDK 8u92 $JAVA_HOME設定済み 諸々文字コードはutf-8 確認用コード import java.text.*; import java.util.*; public class JapaneseEra { public static void main(String[] args) throws ParseException { DateFormat df = new SimpleDateFormat("GGGGy年M月d日", new Locale("ja", "JP", "JP")); System.out.println(df.format(new Date(System.currentTimeMillis()))); System.out.

    Javaで新元号に対応する - Qiita
    hycon
    hycon 2016/07/14
  • Bash/Zsh + POSIX で sleep 0.01 する方法 - Qiita

    ■ 問: シェルスクリプトで 0.01 秒間などのごく短い時間だけ sleep する方法は? それもできるだけ精確に。 この問いは一見して簡単な問いに思われるが、考えて見ると意外と難しい。 後で詳しく説明するが、POSIX (Unix の規格) では sleep に小数は指定できない。また、外部コマンド sleep の起動自体に余分な時間が掛かることも問題になる。 記事更新 (2020-04-11): 記事 "POSIX準拠シェルスクリプトだけで1秒未満sleepを実現する - Qiita" 言及 記事更新 (2018-08-18): Bash 5.0 以降の EPOCHREALTIME について追記 記事更新 (2018-08-18): 最近の Cygwin の /dev/tcp/*/* について追記・修正 記事更新 (2018-07-26): Bash 4.4 以降の Bash loa

    Bash/Zsh + POSIX で sleep 0.01 する方法 - Qiita
    hycon
    hycon 2016/06/28
    泥沼的だ…
  • rm -rf /は実行されないのが正しい? - Qiita

    いくつかのUnixプラットフォームではrm -rf /はエラーになり実行されない。これは余計なおせっかいで実行されるべきだと言う人もいるが、最新のPOSIXに従うのなら「実行されない」のが正しい。POSIX.1-2008ではrmについて、「引数がルートディレクトリを指しているなら、標準エラーに診断メッセージを出力して、それ以上何もしてはならない」と定めている。 if an operand resolves to the root directory, rm shall write a diagnostic message to standard error and do nothing more with such operands. POSIX.1-2004にはこの記述はないので、最新の規格に従ってないrmではrm -rf /が普通に実行される可能性がある。 実装を調べてみると、2003

    rm -rf /は実行されないのが正しい? - Qiita
  • シェルスクリプトで排他・共有ロック&セマフォ - Qiita

    どのUNIXでも通用するロック機構はあるのか? 他言語では大抵用意されているロック機構であるが、シェルスクリプトにはロック機構を直接実現するコマンドが無い。flockコマンドやlockfコマンドなどOSによっては独自コマンドがあるが、OS独自ゆえ、それらを使ってしまうとシェルスクリプトの可搬性は失われてしまう。(しかも前述の2つのコマンドは、ファイルロックのコマンドであるうえに、ロックがかかっている間は次の行に進めない) 「特定のOSに縛られてしまうくらいなら他の言語を使う方がよっぽどマシだ」といって、シェルスクリプト信者(POSIX原理主義者)を増やせないのが悔しかったのだが、ようやく作るのに成功したので報告する。 これで、 排他ロック…………………pexlockコマンド 共有ロック…………………pshlockコマンド セマフォ……………………(pshlockコマンド、共有ロックの応用)

    シェルスクリプトで排他・共有ロック&セマフォ - Qiita
  • Opusの音量周りがとてもつらい - Qiita

    (トラックゲイン) - (アルバムゲイン) = -0.54 dB (Q7.8形式だと-138) 検証用音声ファイルはこちら。 作品クレジット: Lovers in metal by Dong (2004) / CC-BY / 検証にあたりコーデックを変更した ケース1. Output gainをアルバムゲインとして-23 LUFSに揃える Opusの初期仕様で想定されていた方法です。ここではOutput gainに-12.78 dBを、R128_TRACK_GAINに-138を指定することになります。 RGとOpusゲインでは基準となるラウドネスが異なるため、どちらかにオフセットを加えて基準値を揃える必要があるのですが、foobar2000ではOpusゲインをRGに合わせるため+5 dBすることでこれを解決しています。具体例だとOutput gainが-12.78 dBになっていたらアルバ

    Opusの音量周りがとてもつらい - Qiita
    hycon
    hycon 2016/06/08
    Qiita初記事セルクマ
  • HTTP/1.1 200 OK - Qiita

    ※このお話はたぶんフィクションです。実在の人物や団体とはあんまり関係ありません。 序 planetter.comをバージョンアップすることにした。数年前にリリースしてからずっと放置していたけど、そろそろ手を付けないとやばいと思った。 しかしウェブの世界はドッグイヤーだ。3年も経てば何もかもが変わっている。しばらく開発から遠ざかっていた僕には、最近の技術トレンドなんてさっぱりわからない。 まずは自分自身をアップデートするところから始めよう。 Atom 最初はIDEだ。以前はEclipseを使っていたけど、いまはもうウェブ系言語の進化速度に追いつけていないようだった。ウェブ開発用のIDEならいまはWebStormが人気のようだ。有料だけど、最新の技術に対応しているし、使い勝手もいい。 でも最終的にはAtomを選んだ。IDE(統合開発環境)ではなくエディタなので、これ自体は単機能だけど、不足分は

    HTTP/1.1 200 OK - Qiita
    hycon
    hycon 2016/05/18
  • カフェでトイレに行ってるときに、Macが盗まれそうになるとGet Wildが流れるようにする - Qiita

    概要 https://gist.github.com/jay3sh/41d5f10293ba2aaa4019ec93766f4fdf [iOS]部屋の灯りが消えたら自動でGet Wildを再生してGet Wild退勤する 上記のインスパイアです。 スクリプトを起動してる際に、MacBookを閉じるとGetWildがなります。 ①NoSleepアプリのcliのインストール https://github.com/integralpro/nosleep/releases こちらからインストール ②スクリプトを書く osascriptでitunesから再生しようとしましたが、停止ボタンで止められたら困るので 音楽ファイルを直接再生することにしました #!/bin/sh MUSIC_PATH="/tmp/GetWild.m4a" checkNoSleepCtrl() { if [ ! -f $(wh

    カフェでトイレに行ってるときに、Macが盗まれそうになるとGet Wildが流れるようにする - Qiita
    hycon
    hycon 2016/04/04
  • [iOS]部屋の灯りが消えたら自動でGet Wildを再生してGet Wild退勤する - Qiita

    https://twitter.com/kozeni_shkt/status/709743397196541953 http://www.b-ch.com/ttl/index.php?ttl_c=467 照度センサーという事で最初arduinoが思い浮かんだのだけれど、一般のご家庭やオフィスにarduinoは無いと思うのでiOSでやった。使わなくなったiPadにアプリを入れてオフィスの出入口に置いておく運用イメージ。 設定した閾値をディスプレイの輝度(部屋の照度)が下回ったらGet Wildし始める。なお手を抜いてるので閾値以下で輝度が変化するたびにGet Wildされる。 // // ViewController.swift // gettlod // // Created by ouba on 2016/03/28. // Copyright © 2016年 oubakiou. All

    [iOS]部屋の灯りが消えたら自動でGet Wildを再生してGet Wild退勤する - Qiita
    hycon
    hycon 2016/03/29
  • OutOfMemoryError の調べ方 - Qiita

    Java 8 で、 Oracle の JVM を前提とした話です。 Java のメモリ管理 これを知っておかないと、 OOME が起こっても、メモリ内で何が起こっていて、どこを調査すべきで、どのように対処したらいいのかが判断できない。 なので、まずは、そもそも Java がどうやってメモリを管理しているのかを知る。 しかし、実際調べてみたら予想通りというかなんというか、量が多くなってしまった。 なので、個々の用語の説明は末尾の 用語集 に押し込めたので、ここではざっくりとした概要だけ記載する。 メモリの構造 超ざっくりとした、メモリ構造を表した図。 おおきく、ヒープ(Heap)領域とネイティブ(Native)領域の2つの領域がある。 ヒープは Java プログラムが使う領域で、プログラム上で生成したオブジェクトは、このヒープ領域に配置される。 一方、ネイティブ領域は JVM が動くのに必要

    OutOfMemoryError の調べ方 - Qiita
  • D言語くんの歴史 - Qiita

    D言語くんはOverviewのページでその愛くるしい姿を見ることができるのですが,いったいいつ彼は登場したのでしょう? D-Programming-Language/dlang.org で確認できる限りのログを漁ったところ,なんと一番最初の2008年のコミットからD言語くんは居たようです!これ以上は遡れませんでしたが,D言語君は少なくとも7年間はマスコットとして輝き続けているのですね. ただ,一時期D言語くんの姿を見ないことがありましたが,コミットログを見る限りではずっと居るんですよね・・・不思議・・・ 元々は荒いgif画像が使われていたのですが,D logo vectorizedで2005年1に描かれた透過png画像が2013年のコミット2で取り込まれています. また,今年(2015年)の8月のコミット3ではDownloadのページでもDMD4のロゴとしてD言語くんが登場しました!D言語

    D言語くんの歴史 - Qiita
    hycon
    hycon 2016/03/10
  • なぜmt_rand()の誤った実装をサクッと修正できないのか - Qiita

    @scaled_wurm さんのPHP の mt_rand() は一貫して壊れている(consistently broken)らしいに便乗してみる。 擬似乱数の特性は「周期性があること」です。周期性とはつまり再現性で、ほとんどの擬似乱数は長い周期性をもち次に出力される数を予測することが困難である一方、初期状態を固定する事で決まったパターンで値を返します。これは完全な乱数にはないもので、用途によっては完全な乱数より擬似乱数を使う方が好ましいこともあります。 例えば単体テストで乱数を扱う場合のことを考えてみましょう。 class RandomTest extends TestCase { public function testInitialValue() { mt_srand(0); $this->assertEquals(963932192, mt_rand()); } } mt_rand

    なぜmt_rand()の誤った実装をサクッと修正できないのか - Qiita
    hycon
    hycon 2016/02/21
  • 【たのしいな】様々なコマンド達を何も考えずにつないで遊ぶ - Qiita

    きっかけ matsuya-generator-rubyが、cowsayコマンドと組み合わせるとシュールこの上ない。 pic.twitter.com/gxaudeU377 — ぐれさん (@grethlen) 2015, 12月 6 もっと色々やってみたい。 あれ?Shell Script Advent Calendar 2015の22日目の枠残ってるじゃん。 じゃあやろう。 環境 Mac OSX Yosemite 10.10.5の端末上で実施。 zshを使って動作確認してますが、多分bashでも動きます。

    【たのしいな】様々なコマンド達を何も考えずにつないで遊ぶ - Qiita
    hycon
    hycon 2015/12/23
  • GitHub にパスワードとかセンシティブなファイルを push してしまったときの対処法 - Qiita

    .gitignore し忘れて他人に見えちゃマズいファイル(パスワードをベタ書きしたファイルや AWS_SECRET_ACCESS_KEY を書いたファイルとか)を git commit しちゃった!そんなときは すればすぐ何もなかったことにできます。 が!そこで気付かずに GitHub へ git push してしまった!こうなると容易に何もなかったことにはできません。 この記事では、こういうときに何もなかったことにする方法を紹介します。 そのデータを無効にする 特に Public Repository の場合はすでにそのデータが他人の目に触れていた…ということも十分ありえます。AWS_SECRET_ACCESS_KEY なんかは取得用のクローラが存在するとも聞きます。ので、まずは不正利用されても影響が出ないように、パスワードの書き換えやトークンの無効化を施しましょう。 (この時点でもう

    GitHub にパスワードとかセンシティブなファイルを push してしまったときの対処法 - Qiita
    hycon
    hycon 2015/12/20
  • <script>alert(1)</script>のお求めはAmazon CDストア - Qiita

    記事は脆弱性"&'<<>\ Advent Calendar 2015の15日目の記事です。 11/18にAmazonがリリースしたAmazon Musicというサービスに関連するXSSを2つ発見・報告したのでそのお話です。 1. Amazon MusicにあったXSS このページから "><_><script>alert(document.domain)</script>と検索すると alertが出ました。 画面右側のペイン内にて、aタグのhref attribute内に検索クエリを出力している箇所にあるバグに起因しています。この文字列は来何らかの処理を通じてエスケープされていたのですが、適当に<hoge>のような文字列を一つ挟むとaタグのhref attributeから漏れて出力されていました。 11/19に発見・報告し、11/26に修正されました。 何故かAmazonセキュリティ

    <script>alert(1)</script>のお求めはAmazon CDストア - Qiita
    hycon
    hycon 2015/12/16
    jjencode、万能だ
  • Safari 9.0 の JS で「同じ関数を繰り返し実行しただけで返り値が変わる」という強烈なバグが発見されてる - Qiita

    Webkit の Bugzilla で強烈なバグが報告されていると、同僚に教えて頂いた。 あまり話題になっていないものの、単純ゆえに強烈なバグだと思ったので Qiita にも公開しておく。 https://bugs.webkit.org/show_bug.cgi?id=151354 にそのバグ報告が上がっている。 最初に Google+ でやりとり があった模様。 URL のクエリ文字列から値を取り出す関数が正常に動作していないことから発覚したようだ。 その後は、簡単なテストケースに落とし込まれ jsfiddle というサイトにテストケースが公開されている。 Safari でこのページを開くと、実際に JavaScript を実行して確認できるようになっている。 続報 (2015.12.14) この記事を上げてすぐに Bugzilla の方で進展があった。 Yusuke SUZUKI さん

    Safari 9.0 の JS で「同じ関数を繰り返し実行しただけで返り値が変わる」という強烈なバグが発見されてる - Qiita
  • D言語くんの繁殖についての仮説 - Qiita

    この記事は、D言語くん Advent Calender 2015に投稿したものです http://qiita.com/advent-calendar/2015/d-man D言語くんの分裂 我々が目にするD言語くんの姿は、お腹の無い、中空の状態である。産まれて数秒後に、すぐにお腹を押し出して分裂してしまうからである。お腹があるのは繁殖(分裂)をしていない個体である。この特性から、D言語くんは並列でふえることができない。よって繁殖期のD言語くんは常に1匹である。もしお腹があるD言語くんを見つけても、そっとしておいてあげよう。 分裂の方向 生物の分裂には、方向による分類がある。 ・体の前後の軸に沿って分かれる縦分裂 ・体が前後の軸を横切って分かれる横分裂 D言語くんの分裂はどちらにもあてはまらず、いわば筒分裂とも言うべき形態をとり、特筆に値する。 D言語くん発生の起源 おせちのカマボコに魂が宿

    D言語くんの繁殖についての仮説 - Qiita
  • 気持ちよくAndroidを書くために - Qiita

    ちょっとでもJava7なAndroidを気持ちよくプログラミングしたい、 Javaっぽい(?)ところがありつつもモダンなパラダイムが取り入れられているScalaが羨ましく見えたので、Scalaっぽく書きたいという意志から書いています サンプルコードでは紙面の都合上、retrolambdalambda式使っています Scalaの羨ましいところ 挙げればキリが無いですが、以下とします 関数型プログラミング 強力な式 関数型プログラミングっぽく これについてはRoppongi.aar #2 - connpassで私が発表した内容がベースとなっています OOなjavaで無理して関数型プログラミングを目指すのではなく、関数型プログラミングの中でもモナドといわれる便利なデータ構造を便利に使いたい、といった程度のものです そこで、Androidでもモナド実装して使えば気持ちいいんじゃないか、ということ

    気持ちよくAndroidを書くために - Qiita
  • 複雑な条件分岐にサヨウナラ。PHPのルールエンジンRulerを使って複雑な条件をシンプルにしてみた - Qiita

    普通にifを使って書いてみる 単純化してますが、Kekkonクラスに、男性のステータスとかを持ったMenくらすのインスタンスを渡して、 canMarrige で結婚可能かどうかを返すと考えてください。 (ここのロジックはもう少し単純化出来ますが、条件を増やして複雑さを表現するのは大変だったので、あえて複雑なままにしてます) class Kekkon { private $men = null; public function __construct(Men $men) { $this->men = $men; } public function canMarriage() { // 年収が高ければ、身長か学歴のどちらかが高ければ結婚可能 if ($this->men->isHighIncome()) { if ($this->men->isHighHiehgt()) { return tr

    複雑な条件分岐にサヨウナラ。PHPのルールエンジンRulerを使って複雑な条件をシンプルにしてみた - Qiita
  • ローディング時のズルい進捗表示

    今開発中のPlayer!のログイン・登録画面で、こんな進捗表示をしていますが、これ実はフェイクだったりします( ´・‿・`) (Qiitaの画像サイズ制限が厳しくて粗いです。キレイなものは実際にアプリダウンロードしてご覧下さい。) 経緯 元々、この画面はこういう進捗表示では無く、単にインジケーターがクルクルするだけで、進捗状態が分からないものでした。 特にネットワークが悪いところだと、バグって固まってしまったのでは?とユーザーを不安にさせるようで、たまにそういう声を聞くことがありました。 登録フローは大事なところなので、そういうところでこれが原因で離脱してしまうと残念なので、改善が必要でした。 そこで、ネットワーク処理にもたつきつつもちゃんと正常に処理をしているということを示すために、進捗を表示することにしました。 ただ、例えば大きな画像などメディアファイルダウンロードなどならともかく、こ

    ローディング時のズルい進捗表示
    hycon
    hycon 2015/09/19
  • 右腕を骨折した時に便利なTips - Qiita

    右腕骨折しました! バイクで路肩の砂利で滑りました・・ でも、仕事休めませんよね? むしろ、病院いったりで普段以上の工数が必要ですよね? でも、キーボード打ち辛いですよね? そんな ピンチなあなたに便利なTips 前提 右手を怪我したが、キーボードを打つ事は可能 ただし、腕を動かす事は出来ない=ホームポジションを移動できない 主にMacbook利用を前提 不便な事 基的に ブラインドタッチが出来ているなら、ホームポジションに乗せさえすれば キー入力に不便が少ないが 何点か困る事があったので それを解決します マウス 矢印キー マウス 左手で操作しましょう。これで解決です! Macbookの場合は トラックパッドを左手で使えば大丈夫です 慣れればなんて事ないさ! 矢印キー コレはけっこう問題です どうしても矢印キーは ホームポジションから動かす必要があるので 大変です スクロールは トラッ

    右腕を骨折した時に便利なTips - Qiita
    hycon
    hycon 2015/08/14
    知見だ