ひよこメモ

備忘ブログ Ruby, Rails, AWS, html5, css3, javascript, vim,

XcodeのPlaygroundが便利

Xcodeを開いて
FIle > New > Playground

コンパイルせず即座に確認できる。
こちらのブログを参考にテスト
Swift実践入門 〜 今からはじめるiOSアプリ開発! 基本文法を押さえて、簡単な電卓を作ってみよう - エンジニアHub|若手Webエンジニアのキャリアを考える!

class MyApp {
    //親クラス
    class Shape {
        var name: String
        
        init(name: String) {
            self.name = name
        }
    }
    
    //子クラス 四角形
    class Rectangle: Shape {
        var width: Double
        var height: Double
    
        init(name: String, width: Double, height: Double) {
            self.width = width
            self.height = height
            super.init(name: name)
        }

        func area() -> Double {
            return width * height
        }
    }
    
    //子クラス 三角形
    class Triangle: Shape {
        var bottom: Double
        var height: Double
        
        init(name: String, bottom: Double, height: Double) {
            self.bottom = bottom
            self.height = height
            super.init(name: name)
        }
        
        func area() -> Double {
            return bottom * height / 2.0
        }
    }
}

var square = MyApp.Rectangle(name: "四角形!", width: 15, height: 20)
print(square.name)
print(square.area())

XAML

Extensible Application Markup Language (XAML)

アプリケーション UI (コントロール、図形、テキスト、その他画面上に表示されるコンテンツなど) の作成に利用できる宣言型言語

visual studioのプロジェクトで出てきた

XMLベースであるためXMLの規則に従う


つまりボタン等の位置や大きさを決める言語

C#の修飾子 sealed 継承を禁止する

public sealed class A : B {

}

public class B {

}

AクラスはBクラスを継承する
Aクラスはどのクラスからも継承されない

オーバーライド
多様性(ポリモーフィズム)の一例
サブクラス(継承先クラス)において、メンバ変数を上書きする
引数の型、引数の数が同じであることが条件

Macにおける環境変数の設定

環境変数の設定についてのメモ(Mac)

環境変数(PATH)
OSあるいはログインするユーザごとに設定され、その上で動作するアプリケーションがその値を参照したり、設定したり、アプリケーション間で共有したりするためにあるもの。
プログラムの検索先。
プログラムへのルートを設定する。
.bash_profileや.bashrcに設定する。

.bash_profile
ログイン時に実行される。
主に環境変数を設定する。




.bashrc
対話モードの bash を起動する時に毎回実行
環境変数でない変数を設定する (export しない変数)

基本的に.bash_profileのみ設定すればいい。


bash:対話型シェル。ターミナル。
echo:メッセージの出力


本当に正しい .bashrc と .bash_profile の使ひ分け - Qiita
.bash_profile ? .bashrc ? いろいろあるけどこいつらなにもの? - Qiita

.NET Frameworkメモ

第1回 ASP.NET 5をOS X/Linuxで使うための準備 (1/5):連載:OS X/LinuxによるASP.NET 5アプリ開発ガイド - @IT


ランタイム:アプリケーションの開発・実行の両機能を備えたソフトウェアから、
「開発」のほうの機能を取り除き、「実行」機能のみを取り出したプログラム
つまり、実行専用のプログラム!

SDK:Software Development Kit。ソフトウェアを開発するために必要な技術文書やツールなど
一式のことである。
SDKは、OSや技術ごとに存在し、これらに関連するソフトウェアを「開発する場合に」
入手する必要がある。
入手にあたっては、無償の場合、有償の場合があり、開発ツールのパッケージを購入すると、
必要なSDKが含まれている場合もある。


ランタイムが実行用
SDKが開発用


XRE:Cross-platform Runtime Environment。
ASP.NET 5アプリを実行するためのランタイム環境。(実行用プログラム)
mono/Core CLRといったランタイム(実行用プログラム)のみならず、
「SDK/コンパイラー/ランタイムをホストするためのネイティブコードなど」
で構成される。(ランタイム&SDKと考えておけばOK?)

Mono(モノ):Ecma標準に準じた. 「NET Framework互換の環境」を実現するためのオープンソースのソフトウェア群、またそのプロジェクト名である。 現在はXamarin社が開発、販売、サポート業務を行っている。
Ecma(エクマ):European Computer Manufacturers Association。
欧州のコンピューター会社を中心に設立された、欧州電子計算機工業会の略称。

Core CLR:.NET Coreのランタイム
https://github.com/dotnet/coreclr

KVM: K Version Manager。XRE(ランタイム&SDK)をPCに「インストールしたり」、アプリが使用するXREのバージョンを「管理したり」するためのツール
→XRE管理用ツール

KPM: K Package Manger。アプリが必要とするライブラリはパッケージと呼ばれる単位で管理/配布される。「project.json」という構成ファイルに、アプリが使用する(依存する)パッケージを記述しておけば、このツールによってそれらを自動的に取得できる。
→パッケージ管理用ツール


XRE/KVM/KPMといった開発/実行環境とその周辺ツールのおかげで、Windowsに依存せず/NET Frameworkを使うことができる。



ASP.NET:ASP.NETとは、.NET Frameworkで提供されるWebサービス向けのクラスライブラリ。Windowsサーバ上でダイナミックなWebページを動作させるための基盤となるソフトウェアで、WebアプリケーションやWebサービスの開発・構築に用いられる。
→Webアプリケーション用のフレームワーク

ASP:ASPとは、Microsoft社のWebサーバソフトInternet Information Serivices(IIS)の拡張機能の一つで、閲覧者のリクエストに応じてWebページを動的に生成・送信することができるもの。

vagrantの接続がブツブツと切れる場合の対処法

$ sudo vim /etc/ssh/sshd_config


にある


ClientAliveInterval
ClientAliveCountMax


のコメントを外してあげる

後ろに何秒に1回接続するかを書く


ClientAliveInterval 10
ClientAliveCountMax 10

vagrant設定まとめ

仮想サーバー作成

$ vagrant init centos66

$ vagrant up

$ vagrant ssh


日本語化

$ sudo vi /etc/sysconfig/i18n

LANG="ja_JP.UTF-8"


Apache&PHPインストール

$ sudo yum install -y httpd

$ sudo yum install -y php


httpd.conf編集

$ sudo vi /etc/httpd/conf/httpd.conf


ServerName www.example.com:80
のコメントを外す


Options FollowSymLinks
AllowOverride All
Order deny,allow


$ service httpd configtest

$ sudo service httpd start

$ sudo service httpd status

$ sudo chkconfig httpd on

$ chkconfig --list


iptables編集

$ sudo yum -y install iptables

$ sudo vi /etc/sysconfig/iptables

filter

INPUT ACCEPT [0
0]
FORWARD ACCEPT [0
0]
OUTPUT ACCEPT [0
0]
RH-Firewall-1-INPUT - [0
0]
  • A INPUT -j RH-Firewall-1-INPUT
  • A FORWARD -j RH-Firewall-1-INPUT
  • A RH-Firewall-1-INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
  • A RH-Firewall-1-INPUT -i lo -j ACCEPT
  • A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
  • A RH-Firewall-1-INPUT -p 50 -j ACCEPT
  • A RH-Firewall-1-INPUT -p 51 -j ACCEPT
  • A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
  • A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

COMMIT



$ sudo /etc/init.d/iptables restart

$ sudo service iptables stop

$ sudo chkconfig iptables off

$ sudo vi /etc/selinux/config


SELINUX=disabled





HTMLでテスト

シンボリックリンクで繋げる
$ sudo rm -rf /var/www/html

$ sudo ln -fs /vagrant /var/www/html

$ exit
で抜ける

$ vi Vagrantfile

config.vm.network :private_network, ip: "192.168.33.10"
のコメントを外す

$ vagrant reload

PC側のvagrantフォルダにindex.htmlを作成

192.168.33.10を開く

vagrantで参考にしたサイト

vagrant設定
web帳 | VirtualBoxとVagrantで開発環境を構築
Vagrant+VirtualBoxでPHP開発環境構築 - Qiita
VagrantでCakePHPの開発環境をつくる。エラーとか警告を綺麗にするまで。 - Qiita



apache設定
Vagrant+VirtualBoxでPHP開発環境構築 - Qiita
http://blog.gogo-games.com/archives/28446255.html



Q&A
「sargのindex.htmlを見ようとするとforbiddenが・・」(1) Linux Square − @IT
apacheでシンボリックリンクがForbiddenになる時は「SymLinksIfOwnerMatch」を疑おう – DACELO SPACE
http://labs.uechoco.com/blog/2008/01/linuxapachepermission_denied.html
vagrant でディレクトリを共有するとブラウザから192.168.33.10がForbiddenになる - Qiita