タグ

yuich0のブックマーク (117)

  • nginx + uwsgi でアプリケーションをサブディレクトリで動かす設定 - Qiita

    やりたいこと 複数のアプリケーションを、同一の virtualhost 内で動かす。 http://example.com/app1/hello にアクセスすると、 localhost の uwsgi で動いているアプリの /hello に飛ばすとか。 基礎知識 (多分CGI由来の) 3つの重要な変数を理解しましょう。 REQUEST_URI が、ユーザーがアクセスしたホスト名以降のパスです。 SCRIPT_NAME が、アプリが動いている場所です。 CGI だったら .cgi とか php だったら .php とか拡張子があったりします。 PATH_INFO が、 SCRIPT_NAME 以降のパスです。アプリのURLディスパッチャはこの変数を見たりします。 この3つの変数がきちんと設定できていないと、URLディスパッチやリダイレクトが上手く動かない事になります。 デフォルトで用意されて

    nginx + uwsgi でアプリケーションをサブディレクトリで動かす設定 - Qiita
  • 意外と間違えている?robotsタグとrobots.txtの違い - ブルースクレイ・ジャパン

    検索エンジンのロボットの動きやアクセスを制限させるためによく活用されるのが、 robots(ロボッツ)metaタグとrobots.txtがあります。 4月に行われたGoogleDanceTokyo2018でも話題になっていました。 https://webmaster-ja.googleblog.com/2018/02/google-dance-tokyo-2018.html そこで今回は意外と間違えやすいこのrobotsmetaタグとrobots.txtについて解説していきます。 robots(ロボッツ)metaタグ robotsmetaタグの書き方にはいくつかの種類があります。 index,noindex follow,nofollow noarchive noodp,noydir それぞれの使い方は以下になります。 index,noindex index,noindexは検索エンジンに

    意外と間違えている?robotsタグとrobots.txtの違い - ブルースクレイ・ジャパン
    yuich0
    yuich0 2021/04/11
    「robots.txtをインデックスされているページをインデックス除外するために活用するのはNG」勘違いしてた。
  • Clipy - Clipboard extension app for Mac OS X

    主な機能 プレーンテキストや画像といった複数の形式に対応したクリップボード拡張アプリです。 ショートカットキーで自由にメニューを呼び出すことができ、いつでもクリップボードの履歴を参照できます。 また、スニペットとして定型文を登録しておくことで、いつでも定型文をペーストできます。 オープンソース Clipyはオープンソースで公開されています。バグや不具合、要望等ありましたら、Issue、PullRequestなどお待ちしています!日語でも大丈夫です! スペシャルサンクス Clipmenuをオープンソースとして公開していただき@naotaka氏に感謝いたします。このコードがなければリメイクという形で公開はありえませんでした。 現状機能が被ってしまっていますが、独自機能を追加してさらなる機能向上を目指していきます。当にありがとうございました。

    Clipy - Clipboard extension app for Mac OS X
  • Dockerコンテナ(Let's Encryptのcertbot)を定期的に再起動する - @peccul is peccu

    tl;dr entrypointにwhile sleepを仕込めばよかった entrypoint: /bin/sh -c "trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;" 背景など docker-composeでapacheコンテナとcertbotを組み合わせて、cerbotの証明書出力先をapacheコンテナにvolumeでマウントしていた。 更新するときは今のところ手動でcertbot renewをキックする操作が必要だった(docker-compose run cerbot renewのような) せっかくコンテナに押し込んでいるのに、ホストcrontabを使うのは嫌だったので探したら見つかった。 superuser.com entrypoint: /bin/sh -c "trap e

    Dockerコンテナ(Let's Encryptのcertbot)を定期的に再起動する - @peccul is peccu
    yuich0
    yuich0 2021/01/04
    なるほど、コンテナ内でpid1をHUPするなりTERMするなりKILLするなりすれば良いのか。単純なことなのに全然思いつかなかった。
  • ランダム文字列をたくさん生成する - Qiita

    cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 32 | sort | uniq tr -dc 'a-zA-Z0-9' 含める文字種 fold -w 16 生成する文字列の文字数 head -n 32 生成する件数 念のため、生成したい件数分出力されているか確認が必要。 ちゃんとスクリプトを書けばいいんだけど、簡単に済ませたいときはこれでいいかな。 実行結果はこんな感じ。 $ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 8 | sort | uniq 4QrrCixUp7SH64k0 7C0jFVNj7TmFTK96 8GQeLqyfkHiFiDtu 8sLaDqQf9dNHNzDd k0Jg6PzlbzRSQCdM liw3Q0ALIDy

    ランダム文字列をたくさん生成する - Qiita
  • ウェブアプリをソースごとパクる業者に対する対策 - Qiita

    こんにちは。みなさんもウェブアプリをリリースしたあとに同業者にソースごとパクられたことってありますよね。難読化しても難読化されたまま同業者のサーバで動くので困ったものです。そこで、私がとった解析しずらい対策をまとめてみたいと思います。 前提 多機能な画面をJavaScriptでゴリゴリ作ったのにもかかわらず、HTMLCSSJavaScriptファイル一式を自社サーバにまるごとコピーして、ライセンス表記だけ書き換えて使うような業者を罠にはめるということを想定しています。 当然通信をリバースエンジニアリングする人もいるので、自社サーバでは防げないという前提です。 HTMLにはauthorメタタグ よくあるMETAタグで権利者を明記します。これは権利の主張もそうですが、JavaScript自体に権利者が認定した権利者でなければ無限ループを起こすという処理のためにも使用します。逆に、権利者が我

    ウェブアプリをソースごとパクる業者に対する対策 - Qiita
    yuich0
    yuich0 2020/11/08
    いかにパクリ屋にダメージを与えるかという記事になっていて、読んでいて面白いw
  • git pullの詳細な挙動を追ってみる - hokaccha memo

    git push/pullは何気なく使ってるけど実はよくわかってなかった。ことのきっかけはこういう質問。 hogeというリモートブランチをローカルのhogeブランチにもってきたい hogeをローカルのmasterにはマージしたくない pullでなんかこんな感じでいけそう? $ git pull origin hoge:hogeでもこれは間違えで、なぜか今いるブランチ(master)にhogeがmergeされるし、期待してる動作じゃない。正解はこう。 $ git branch hoge origin/hogeもしくはチェックアウトも同時にするなら $ git checkout -b hoge origin/hogeこう。自分は普段後者のやり方でやってたけど、なんで上のはダメで下のが正解なのか説明できなかったのでちゃんと調べてみた。 入門Gitと実用Git、あとhelpを参考にした。 ブランチ

    git pullの詳細な挙動を追ってみる - hokaccha memo
  • vim 文字列置換 基本的な事 - Qiita

    vimを利用している際の文字列置換の方法についてまずはいちばん簡単な答えを :%s/hoge/fuga/g これだけでファイル内のすべてのhogeをfugaに置換できます。 以下に少し説明を書いていきます。 vimでの置換は:sを使用します。 :%sとすることで現在開いているファイル内で置換を実行するという意味になります。 まず1番簡単な方法 :%s/hoge/fuga/ でもこれだと というように1行内に複数マッチする場合でも最初にマッチした文字列しか置換されません。 1行内でマッチした文字列すべてを置換したい場合は :%s/hoge/fuga/g と最後にgを入れれば解決です。 更にマッチした文字列を1つずつ確認しながら置換する場合は :%s/hoge/fuga/c と最後にcを入れればいいだけです。 なので :%s/hoge/fuga/gc とすればファイル内すべてのマッチした文字列

    vim 文字列置換 基本的な事 - Qiita
    yuich0
    yuich0 2020/10/29
    いつも使いたい時に限って忘れている
  • クラウド側からのコマンドで動画が取得できる監視カメラを作ってみました | DevelopersIO

    1 はじめに CX事業部の平内(SIN)です。 Raspberry Piで監視カメラを作成し、クラウド側からコマンドを送ることで、指定した時間の動画が取得できる仕組みを試してみました。 この仕組みの利点としては、以下のようなものが上げられます。 リクエストされたデータだけをmp4形式で送信するので、通信帯域に負荷が少ない 通信帯域に負荷が少ない為、比較的解像度の高い動画が保存可能 動画を取得する時以外は、通信環境が不要 デバイスにディスクを追加することで、長期間の動画保存も可能 最初に、この監視カメラをドライブレコーダーのように使用してみた例です。 「動画を取得する時以外は、通信環境が不要」という特徴を生かして、雑ですが、車のフロントガラスの手前にシガラーターから電源を取って監視カメラとして動作させています。動画は、Wi-Fi環境が利用可能な所で、コマンドを送って取得しています。 2 構

    クラウド側からのコマンドで動画が取得できる監視カメラを作ってみました | DevelopersIO
  • RESTful API設計におけるHTTPステータスコードの指針 - Qiita

    RESTful APIを設計した際のステータスコードの指針です。 メソッド別 GET 成功した場合 200 OK:最も一般的 304 Not Modified:条件付きGETでキャッシュを使わせたい場合 POST 成功した場合 201 Created 作成したリソースのURIを示すLocationヘッダを付けておく 議論 200 OKだとまずいのか? 200 OKを応答する実装も多くあり、まずいというわけでもない 200 OKはPOST結果がキャッシュ可能、201 CreatedはPOST結果がキャッシュ不可能として分けてもいいが、そこまでする必要があるか?(POSTのキャッシュは一般的ではない) 204 No Contentだとまずいのか? クライアントがPOST結果を事前に全て知っているわけではないのでNo Contentは不親切では? 失敗した場合 409 Conflict:作成しよ

    RESTful API設計におけるHTTPステータスコードの指針 - Qiita
  • 穏やかなiPhoneのホーム画面を目指して。|中原寛法 nD inc. / Creative&Calm

    iPhoneは楽しい。が、何も施さないと通知の嵐。楽しさのままに色々なアプリを入れ遊んでいると、目も当てられない惨憺たる状況になる。 穏やかなiPhone、穏やかな ホーム画面とは? 初めて触れた頃のあの「これから何か始まりそうな余白感」を取り戻すにはどうしたらいいのか? 私はホーム画面のカスタマイズを続けている。 そう、ここは「僕だけの家」、自由なのだ。 発売当時のiPhone以上の余白をつくる。私のホーム画面。 アプリは純正のClock、Safari、Mapsの3つとドック側に2つ、フォルダが1つ。 Wallpaperは500pxで以前購入した。 ドックは最大4つのアプリを入れられるが、あえて3つ。 これだけで余白と余裕が生まれた気がする、穏やかになれた気がする。それくらいiPhoneのホーム画面は日常を蝕んでいるのかも知れない(笑)。 左にα版から10年来愛用しているタスク管理ツール

    穏やかなiPhoneのホーム画面を目指して。|中原寛法 nD inc. / Creative&Calm
  • 集中できるMacbookのつくり方 〜 クリーンなデスクトップ画面|中原寛法 nD inc. / Creative&Calm

    Macbookは気をつけないと、Dockに一度しか使わなかったアプリやメニューバーに身に覚えのないアイコンが並び、そしてデスクトップは暗号化されたかのような配列でフォルダ・ファイルが並んでゆく。 クリーンなデスクトップで仕事に挑みたい。Macbookを最高に集中できる道具に手入れしたい。寿司屋の板前さんのように。 そのための基方針は「余計なものは消す。操作を明快に。」だ。 何もない画面から仕事をはじめる。 私のMacbookの起動画面。メニューバーにはカレンダーと時計だけ。iPhoneiPadでタスクとカレンダーの把握、そしてざっと頭を整理してから、Macを立ち上げることにしている。 自宅の仕事部屋では首に負担がかからないように、4Kの外付けディスプレイ(モニタ)を使っている。広過ぎない程度の大きさが心地いい。 BartenderとBitBarで抜け感のあるメニューバーに。メニューバー

    集中できるMacbookのつくり方 〜 クリーンなデスクトップ画面|中原寛法 nD inc. / Creative&Calm
  • MongoDB 3.6 でコレクションに制約を付ける - Qiita

    MongoDBの制約 MongoDBのコレクションに必須項目などの制約を設けたい時があります。制約の付け方については公式ドキュメントに例があるんですけど、色々とカバーしてある分、初見ではなかなか分かりづらいんですよね。 ここでは最小構成として、例えばオラクルで言うところの「NOT NULL」制約を設けたいと思います。MongoDBの言葉では「required」制約ですね。 コレクション作成時に設定する場合 DBバージョン3.6からはjson Schemaを使用できます。使うのは$jsonSchemaという演算子ですね。 ここではtestというデータベースを使います。createCollectionメソッドを使って明示的にコレクション作成しますが、その際にvalidatorにて制約を設定してみます。 > use test switched to db test > db.createColl

    MongoDB 3.6 でコレクションに制約を付ける - Qiita
  • JSON Schema Validation in Mongo 3.6

  • Schema Validation - MongoDB Manual v7.0

    General InformationDocumentationDeveloper Articles & TopicsCommunity ForumsBlogUniversity

    Schema Validation - MongoDB Manual v7.0
  • Linuxがブートするまで

    普段Linuxを使っていながら、vmlinuzやinitrd.imgというファイルは何なのか、 あやふやにしか理解していなかったので、一通りLinuxマシンのブートの仕組みを 勉強してみた結果を書き留めておく。なお、BIOSとGRUB Legacyの環境を前提としている。 EFIやGRUB2を使った環境については、今後いずれ勉強していきたい。 基的にOSの起動は、単純・低機能なプログラムが、より複雑・高機能なプログラムを 読み込み起動するという処理を連鎖的に行う仕組みになっている。 Linuxでは、下記のプログラムが順に起動していく: BIOSブートローダ (GRUB)Stage 1Stage 1.5Stage 2LinuxカーネルInit以下では、それぞれのプログラムについて順に要約して述べていく。 1. BIOS現在一般的なx86/x86-64 CPUは、電源が投入されると、0xff

  • nftables - Debian Wiki

    Translation(s): English - Italiano - Русский nftables is a framework by the Netfilter Project that provides packet filtering, network address translation (NAT) and other packet mangling. Two of the most common uses of nftables is to provide firewall support and Network Address Translation (NAT). nftables is the default and recommended firewalling framework in Debian, and it replaces the old iptabl

    yuich0
    yuich0 2020/08/13
    debian10でfirewalldがエラーを吐くなーと思っていたら、既にiptablesでもfirewalldでもなく、nftablesを使う方針に変わっていた。。せっかくfirewalld覚えたのにー
  • Yahoo! JAPANトップで見るウェブデザインの歴史

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog デザイン特集5目、最後の記事です。 こんにちは、ブランドマネジメント室デザイナーの上田絵理です。 サービスロゴやアイコンの作成や管理、けんさくとえんじんというキャラクターの担当をしています。 私が入社した1999年当時は社員が100人くらいで、全員の顔が覚えられるくらいだったのですが、入社してから20年たった今、社員数は6500人超*1...!  インターネット環境とデバイスの変化とともに進化してきたYahoo! JAPANのトップページを、デスクトップ風のビジュアルで表現してみました。移り変わるウェブデザインの歴史をお楽しみください。 1996年 アメリカYahoo!のデザインを踏襲 1996年4月に国内初の検索サイトYah

    Yahoo! JAPANトップで見るウェブデザインの歴史
  • nasne販売終了でお困りの方へ。REC-ONが後継機の候補になるかも?

    (記事公開日:2019年9月18日) 先日、nasne(ナスネ)の生産・販売が終了しました。アプリを使って手軽にテレビをスマホ視聴したり、録画できる商品として人気のあるこの商品。販売終了後もしばらくはアプリやサービスは続くとされていますが、今後、商品の購入ができず、さらにサポートが終了になる可能性もあります。 4K放送まで対応したハイスペックで高価なレコーダーまでは要らないけど、nasneのように手軽にテレビ視聴や録画番組を楽しめるリーズナブルな商品を探している方は多いと思います。 そんな悩みを抱えている方にちょうどいいご提案があります。地上・BS・110度CSデジタル放送対応録画テレビチューナーREC-ON「HVTR-BCTX3(トリプルチューナー)」とテレキング「GV-NTX1A(シングルチューナー)」です。 (写真)REC-ON「HVTR-BCTX3」のパッケージと体 (写真)テレ

    nasne販売終了でお困りの方へ。REC-ONが後継機の候補になるかも?
    yuich0
    yuich0 2020/08/02
    nasneが壊れたりして使えなくなったら候補の一つにしよう・・・
  • yum が Loaded plugins: fastestmirror でフリーズしたときの対処方法

    久々にログインするサーバで yum を起動してパッケージをインストールしていたら、途中でフリーズしてしまいました。一向に進まないのでターミナルをもう一つ開いてプロセスを強制終了。もう一度 yum を起動してみたら、Loaded plugins: fastestmirror でフリーズするようになってしまいました。 yum -y install libXext* Loaded plugins: fastestmirror どうやらプロセスを強制終了させたときか、最初にフリーズ状態になったときか、タイミングは不明なのですが、RPM パッケージのデータベースが破損した模様です。そのむかしに経験した覚えがあるので、ぐぐってコマンドを思い出し、対処を施しました。 まずは rpm のデータベースの状態を確認してみます。/var/lib/rpm 配下に存在する __db.* 以外のファイル群が rpm