タグ

裏技と開発に関するiwwのブックマーク (14)

  • 革命の日々! __attribute__(alloc_size) を使わないと_FORTIFY_SOURCE を活かせないよ。という話

    _FORTIFY_SOURCEというバッファーオーバーフロー攻撃を防ぐのにとても有用なマクロがある。 知らなかった人は以下のmanでもまず見てください http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/feature_test_macros.7.html _FORTIFY_SOURCE (glibc 2.3.4 以降) このマクロを定義すると、文字列やメモリの操作を行う様々な関数を 使用する際にバッファオーバーフローを検出するための軽めのチェックが 実行されるようになる。すべてのバッファオーバーフローが検出される わけではなく、あくまでよくある例についてだけである。 現在の実装では、以下の関数にチェックが追加されている: memcpy(3), mempcpy(3), memmove(3), memset(3), stpcpy(3),

  • IntelliJ IDEA(系)でJSONを美しくする - それマグで!

    JSONが1行で記載されてて、めんどくさかった。 JSONを整形したり、フォーマットを整えて閲覧しようとして、ついついプラグインを探していてなぜかソレを使っていたんだけど、落ち着いて考えたら、コードフォーマッターに掛ければいいんだと気付いた。 そうだよね。コード整形にかけたら良かったんだよね。プラグインを検索とかアホなことしたので備忘録しておく。 IDE使うときはJSONをフォーマッターにかける reformat code でjson 整形が一発。 スクラッチファイルを使うとさらに便利。 ちょっとしたファイルの整形くらいなら、 IntelliJ のSractchファイルを使うのが便利。 これは他のファイルにも使えるので覚える便利な手段。 css/ json / xml などなど いちいちプラグイン入れなくていいですよね phpstormrubymine や pycharm などでも使

    IntelliJ IDEA(系)でJSONを美しくする - それマグで!
  • OOM Killer発動時にサーバーを再起動する方法

    VPSで管理してるWEBサイトの死活監視のアラートメールが届き、ブラウザでチェックしたらサイトが見れない。SSHでログをチェックしたら「httpd invoked oom-killer:」の文字が…。 OOM KillerさんにApache(httpd)のプロセスが強制終了させられたらしい。 Jan 12 11:37:53 ns1 kernel: httpd invoked oom-killer: gfp_mask=0x200da, order=0, oom_score_adj=0 Jan 12 11:37:53 ns1 kernel: httpd cpuset=/ mems_allowed=0 Jan 12 11:37:53 ns1 kernel: CPU: 0 PID: 18178 Comm: httpd Not tainted 3.10.0-957.1.3.el7.x86_64 #1

    OOM Killer発動時にサーバーを再起動する方法
  • LinuxでメモリがなくなってOomKillerが動いたときにサーバを自動で再起動させる

    サービスを運用してると、急に人気が出たり、新しくプログラムをデプロイしたりした時に、まれにメモリをいつぶしてサーバが不安定になってしまうことがあります。その時サーバではOomKillerが動いて、Linuxが自動ででプロセスプロセスをkillしてメモリを確保しようとします。 どのプロセスがやっつけられてしまうかわからないので、サーバがとても不安定になったり挙動不審になったりすることが多いです。今回は、サーバでOomKillerが動いてしまった時の対処方法を紹介します。OSはCentOS 6.5 64Bitです。 ■とにかくサーバの再起動しましょう OomKillerが動くと正直、何が起こるわからないです。どのようなプロセスが停止されて、どんな状況なのかわからないことが多いです。なので、一旦サーバの再起動をしてしまいましょう。サーバが動いている感じがしても、今後の事も考えてサーバを再起動し

    LinuxでメモリがなくなってOomKillerが動いたときにサーバを自動で再起動させる
  • C++のenumの値を文字列にできるライブラリnameofがすごい - Qiita

    はじめに 2019/7/10追記 NAMEOF_TYPEの例が0.8.0以降のバージョンで動かない問題を修正しました (Thanks! @tyu_ru_cppさん) C++だと「enumで定義した名前を文字列にしたい」というときに困ることがたまによくあります。他の言語だとToStringメソッドを使って文字列にできたりするのですが、C++だとそうはいきません。 Qtを使うと独自の黒魔術によって比較的楽に取得することができるのですけども、Qtを使わないピュアなC++な環境だとどーすんだろっていう感じです。 そこで、Siv3dの作者さんである@Reputelessさんが、まさにそのenumから文字列の変換ができるライブラリについて呟いておられまして、その機能と実装方法に感銘を受けたので、ここで紹介したいと思います。 C++ で enum の値を追加の記述無しで文字列にできるライブラリだ (MS

    C++のenumの値を文字列にできるライブラリnameofがすごい - Qiita
    iww
    iww 2019/04/05
    『文字列リテラルをsizeofするとその文字列の長さが取れること、関数のシグネチャはある程度固定であることを利用すると、以下のように筋肉で切り出すことが出来ます。』 筋肉という表現をすればよいのか。
  • 1216彩票-官网平台

    您不具备使用所提供的凭据查看该目录或页的权限。 请尝试以下操作: 如果您认为自己应该能够查看该目录或页面,请与网站管理员联系。 单击刷新 按钮,并使用其他凭据重试。 HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。 Internet 信息服务 (IIS) 技术信息(为技术支持人员提供) 转到 Microsoft 产品支持服务 并搜索包括“HTTP ”和“401 ”的标题。 打开“IIS 帮助”(可在 IIS 管理器 (inetmgr) 中访问),然后搜索标题为“身份验证”、“访问控制”和“关于自定义错误消息”的主题。

  • 第 4 章 make ユーティリティ > 依存関係の検査 : make とシェルスクリプト

    依存関係の検査 : make とシェルスクリプト 単純な処理の場合には、ソフトウェアの構築にシェルスクリプトを使用して整合性を保つことができますが、ソフトウェアプロジェクトの構築では多くの場合スクリプトは適していません。プログラムまたはオブジェクトモジュールのうちの 1 つだけが変更されている場合に、単純なスクリプトを使用してすべてのプログラムまたはオブジェクトモジュールをコンパイルするのは効率がよくありません。また、スクリプトを繰り返し編集しているうちに、整合性を保つことができない場合があります。再コンパイルが必要なモジュールだけを再コンパイルするスクリプトを記述することはできますが、それには make を使用する方が適しています。 make を使用すると、構築するファイルとその構築方法を簡潔かつ構造的に記述することができます。make は、依存関係の検査という仕組みを使用して、各モジュ

  • 秀丸のすごい機能「対応する括弧に移動」 | 超兄貴の開発メモ

    ・Ctrl + k -> 対応する括弧にジャンプ ※「その他 -> 動作環境 -> ウィンドウ -> 詳細 -> カーソル移動系」の中に「対応する括弧に移動」というのが入っており、ツールバー・アイコンに追加することができる。 ※対応する括弧の強調表示が可能。

    iww
    iww 2017/01/05
    Ctrl+K たぶんカッコのK
  • PHPでマルチスレッド(バックグラウンド処理)を実現する方法 - EC studio 技術ブログ

    PHPで長時間かかる重い処理を行うとき、 マルチスレッドで動かせたらなぁ!と思うことがよくあります。 マルチスレッド処理を行うことで、時間のかかる処理を 複数同時に並列実行でき、高速化することができます。 (特に通信処理などで遅延がある場合に有効です) PHPにはpcntl_forkというプロセスをフォーク(複製)することが できる関数がありますが、これはPHPCGIモードで 動かしている場合にのみ有効です。 通常はPHPをApacheモジュールとして動作させていることが 多いので、これが使えないケースが多々あります。 他には、system関数などでシステムコールを行い、 など & を使って実行するという方法もありますが、 これもphpCGI版として実行できなければいけません。 システムコールで呼ぶプログラムをPerlなどで 書けばいいのですが、できればPHPで全部統一したいものです。

  • ローディング時のズルい進捗表示

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

    ローディング時のズルい進捗表示
  • AndroidのNFC機能でFeliCaの読み書きをする | −ゆめログ− | ゆめみスタッフブログ

    AndroidのNFC機能でFeliCaの読み書きをする | −ゆめログ− | ゆめみスタッフブログ
  • Pythonで出力したCSV(UTF-8)がExcelで読み込めなくて困った話 - 唯物是真 @Scaled_Wurm

    Pythonで出力したUTF-8CSVを渡したら「文字化けしてExcelで読めない」と言われて困りました 原因は文字コードがUTF-8の時によく問題になるBOM(バイトオーダーマーク)です バイトオーダーマーク - Wikipedia UTF-8のファイルにはBOMが付いている場合と付いていない場合があります ExcelはBOMが付いていないと正しく読み込んでくれません なので、例えばメモ帳で開いて保存し直すと、BOMが付いてExcelでも開けるようになります 今回の問題とは逆にBOMがついていると動かないこともあって、以前BOMが付いたUTF-8のファイルをChromeに渡したら何故か動かなくて悩みました Google Chrome のユーザースクリプトで名前やバージョン番号が反映されない - 唯物是真 @Scaled_Wurm ちなみにPythonだと文字コードにutf-8ではなくu

    Pythonで出力したCSV(UTF-8)がExcelで読み込めなくて困った話 - 唯物是真 @Scaled_Wurm
    iww
    iww 2014/12/09
    ほんとだ文字コード変換しなくてもちゃんと読まれる。 でもBOMつけるとほかのアプリとは親和性めちゃくちゃ悪くなるしなぁ
  • GCC some extensions

    gcc(Gnu C Compiler)の拡張文法 [警告!] C/C++言語初心者はこのページを読まないでください。 このページではgcc独自のC/C++拡張文法について解説します。 これらの拡張文法が可能にする機構は確かに便利なのですが、 もちろんANSI規格に従っていないので、一般的には使うべきではありません。 C/C++言語文法を学び始めている初心者はこれらgcc拡張文法を 知るべきではありません。C/C++言語を正しく理解する上で大きな 支障となります。 C/C++言語を十分に熟知した者は、gccがこのようなこともすることを 「雑談」として知っておくと楽しいかもしれません。もちろん 実戦に使うべきではありませんが。しかし初心者が偶然に、これらの 機能を使ってうまくいく場合がありますので、そのような初心者を 見つけたら、それが標準規格ではないことを注意してください。 配列変数をコピー

    iww
    iww 2014/10/24
    知らなかったことのオンパレードだ・・・ 1995年の記事なのに
  • eclipseで改行コード、文字コードを統一する - Hacking My Way 〜 itogのhack日記

    改行コードや文字コードってWindowsMacLinuxの3大OSでそれぞれ違っていて、ソースコード管理で違ったモノが入っちゃうと面倒なのでeclipseを使う場合は設定して統一しておきましょう。 ここでは文字コードはUTF-8、改行コードはUnixにしています。 プロジェクトごとに設定する プロジェクトのコンテクストメニューから[Properties]を開き、Resource画面で設定します。 全体で設定する メニューから[Eclipse]->[Preferences...]を開き、Workspaceの設定でText file encoding、New text file line delimiterを設定します。 既存ファイルの改行コードを変更する 改行コードが違うファイルが混じってしまった場合、変更したいファイルを選択した状態で、メニューから[File]->[Convert Li

    eclipseで改行コード、文字コードを統一する - Hacking My Way 〜 itogのhack日記
    iww
    iww 2014/08/09
    個々のファイルの改行コード変更は、プロパティーからではなく ファイルメニューの「行区切り文字の変換」でおこなう。
  • 1