HTMLへの読み込み方法
linkタグを使って外部ファイルを使う。
使用例
<link rel="stylesheet" type="text/css" href="${ファイルパス}">
linkタグを使って外部ファイルを使う。
<link rel="stylesheet" type="text/css" href="${ファイルパス}">
内容 | ショートカット |
---|---|
全画面 | command + shift + 3 |
範囲選択 | command + shift + 4 |
アクティブウィンドウのみ | 1. command + shift + 4 2. スペース 3. ウィンドウ選択 |
Windowsと全然違うから迷った。
ブログに画面内容を上げたいときに重宝する。
前書いた記事と同じ
環境準備も以前の記事を参照
Kitematicの Setting > Volumes を選択して、LOCAL FOLDER をバインドさせたいフォルダに指定する。
お好みだが、自分は、~/dev/notebooks
を指定した。
指定したら、念のためにコンテナを再起動する。
そうすると、HOME > WEB PREVIEW にコンテナの内容が表示される。
クリックすると、Webブラウザが立ち上がり、コンテナのファイル操作のためのサービスが立ち上がる。
やっと本題。
Javaで不変コレクションを作成する場合、かなり手間があった。
実装するとなると、下記のような実装になるはず。
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class SampleList { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("武藤遊戯"); list.add("遊城十代"); list.add("不動遊星"); list.add("九十九遊馬"); list.add("榊遊矢"); list = Collections.unmodifiableList(list); System.out.println(list); } }
実行すると、下記のように表示される。
[武藤遊戯, 遊城十代, 不動遊星, 九十九遊馬, 榊遊矢]
試しに、要素を追加してみる。
ソースは下記の通り。
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class SampleList { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("武藤遊戯"); list.add("遊城十代"); list.add("不動遊星"); list.add("九十九遊馬"); list.add("榊遊矢"); list = Collections.unmodifiableList(list); list.add("藤木遊作"); } }
不変リストなので要素追加できるわけはなく、下記のように実行時エラーになる。
コンパイルエラーに知れくれてもいい気はするが、話を進める。
Exception in thread "main" java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Collections.java:1055) at SampleList.main(SampleList.java:16)
復習はココまで。
実際に、使うことは多い。
不変のコレクションを定数として使いたい場合がたまにあるので、知らなかった人はきちんと覚えておいたほうが良い。
List<String> list = List.of("abc", "def");
この一行でOK。
試しに要素を追加してみる。
下記のソースで実施。
-> List<String> list = List.of("abc", "def") | Added variable list of type List<String> with initial value [abc, def] -> list.add("Wryyyyyy!") | java.lang.UnsupportedOperationException thrown | at Collections$UnmodifiableCollection.add (Collections.java:1056) | at (#10:1)
追加できない!
ちゃんとできている。
これで、楽に定数宣言できる。
残りのコレクションも同様に紹介
Map<Integer, String> map = Map.of(1, "abc", 2, "def")
Set<String> set = Set.of("abc", "def")
とても簡単になった。
Guavaに近い形らしいが、使ったことないので、分からん!
Java9のリリースまで半年をきったので、予習。
かなり前に触ったきり、使ってなかったので、予習を兼ねてやり直す。
docker使ってJava9のイメージを使って試す。
使ったのは、java9-notebook
https://hub.docker.com/r/satoshun/java9-notebook/
起動したらexecボタンを押す。
もしくは、tryjshellっていうサービスがあるので、そちらを試す。
Java9をインストールする必要はないので、簡単に始められる。
tryjshell.org | Java 9's JShell
jshellとは、JavaのREPLツール。
java -version
で内容を確認
# java -version java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+102-2016-01-21-001533.javare.4316.nc) Java HotSpot(TM) 64-Bit Server VM (build 9-ea+102-2016-01-21-001533.javare.4316.nc, mixed mode)
etc/alternatives/jshell
を実行。
そうすると下記の内容が出力され、jshellが起動する。
| Welcome to JShell -- Version 9-ea | Type /help for help
まずは、Hello Worldの出力を確認してみる。
System.out.println("Hello World")
を入力してエンターを押すと、下記の内容が出力される。
-> System.out.println("Hello World") Hello World
ちなみに、タブ補完される。
System.
を入力してタブ押下すると、下記の内容が出力される。
-> System. Logger LoggerFinder arraycopy( class clearProperty( console() currentTimeMillis() err exit( gc() getLogger( getProperties() getProperty( getSecurityManager() getenv( identityHashCode( in inheritedChannel() lineSeparator() load( loadLibrary( mapLibraryName( nanoTime() out runFinalization() runFinalizersOnExit( setErr( setIn( setOut( setProperties( setProperty( setSecurityManager(
Javaをやっているとセミコロン(;)が必要なんじゃないかと思うかも知れないが、いらない。
-> String str = "Hello World" | Added variable str of type String with initial value "Hello World" -> System.out.println(str) Hello World
でけた!
/exit
を入力する。
-> /exit | Goodbye
コマンド | 説明 |
---|---|
/list | 入力したソースを一覧表示する |
/edit | 名前またはIDで参照されるソースを編集する(外部エディタの設定が必要) |
/drop | 名前またはIDで参照されるソースを削除する |
/save | ファイルにスニペット・ソースを保存する |
/open | ソースの入力としてファイルを開きます |
/vars | 宣言された変数およびその値をリストします |
/methods | 宣言されたメソッドおよびその署名をリストします |
/types | 宣言された型をリストします |
/imports | インポートされたアイテムをリストします |
/exit | jshellを終了する |
/reset | jshellの入力内容をリセットする |
/reload | リセットして関連する履歴をリプレイします |
/classpath | クラスパスにパスを追加します |
/history | 入力した内容の履歴 |
/help | jshellに関する情報を取得します |
/set | jshell構成情報を設定します |
/retain | 後続のセッションに対してjshell構成情報を保持します |
/? | jshellに関する情報を取得します |
/! | 最後のスニペットを再実行します |
/< id > | IDでスニペットを再実行します |
/-< n > | n回前のスニペットを再実行します |
随時追加予定
まずは、準備として下記を入力
-> String a = "123" -> System.out.println(a)
そしたら、/list
を入力する。
-> /list 1 : String a = "123"; 2 : System.out.println(a)
今まで入力した内容が出力される。
宣言した変数名とか処理を忘れてしまった場合は、これを使って確認するわけだね。
クラスや変数を、設定した外部エディターで編集できる。
外部エディターを設定してない場合、下記のようなエラーになる。
-> /edit Exception in thread "main" java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it. at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:205) at java.awt.Window.<init>(Window.java:535) at java.awt.Frame.<init>(Frame.java:422) at javax.swing.JFrame.<init>(JFrame.java:224) at jdk.internal.jshell.tool.EditPad.<init>(EditPad.java:55) at jdk.internal.jshell.tool.EditPad.edit(EditPad.java:118) at jdk.internal.jshell.tool.JShellTool.cmdEdit(JShellTool.java:1141) at jdk.internal.jshell.tool.JShellTool.lambda$new$23(JShellTool.java:732) at jdk.internal.jshell.tool.JShellTool.processCommand(JShellTool.java:550) at jdk.internal.jshell.tool.JShellTool.run(JShellTool.java:492) at jdk.internal.jshell.tool.JShellTool.start(JShellTool.java:287) at jdk.internal.jshell.tool.JShellTool.start(JShellTool.java:260) at jdk.internal.jshell.tool.JShellTool.main(JShellTool.java:250)
使い方は、以下の通り。
/edit <name>
Windows想定で説明
Mac使える人なら、たぶん説明しなくてもいいはず。
Installing TeX Live over the Internet - TeX Users Group
install-tl-windows.exe または install-tl.zip のどちらかを落とす。
install-tl.zip を落とした場合は、解凍後 install-tl-windows.batを実行する。
インストーラが起動したら、後は指示に従えばOK。
基本、なんでもいい。
記述は、テキストエディタでも問題ない。
オススメは、VisualStudioCodeか付属品のTeXword editorがいい。
Atomもいいが、ターミナルがwindowsだと難しいので、あんまりオススメできない。
生成のコマンドを入力するので、ターミナル入力ができるエディタがオススメ。
PDFファイルをロックしないものであればなんでもいい。
多くのサイトで進められているのは、SumatraPDFみたい。
platexを経由してPDFを出力する。
PDF以外にも出力できるので、他に出力したいものがアレば、こちらを使う。
ptex2pdf -l {ファイル名}
一発でPDFを出力できる。
PDF出力をするなら、こちらを優先して使ったほうがいい。
数式は $ で囲む。
そすると、文字列が斜めに表示される。
\begin{equation} \end{equation}
で囲む。
そうすると、文字列が斜めになり、行末に番号が割り振られる。
数式番号がいらない場合、
\[ \]
で囲む。
「c の2乗」のような上付きは c^{2} のように書く。 上付きが1文字だけの場合は c2 でも可
「a の i 番目」のような下付きは a_{i} のように書く。
下付きが1文字だけの場合は a_i としてもかまいません。
数式中では,いくら数値と単位の間に空白を入力しても無視される。
科学論文のルールでは,単位は斜めのイタリック体ではなく直立したローマン体で書く。
数式中の英字は通常はイタリック体になるが、\mathrm コマンドを使うとローマン体の英字を出力できる。
\frac{分子}{分母}
で記述する。
\pi
は π
\left( …… \right)
は中身に応じて大きさが変わる括弧。
\int
は積分記号 ∫
\int_{下限}^{上限}
文字列がかけないので、書かない。
使い方は、\sqrt{x}
\sum は和の記号 ∑
\prod は積の記号 ∏
\infty は ∞
インフェルニティ使いなら一発で覚えられる。
書いたそのまま。
これもそのまま
パッケージを使って機能拡張できる。
基本的な機能は、既に容易されている。
LaTeXがインストールされた配下か、パスがとおている箇所。
dtx や insファイルから、sty ファイルが含まれたパッケージを生成する必要がある。
\title{タイトル名} \maketitle
他にも
\author{著者} \date{日付} → 作成日
といったオプション的な内容の設定も可能。
\section{章名}
番号は自動的に出力される。番号が不要なら \section*{……}
にする。
二段組にしたい場合、文書クラスのオプションに twocolumn を加える。
\documentclass[twocolumn,(オプション)]{(文書クラス)}
オプションは省略可能。
\begin{itemize} \item {アイテム名} \item {アイテム名} \end{itemize}
\begin{enumerate} \item {アイテム名} \item {アイテム名} \end{enumerate}
\tableofcontents
\begin{thebibliography}{99} \item 出力内容 \end{thebibliography}
\label{ラベル名}
でラベリングし、\ref{ラベル名} でリンクを作成する。
\pageref{ラベル名}
で、指定したラベル名の\labelがあるページ数を出力できる。
2017年 3月 7日
詳しくは、公式サイト見たほうが正確
Firefox 52 for developers - Mozilla | MDN
使うだけの人は、リリースノート見たほうが分かりやすい。
※自分はこっち側なので、こっちの情報をまとめる
ブラウザーをネイティブ並みの速度にするための対応。
具体的には、ブラウザーでネイティブコードを実行できるようにする対応が行われた。
Microsoft、Google、Mozilla、Appleなどの共同で開発に取り組んでいるWeb標準規格で、今後のWebのあり方にかなりインパクトがあると感じている。
以前に調べたことがあるので、下記を参照。
Googleの威光をかなり強く受け継いでいる。
HTTP サイトで個人情報を入力しにくくさせる対応ですね。
タブのコンテキストメニューに、「タブを端末に送る」が追加された。
デバイスの複数保持者が今後増えることを見越した対応ですね。
自分は、PC+スマホ2台持ち。
もちろん、すべてブラウザーはFirefox!
たまにスマホでみたサイトをPCで見たいことがあるので、嬉しい対応。
この対応が入ったので、今後は端末間の連携としての役割もブラウザが担っていきそう。
Vitaは早すぎな気がしないでもないが、サポート打ち切りは同意。
もう、家のPCはWindows10まで移行済みなので、全然痛くない。
痛いのは企業側かな?
どっちにしろ、XP/Vita使っているようなところは、淘汰されるのも当然か。
WebAssemblyが現実味を帯びてきたのを感じる。
今後の展開は、要注目。
あとは、マルチデバイスの連携が充実していくことを願う。
下記の記事に触発されたのと、情報処理技術者試験のDBスペシャリストを受けるにあたって書きたくなったから書いた。
はっきり言うと、Office系のソフトは好きじゃない。
データをバイナリ管理しているため、差分が全然わからないんだよね。
何が変わったのか分からないから、すごくイライラすることをいっぱい感じてきた。
主に仕事で。
DBでいうところの正規化された状態にすること。
そうすることで、分析しやすい状態になる。
データベースとは、複数の主体で共有、利用したり、用途に応じて加工や再利用がしやすいように、一定の形式で作成、管理されたデータの集合のこと。 広義には人が紙に書いてまとめたものなどを含む場合もあるが、今日では、単にデータベースといった場合はコンピュータ上で作成、保管され、専用のソフトウェア(データベース管理システム)によって管理されるものを指すことが多い。文脈によってはデータベース管理システム(DBMS:DabaBase Management System)のことをデータベースということもある。
これ鉄則。
見出しは1行目に集約させる。
グルーピングの関係で1行にできない場合は、2行にしてもいいが、分析しにくくなる。
DBも一緒。
データが複数行に渡ることがあるが、それは分析にしくくなる。
DBだと第一正規形の状態。
空白行が入るとデータが分断されていると判断され、集計・分析ができなくなる。
DBだとすべてからのレコードはありえない。
無意味なレコードは作っちゃらめぇぇぇぇ!
別の意味合いのデータ群を作る場合は、シートを分けるか、別ファイルにまとめる。
表記がずれていると集計・分析するときに苦労する。
例えば、1987年09月生まれの人を抽出したいとする。
ちなみに、1987年09月は、俺の誕生月。
抽出しようにもパターンが多すぎて、抽出側が頭を使わなければいけない。
セルが結合されていると、正しくデータが抽出・分析できない。
データとしてExcelを使う場合、なるべく使うべきではない。
つけてもいいけど、つけすぎ注意。
目がチカチカする。
カラフルなExcelほど見にくいものはない。
使う色は、3色くらいにしたほうがいい。
データとは関係なくても、通し番号は必ずつける。
ポケモン図鑑でいうところの全国図鑑の番号だ。
これがあることで、一発でアクセスすることができる。
意外とポケモンで養われるのではないかと思った。
ポケモン図鑑がデータベースって考えられる。
案外、データベースって考えは、IT分野の人じゃなくても受け入れられそうな気がする。