かきスタンプ

福岡でフリーランスの物流系のエンジニアやってます。

はてなMarkdown記法:メモ

半角スペース2つで改行

「#」でH1見出し

「##」H2見出し

「###」H3見出し

「######」の最大は6

 
3つ以上「*」または「_」を連続させると、↓のような線


 

*または_で前後を囲むと斜体*
**または__で囲むと強調**
***または___で囲むと斜体+強調***1
~~で囲むと取り消し線

 

  • 「* 」または「- 」で
  • 過剰書き形式のリスト。
  • 「*」の後ろはスペースが必要
    • 入れ子も可能
    • 起点の上段と
      • 終点の下段には
      • 空白を作っておこう

 

  1. 「1. 」のように
  2. 数字
  3. ピリオド
  4. スペースで
    1. 数値型
    2. 数字は適当でいい
      1. ここでの内容は
      2. 全部「1. 」

  

[ ]で囲むとリンク。
]の直後にURLを()で囲んで記述

>で引用

>>のように入れ子も可

 ```で囲むとコード記法。
 「```ruby」「```cs」等で、言語ごとのハイライトが付く。

  【後述のテーブルはこう記述してます】
|左寄せ|中央寄せ|右寄せ|指定なし|
|:----|:-----:|----:|------|
|  1  |   2   |  3  |  4   |
|  A  |   B   |  C  |  D   |
左寄せ 中央寄せ 右寄せ 指定なし
1 2 3 4
A B C D
シンタックスハイライトで使用可能なフォーマット一覧

ソースコードを色付けして表示する(シンタックスハイライト) - はてなブログ ヘルプ

 
((丸括弧2つで囲むと))注釈となる*1


  1. ブラウザによっては斜体になってないかも。ここの注釈は、[^1]:xxxxxと記述してます。

*1:丸括弧に記述した内容がここに来る。

brother DCP-J968N:スキャンしたデータがPCに保存できなかった時に試した事

【OS:Windows 10】
brotherのDCP-J968NでスキャンしたデータをPCに保存する場合、以下の操作となる。

原稿をセット→スキャン→ファイル→PCを選択

が、PCに保存された形跡は無し。

原因を調べてもわからなかったし、そもそも何処に保存されるのかマニュアルに載ってなかったので、試しに適当な共有フォルダを作って、再度スキャンしたら何故か成功。
どうしてこんな方法で解決できるんだ。。。

保存先は、C:\Users\ PCName \Pictures\ControlCenter4\Scan
保存に成功したら機器から成功音が鳴り、Windows側はスキャンしたファイルが存在するフォルダが勝手に開く。

Visual Studio:「前のメソッド」ショートカット

Visual Studio 2008までは存在していた「前のメソッド」「次のメソッド」のショートカットは、2010以降は無いんで、使いたかったら自分で登録しないといけないみたい。

ツール→オプション→環境→キーボード
の画面を開き、
『以下の文字列を含むコマンドを表示』にて、「前のメソッド」と入力。
『使用する場所』にて、「テキストエディター」を選択
『ショートカットキー』にて、[Ctrl+↑]を入力。(登録はお好みで)
『割り当て』を押し、『OK』

f:id:kakisoft:20170221045545p:plain

メソッドの先頭に戻る時に結構使うんだけど、需要少ないのだろうか。
「1画面に収まり切れないメソッドなんて書くんじゃねえよ。」という声が聞こえてきそうだけど、『過去の資産を流用する』という名目で、負の遺産を受け継がれる事の多い日本企業においては必要な人は多いんじゃないかな。多いんじゃないかな。

Oracle:主キーのカラム抽出

Oracleで主キーのカラムを抽出するSQL

select
    USER_CONS_COLUMNS.OWNER
   ,USER_CONS_COLUMNS.TABLE_NAME
   ,USER_CONS_COLUMNS.COLUMN_NAME
   ,USER_TAB_COLUMNS.DATA_TYPE
   ,USER_TAB_COLUMNS.DATA_LENGTH
from
    USER_CONS_COLUMNS
    left  join USER_TAB_COLUMNS on USER_CONS_COLUMNS.COLUMN_NAME = USER_TAB_COLUMNS.COLUMN_NAME
    inner join USER_CONSTRAINTS on USER_CONS_COLUMNS.CONSTRAINT_NAME = USER_CONSTRAINTS.CONSTRAINT_NAME 
                               and USER_CONSTRAINTS.CONSTRAINT_TYPE = 'P'
where  1=1
order by 1,2,3

以下、使用しているディクショナリ・ビューの概要。

USER_CONSTRAINTS

CONSTRAINT_NAME(制約名)はあるが、カラム名が無い。
CONSTRAINT_TYPE = 'P' が主キー。

その他の CONSTRAINT_TYPEで表示される制約定義の種類。

  • C - 表でのチェック制約
  • P - 主キー
  • U - 一意のキー
  • R - 参照整合性
  • V - ビューでのチェック・オプション付き
  • O - ビューで読取り専用
  • H - ハッシュ式
  • F - REF列を含む制約
  • S - サプリメンタル・ロギング

USER_CONS_COLUMNS

現行のユーザーが所有していて、制約定義に指定されている列を示す。

USER_TAB_COLUMNS

現行のユーザーが所有する表。

Xamarinはいいぞ!

Xamarin(AndroidアプリをC#で書ける仕組み)に興味があり、Japan Xamarin User Group様主催のJXUGC #21 JXUG 福岡支部 発足記念勉強会 に参加させて頂きました。

運用中のAndroidアプリおよびAndroid開発手法について、いくつか改善したい部分があったのがXamarinを触ろうと思ったきっかけ。
主に以下の理由。

  • 現在、非同期制御で使用しているAsyncTaskが、とっくに非推奨となっている。
  • Android 6.0あたりからは挙動が怪しい部分が出始めたんで、代替のAsyncTaskLoaderに置き換えが必要と感じ始めた。
  • が、互換性は全くなく、単純な置き換えができない。
  • AsyncTaskLoaderの使い方が何かややこしくてテンション上がらない。(仮に覚えたとしても、次の次くらいには別の非同期制御の仕組みが提供されるのでは?という思いもあり。)
  • AsyncTaskは、アプリの根幹に組み込まれ、この仕組みを変えるぐらいなら、言語の選定から見直していいレベルだった。
  • C#には、async/await という非同期処理をシンプルに書ける仕組みがある事を知り、Androidで使えないかな?と思った。
  • Android側をC#で書ければ、サーバも同じ言語で書ける。(現在はサーバ側は VB.NET
  • 個人でサクッと小さいAndroidアプリを作りたかったが、Javaはその用途に不向きだと感じていた。


ハンズオンにて、まさに使いたかった async/awaitの部分が出てきて大歓喜
その他、ライフサイクルを意識しない作り方もできたりと、Androidアプリ開発のしきいをだいぶ下げてくれている。

感想としては、Xamarin凄い!
悩んでいた事象を解決できる可能性が十分あり、個人的には大収穫。

しかし、凝ったデザインにするのは難しいようで、その点は要考慮。
見た目がさほど重要視されない業務アプリなんかは、最有力候補に挙げてもいいのでは?というのが個人的な感想。 ちなみに今回使ったのはXamarin.Formsの方でした。

というわけで、

Xamarinはいいぞ!