web物語〜イジメられたFlash〜

初めまして、インターンシップに参加している藤原樹と申します。
今回は、ジャンルを問わず記事を書いて欲しいとの事だったので、私はwebについて話そうと思います。

今の時代様々なものが進化して行き、何をする時でもスマホでがあれば何でも出来てしまうくらい便利なネット社会となっていますが、webも例外なく日々進化しています。

では、そもそもwebとは何なのか。
初回はウェブそのものについて少しだけ解説して行きたいと思います。

webとはWorld Wide Web(ワールド・ワイド・ウェブ)を指す言葉であり、「www」とも略されます。
ちなみに、World Wide Web(ワールド・ワイド・ウェブ)の意味は「世界に広がる蜘蛛の巣」という意味で世界中に広くネットワークが繋がっている様子からこのような名前が付けられたそうです。

私たちの世界は、このwebによって凄く便利なものになっています。
最近ではスマートフォン一つで部屋の家電製品を操作したり、スマートフォンと車の連動や皆さんがよく使うであろうネット決済などの様々な機能も元を辿るとwebが出来た事によって発展してきたものなのです。

そんなwebにも様々な種類があり、webの見た目を形成する上で「HTML」や「JavaScript」「Flash」「HTML5」など様々なツールが使われています。
その中でも「Flash」はとても面白く最も動きのあるツールでした。
しかし、「Flash」はApple社のスティーブ・ジョブズ氏の発言によって衰退していきました。ジョブズ氏は「Flashは動作が重たい」「Flashのせいで不具合が起こる」などと「Flash」を叩いてきました。実際「Flash」はセキュリティーが脆弱でハッカーの的になっていたそうです。最終的には「Flash」を作ったAdobe社も「Flash」の脆弱性を認め、2020年には「Flash」のサービスが終了するそうです。

「Flash」は脆弱ではあったものの一時代を築いたと言っても過言では無いツールで他のツールに比べ凄く動くのでとても見ていて楽しいものが多くあります。

そこで次回は「Flash」などによる面白いサイトを紹介をしたいと思います。

興味を持たれた方はお気軽にお問い合わせください。

【IT用語解説】Python(パイソン)

IT・ゲーム企業で働く技術者・営業職で使われる用語を解説します。

Python

【言語】・・・プログラム言語のことです
【WEB系サーバー】・・・WEBサーバーにて使用されます

Python言語とは:

Python(パイソン)とは、グイド・ヴァンロッサムが設計した汎用のプログラミング言語である。コードの可読性が高くなるように設定されており、Cなどの他の言語に比べて、より少ないコード行数でプログラムができる、小規模から大規模なプログラムまで分かりやすくかけるようにできている。
 Pythonは複数のプログラミングパラダイムに対応しており、オブジェクト指向、命令型、手続き型、関数型などの形式でプログラミングすることができる、Pythonは動的型付け言語であり、参照カウントベースの自動メモリ管理をもつ、さまざまな領域に対応する大規模な標準ライブラリを提供している。

Python言語用途:

Pysonは汎用プログラミング言語であるので、何が出来ないというものはないが。
主に使われているのは科学計算である、数値計算、統計解析、機会学習、自然言語処理、可視化などの高度なアルゴリズムやツールがそろっており、大方のLinuxに標準としてインストールされてあったりもする。
 一番ポピュラーな実装としては、Cで書かれたCPython(シーパイソン)で、その他にもJava(ジャバ)で書かれたJython(ジェーパイソン)やPython(ピーパイソン)で書かれたPyPy(ピーワイピーワイ)などがある。

Python言語使用における準備:

Windows: anaconda(or miniconda)
linux: git + pyenv + anaconda(or miniconda)
MacOS: homebrew + pyenv + anaconda(or miniconda)
ChromeOS: chromebrew + git + pyenv + anaconda(or miniconda)
公式のPysonを入れる必要はないです。

Anaconda(アナコンダ)とはPythonのディストリビューションの一つで、主要ライブラリを全てインストールすることが出来ます、最小限の構成のみの場合はminicondaというものをインストールします、2.xや3.xに対応しておりLinux、Mac、Win版とそろっています、似たようなものにenthought(エンソース)やpython(x,y)というものがありますが、全プラットフォームが用意され2.x/3.xに対応しているのはAnacondaだけになります。

Python言語使用における注意点:

 Pythonでは2.x系と3.x系との間に後方互換がありません。ソースコードの書き方に違いがあるため2.xで動作していたものが3.x系では動作しない可能性があります。
2.xと3.xでは対応ライブラリの数が2.xのほうが多くなっております、そのためライブラリを使用して開発する際に時前に調べておく必要があります、標準ライブラリのみで開発可能な場合であれば最新のものを利用してもよいと思われます
 標準ライブラリの「urlib」や「xmlrpclib」等のパッケージが再構成されています。モジュール名そのものが変更されていたり、階層が移動されているケースがあるので、該当するモジュールのインポートを行う場合は注意しなければなりません。

Python言語習得における仕事:

 Pythonはビックデータ解析や機会学習などの技術を用いる企業を中心に広がり、今後AIや機会学習への取り組みやプロダクトに携りたい場合にはまず抑えておきたい言語です、特にWeb系エンジニアとしては習得すべき言語と言えます。

興味を持たれた方はお気軽にお問い合わせください。

【IT用語解説】Hack(ハック)

IT・ゲーム企業で働く技術者・営業職で使われる用語を解説します。

Hack

【言語】・・・プログラム言語のことです
【WEB系サーバー】・・・WEBサーバーにて使用されます

Hackとは:

 Hack(ハック)とは、Facebook(フェイスブック)により開発されたプログラミング言語である、動作が開発したPHP(ピーエイチピー)実行環境のHipHop(ヒップホップ)仮想マシン(HHVM)で操作する。
PHPとは異なり動的,静的双方の型システムが使用可能になっている。
段階的な型付言語としてあるのがHackの強みとされている

Hack用途:

 PHPとは基本的に同じでWebサービスプログラミングに使用します。HackはHipHop仮想マシン(HHVM)を使用することにより動作が高速化されており、PHPで作成したスクリプトのほとんどがそのまま実行することができます。

Hack使用における準備:

 HipHop仮想マシン(HHVM)を使用することにより実行、確認ができます。
Hackのインストールとは別にHHVMの準備が必要となります。

Hack使用における注意点:

 PHPの言語がほとんど使えるが細かいところが違う場合があるので注意が必要となる、たとえばPHPの開始タグは Hack習得における仕事:

 Hackに乗り換えているという仕事は現状とても少ないです、Hackで仕事を見つけるというよりPHPからHackに乗り換えようか検討しているところで仕事を見つけたほうが早いです

興味を持たれた方はお気軽にお問い合わせください。

【IT用語解説】Go(ゴー)言語

IT・ゲーム企業で働く技術者・営業職で使われる用語を解説します。

Go言語

【言語】・・・プログラム言語のことです
【WEB系サーバー】・・・WEBサーバーにて使用されます

GO(ゴー)言語とは:

 GoLang(ゴーラング)の略称 Googleによって開発されており、設計にロブ・パイク、ケン・トンプソンらが関わっている。
他の言語にあるような機能をおおく削り言語をシンプルにしてあります、機能を排除することにより
コンパイルの高速化やバグを減らしてあります
Goでは繰り返し構文はfor文のみで統一され、ifは波括弧の省略を不可能にしてあり、三項演算子は存在しません。
メモリリークの元仁となるポインタ演算や暗黙の型変換も排除してあります。
Goは機能を極力削りコンパイルの高速化を図り、そして表現の統一化をすることによって開発者ごとの表現のばらつきを抑えています。

GO言語用途:

 処理速度が他とくらべとても速く、並列処理機能が使いやすいため、
ミドルウェアなどインフラに近いところでの積極的採用が考えられています。
また、重い処理をハイスループット処理を求められるAPI実装にも向いています。
 HTML(エイチティーエムエル)のようなフロントよりの処理に採用されるものでは未だにない状態になっているので、
フロント作業をする場合は別の言語でも今は良いです。

GO言語使用における準備:

 Go言語は開発におけるツールのほとんどが公式で用意されているため、基本的に外部ツールを使う事は特にない
ビルドも他社への公開も容易にできるよう作られているため、大きく準備するものが特にあるわけではない。

GO言語使用における注意点:

簡潔的なコードなため自分がどのタイプの変数をしようしているかがわかりにくくなりやすいため、混乱を招きやすい
また、意図せずstruct(ストラクト)がinterface(インターフェイス)をインプリケーションしてしまうことがある。
他人のコードを読んだときに意図がわかりずらくなるため、最新の注意が必要である。

GO言語習得における仕事:

 データベース管理などのミドルウェア開発が主な仕事になる。
ただ、Go言語は比較的新しい言語であるので他の言語に比べると使用率がとても低いため
この言語のみでの仕事となると難しいものがある。

興味を持たれた方はお気軽にお問い合わせください。

【IT用語解説】VBA(ブイビーエー)

IT・ゲーム企業で働く技術者・営業職で使われる用語を解説します。

VBA

【言語】・・・プログラム言語のことです
【Windows系】・・・Windowsにて使用されます

VBAとは:

 Visual Basic for Applications(ビジュアルベーシックフォアアプリケーション)の略称、マイクロソフト社が開発したマクロ言語
MicroSoft Office(マイクロソフトオフィス)シリーズに含まれるアプリケーションソフトの拡張機能であり、簡易的なプログラムを記述して実行することで、複雑な処理を自動化をおこうなうことができる。
マクロとの違いは、マクロというのは、複雑なコンピューター操作の自動化技術の総称であり、一方VBAはマイクロソフト社が提供しているプログラム言語の名称である。 マクロ≒VBA(ブイビーエー)の考えで問題はない

 VBAには2種類あり、ExcelVBA(エクセルブイビーエー)とAccessVBA(アクセスブイビーエー)があります、ExcelVBAはBook(ブック)、Sheet(シート)、Cell(セル)というExcel(エクセル)上のオブジェクトを対象にプログラミングを行うことにあります、エクセルシート状の関数機能なども利用しながら利用することができます、ExcelVBAの優れた点はマクロの記録というのがある点です、マクロの記録とは自分で操作した内容を自動的にVBAに変換してくれる機能のことです、この機能があることで、ExcelはVBAをあまり知らなくても、簡単なマクロを作成する事ができます、一方Access(アクセス)の場合は、Table(テーブル)、Query(クエリー)、Form(フォーム)、Report(リポート)というオブジェクト、及び、FormやReportの中に配置するControlオブジェクトを対象にVBAプログラムを組むことができます。エクセルと異なるのはデータベースソフトなので、実態としてTableと実態のないQuery、Form、Reportなどに対して、全体的な視野でプログラムを作成していくことが必要になります。そういう意味でAccessVBAのほうがとても敷居が高いものになっており、一般的に教えられないことが多いです。

VBA用途:

継続性の高い作業の効率化、毎日必ずおこなう作業や、一日複数回にわけて行う作業の効率化を上げることができる。

単純作業の効率化、ルールさえわかれば誰にでもできるような作業でも覚えさせるまでには、
 時間がかかるがマクロを自前に作っておけば作業説明の時間も短くなり、誰でも短時間で作業を習得、終了することが出来る。

長期におよぶ作業工程の単純化、効率化、工程の多い作業となると、手入力で作業するには多く時間が取られ、ミスも増えてしまう。
 なので、時前にマクロを準備し工程の多い作業などを自動化をしておくことで、ミスを防げ作業工程を短くすることができる

VBA使用における準備:

MicroSoft Officeシリーズに基本的についているものなので、使用するにあたって必要なものはありません。

VBA使用における注意点:

 ・記録、入力した行動とまったく同じ行動をしますので操作ミスもそのまま実行します。
また、印刷設定もマクロ内に記憶されるので、マクロ作成時に注意が必要になります。
 ・マクロ作成中に元に戻すを行うと操作内容を取り消すことが可能ですが、一部操作が消えない場合があります。
エラーの原因になりますので極力使わないのがよいです
 ・基本的に同じ処理を連続して行う場合に使用することが多いですので無限ループが起きてないかの確認が必要になります。
ループを起こしてしまうとソフトが落ち、保存していないデータが飛ぶ可能性がありますので、制作時には無限ループが本当に起きていないか、本使用前にテストとして他で使用したほうが安全になります。
もし、起こってしまった場合は【ctrl】+【break】または、【clrl】+【Pause】で強制的に止めることが可能です。

VBA習得における仕事:

 VBAをマスターしていると、効率的な表制作、計算などが行えるようになり人為的ミスが少なくなります。
短時間での作業やミスが減ると膨大なデータを扱う業務管理、事務管理システムに強くなれます。
計算部分が強くなれば桁の多い金融や会計の仕事を扱うことができます。
VBAはOfficeについている機能で表を扱う作業がほとんどとなります。
事務、管理系の仕事には今後十分に必須といっても良いものになりますので、覚えておいて損はないです。

興味を持たれた方はお気軽にお問い合わせください。

【IT用語解説】Perl(パール)

IT・ゲーム企業で働く技術者・営業職で使われる用語を解説します。

Perl

【言語】・・・プログラム言語のことです
【WEB系サーバー】・・・WEBサーバーにて使用されます

Perlとは:

 Perl(パール)とはラリー・ウォールによって開発された言語であり、実用性と多様性を重視し、C言語やsed(セド),awk(オーク),シェルスクリプトなど他のプログラミング言語の優れた機能を取り入れている。ウェブ・アプリケーション、システム管理、システム処理などのプログラムを書くために広く用意られている。
 Perlはコンパイル作業を必要とせず実行の速度を非常に速くしており、後方互換性にすぐれております、旧バージョンで作成したプログラムが壊れることなく使用できるのが特徴です。
数値計算は他言語より遅めになっていますが、テキスト処理に最適化されており、利用頻度の高いテキスト処理を適切に処理することが出来るようになっており、パフォーマンス的な困難が発生したときは、C/C++のバインディングを書く事によって、解決できるように設計されています。

Perl用途:

 Perlはテキスト処理が早いという特徴をもっているのでWebプログラミングやテキスト分析などで使用されることがあります。また、サーバ管理の開発にも使われることがあります。

Perl使用における準備:

 基本的にPerlの実行環境以外の外部的な準備は必要はない。

Perl使用における注意点:

 エラー回避として初期にuse strict use warningsと書く場合があるが、別に書かなくても問題はない、だが書かない場合だとエラーも正常として扱われ通ることがあるので注意が必要である。
Perlにはboolean(ブーリアン)が存在せずconstant(コンスタント)と記載する必要があり、特殊変数がいくつか存在するため使用時に注意が必要である。
Perl習得における仕事:
 テキスト処理の速さとコンパイルが不要という特徴をもっているため、開発期間があまり長めではないWebプログラミングやサーバ処理などが主になっています

興味を持たれた方はお気軽にお問い合わせください。

【IT用語解説】PHP(ピーエイチピー)

IT・ゲーム企業で働く技術者・営業職で使われる用語を解説します。

PHP

【言語】・・・プログラム言語のことです
【WEB系サーバー】・・・WEBサーバーにて使用されます

PHPとは:

 PHP(ピーエイチピー)とは、ラスマス・ラードフが設計したPHP:Hypertext Preprocessor(ハイパーテキスト パープロセッサー)の略でWebページを記述することに特化した、サーバーサイドスクリプト言語。
Web(ウェブ)上で動く掲示板やチャットなどを作成するのに使用されるプログラミング言語である。
 スクリプトにはクライアントサイドスクリプトとサーバーサイドスクリプトの2種類がある、クライアントサイドスクリプトとは、JavaScript(ジャバスクリプト)のようにクライアント側のWebブラウザで処理を行うスクリプトのことである、サーバーサイドスクリプトとは処理をWebサーバーが行うスクリプトの事で、リクエストを受け取ったサーバーは、処理結果をクライアント側に返します。
これはPHPの他にJSP(ジェーエスピー)やASP/ASP.NET(エーエスピー/エーエスピードットネット)などがある。

PHP用途:

 BBS(ビービーエス)やブログ、検索システムなど、企業で社員同士の連絡用に使うグループウェアや予約システム、ネットショッピングなど、あらゆるWeb(ウェブ)サービスをPHPで作成することができます、PHPはWebでの使用頻度が最も高く、個人でホームページを作成する際にも、全てをHTML(エイチティーエムエル)でつくるよりPHPを利用した方が作業効率が大幅にあがり、できる事が増えます、PHPは他の言語とは違い簡単に作成する事が可能です

PHP使用における準備:

 PHPは主に3つの用途で使用されます。
 ・サーバーサイドでのスクリプティングをする場合は3つものが必要になります。
PHPパーサ(CGI(シージーアイ)もしくはサーバーモジュール)、ウェブサーバー、そしてブラウザが必要になります。ウェブサーバーはインストールされたPHPと連結させて起動しなければなりません。ブラウザでウェブサーバーにアクセスし、PHPページを観覧することでPHPプログラムを出力を得ることができます。
 ・コマンドラインでのスクリプティングはサーバーもブラウザも必要ありません、PHPパーサのみが必要になります、このタイプはcron(クロン)を使用して一定間隔でスクリプトを実行したい場合や、ちょっとした文書処理を行うのに最適な方法です。
 ・クライアントサイドでのGUI(ジーユーアイ)アプリケーション。ウィンドウを使用したアプリケーションに対して最適ではありませんが、PHPの進んだ機能をクライアントサイドでのアプリケーションで使用する場合にはPHP-GTK(ピーエイチピージーティーケー)を使用することで作成する事が可能です。
PHPーGTKはPHPを拡張するもので、通常のディストリビューションには含まれておりません。

PHP使用における注意点:

 PHPでは、テキストファイルにコードを書けば、そのまま実行することが可能です、ただ、PHPはテキストファイルの一定の形式が必須です。それは、コードは の間に書かなくてはならないという事です。
 PHPでよく使用されるechoは短縮させることが可能です、は同じ意味になります。
 PHPはHTMLに手軽に埋め込むことができますが、これは開発規模が小さいうちにのみ使用されます、開発規模が大きくなりますと、逆に手間がかかってしまいますので、埋め込むことはせず全てPHPだけで書きます
 PHPコードのみでファイルを書く場合は終了タグを省略するとよいです、PHPはファイルの最後までくれば自動的に実行が終わるためです。PHPのみでファイルを作成する場合は積極的に終了タグを省略したほうがよいです、終了タグの後にうっかり空行を残したままでいると、意図せずそれが出力される可能性があります。

PHP習得における仕事:

 PHPは主にWebシステム開発の現場で多く利用されています、MySQL(マイエスキューエル)などのデータベースとの相性が良く、Webページを動的に生成できるため、ソーシャルゲームやECサイトなどの更新性の高いWebサービス構築に向いています。

興味を持たれた方はお気軽にお問い合わせください。

【IT用語解説】Java(ジャバ)

IT・ゲーム企業で働く技術者・営業職で使われる用語を解説します。

Java

【言語】・・・プログラム言語のことです
【WEB系サーバー】・・・WEBサーバーにて使用されます

Javaとは:

 Java(ジャバ)とは、オラクル(サン・マイクロシステムズ)が開発した言語であり、協議ではオブジェクト指向プログラミング言語であり広義ではプログラミング言語であり、プログラム実行環境および開発環境の事をいう
 Javaは、それ以前のさまざまな言語の良い部分を引き継ぎ、欠点を克服するように設計してある。
構文などはCおよび、C++(シープラス)から多くを引き継ぎ、ポインタなどの低レベルな操作は排除してある、そしてオブジェクト指向プログラミングをサポートしており、オブジェクトモデルはSmalltalk(スモールトーク)やObjective-C(オブジェクティブシー)と同様の簡潔なものを採用している。
機会言語に直接コンパイルされるのではなく、中間言語にコンパイルされ、仮想マシンの上で動作する。これにより、プラットフォームに依存しないアプリケーションソフトの開発が容易になっている。
 JavaとJavaScriptは別物であるので注意が必要であり、Javaはサーバーを主に使用されており、JavaScript(ジャバスクリプト)はクライアントでの使用が主になっているので注意が必要である。

Java用途:

 携帯用のアプリケーションやUnix系のアプリケーションで使われることが多く、またJavaサーブレットとしてWebアプリケーションを構築する場合などに使われる事が多いです、クライアントとしてJavaアプレットというものがありますが、最近ではFlash(フラッシュ)やJavaScriptが主流になっているので使用する機械は少ない状態です。
Java使用における準備:
 Javaは特定の開発環境、実行環境によって実行されるSun Microsystemsや、ソフトウェア開発キット(JDK)総合開発環境(IDE)がある。
Java使用における注意点:
 比較時に==の使用をしてしまいますと期待通りの動作がしない場合があります、比較する場合は用意されている比較メソッドを利用する必要があります。
Java標準API(エーピーアイ)には、正規表現をPattern(パターン)ではなくString(ストリング)として受け取るメソッドがいくつか存在します。String#split(String)がその一例です。ですからバックスラッシュで分割する場合は、”\ではなく””\\”を渡さなければなりません。Stringを引数に取るメソッドを使う場合はJavadoc(ジャバドック)に注意しましょう。