投稿者「mynote」のアーカイブ

Firefoxでフォーム入力履歴の調べ方

FirefoxをはじめとするWebブラウザには、フォームに入力・送信したデータを2回目以降は履歴から入力するという機能があります。(ユーザー側で機能をOFFにすることもできますし、サイト側で無効にしている場合もあります。)

履歴から入力できるということは、当然ブラウザ内にデータが保存されている訳ですが、この保存されている履歴データを調べたい場合は次のような感じで調べられるみたいです。

履歴が保存されているファイルの場所

Windowsの場合

%APPDATA%\Mozilla\Firefox\Profiles\****.default\formhistory.sqlite

Linuxの場合

$HOME/.mozilla/firefox/****.default/formhistory.sqlite

****.defaultの部分は使っているプロファイル名に読み替えてください。プロファイルが良く分からないという場合は多分1つしか作られていないと思いますので迷うことはないと思います。

履歴の調べ方

formhistory.sqliteはSQLiteのデータベースになっています。SQLiteに対応したお好みのアプリケーションで表示すれば中身を確認できますが、例えばコマンドラインから調べたい場合は次のような感じで表示できます。

sqlite3は操作を間違えるとファイルの書き換えもできます。心配な場合はオリジナルのファイルではなく、コピーしたバックアップファイルで試してください。

$ sqlite3 formhistory.sqlite
sqlite> select fieldname,value from moz_formhistory;
user_id|123456
userName|yourname
email|[email protected]
… 以下、省略

上の例ではuser_idという名前のフォームに入力した値が123456で、userNameという名前のフォームに入力した値がyournameということになります。

ユーザー名などのデータを履歴から入力していたけれど、フォームが改変されて履歴データが使えなくなってしまった場合や、サイトが閉鎖されて履歴が調べられなくなってしまった場合などで困っている場合は試してみてください。

Collider2D.IsTouchingが常にfalseになってしまう場合

詳細はよく分かりませんが、静止状態でない場合にCollider2D.IsTouchingが正しく判定されないことがあるみたいです。

[Unity] collider.IsTouching(collider) が動いてる状態だとまともに動かない件。バグ?|Unity|エンジニアリングメモ
http://chusotudensi.blog.shinobi.jp/unity/-unity-%20collider.istouchin

ということで、そういう場合はBounds.Intersectsあたりを使って接触判定するなどのworkaroundが使えるみたいです。

if (_Collider.bounds.Intersects(_Collider2.bounds))
{
  Debug.Log("Bounds intersecting");
}

Collider2D.IsTouchingで困っている人は試してみてください。

リンク

Unity – Scripting API: Collider2D.IsTouching
https://docs.unity3d.com/ScriptReference/Collider2D.IsTouching.html

Unity – Scripting API: Collider2D.bounds
https://docs.unity3d.com/ScriptReference/Collider2D-bounds.html

Unity – Scripting API: Bounds.Intersects
https://docs.unity3d.com/ScriptReference/Bounds.Intersects.html

C#でグローバルな定数を扱いたい時

C#でグローバルな定数を扱いたい時、いろいろな方法があると思いますが、static classusing staticを使うという方法があります。

使い方は次のような感じです。

定数の定義

static class Value
{
  public const int size = 10;
}

定数の使い方

using System;
using static Value;

class Example
{
  static public void Main ()
  {
    Console.WriteLine($"size = {size}");
  }
}

using staticを使うとクラス名.の部分が省略でき、見やすくなるので便利です。

リンク

using static directive – C# Reference | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-static