サーバサイドの言語について

サーバサイドの言語の特徴は実行がサーバ側で行われる為、ブラウザで元のソースコードの確認ができないという点にある。サーバで解釈され、動的にページを吐き出す為、動的言語とも呼ばれる。

代表的な言語

  • PHP
  • Perl
  • JAVA
  • Ruby
  • Python
  • Go
  • C#,VB・・・・

これらは厳密にはWebサーバやアプリケーションサーバなどに応じて、動作する環境が異なる。
極端な話、Javascriptであってもサーバ側で解釈され、動作するNode.jsのような言語もあるため、サーバ側がWebへコンテンツを配信する仕組みさえ揃っていればどんな言語でも使用できるとも言える。
※なかにはShellスクリプトだけでシステム開発やCMS開発を行う開発手法も存在する。

サーバとは?

サーバと名のついた物が多数あるが、基本は「アクセス可能な配信サービス等を提供する機器」を指す

サーバの種類

  • Webサーバ
  • アプリケーションサーバ
  • メールサーバ

  • PUSHサーバ

  • DNSサーバ

  • コンソールサーバ
  • ローカルサーバ

ウェブ制作などで、主によく使われるのはWebサーバやメールサーバだろう。

主なWebサーバ

  • apache webサーバ
  • nginx
  • windows webサーバ

CMSとは?

コンテンツ管理システム(Content Management System)の略称です。

CMSの主な種類

基本はDBを元にコンテンツを生成するのですが、動的にページを作る物と静的に作る物に分ける事ができます。
また、OSSやベンダーによるサポートがある物などを含めると数多くのCMSが存在します。
さらにCMS自体がどんな言語で作られているかによって、動作するサーバも変わってきます。

無償利用が可能の物(商用の場合有料も含む)

  • wordpress
  • MovableType
  • Drupal
  • Baser CMS
  • concrete5
  • soy cms
  • Baked
  • OpenPNE

完全有料の物

  • PowerCMS
  • NOREN
  • RCMS

使用例

ホスト名を表示する

例えば手元のmacbook airで実行してみると

$ hostname

MacBook-Air.local

となる。

ホスト名を設定する


$ sudo hostname test 権限のあるユーザで実行する $ hostname test

これでホストネームが testに変更される

サーバ上では・・・

ホストネームはドメイン名で設定されている

$ hostname

test.co.jp

※ -s オプションでドメイン名は非表示に
$ hostname -s

test

その他のオプション

-a  --alias ホストの別名(alias)があれば表示する
-d  --domain    DNSドメインの名前を表示する
-f  --fqdn,--long   FQDN(Fully Qualified Domain Name)を表示する
-A  --all-fqdns 全てのFQDN(FQDNs)を表示する
-i  --ip-address    ホストのIPアドレスを表示する。設定時も使用可能
-I  --all-ip-addresses  全てのアドレスを表示する
-s  --short 短い形式のホスト名(最初のドットまでの名前)を表示する
-y  --yp,--nis  NISドメイン名を表示する。設定時も使用可能
-v  --verbose   起こっていることを逐一表示する(verboseモード)
-F  --file filename 新しいホスト名を指定したファイルから読みこむ(「#」から始まる行はコメント扱い)

フルスタックエンジニアになる為に必要な知識、技術

今回からは具体的にフルスタックエンジニアになる為の技術や知識の話になります。

技術や知識の定義は色々ありますが、これらの区分けを行うなら

  • 技術とは「実現可能な問題解決手法」であり
  • 知識とは「セグメント分けされた物理、事象への判断」です。

この2点には初期段階では意識しない知の罠が存在します。

続きを読む

フルスタックエンジニアになる為には?

前回、フルスタックエンジニアとは何か要件定義をしました。

「 問題解決に必要な仕組みを作りあげる 」

エンジニアと呼ばれる人達は色々な物、システムを作り上げる事ができる人々です。
作られた仕組みにより、様々な問題が解決し、便利になっていくのですが・・・・

その問題を解決するために必要なのは何でしょうか?
続きを読む

Nimとは何か?

公式サイト

  • アンドレアス・ランプフにより設計・開発
  • Nim (旧称はNimrod)
  • 命令型、マルチパラダイム
  • コンパイル言語

Python+Ruby風のシンプルな構文で書かれるが、C言語並みの高いパフォーマンスを有している。

ドキュメント類

Document

ダウンロード&インストールについて

ダウンロード&インストール

Windows,Unix系(mac含む)で紹介されています。

開発環境を揃えよう

基本はエディタは何でもと言いたい所です。

What about editor support?

こちらのエディタサポートの部分に例えばVScodeならプラグインでNimが紹介されています。

チュートリアルについて

英語ができるなら、本家のドキュメントにチュートリアルがあります。

日本語でチュートリアルの一部を翻訳されてくれてる人もいらっしゃりますね。

Nim Tutorial Part Iを日本語訳してみた(前編)

Nim Tutorial Part Iを日本語訳してみた(後編

Nim始めようかどうかと迷ってる方へ

至高の言語、Nimを始めるエンジニアへ
至高の・・・と言われるとそそられませんか?

Nimで他の言語との連携方法まとめ

NimはJavaScriptに変換できるので、AltJS的な使い方もできます。

これだけでも、とりあえずやっといて損はないかもですよ。

よりディープなNimの世界へ

Github Nim

OSSに貢献したい方はどうぞー

ベストデバイスは何か?

「 買ったけど使わない・・・ 」を避ける為のPC,タブレット、スマホデバイス購入チェックシートです。

購入に迷っているPCやスマホ、タブレット、その他デバイスがある場合は参考にしてみてください。

続きを読む