Apacheをインストール

前ブログの再掲

 

設定した環境

OS:Windows 10 Home
システムの種類:64ビット


Apacheのインストール

ダウンロード

以下のサイトを参考にダウンロードしました。
http://www.adminweb.jp/apache/install/index1.html

 

解凍先

Tomcatと同じく"c:¥renkei¥svFile"に解凍しました。


設定の変更

Apacheフォルダ内のconf直下にあるhttpd.confファイルを変更します。
httpd.confファイル内に"c:/Apache24"という記述は全部"c:¥renkei¥svFile"に置き換えます。


サービスの登録

コマンドプロンプトから登録します。
c:¥renkei¥svFile¥Apache24¥bin¥httpd.exe -k install

そしてApacheの開始
net start Apache2.4

Tomcatと同じくコントロールパネルのサービスからの開始もできます。


Apacheの動作確認

Apacheの起動後、ブラウザを起動して以下にアクセス
http://localhost/

Is Work!!

が表示されたのならばApacheが起動しています。
以上で設定は完了です。

Tomcatをインストールした時のメモ

前ブログの再掲です。


設定した環境

OS:Windows 10 Home
システムの種類:64ビット


Tomcatのダウンロード

ダウンロード

以下のサイトを参考にダウンロードしました。

Tomcatのダウンロード - Tomcat 6.0のインストールと環境設定 - サーブレット入門

 

私がダウンロードしたバージョンは8.5.9です。
Coreの64-bit Windows zip をダウンロードしました。
これはTomcatのデータだけでインストーラーはありません。

インストールするならば上記リンクの指定通りの Core の 32-bit/64-bit Windows Service Installer をダウンロードしてたインストーラーになっているので実行して値を決めるだけでインストールできます。

 

解凍

Cドライブの直下に"renkei"というフォルダを作成して、"renkeiの中に"svFile"というフォルダを作成します。
ダウンロードしたファイルを"svFile"の中に解凍します。


環境変数の設定

インストーラーを使用してインストールすれば特に設定の必要は無いようです。

単純に設定するだけであれば「Windows 環境変数 設定」でググれば出てきます。
ですが、今回は設定をせずに進めてみました。

まず、環境変数を設定せずに、Tomcatのインストール処理をコマンドプロンプトから実行しました。

 

コマンド

C:¥renkei¥svFile¥apache-tomcat-8.5.9¥bin¥service.bat install

 

そうしたらエラーが発生しました。

エラー:CATALINA_HOME environment variable is not defined correctly.

 

CATALINA_HOMEの環境変数が設定されていないとのことなので、コマンドプロンプトから設定します。


set CATALINA_HOME="C:¥renkei¥svFile¥apache-tomcat-8.5.9"

 

再度インストールすると今度はJAVA_HOMEが設定されていないのでエラーということです。
JAVA_HOMEを設定するにはJDKをインストールする必要があります。
インストールは 下記サイトを参考にインストールしました。

JDK8のダウンロード及びインストール | Javaダウンロードとインストール

 

JDKインストール後に以下のコマンドを実行します。

set JAVA_HOME="C:¥Program Files¥java¥jdk1.8.0_111"

 

jrejavaフォルダ直下にインストールされているかも知れませんが、間違えずjdkを指定。

 

するとエラーが発生

Files¥Java¥jdk1.8.0_111"" の使い方が誤っています。

 

set CATALINA_HOME="C:¥renkei¥svFile¥apache-tomcat-8.5.9"
set JAVA_HOME="C:¥Program Files¥java¥jdk1.8.0_111"
ではなく

set CATALINA_HOME=C:¥renkei¥svFile¥apache-tomcat-8.5.9
set JAVA_HOME=C:¥Program Files¥java¥jdk1.8.0_111
でないといけないみたいです。””は不要。

修正後にsetを実行してからインストールコマンドを実行したら正常にサービスに登録されました。


Tomcatの動作確認

まずTomcatを動かすため、コマンドプロンプトから以下のコマンドを実行します。

net start Tomcat8

 

コントロールパネルの"サービス"を検索して一覧からの実行も可能です。

次にアクセスするファイルを作成します。

ファイル名:Test.thml
内容
<HTML>
<BODY>
HELLO WORLD!
</BODY>
</HTML>

 

作成したTest.htmlをtomcatフォルダ内にあるwebappsのROOTフォルダに置きます。
その後ブラウザを立ち上げて以下のアドレスにアクセスします。

http://localhost:8080/Test.html

 

HELLO! がブラウザに表示されたので、アクセス確認完了です。


Tomcatの設定

アドレスのポート番号について

tomcatフォルダ内にconfというフォルダがあるのですが、その中にあるserver.xmlファイルがポート番号等の設定です。

アクセスに使用した:8080はserver.xmlファイル無いの

<Cannector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

の port= で指定されているポート番号を使用しています。
なので、

<Cannector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

に変更してtomcatサービスを再起動したら

http://localhost:8080/Test.html では接続できません。
http://localhost:8081/Test.html で接続できるようになります。

※もしもポート番号8080が使用されている場合などに変更します。

 

サーバのコンテンツ保存先

server.xml内に以下の記述があると思います。

<Host name="localhost" appBase="sebapps" unpackWARs="true" autoDeploy="true" >
を以下のように変更します。

<Host name="localhost" appBase="c:¥renkei" unpackWARs="true" autoDeploy="true" >
するとサーバのファイルをROOTの直下においていましたが、
c:¥renkei¥webcontent などに変更することができます。

その場合のアドレスは以下のようになります。
http://localhost:8080/webcontent/Test.html

Cocoa Touchってなんだろう?

って気になったので調べた内容のメモ。

 

Wikipediaから

Cocoa Touch - Wikipedia

Cocoa Touchは、iOSを使用しているスマートフォンで動くフレームワークである。

Cocoa Touchは、Objective-CのFoundationフレームワークの上に、iOSの固有機能をまとめたUIKitというフレームワークを搭載している。

アップルから無償で使えるiPhone SDKという開発キットの一部となっており、同ソフトで開発ができる。

 

Foundation.framework と UIKit.framework はよく使う。

cocoatouch.framework みたいなのがあるのだろうか・・・?

 

もう少し調べてみる。

SDKで始めるiPad/iPhoneアプリ開発の勘所(1):いまさら聞けないiPhone/iPadアプリの作り方の基礎 (3/4) - @IT

 iPhone/iPod touch/iPad上のアプリはすべて「iPhone OS」(※2010年6月8日から「iOS」)という組み込みプラットフォームの上で動作しています。iPhone OSは、Cocoa TouchMediaCore ServiceCore OSの4つのレイヤ(層)で構成されており、これらのレイヤが提供する機能を使って、アプリは動作しています。 

 

Cocoa Touch はレイヤー・・・?

 

まだ調べる

iPhone SDK 一部らしいので、iPhone SDKから調べると・・・

 

iPhone SDKiOS SDK と名称変更されて Xcode に同梱されている

つまりcocoaTouchはXcodeに同梱されている。

 

です。

 

補足

元々は xcode + iPhone SDKで開発されていて、 iPhone SDK の CocoaTouche で xibファイルの編集やUI操作やカメラなどの機能を楽にする仕組みを実装していたみたいです。

この記事などを参考にしました。

第1回 プログラマのためのiPhone基本仕様の紹介:目指せ!iPhoneアプリ開発エキスパート|gihyo.jp … 技術評論社

iOSアプリでOpenGLの修正した際のメモ

iOSOpenGL ES を修正する際に調べた事メモです。

 

iOSAndroidの端末でのOpenGL

OpenGL ESを使用します。

 

OpenGL ESって?

OpenGL ES は OpenGLのサブセット版*1です。

 

OpenGL ESのバージョン

OpenGL ES 1.1
  • 固定機能パイプライン機能*2がある
  • iOSでは後方互換性を維持する為に搭載されている
  • OpenGL ES 2.0以降との互換性は無い
  • 保守の場合、GLKitフレームワークを使用して移行が推奨されている*3
  • GLKitフレームワークには、OpenGL ES 1.1の固定機能パイプラインを、新しい版に移行するための支援機能があります。

 

OpenGL ES 2.0

 

OpenGL ES 3.0
  • iOS7から使用可能
  • 多機能化*6

 

ソースコードがどのバージョンを使用してるか

importを見るのが一番早そう

  • #import <OpenGLES/ES1/gl.h> // OpenGL ES 1.1を使用
  • #import <OpenGLES/ES2/gl.h> // OpenGL ES 2.0を使用
  • #import <OpenGLES/ES3/gl.h> // OpenGL ES 3.0を使用

 

どのバージョンを使用するのか

OpenGL ES設計ガイドラインからの抜粋

OpenGL ESを組み込んでiOSアプリケーションを構築するためのチェックリスト

 

  • OpenGL ES 3.0はiOS 7で新たに導入された版です。高い処理性能を実現し、さまざまな目的にGPU計算技術を駆使するばかりでなく、従来はデスクトップ機やゲームコンソールでしか実現できなかった、より複雑な視覚効果を生み出す数々の新機能を備えています。

  • OpenGL ES 2.0はiOSバイス用のベースラインプロファイルで、プログラマブルシェイダを基盤とする、適合性の高いグラフィックスパイプラインを提供します。

  • OpenGL ES 1.1はごく基本的な固定機能グラフィックスパイプラインを提供するだけであり、iOSに今でも搭載されているのは、後方互換性の維持だけが目的です。

 

OpenGL ES 3.0 か、iOS7以前をサポートするならOpenGL ES 2.0 が良さそうですね。

 

 

*1:OpenGLにある機能の一部を取り出して、特定用途に利用できるよう再構築したもの

*2:柔軟性の無いけど実装が楽な描画処理機能みたいなのらしい

*3:GLKitを使用したレンダラの開発 OpenGL ESおよびGLKitによる描画

*4:色々調節しやすいけど詳細な設定が必要な描画機能みたいなのらしい

*5:https://9to5mac.com/2017/05/27/apple-moving-macbook-pro-air-and-iphone-to-obsolete/

*6:OpenGL ES設計ガイドライン

【書評】コンピューターで「脳」がつくれるか

かずーさんの『コンピューターで「脳」がつくれるか』を読んでいたのですが、書評を書いてなかったので紹介します!

 

 

Amazon.co.jp: コンピューターで脳が作れるか

 

かずーさんは2015年に人工知能アドベントカレンダーを一人で完走されてました

 

 

qiita.com

 

その内容をよりわかりやすくした内容の本が2016年9月に発売されたのが本書です。

 

私自身も人工知能に興味があって書店で何冊かパラパラと読んでみましたが、正直「数学的な話や専門用語が多くて難しいな」という状態でした。

本書の良いところは「人工知能」を題材に扱っている本ですが、読むのに必要な数学的な知識や人工知能に対しての知識が無くても読める事です。

専門用語などが出てきた場合も、わかりやすく解説されており、本当に丁寧な内容になっています。

肝心の内容ですが「人工知能とはなにか」に始まり「脳の仕組み」「ディープラーニングとはなにか」などの内容が書かれており、本書を読む事で人工知能に対する間違った取り上げられ方や言い方の間違いに気付けるようになるのでオススメの一冊です。

外でのプログラミング

基本自宅での作業をやるのですが、カフェで作業をしている人がいたので、私もやってみました。

その場所と感想です。

 

スタバなどのチェーン店のカフェでプログラミング

メリット
  • 電源がある場所も多い
  • 自宅より集中しやすい
  • チェーン店だとwi-fiがある場所も多い
  • コーヒーが美味しい
デメリット
  • お金がかかる
  • チェーン店なら街の中心から離れてもだいたい混んでいる
  • 長時間居るには申し訳ない気持ちになる

ネットカフェ

メリット
  • 意外と静か
  • フリードリンク
  • PCも付いてくる
デメリット
  • お金は一番かかる
  • 本を読みたくなる
  • たまにうるさい人がいる

スーパー銭湯でプログラミング

メリット
  • 集中が切れたら風呂に入れる
  • wi-fiがある場所もある
  • コーヒーチェーン店より空いている事が多い
デメリット
  • 休日の夕方以降は子連れが多い
  • 机が無い場合もある
  • ゆっくりお風呂に入ると眠くなる

電車でプログラミング

メリット
  • 移動時間をプログラミングに使える
デメリット
  • 乗り過ごす場合がある
  • 酔う

公園のベンチなど

メリット
  • 特になかったかな・・・
デメリット
  • 昼だとPCの画面が反射して見辛い
  • 場所と季節によって寒い、もしくは暑い
  • 鳩がなぜか寄ってきた

感想

  • 外で作業をやる場合は、机と椅子があって空調が整っていると集中しやすい
  • 調子が良いなら自宅が良いかな
  • 気分が乗らない時には外での作業はあり
  • なぜか図書館は場違い?な気がして使わなかったな

swiftの基礎メモ(変数宣言)

変数宣言

基本的な文法

var 識別子 : 型 = 値

  • var:必ず必要です。
  • 識別子:他の言語とだいたい同じですが、日本語も可能です。
  • 型:指定しなくてもOK。その場合、推論型になります。
  • 値:無くても良い。その場合 nilを許容する設定(オプショナル型)が必要です。
変数の例

ビルド可

  • var hoge:String = "str"
  • var hoge = "str" //この場合は自動的に String 型になります
  • var hoge = "", hogehoge = ""; // このような宣言も可能です

ビルド不可

定数宣言

基本的な文法

let 識別子 : 型 = 値

  • var が let になりましたが、書き方は変数宣言と同じ
  • 初期値として nil を固定値で入れることはできない

 

nil 許容設定(オプショナル型)

型の後ろに ! か ? をつけます。

ビルド可

  • var hoge:String! // nilが代入されます

  • var hoge,hogehoge:String!

  • var hoge:String! = nil

ビルド不可

  • var hoge! = nil // 型の宣言が必要