タグ

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

  • いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita

    さくらインターネット Advent Calendar最終日は、硬派にLinuxのメモリに関する基礎知識についてみてみたいと思います。 最近はサーバーを意識せずプログラミングできるようになり、メモリの空き容量について意識することも少なくなりましたが、いざ低レイヤーに触れなければいけないシチュエーションになった際に、OSを目の前に呆然とする人が多いようです。 基的にLinux のパフォーマンスについて、メモリをたくさんつめばいいとか、スワップさせないほうが良い とか、このあたりは良く知られたことだと思います。 ただ、なんとなく ps コマンドや free コマンド などの結果を見るだけでなく、もう少しメモリのことについて掘り下げてみてみたいと思います。 メモリとキャッシュ Linux におけるメモリの状態を大きく分けると「使用中のメモリ」「キャッシュ」「空きメモリ」「スワップ」の 4 つに分

    いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita
  • 恥かどうかはともかく、そもそも逃げられない障害対応のお話 - Qiita

    システムエンジニア Advent Calendar 2016の20日目の記事だよ! 昨日は@sh-ogawaさんの「SIerが実践する分散開発とバージョンコントロール」でした!! システム障害のお話 は〜い、こんにちは!いよいよクリスマス間近ですね! この時期になると、キャッキャウフフの予定も盛りだくさんだと思います!1 そんな大事な日に限って起こるのがあれです。 そう、みなさんもよくご経験されているだろう、システム障害です2。 システム障害 それはツラく長く険しい道のりを告げるゴングです。 今回は、その障害対応のお話をしたいと思います。 この記事のアジェンダはだいたいこんな感じです。 報告する はい、システム障害が起きました〜。 キタ━━━(゚∀゚)━━━!! 「マジでか…(´;ω;`)ブワッ」 「なんで今日なんだよ〜( ;∀;)」 障害発生時の想いは人それぞれだと思いますが、まず最初

    恥かどうかはともかく、そもそも逃げられない障害対応のお話 - Qiita
    Sixeight
    Sixeight 2016/12/20
  • 俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita

    ちなみに、最初に結論だけ言っておくと、まずSandi Metzの「オブジェクト指向設計実践ガイド」を読め、という話です それだけで終わってしまいたい気持ちはあるが、不親切過ぎるしもうちょっとRails向けの話を書こうと思う。 ただ言いたいことは、よく分かってないのに使うのは止めろということ。 自分もで書いたりした手前、それが参考にされた結果なのかもしれないが、世の中には当に酷いクラスが存在するもので、雑にサンプルで書くと以下の様な感じのコードが存在したりする。 class HogehogeService # Hogehogeはモデル名まんま def process(hogehoge, option_a: nil, option_b: nil, option_c: false) history = hogehoge.histories.last unless hogehoge.activ

    俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita
  • 質問は恥ではないし役に立つ - Qiita

    一年半SEとして働いてきた中で、私自身が苦手だと思っており、他人からもそのように評価されていたのが「質問の仕方」でした。 それが先日、他人から「質問の仕方がうまいね」と褒められることがあり、ようやく一人前の質問の仕方ができるようになってきたので、どのようにして克服できたのか紹介したいと思います。 質問の基形 私が入社したばかりの頃は、わからないことがあればすぐに先輩に質問していました。 そのときにしていた質問の内容はだいたいこんな感じです。 「環境構築を手順書通りにやったんですけど、○○のコマンドでエラーがでてしまいます!なんとかなりませんか?」 このような質問を受け取ったら、先輩は暇ならばエラーメッセージを見てくれ、エラーメッセージに書かれていることに対して調査してくれるかもしれませんが、忙しいときにはそんなことはしてもらえません。 こんな質問を繰り返しているうちに先輩からは「技術系メ

    質問は恥ではないし役に立つ - Qiita
  • Swift 3.1 を先取り👀 - Qiita

    【追記】 記事 + α の内容を以下で丁寧にまとめました(一部記事のみに記載されている内容もありますが)。 Swift 3.1のリリースプロセスおよびそれに含まれる変更内容の紹介(前編) - Build Insider Swift 3.1のリリースプロセスおよびそれに含まれる変更内容の紹介(後編) - Build Insider そろそろ、Swift 3.1 のことも気になってくる頃かなと思って、それについて書いてみます。 Swift 3.1 で予定されている変更点(現時点) 現在実装済みの主な変更点は、Swift 3.1 の CHANGELOG に記載されています。 現時点では、以下の3点が記載されています。 SR-1446: Nested generics SR-1009: Add methods to an Array containing a specific type SE-

    Swift 3.1 を先取り👀 - Qiita
  • SwiftのExtensionをモダンでオシャレに実装する - Qiita

    のように書いているExtensionを以下のようにオシャレに書くことができる、ということを解説します。 長くなってんじゃねーか。 と、思うかもしれませんが、こうすることによって型に含まれる標準的な機能と拡張機能を明確に区別することができます。 ちょっと便利。ちょっと。 Extensionをどうやって定義するか問題 なぜこのような話をするのかというと、Extensionをどうやって定義するかが問題になったりするからです。小さな問題ではあるんですけど。 Extensionは欲しいところに欲しいものを作ることができるので、結構使う機会が多いんじゃないかと思いますが、どこにどうやって定義するかまで考えたいところです。 局所的に使うものであればprivateなりfileprivateなりのアクセスコントロールを使って公開範囲を制限したりするかと思います。 逆にプロジェクト全体で使うようなものに関して

    SwiftのExtensionをモダンでオシャレに実装する - Qiita
  • 絶対に笑ってはいけないRailsコード集 - Qiita

    株式会社LITALICO のklrutsaです。 『LITALICO Advent Calendar 2016』13日目の記事です。 はじめに 私が遭遇した、Railsアンチパターン集です。 笑えるよりも、笑えないコードのほうが多いですが、よろしくお願いします。 前回の、負債を抱えすぎたRailsアプリのリファクタリング - Qiitaでは、複雑な状態遷移への対応方法を書きましたが、その他の負債をどうしたかみたいなことについて書いてみます。 一般的に書いてはいけない、とまではいえないかもしれないですが、 個人的には書かないほうが良いと思っているコード集です。 default_scope class Article < ActiveRecord::Base default_scope { where(status: 'publish') } end 要点 プログラマの認識している動作と実際の

    絶対に笑ってはいけないRailsコード集 - Qiita
    Sixeight
    Sixeight 2016/12/13
    積極的にrmしていきたい
  • 今から新規でiOSアプリを書き始めるなら。2016年冬 - Qiita

    こんにちは @yimajo です。この記事は今から新規でAndroidアプリを書き始めるなら。に大きく影響されています。主な内容として次のような事柄を取り扱っています。 今から書くならこんな設計 こんなライブラリがあるが使ってみた感想 ただ、結論として大して深い内容は書けませんでしたので、がっかりせず、みなさん思い思いにやればいいよっていうことに終着しています。アドベントカレンダーのネタにみなさんも書いてみてはどうでしょう。 言語について Objective-C か Swift か まず最初に言っておくとObjective-CやSwift以外にもiOSアプリを始める方法はあります。例えばObjective-C++とかRubyMotionとか。まあそれはそれで良いところもあると思いますが、複数人でiOSアプリ開発を行いそれを保守したり機能追加したりすることを考えるとObjective-CかS

    今から新規でiOSアプリを書き始めるなら。2016年冬 - Qiita
    Sixeight
    Sixeight 2016/12/05
  • 「プログラマでしょ?ホームページ作ってよ!」を1日で対応する - Qiita

    プログラマあるあるだけど友人からホームページ作ってよ!と言われることがある。 大体は適当な理由をつけて断るけど、1日程度で作る方法を模索してみた。 テンプレートをダウンロード 1から書いてる暇はないので適当なテンプレートを使います。今回はHTML5 UP!を使います。 HTML5 UP!のLicense 控え目でもCreditsをサイトに乗せれば無料で使用可能です。 以下はサンプル テーマはDirectiveを使用します。 フォームが付いててマークアップはそのままで使えそうですね。 開発環境 テーマがダウンロードできたら開発環境を準備します。 サーバーサイドは書きません。 Cloud9が便利そうだったので登録してワークスペースを作ります。Cloud9のワークスペースは一つなら非公開でも利用可能です。 以下のようにプロジェクトの情報を指定します。 ライブプレビュー準備 生成されたプロジェクト

    「プログラマでしょ?ホームページ作ってよ!」を1日で対応する - Qiita
    Sixeight
    Sixeight 2016/11/28
  • Xcode8でビルドが遅すぎるのを解消した件(Swift パフォーマンス改善) - Qiita

    2016年11月現在、最新(Xcode8.1環境下での)のコンパイル時間の計測方法が見当たらないので分析方法まで調査した。 2分程度かかっていたビルドが10秒ほどに短縮できました。 ※ビルドするマシンのスペック、設定、ファイル数、コードの書き方にもよるので、 n%,n秒速くなったというのは相対的な値なので予めご了承ください。 2016/12/11追記 有効な分析方法を追加 swift3.0以降にて可 はじめに 100クラス弱のswiftプロジェクトで2分強ビルドに時間がかかっていたので、おかしいなと思い、おそらく静的にベタ書きした多次元配列に型情報を与えていないからだろうなと分かっていたが、いい機会なので原因を調査してみた。 プロジェクトのビルド時間の計測 こちらを参考に(Swiftのメソッド毎のコンパイル時間を計測してビルド時間を短縮する) 単にビルドが遅いと言われても、実質どのくらい

    Xcode8でビルドが遅すぎるのを解消した件(Swift パフォーマンス改善) - Qiita
  • Mac のターミナルに `CAL` と打ち込んだときの挙動を追った話 - Qiita

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

    Mac のターミナルに `CAL` と打ち込んだときの挙動を追った話 - Qiita
    Sixeight
    Sixeight 2016/11/22
  • プログラミングでよく使う英単語のまとめ【随時更新】

    プログラミングでよく使う英単語のまとめ【随時更新】 随時追加、整理していきます。 名前をつけるときには、名詞、動詞の違い、複数形、過去形などに注意しましょう。 オブジェクト指向では、クラス名は名詞、メソッドは動詞とします。 使ってはいけない言葉 get / set アクセサ (getter / setter) やプロパティによく使われている。 それ以外に使うと混乱を招くのでよくない。 get は軽量な処理と考えるので、中に重い処理は書いてはいけない。 単純な取得/設定以外で使いたくなったら他の言葉を考える。 load, save, commit, store, enable, disable, fetch, register, configure, add, etc... check 意味が広すぎて何をしているかわからない。 できるだけ別の言葉を使う。 具体的に何をしているかに分解して考え

    プログラミングでよく使う英単語のまとめ【随時更新】
  • Xcode8に移行してビルドが遅くなったのを直す - Qiita

    結論 HEADERMAP_USES_VFSというオプションをYESにすると差分ビルドが効く様になり、ビルドが速くなりました。 概要 Xcodeのversionを8に上げてから、自分のプロジェクトでは差分ビルドが全然効かず、少し変更を加えただけでフルビルドが掛かってしまう状態でした。 そこで直し方を調べたところHEADERMAP_USES_VFSというオプションをYESにすると差分ビルドが効く様になるということでした。 自分の環境は Xcode Version 8.0 (8A218a) Swift2.3 です。 やり方 XcodeのBuild Settingsを開きます。 HEADERMAP_USES_VFSのオプションは、元からあるわけでは無いので、自分で追加します。 開発時に差分ビルドが効けば良いのでdebugのときだけYESにしました。 これでビルドが速くなります。 理由については調べ

    Xcode8に移行してビルドが遅くなったのを直す - Qiita
    Sixeight
    Sixeight 2016/11/13
    めちゃくちゃ速くなって嬉しすぎて泣いてる
  • null安全を誤解している人達へのメッセージ - Qiita

    先日koherが投稿した記事が多く読まれたようです。記事の内容は僕とkoherが普段話してきた内容が多く登場しているため、僕が人々に伝えたい内容とも強く合致しています。しかし残念な事にインターネットの反応を見ていると、誤解しているケースが思ったより多くありました。 そこで、ネットで見られた意見に対して返答を書きました。 特定の実在する意見は指さずに、僕が感じ取った文脈を編集したものを対象にします。それによって、「そんな事言われてないじゃないか」と思うものがあれば、僕としてもそのほうが嬉しいのでそれで問題ないです。 「たしかにそうだ」と思ってnull安全に今一度興味をもってもらえれば嬉しいです。 なお、記事中のコードは特に言及が無ければswiftです。 意見: null安全があっても、ちゃんとやるのを忘れているかもしれないのでは 忘れません。ちゃんとやらないと、コンパイルが通らないからです。

    null安全を誤解している人達へのメッセージ - Qiita
  • 外気温を測ってホームページで公開すると気象庁から怒られる件(→怒られなくなった模様) - Qiita

    2022年7月2日追記 コメントをいただいて気づいたのですが、過去の「よくある質問集」にあった ホームページでの公開は、成果の発表にあたりますので、届出が必要です。 などの記述が消えて、 気象観測データをインターネット上のホームページ等で掲載する場合には、その観測データの特徴を踏まえた適切な利用につながるよう、観測データの特徴(例えば、観測の目的や観測場所等)を明示するよう努めていただきますようお願いします。 との記述が追加されていることを確認しました。 現実的な運用になり、嬉しく思います。 2022年7月3日追記 気象観測施設の届出と気象測器の検定 のページ内にある 解説資料「気象の観測を行う場合に」 [PDF形式:218KB] の6-7ページ(PDF上では7-8ページ)に、観測データの特徴の具体的な記載例が書かれています。 平成30年(西暦2018年)3月の文章です。 気づいてあげられ

    外気温を測ってホームページで公開すると気象庁から怒られる件(→怒られなくなった模様) - Qiita
    Sixeight
    Sixeight 2016/11/02
  • https://qiita.com/advent-calendar/2016/no-girlfriend

    Sixeight
    Sixeight 2016/10/27
  • Gitのコミットグラフを可視化できるGitGraph.jsがおもしろい - Qiita

    プレゼン資料を作っている時に「このコミットグラフをMarkdownかテキストで書けたらな」と思ったことがある人、結構いるのではないでしょうか。 GitGraph.js を使うと、JavaScriptで記述したコミットログをcanvasを使って可視化できることを知りました。なかなかおもしろいです。 準備 まず GitGraph.js の JavaScriptCSS ファイルを読み込みます。GitHub からソースをcloneするなり、bowerを使うなり、CDNを使うなり、お好みで。ここではコミットグラフを定義するコードも別ファイル index.js に書くことにします。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>GitGraph.js</title> <link rel="stylesheet" type=

    Gitのコミットグラフを可視化できるGitGraph.jsがおもしろい - Qiita
    Sixeight
    Sixeight 2016/09/30
  • これだけ覚えておけばOK!シェルスクリプトで冪等性を担保するためのTips集 - Qiita

    「シェルスクリプトって冪等性ないじゃないですか」 そんなことをよく耳にします。しかし、if文を入れるだけで簡単に冪等性を担保したシェルスクリプトを書くことができます。 今回は、私が使う条件式を紹介します。基的な形式なものなので、組み合わせると幅が広がりますよっ! ファイル/フォルダ関係 ファイルの存在確認 -e 'ファイル名'で「ファイル名」が存在しているかチェックします。 if [ -e 'ファイル名' ]; then # ファイル/フォルダが存在していれば、ファイル/フォルダを削除するなど rm ファイル名 fi

    これだけ覚えておけばOK!シェルスクリプトで冪等性を担保するためのTips集 - Qiita
    Sixeight
    Sixeight 2016/09/28
  • コマンドラインツールを書くなら知っておきたい Bash の 予約済み Exit Code - Qiita

    上記の表の通り,Exit Code 1, 2, 126〜165, 255 は特別な意味を持ち,スクリプトやプログラム内で exit に指定するパラメータとしては避けるべきである.とりわけ,Exit Code 127 はトラブルシューティングで混乱の元である("command not found" で終了したのか,プログラム固有のエラーなのか区別できなくなる).しかしながら,多くのスクリプトが exit 1 を一般的な実行を続行できないエラーとして使っている.Exit Code 1 は Bash の一般的なエラーを含め,とても多くのエラーで発生しうるので,デバッグの時に切り分けが大変になるだろう. Exit Code を体系立てて定義する試みはある(/usr/include/sysexits.h)が,これは C と C++ プログラマー向けである.スクリプトに関しても同様な感じにするのが適切

    コマンドラインツールを書くなら知っておきたい Bash の 予約済み Exit Code - Qiita
    Sixeight
    Sixeight 2016/09/21
  • httpsだからというだけで安全?調べたら怖くなってきたSSLの話!? - Qiita

    課題 サイトをを立ち上げるときに当然のごとくSSL証明書をベンダーから購入して設置していたが、いざセキュリティ診断等でチェックしてもらうとSSLについての指摘を何件か受けてみた。なんでだろうと思いながらも、さらに最適なSSL設定は?と聞かれてそういえばあまり昔から手を入れたことなかったなと思い調べてみた SSL通信が確立するまでの概要フロー SSL通信について再度おさらい Nginxを元にしたSSLの設定 nginxのHTTPS サーバの設定を参考に、たった2行だけどSSLを考えてみる。書き方は違えどもapacheも概念は一緒のはず。

    httpsだからというだけで安全?調べたら怖くなってきたSSLの話!? - Qiita
    Sixeight
    Sixeight 2016/09/15