ギークな話題とコンピュータの知識を届ける愛犬家ブログ。

Javaで標準入力

Javaで標準入力

AtCoderの問題をJavaで解いてみようとしたところ、標準入力の使い方が分からなかったので調べました。 標準入力 Javaでは入力を受け取る際にはScannerにSystem.inを渡して使います。また、受け取るデータの型によっていくつかのメソッドを使い分けます。 単語の場合はnext() 整数の場合はnextInt() 文字列(1行)の場合はnextLine() 使用例1 以下は、標準入力から2つの数を与え、2つの数の積(掛け算)した結果が偶数(Even)か奇数(Odd)かを判定するプログラムです。 ABC086 A. Product public class ABC086_A_Product

Javaでリストを実装する

Javaでリストを実装する

基本情報記述者試験に向けて、Javaで基本的なアルゴリズムを再勉強しています。この記事ではリストを実装していきながらデータ構造とアルゴリズムについてまとめます。 連結リスト Javaのリストといえば、ArrayListが有名ですが、今回はリストとしてのシンプルな機能を持つLinkedListクラスを参考にして実装してみます。 連結リストは、ノード(オブジェクト)を連結させることでリストとしての機能を提供します。 ノードは以下の2つのフィールドを持ちます。 データフィールド:データそのものを持ちます。 リンクフィールド:次のノードへの参照を持ちます。 また、リストの先頭にノードを追加するためには、ノードの先頭を管理するためのフィールドが必要です。 実際にコードを書くと以下のようになります。 class SNode { Object data; SNode next; } public class SLinkedList { private

Ghostを1.21から2.16へアップデートする

Ghostを1.21から2.16へアップデートする

当ブログではブログシステムにGhostを使用しています。今回はghost1.21から2.16.4へアップデートしてみました。OSはUbuntuです。 アップデート前の準備として、記事のバックアップは取っておきましょう。 アップデート 初めに、Nodeをアップデートします。apt-getを使用します。 # パッケージ取得 $apt-get update # アップデート適用 $apt-get upgrade 続いて、ghost-cliのバージョンが古いとアップデートできないので、ghost-cliをアップデートします。 $npm update -g ghost-cli@latest ghost-cliがyarnを使うようになったので、yarnをインストールします。 $curl -sS

LANの仕組み

LANの仕組み

ネットワークのLANについて勉強したのでメモしておきます。画像を作るのが面倒だったので参考にさせていただいた各サイト様から引用させていただきました。 LANとWAN ネットワークは大きくLANとWANの2つに大別されています。 LAN Local Area Network(ローカル・エリア・ネットワーク)とは、広くても一施設内程度の規模で用いられるコンピュータネットワークのことです。その頭文字をつづったLANと書かれる場合も多く、一般家庭、企業のオフィスや研究所、工場等で広く使用されています。LANでは、イーサネットという技術規格によって通信を実現しています。 WAN Wide Area Network(ワイド・エリア・ネットワーク)は、LANと比較して広い範囲(市街地を越え郊外、県外や国際の範囲)

Javaの例外処理におけるthrowとthrowsの違い

Javaの例外処理におけるthrowとthrowsの違い

例外処理はあまり触る機会が無く、throwとthrowsの違いを知らなかったのでメモしておきます。 throw throwは一番単純な例外処理の方法です。以下の例を見てください。 package jp.doghouse.java.test; class SampleException extends Exception { } public class ThrowSample { public static void main(String[] args) { ThrowsA a = new ThrowsA(); try { SampleException e

WANの仕組み

WANの仕組み

ネットワークのWANについて勉強したのでメモしておきます。画像を作るのが面倒だったので参考にさせていただいた各サイト様から引用させていただきました。 LANとWAN ネットワークは大きくLANとWANの2つに大別されています。 LAN Local Area Network(ローカル・エリア・ネットワーク)とは、広くても一施設内程度の規模で用いられるコンピュータネットワークのことです。その頭文字をつづったLANと書かれる場合も多く、一般家庭、企業のオフィスや研究所、工場等で広く使用されています。 WAN Wide Area Network(ワイド・エリア・ネットワーク)は、LANと比較して広い範囲(市街地を越え郊外、県外や国際の範囲)におよぶネットワークのことです。広義には、

Photoshopのフィルター機能について

Photoshopのフィルター機能について

Photoshopのフィルター機能についての自分用メモです。 フィルター機能とは フィルターとは画像の変形や色調の変化などいろいろな特殊効果を加えることができる機能です。メニューバーの「フィルター」から各種フィルターを選択することで使用することができます。よく使うフィルターとしては「ぼかし」や「シャープ」などがあります。 また、選択範囲を作ることで、その範囲にのみフィルターを適用することもできます。 ぼかし系 ぼかし系のフィルターでは、画像にぼかしをかけてぼやけた感じにすることができます。「ぼかし(ガウス)」と「ぼかし(放射状)」の使用頻度が高いので、今回はこの2つについて説明します。上記とは別に「ぼかし」というフィルターもあるのですが、こちらはぼかしに強弱を付けることができないため、非常に限られた用途でのみ使用されます。このぼかしは、

Photoshopによる写真の修正と修復

Photoshopによる写真の修正と修復

Photoshopの人物写真をより綺麗に見せるためにシミやホクロを消したり、風景写真に写り込んだ人や電線などを最初から何も無かったかのように綺麗に消して周囲の色と馴染ませるなどの修正を行うことができるツールについての自分用メモです。 基本的な修正と修復ツールの使い方 修正や修復をするための基本的なツールの使い方を表にまとめました。 ツール名(操作名) 説明(利用場面) 操作方法 コピースタンプツール ・画像の一部分をサンプルポイントとしてコピーし、他の箇所へペーストして適用することができる。 ・人物写真からシミやホクロを消したいときや、風景写真から電線などを消したいとき。 ・Altキーを押しながらクリックするとサンプルポイントをコピーする。 ・ドラッグ(クリック)するとサンプルポイントをペーストする。 ・「調整あり」のチェックボックスをオンにするとサンプルポイントとドラッグ箇所との距離関係が常に一定を保つ。 ・コピーソースパネルを使うとサンプルポイントを最大5つまで保存することができる。 パターンスタンプツール ・パターンとして登録した画像をスタンプのように貼り付けて描画することができる。 ・オブジェクトや背景に一定の模様の繰り返し(パターン)を描画したいとき。 ・メニューバーの「編集」から「パターンを定義.

Photoshopの選択範囲作成方法と便利な応用操作

Photoshopの選択範囲作成方法と便利な応用操作

Photoshopには長方形選択ツールや楕円形選択ツールの他にも複雑な形状のオブジェクトを選択するための様々な方法が用意されています。今回は基本的な選択範囲の作成方法と合わせて覚えると便利な応用操作についてまとめます。 基本的な選択範囲の作成方法 選択範囲を作成するための基本的なツールの使い方を表にまとめました。 ツール名(操作名) 操作方法 利用場面 長方形選択ツール ・好きな範囲をドラッグする。 ・Shiftキーを押しながらドラッグすると正方形になる。 ・Altキーを押しながらドラッグすると中心を軸にして範囲を作成する。 ・Spaceキーを押しながらドラッグすると範囲自体を移動することができる。 ・コントロールパネルのスタイルを「標準」から「固定」に変更するとサイズを指定して選択範囲を作成することができる。 ・四角形の選択範囲を作成したいとき。 楕円形選択ツール ・好きな範囲をドラッグする。 ・Shiftキーを押しながらドラッグすると正円になる。 ・Altキーを押しながらドラッグすると中心を軸にして範囲を作成する。 ・Spaceキーを押しながらドラッグすると範囲自体を移動することができる。 ・コントロールパネルのスタイルを「標準」から「固定」に変更するとサイズを指定して選択範囲を作成することができる。 ・円形の選択範囲を作成したいとき。

ビットマップデータとベクターデータの違い

ビットマップデータとベクターデータの違い

「ビットマップデータ」と「ベクターデータ」とは、コンピュータのモニター上で表現することができる静止画像データのことです。 ビットマップデータ ベクターデータ 英語 Bitmap Data Vector Data 別名 ラスタデータ(Raster Data) ドローデータ(Draw Data) 利点 ・無圧縮のままファイルを生成するので画質の劣化がない。 ・通常、ビットマップデータよりも容量が小さくなる。 ・拡大・縮小しても画質が損なわれない。 ・変形処理が自由自在。 欠点 ・無圧縮につきデータ容量が膨大になる。 ・拡大・縮小等の編集を行うと画質の劣化が生じる。

Adobe Illustratorのペンツールで思い通りに曲線を描くコツ

Adobe Illustratorのペンツールで思い通りに曲線を描くコツ

Adobe Illustratorを学習する上で学習者が必ず躓いてしまうのがペンツールによる曲線の描き方です。Illustratorの機能の中でも特に難解な部分ですが、逆にここさえ抑えれば他に躓くポイントは無いかと思います。 まず、曲線を描く方法として「ペンツール」と「曲線ツール」の2つがあります。ペンツールは曲線を描くための基本的なツールで、曲線ツールはペンツールの機能拡張版のような位置付けです。今回はペンツールについて解説します。 ペンツールは、手書き風の自然な曲線を描くのに向いています。逆に、正円やハートマークのような数学的な正しさや綿密な対称性が求められる図形を描くのは得意ではありません。 ※リフレクトツールとパスの連結を駆使することでペンツールでも対称な図形を描くことは可能です。 基本知識 Illustratorの基本知識をつらつらと書きます。何となく目を通しておくとペンツールについて理解が深まると思います。 アンカーポイントとパス Illustratorで描かれるオブジェクト(図形)は、点と線で構成されています。点をアンカーポイント、線をパスと呼びます。 選択ツールとダイレクト選択ツール オブジェクト単位での選択を行う場合は、

Excelの基礎知識や機能のメモ

Excelの基礎知識や機能のメモ

改めてExcelについて勉強したのでよく使いそうな知識や機能をメモしておきます。 3つの編集モード Excelには、「標準」「ページレイアウト」「改ページプレビュー」という3つの編集モードがあります。これらの編集モードは画面の右下(ズームバーの左側)にあるアイコンをクリックすることで切り替えることができます。 標準モード Excelの標準のモードです。データを入力するときはこのモードを使用します。 ページレイアウトモード 印刷イメージを確認しながらヘッダとフッタを編集するモードです。ヘッダとフッタにはタイトルやページ番号を設定することができます。 改ページプレビューモード 印刷範囲を設定することができるモードです。行や列を印刷範囲から除外したり、複数ページで印刷されてしまうシートを1ページにまとめるようなことができます。 ページ設定 上手く印刷を行うには、「ページレイアウトモード」や「改ページプレビューモード」と合わせて、「ページレイアウト」を設定する必要があります。Excelのメニューにある「ページレイアウト」

Promise.all()で複数サイトのRSSを取得する非同期処理を並列に実行する

Promise.all()で複数サイトのRSSを取得する非同期処理を並列に実行する

ES2015のPromise/Promise.all()を使用して、複数サイトのRSSを取得してみます。今回はNode.jsのExpressを使用します。 Expressとは Node.jsのMVCフレームワークです。今回はMVCについての解説はせず、あくまで簡易的なウェブサーバとして使用します。 Express-generatorでプログラムの雛形を作る まずはexpress-generatorをインストールし、Expressを使用したプログラムの雛形を作ります。 npmでexpress-generatorをグローバルインストールします。 npm install express-generator -g 続いて、プログラムの雛形を作成します。今回作成するプログラムではテンプレートエンジン(表示を制御するための機能)は使用しないので、テンプレートエンジンは何を選択しても良いです。今回はejsを選択します。 express --view=ejs

ヒアドキュメントとテンプレートを使用してソースの可読性を向上させる

ヒアドキュメントとテンプレートを使用してソースの可読性を向上させる

PHPのヒアドキュメントとHTMLのテンプレートの使い方を覚えたのでメモ。この2つを上手く使うことでJavascript側でDOMをゴリゴリ生成せずに済みます。 ヒアドキュメントとは ヒアドキュメント(別の呼び方としてヒア文字列、heredocなど)は、文字列リテラルをシェルスクリプトやプログラミング言語の中に埋め込むための1つの方法です。 PHPでのヒアドキュメントの使い方 ヒアドキュメントは以下のような書式で使用することができます。「EOD」の部分はアルファベットの大文字3文字なら何でも使用することができます。EODはEnd Of Documentの略です。 <<< EOD ここに内容 EOD; これができるとechoを何度も書かずに済むという利点があります。 以下のPHPは悪い例です。echoを書きすぎて見通しが悪くなっています。 echo "<ul>"

Atomについてのメモ

Atomについてのメモ

自分用メモ。Atomの便利な機能やインストールしたパッケージをメモしておく。 エディタの設定 Preferences->Editorから以下の設定を有効にする。 Show Indent Guide :インデントガイドを表示する。 Show Invisibles :スペースやタブを視認できるようにする。 Soft Wrap :画面外にある文字を折り返して表示する。 Soft Wrap Hanging Indent :80字で折り返して表示する。 パッケージのインストール方法 Preferences->Installからパッケージを検索してインストールする。 インストールしたパッケージ 操作をVimライクにするvim-mode-plusとex-modeに加えて、構文解析してくれるlinter系のパッケージをインストールした。 Vim化系 vim-mode-plus

頻出するCSSセレクタのまとめ

頻出するCSSセレクタのまとめ

頻出するCSSセレクタの使い方をまとめる。 対象読者 HTMLとCSSを初めて触る人。 CSSのセレクタ周りの理解を有耶無耶にしていた人。 CSSの注意点 CSSの文法に全角文字および、全角スペースを使用することはできない。 セレクタ(id、class)の頭文字に数字を使用することはできない(例:2linesなど)。 スタイルの適用順位はポイント制となっており、より獲得ポイントが高いセレクタを持つスタイルが優先される(see CSSのスタイル適用の優先順位について)。 セレクタの基本的な使い方 CSSにはHTMLの構造から要素を選択するために「要素」、「属性」、「id」、「class」の4つの選択方法が用意されている。 html <div id="foo&

Nginxについてのメモ

Nginxについてのメモ

ブログのWebサーバとしてNginxを使っている。Nginxについて勉強したことをメモしておく。 インストール Ubuntuの場合は以下のコマンドでインストールすることができる。 sudo apt-get update sudo apt-get upgrade sudo apt-get install nginx Ubuntuにデフォルトでインストールされているufw(ファイアウォール)を設定するには以下のようにする。 # ssh(22)のポートを開放する sudo ufw allow ssh # ufwで利用可能なアプリケーションを確認 sudo ufw app list # Nginx

WordPressからGhost1.21に移行した

WordPressからGhost1.21に移行した

AWS EC2 t1.micro + WordPressでブログをやっていたが、AWSから*Abuse Reportが届いたのをきっかけにConoHa 1GB + Ghostに移行した。 *不正アクセスの兆候等が確認された場合に送られてくるレポート 構築した環境 移行前 EC2 t1.micro(Amazon Linux) + Wordpress + PHP + Nginx(Webサーバとリバースプロキシ) + MySQL 構築にはAmimoto AMI(インスタンスを作るためのイメージファイル)を使用した。 移行後 ConoHa 1GB(

SEOとOGPについてのメモ

SEOとOGPについてのメモ

SEOとは何か SEOとは、Search Engine Optimization(検索エンジン最適化)の略称である。 検索結果において、ウェブページをより高い順位に表示させることを目的として行う取り組みのことである。 今回はSEOの基本であるtitle、description、keywords、h1タグを適切に設定する方法について解説する。 OGPとは何か OGPとは、Open Graph Protocol (オープン・グラフ・プロトコル)の略称である。 OGPはもともと、Facebookが策定した仕様である。今ではFacebookだけではなく、mixiなど、様々なSNSでも利用されるようになった。 OGPを利用すると、リンクの元となるコンテンツにどのような情報が含まれているか、効率良く伝えることができる。

ゼロからウェブサイトを作るための勘所

ゼロからウェブサイトを作るための勘所

ウェブサイトを作るアルバイトを1年ちょいやったので、そこで必要だった知識をメモ。 はじめに この記事は、筆者がウェブサイト制作のアルバイトを1年ほど行った際にウェブサイトを制作するのに必要だった知識をまとめたものです。主にレスポンシブ対応のウェブサイトを作っていましたので、本記事もレスポンシブに対応する前提での説明になります。 今回は、htmlとcssをどのように書けば目的のレイアウトを作れるかということに重点を置いて解説します。ちなみに制作環境はMac + Google Chrome + Dreamweaver + Photoshop + Illustratorですが、今回はソフトウェアの使い方については解説しません。 対象読者 HTMLとCSSは触るが、レイアウトまでは作らないプログラマ寄りの人 ワイヤーフレームを作成する まず初めに、ウェブサイトの構成を決めます。どのようなコンテンツが必要か、コンテンツをどのように配置するか、ウェブサイトのページ数、バックエンド(サーバー、プログラム、データベース)はどんなものが必要か、

JavaScriptでHTMLのDOMを操作する方法

JavaScriptでHTMLのDOMを操作する方法

仕事でJavaScriptからDOMを通してHTMLを操作したことはあったけど、今回改めて勉強したのでメモしておく。 DOMとは DOMとは、「Document Object Model」の略である。プログラムから「HTML 文書」や「XML 文書」を利用するための、標準化された仕様を指す。 DOMが生まれた背景として、JavaScriptのようなクライアント側のプログラムを使ってHTMLの内容を動的に変化させる「ダイナミックHTML」という概念の登場がある。登場初期の頃はブラウザごとに制御方法が違っていたので、ブラウザごとに専用のJavaScriptのコードを用意する必要があったが、それが煩わしかったので、制御方法を統一するためにDOMという仕様が生まれた。 DOMを構成するもの HTML文書は、「タグ」「属性」「値」「文書」

JavaScriptの無名関数・即時関数の使い方

JavaScriptの無名関数・即時関数の使い方

各プログラミング言語には、1度しか使わない様な用途で作成するクラスやメソッドには、名前を付けずにそれを使用する方法が用意されていることに気付いた。今回はJavaScriptの関数に名前を付けずに使用する方法を勉強したのでメモしておく。 関数とは 関数とは、同じ処理を何度も使い回したいときに使用するものである。デフォルトの関数定義は以下のような書式となる。 書式 function 関数名( ) { 処理 } 無名関数とは 無名関数とは、名前の無い関数のことである。1度しか使わない用途の関数を作りたいときに使用する。逆に言うと、1度しか使わないのでわざわざ名前を付ける必要が無い。 書式 //関数定義 var 変数名A = function (引数) { 処理 } //関数呼び出し var 変数名B = 変数名A(引数)

JavaのコレクションAPIでよく使うメソッド

JavaのコレクションAPIでよく使うメソッド

JavaのコレクションAPIでよく使うんだけど、忘れちゃっていちいち検索していたメソッドをまとめてくれている記事を発見した。大変有難いので引用させて頂いてメモしておく。 JavaのコレクションAPIでよく使うメソッド 操作名前 Array(配列) List Map 要素の参照 a[i] get(int index) get(Object key) 要素の変更 a[i]に代入 set(int index, E element) put(K key,