タグ

2018年11月19日のブックマーク (13件)

  • 【linux】ユーザーのパスワードを無効にする、空にする at softelメモ

    問題 一度パスワードを作ったlinuxユーザーを、パスワードでログインできないようにしたい。 ユーザーを作った初期状態みたいな、パスワードなしのログインできない状態にすることは可能? 答え man passwd によると、 -d This is a quick way to delete a password for an account. It will set the named account passwordless. Available to root only. アカウントのパスワードを削除するには -d オプションが簡単。そのアカウント名をパスワードなしにします。rootからしか利用できなくなります。 実行してみると、こうなる。 # passwd -d yoshimura Removing password for user yoshimura. passwd: Succes

    【linux】ユーザーのパスワードを無効にする、空にする at softelメモ
  • 【JavaScript】Math.random().toString(36).slice(-8) で簡易パスワード生成 at softelメモ

    問題 JavaScriptで、ランダムな文字列を簡単に作るには。 解答例 こんな方法がある。 Math.random().toString(36).slice(-8); Math.random() でランダムな数値ができる(例: 0.5914055700523515) Math.random().toString(36) で、よくあるブラウザでは36進数になる(0-9a-zの36文字で表現)(例: “0.xf3d86djs5o”) Math.random().toString(36).slice(-8) で、後ろから8文字を使う(例: “d86djs5o”) → 以前はOperaでは動きが少し違ったようだが、今は他のブラウザと同じように動くようだ(Opera11で確認)。 参考 Math.random().toString(36).slice(-8) で簡易パスワード生成。 — TOYAM

    【JavaScript】Math.random().toString(36).slice(-8) で簡易パスワード生成 at softelメモ
  • 【Javascript】DOM関数にinsertAfter()ってないの? at softelメモ

    ないけど、なくても困らない。 insertBeforeでできる。 parentElement.insertBefore(newElement, targetElement.nextSibling) targetElement の後ろに newElement を入れたかったらこれで済む。 targetElement がparentElementの最後の子要素(lastChild)だったとしても、 targetElement.nextSibling は null となり、 parentElement.insertBefore(newElement, null) は末尾に追加なので、万事OK。 安易に insertAfter() を作らなかったことを評価したい。

    【Javascript】DOM関数にinsertAfter()ってないの? at softelメモ
  • URLのハッシュを監視する(#, シャープ, フラグメント識別子) at softelメモ

    対象がこれらのブラウザならば、これだけでハッシュの変化を監視できる。 JavaScript $(function(){ $(window).on('hashchange', function(){ alert(location.hash); }); }); Demo #test1 #test2 #test3 #test4 #test5 もしhashchangeイベントに対応していないブラウザでもハッシュの監視をしようと思ったら、タイマー監視してイベントを発火させる感じになるでしょうか。 if ("onhashchange" in window) { //この場合はhashchangeイベントをサポートしているので何もしなくてよい } else { //hashchangeイベントをサポートしていない場合だけ特別に、0.1秒ごとにハッシュを見る処理を追加する $(function(){ va

    URLのハッシュを監視する(#, シャープ, フラグメント識別子) at softelメモ
  • 【Javascript】配列内の重複を除く at softelメモ

    よく見かけるので、メモ。 function unique(array) { var storage = {}; var uniqueArray = []; var i,value; for ( i=0; i<array.length; i++) { value = array[i]; if (!(value in storage)) { storage[value] = true; uniqueArray.push(value); } } return uniqueArray; } JavascriptのArrayオブジェクトに、配列の重複を取り除くメソッドはないので、作るしかないらしい。 jQuery.unique などが、名前から期待できそうな感じだが、これはDOM要素の配列の重複を除去してくれるものであって、配列に対しては使えない。

    【Javascript】配列内の重複を除く at softelメモ
  • 日時の入力欄を、後の処理はしやすいままで、入力しやすくする(datetimepickerっぽいもの) at softelメモ

    問題 以下のような、日付と時間を入力するタイプの日時入力欄が入力しにくい。 YYYY-MM-DD hh:mm:ss形式で入力してもらえると楽なのはプログラマの都合。ユーザーには優しくない。 下図のような入力欄にしたい。 しかし、プログラム上は「日時」で管理されている項目なので、画面上は「日+時」になると、「日時」を分割したり、「日+時」を結合したりが面倒だ。 表面上はユーザーに優しいインターフェース、内部的にはプログラマに優しい処理をおこないたい。 答え 日時の入力欄を、後の処理はしやすいままで、入力しやすくするjQueryプラグインを作ってみる。 HTMLは以下のようにするだけ。 HTML <input type="text" class="datetimepicker" name="entry_datetime" value="2012-11-01 12:30:00"> JavaScr

    日時の入力欄を、後の処理はしやすいままで、入力しやすくする(datetimepickerっぽいもの) at softelメモ
  • 【Linux】メモリのキャッシュをクリアする at softelメモ

    問題 メモリーのcachedを解放したい。 $ free total used free shared buffers cached Mem: 1026840 1014088 12752 0 119300 681588 -/+ buffers/cache: 213200 813640 Swap: 2003960 2176 2001784 答え 以下のコマンドで可能(rootで)。 # echo 1 > /proc/sys/vm/drop_caches /proc/sys/vm/drop_caches に1~3の値を書き込む。 値によって解放されるメモリが異なる。 値 対象

    【Linux】メモリのキャッシュをクリアする at softelメモ
  • Windows環境でApacheが起動しなくなった at softelメモ

    問題 突然、Windows環境のApacheが起動しなくなりました。 サービスで起動しようとしているのですが、イベントログに以下のエラーがありました。 Apache2.2 サービスは、サービス固有エラー ファンクションが間違っています。 で終了しました。 答え 他のソフトに80番ポートを先に使われている可能性がある。 80番ポートを使っているプロセスを確認すると、以下のように出てくれば、何かが起動して80番ポートをLISTENしていると見られる。管理者権限がなかったら、コマンドは netstat -ano でもよい。 >netstat -anob アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 PID TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 所有者情報を取得できません (略) TCP [::]:80 [::]:0 LISTENING

    Windows環境でApacheが起動しなくなった at softelメモ
  • 【MySQL】InnoDBのテーブルでAUTO_INCREMENTの連番が飛ぶ at softelメモ

    問題 InnoDBエンジンのあるテーブルに、insert into T select * from XXX 系のSQLを流すと、AUTO_INCREMENTの連番が余分に消費されて、次に挿入するレコードにはかなり飛んだ番号が付きました。 1,2,3,4,5,6,7,8,9,10 の10行が入った後で、次の行を入れると連番が16になっているなど。 なぜでしょう。 答え より単純な再現手順。 insertは2行のはずだが、連番が3進む。1つ余分に進む。 /* AUTO_INCREMENTのカラムを持つテーブルを作成 */ create table T ( id int primary key auto_increment, code varchar(10) not null ) engine=InnoDB; /* insert select をする. code 'a' と 'b' の行を追加す

    【MySQL】InnoDBのテーブルでAUTO_INCREMENTの連番が飛ぶ at softelメモ
  • 【php】セッションファイルが大量に発生する場合 at softelメモ

    問題 phpのセッションファイルが大量に生成されているシステムがあり、/tmp 直下に何万個もファイルがあるのはよろしくないような気がするのですが、何か改善できないでしょうか。 ファイルベースのセッションをやめてmemcachedやデータベースへ格納したいところですが、そうもいかない場合… 答え phpの標準機能で、何階層かディレクトリを作って、その中にセッションファイルを格納することができる。 1、セッションの保存場所とディレクトリを何階層作るか指定する php.ini か、.htaccess で以下のように設定する。 session.save_path = "2;/セッション/保存用/ディレクトリ" 設定ファイルではなくプログラムで対応する場合は、session_start() する前に、以下を実行するようにプログラムを変更する。 session_save_path("2;/セッション

    【php】セッションファイルが大量に発生する場合 at softelメモ
    fuyuneko
    fuyuneko 2018/11/19
  • 【MySQL】Covering Index で処理が高速化するのを確認する at softelメモ

    問題 Covering Index って何ですか。 答え Covering index Covering index は索引中にキーではない列を含める方式である。もし索引を使う検索が、行全体ではなく、キーと幾つかの列のみを必要とする場合、その必要とされる列が索引のデータ構造内にあれば、検索は索引内で完結できる。表からデータを読み取る必要が無いため効率が良い。 Covering index は表のサイズがメモリに保持しきれないほど大きい場合の検索で有効であるが、索引のサイズは増加することに注意が必要である。また、キーでない列の値が変更された際にも索引を更新する必要があるため、更新の性能は低下する傾向がある。 では、MySQL5.5 InnoDBのテーブルにて実験する。 実験の準備 こんなテーブルを用意する。 mysql> create table item ( -> item_id int

    【MySQL】Covering Index で処理が高速化するのを確認する at softelメモ
  • Bash on Ubuntu on Windows の sshd に接続できない at softelメモ

    問題 Bash on Ubuntu on Windows で sshd を起動させて、localhost に ssh したいと思ったんだけど、パスワードを入力しても認証されない。 答え Windowsのsshdに接続している可能性がある。 Windows10 universary update を適用すると、Windowsもsshdのサービスが常駐するようになる。 Bash on Ubuntu on Windows の sshd が22番ポートを使いたくても、Windowsのsshdが先に実行中だと使えない。 以下のどちらかをすれば解決。 1、Windowsのsshdサービスを起動しないようにする(サービスを無効にする)。 2、Bash on Ubuntu on Windows 側が22番ポート以外を使うようにする(/etc/ssh/sshd_config で Port を 22以外にする

    Bash on Ubuntu on Windows の sshd に接続できない at softelメモ
    fuyuneko
    fuyuneko 2018/11/19
  • adminerでsqlite3を使えるようにする at softelメモ

    問題 adminerは以前sqliteが使えたと思うのですが、今は使えないのですか? 答え 今はそのままアクセスしても使えないようになっている。 (ログインなしでファイルのパスだけ指定すればアクセス可能なのは危険ということでしょうか。) 以下のように別のファイルを作って、少しphpを書いて、体をincludeすると使えます。 <?php // adminer_object を定義 function adminer_object() { include_once "plugin.php"; include_once "login-password-less.php"; return new AdminerPlugin(array( new AdminerLoginPasswordLess(password_hash("YOUR_PASSWORD_HERE", PASSWORD_DEFAUL

    adminerでsqlite3を使えるようにする at softelメモ