アーカイブ

2011年02月

カテゴリ:
このブログのメインビジュアルにもあるように、私はレゲエ好きです。
私の青春はレゲエだったと言っても過言ではありません。ということはレゲエを聴いている時は、私はいつでも青春に戻れるということです。

ラック企業に勤めている間も友達とレゲエサウンドグループを作って毎月イベントを開催していました。



よく考えるとすごい労力だったと思います。ブラック企業で青春を捨てたと書きましたが、青春の半分はブラック企業にその半分はレゲエに捧げたというのが、本当のところです。

元々、私が独学でグラフィックソフトの使い方を学んだのも自分たちのサウンドグループのイベントでかっこいいフライヤーを作りたいって動機からでした。



そんな私も最初からレゲエに興味を持った訳ではありませんでした。私は元々、高校二年の頃ターンテーブルを買ってヒップホップを中心にスクラッチの真似事などをやっていました。ターンテーブルを買ったきっかけは後に一緒にサウンドグループを結成するK君の兄貴がターンテーブルを持っていて、家に遊びにいった際に目にしてからです。その兄貴はレゲエをやっていたのですが、私は最初はあまりレゲエに興味を持ちませんでした。

それから、時がたち二十歳の成人式の日に私とK君でヒップホップとレゲエのイベントをやって、そのあとにもまたイベントを何件か一緒にやって、K君からの提案でサウンドグループを結成するにいたりました。

結成したすぐあとに、ブラック企業にも勤めるのですが、本当にいま考えてもめまぐるしい日々でした。

そんな中で必死にレゲエの事を勉強しイベントも毎月こなして、どんどんとレゲエの魅力にとりつかれていきました。

そのグループはK君と私の些細な喧嘩で解散してしまったのですが、解散後 も一緒にイベントをやったり離れていても今も仲良しで、たまに連絡を取り合っています。

レゲエの音楽の魅力を語るときりがないのですが、自分にとってはあのころ本気で情熱を傾けたものとして常に心の中にあって勇気づけてくれる友というか、とにかくすごくあたたかい存在です。ただの音楽のジャンルとしては到底くくれない、とてつもなく大きなものです。

そして、この存在。情熱は消え去ることはありません。実際にK君は新しいサウンドグループを作ってまだしっかり活動してますし、あとひとりのメンバーU君もバリバリやってます。
私も負けてはいられません。なんていったてレゲエを聴いてる限りはいつまでも青春でいられるんですから。素晴らしいです。レゲエ最高。ワンラブ。No Reggae No Life。

カテゴリ:
さてさて、前回の続きということで、
私がそのブラック会社を辞めて〜編ということでまず、ここではブラック会社を辞めた経緯を書きたいと思います。

ターニングポイントになった、人との出会い


ブラック会社に勤めて二年目でしょうか?突然、新年早々新しく入社してきた人がいました。前職は大手の印刷機器メーカーの営業をやっていたかたで当時、35〜6歳だったでしょうか。

入社の際の自己紹介とその人の雰囲気に親近感を持ってすぐに私から話しかけて早く打ち解けたのを憶えています。

その人は営業出身ということもあり、本当に話好きな明るい人でした。

いままでに会社にいなかったような人だったこともあり、当然の如くその人を忌み嫌う人たちもいました。反対勢力とでもいうのでしょうか?その人は元来、裏表のない性格の人のようで思ったことはしっかりという人だったので、それをよしとしない人達からはあからさまに態度で嫌ってるってことを表されていました。
まぁ、自分はそんなの我関せずで、いつも通りみんなとは接していました。

突然、打診された転職の誘い


そんなこんなでその人が入ってきて半年ぐらいたったあたりでしょうか?
相変わらずブラックな残業体制は続いたままだったのですが。その人が突然、「会社辞めて新しい所で働く気ないか?」みたいな感じで会社の休憩ルームで2人だけのときに誘ってきました。
話を聞いた時は多分表面上は冷静を装っていたと思うのですが、内心めちゃめちゃビビってて「条件がよければ。」みたいな感じでいったのを憶えています。
そして、「わかった。」みたいな感じで、都合のいい日に仕事終わったら飲みにでも行こうみたいか感じになりした。

転職の条件を聞いた、仕事後の居酒屋


そして、その飲み会。そこにはその人と自分以外に同期で年齢は1つ下のT君も呼ばれていました。そのT君とは入社当初からずっと同じグループで気も合い仕事終わりにもよく飲みにいったりなど、公私ともに仲良くしていた仲でした。

実際に話を聞くとその人は新しく会社を立ち上げるとのことで、その立ち上げメンバーとして2人を引き抜きたいと率直に話してくれました。

私とT君はその場で答えは出さずに、よく考えて返事すると答えました。

若い二人が迷った末に出した決断


結論から言うと、その話を受けて立ち上げメンバーに加わったのですが、T君と2人で何度も話し合って私自身もすごい心の葛藤があった中での決断でした。最終的には「失敗してもいいから、自分たちがより成長できる道を選ぼう。」とどこかの自己啓発本に書かれているような言葉ですが、それが若い2人が若いなりに真剣に悩んだ末に辿り着いた答えでした。

当時、他の同期や先輩にも「絶対に失敗する。」とことごとく止められましたが、いまでも私はその選択にはなんら後悔していません。やっぱりそういった会社で悶々と毎日働いて、心も身体も削っていく中で日々、自問自答とでもいうのでしょうか?繰り返している中で「どっちに転んだって自分の人生。自分で100%選択したなら後悔はないじゃないか?」と導き出した、光明とでもいうような答えでした。

そして、そのブラック会社を辞めて新しい会社の立ち上げに参加するのですが、そこでは本当にまた価値のある経験をさせて頂いたのですが、その話はまた次回ということで。

カテゴリ:
Javaプログラミング基礎勉強第3回
今回はこちらです。
でてきましたね。「クラス」です。今回のタイトルは「クラスを簡単に理解する。」
ということで、まず前回のおさらいということで、

変数の宣言
変数の「型」によって定まるサイズ分のメモリを確保すること
この「型」って所が非常に重要な気がします。

変数の初期化
変数の宣言によって確保されたメモリに値を書き込んで、メモリの内容と変数の内容を一致させること
ここも重要ですね。変数の初期化とは変数に値を代入すること。ですね。
そしてこれをふまえて「クラス」という概念が登場するわけですね。
とうわけで雑記です。

「クラス」を使うことで変数の組み合わせをひとつの変数であるかのように扱える。
ん〜ここらへんからややこしくなるのですが、まぁできることが増えるイメージがしますね〜。その分ややこしくなる。だからこそ、基本が大事と。
そして「クラス」を使うにはまず、「クラス」を定義しなくてはならない。

[sourcecode language="plain"]Class GeographicInfo {
double latitude;
double longitude;
}
[/sourcecode]
▲こんな感じ。「Class」をつけてクラス名を記述するんだな。クラス名の先頭は大文字か。

クラスを使う場合、そのクラス型であることを宣言する。

[sourcecode language="plain"]class GeographicInfo {
double latitude;
double longitude;
}
public class UsingGeographicInfo {
public static void main( String args[] ) {
GeographicInfo g;
g = new GeographicInfo();
g.latitude = 35.66;
g.longitude = 139.75;

System.out.println(g.latitude);
System.out.println(g.longitude);
}
}[/sourcecode]
「GeographicInfo g;」というふうな形です。プリミティブ型なら「int g;」などですよね。
変数gを宣言して確保されるメモリは、クラスの中に存在する(double型が二つあるので8byte×2)16byteではなく、すべてのクラス型変数は”アドレス”を格納されるために使うので、Javaで”アドレス”を表わす4byteのメモリが確保されるとのこと。
うん、なんとなくわかった”アドレス”って部分がちょっと引っかかったが。。Javaではアドレスを4byteで表わすってことだけたたき込んでおこう!

クラスを使うときは変数の宣言とは別に生成という手順が必要になる。
「g = new GeographicInfo();」ってな感じで生成するわけですね。この生成によって初めてクラスの中に存在する16byteメモリが確保できると。そして、クラスに必要なメモリ領域を確保することを「インスタンス化」というと。そして、メモリ内に存在するクラスの実体のことを「インスタンス(instance:事案)」とか「オブジェクト(object:物体)」と呼ぶ。
ふむふむ。
クラス内で定義された変数のことを「メンバ変数」とか「フィールド」と呼ぶ。
これもとにかくインプット。ここでは変数glatitudeとlongitudeのことですね。
Javaでは、クラス型のように先頭アドレスを参照して実際の変数にアクセスする変数の型を総称して「参照型」と呼ぶ。
日本語としても難しいですね。この図が例なのですが、
[sourcecode language="plain"]
class SimpleClass {
int x;
}
public class ExchangeReferences {
public static void main( String args[] ) {
SimpleClass a = new SimpleClass();
SimpleClass b = new SimpleClass();

a.x = 123;
b.x = 456;

b = a;

System.out.println(b.x);
}
}
[/sourcecode]
結果は、






C:\DOCUME~1\MYDOCU~1\MYJAVA~1>javac
ExchangeReferences.javaC:\DOCUME~1\MYDOCU~1\MYJAVA~1>java
ExchangeReferences
123

C:\DOCUME~1\MYDOCU~1\MYJAVA~1>

だそうです。なんとなく「123」になるのはわかるんです。「b=a」のところで上書きされたというかんじですよね。多分これが「a=b」だったらまた結果はちがいますよね。「参照型(クラス)」で宣言する変数はあくまでも「別名」であるからだということだと思うのですが、しっかり言葉として説明することはできません。。。とりあえず今のところはそれで良しとしときます。
このままつまづいたらここをもう一度しっかり学習しなおすということで。

今回は、こんな感じでした。「クラス」、そして「参照型」言葉だけとると非常に複雑なイメージがしますが、
しっかりひとつひとつ頭に入れていくと感覚としてわかってくるものだと思います。ひとつずつしっかりとつまづいたらまた、前にもどってみたいな感じでやっていければと。。。しかし、この時点でJavaスゴク楽しいです。好きです。
以上、次回また理解を深めて。。。

カテゴリ:

独学で初めたデザインの仕事


私自身、元々はDTPデザイナーというか、ほとんどオペレーターみたいな感じで印刷やデザインを含めた広告業界に入りました。
美術系やデザイン系の学校や大学にも行かず、本当に素人同然で職業訓練校経由で広告業界に入ってきました。
その職業訓練校では特にパソコンの基礎、ExcelとWordの操作とビジネスマナーのみを習ったのみで、特にグラフィックソフトを使ってなんたらってのはやりませんでした。
それでも広告業界に入れたのは、独学でグラフィックソフトの操作をある程度習得したのと、その熱意と自分の若さがあったからだと思います。

とにかく最初はデザインの仕事に就くために必死だった


「残業は当たり前の世界だよ。」
と言われ、
「体力には自身があります!」
と言い切っちゃたあたりが、更に担当者の心をグッと掴んだんではないかと思います。今から考えると本当に思うつぼだなぁと思いますが、当時はデザインの仕事がしたくてもう必死だったので、仕方なかったと思います。

最初の三ヶ月は給料ゼロ


そして、入った広告業界。
最初の三ヶ月は給料なしで、正確には失業給付をもらいながら研修という形で広告データの作成の練習をしていました。しかし私は短期特例という失業給付のもらい方をしていたので、その頃は本当に給料なしでやっていました。それでも、この業界で働きたい一心で必死で練習しました。
そして三ヶ月が過ぎアルバイト扱いで入社させてもらい、本格的な仕事が始まりました。
初めは本当に簡単な仕事ばかりで、例えば当時はMacOS9からOSXへの移行時期だったので、OS9で作られた過去のデータはOSXではフォントがおかしくなるので膨大な過去のデータをひたすらOSXでフォント置換したりなど、もう本当に雑用の雑用ばっかりやらされてました。
そして半月も立たないうちに一日に2〜3時間残業するようになり、残業代でそこそこ稼げるようになりました。

研修期間後すぐに正社員に!


そして、翌月になって経理の方から「年金手帳持ってきて」と言われ、
その月から正社員になりました。今考えてみるとバイトで残業代を稼がられるより正社員にしたほうが会社側にとって都合がよかったからって間違いなく思いますが、当時は正社員になれて本当に嬉しかったのを憶えています。

正社員になってからの過酷な労働環境


そして、正社員になってからの日々は本当に地獄というか青春を捨てたと、いうか本当に過酷な日々でした。
残業、徹夜は当たり前で、もちろん残業代は僅かしか払われません。それでも沖縄の同年代では貰ってるほうの給料でしたが、その給料もストレス発散の飲み代などにほとんど消えてしまいましたし、報われない感じは否めませんでした。なんか、いま考えても本当によくやってたなぁ〜と思います。
そして本当に苦しかったなぁ〜って思います。あの苦しさがあったから今の自分があるとも思いますし、あの時間でどんだけ胃を悪くしたんだろうと悔やんでなりません。(2年後、健康診断で慢性胃炎と診断される。)

そうです。そこはブラックでした。


ブラック会社に勤めてるんだけど、もう限界かもしれない。を自でいく労働環境でしたね。

会社の上司にも恵まれず、あんなことやこんなこと(ちょっとこのブログて書くのは差し控えさせていただきます。完全に2chネタです。)、今では笑えますが本当に当時は笑えませんでした。

その会社の2chのスレを見ると今でもお腹が痛くなります。

そんなこんなでPart1はここらへんにしてまた次回、その会社を辞めて…編にいければと思います。
しぇば!

カテゴリ:
前回に続きましてこちらさまより、Javaプログラミングの初級の勉強をしております。

そして、今回は「変数」でございます。

私自身今まで、色々なスクリプト言語(ActionScript2.0,Javascript,PHP,Pythonなど)を
かじりかじりやってきたので何となく変数については理解しているつもりでした。
要するに値を箱のような感じで一時的に格納しておくみたいな?そんなかんじで。
しかし、今回この記事を読んで変数のちがった捉え方というか、本質をとらえたような説明に
目からうろこ状態で、同時になんかいままでより変数の捉え方がしっくりきたって感じがしました。
そんなこんなで、とりあえず雑記していきます。



変数の宣言とはメモリを必要な分確保するということ。


これがまさしく目からうろこだったんですけど、核心をついててなんか頭がスカーンとしました。
そうか、「箱」の例え話はあくまで例え話だったんだぁと。そして若干、変数の概念をわかりづらくしていたんだなぁと。
でも、自分自身がプログラムを一切かじったことがなくて上記のように「変数とはメモリを〜」と説明されても理解しがたいかもしれないですし、むずかしいところだなと思いました。でも、この記事の一連の説明と図を見ると理解できるのかと。。。まぁとにかく自分はなんかしっくりきました。そして、ActionScript2.0から3.0になったときに変数の型を指定しなきゃいけなくなって、なんだよめんどくせ〜と思ってたのが、あれはメモリを確保するためだったのか〜それによって処理を早くするためだったのかな?と思い、スッとしました。


a = 1;には「1」の値が代入されたわけではない。

変数の説明図

上記の画像をみていただければなんとなくイメージできるかとおもうのですが、同じ「1」でも変数の型次第で代入されている値がちがうということです。int型なら「00000001」、byte型なら「01」です。これも目からうろこですね。いや〜型もしっかり覚えなきゃ〜


















































型名 サイズ 値の範囲
整数 byte 1bytes -128〜+127
short 2bytes -32768〜+32767
int 4bytes -2147483648〜+2147483647
long 8bytes -9223372036854775808〜+9223372036854775807
浮動少数 float 4bytes ±3.40282347E+38〜±1.40239846E-45
double 8bytes ±1.79769313486231570E+380〜±4.94065645841246544E-324
文字 char 2bytes 0〜65535(Unicode表現)
論理 boolean (1bytes) true/false

そして、上記の表にあるように例えば「int」の型を指定すると「4bytes」のメモリが確保されるとのこと。

変数を初期化しないで実行するとエラーになる。

ん、これも基本だな。初期化するためにはなにか値を代入すればいいということですね。

intやbyteなどの型を総称してプリミティブ型(基本データ型)と呼ぶ。

「プリミティブ」とは英語で「原始的な」という意味だそうです。CPUで直接メモリの内容を読み書きして計算させるという「プリミティブ」な用途で使われるからだそうです。ふむふむ、これから「プリミティブ」と言われてもビビらなくなりそうです。



そんな感じで、以上目からうろこの「変数」Part1でした。

カテゴリ:
現在こちらのサイトを見ながらJavaのプログラミングの基礎を勉強しております。

え?なんでJavaかって?

だって、前働いていたウェブサービスの会社でもJavaを使ってたし、

いまScalaLiftだって出てきてるし、Scala勉強会@東北もあるし、Scala勉強会@東北の勉強会に参加したいけど、Javaがわからないとチンプンカンプンだと思うし、Scala波に乗り遅れたくないし・・・

など色々あって勉強しています。

ウェブデザイナーでそこまで必要か?という方もいられるかもしれませんが、
やはり、Java使いの魂というか本質的な所を少しでもわかっていると、
Javaプログラマの方と一緒に働く時にうまく会話ができるんじゃないかと思うところもあっての勉強です。

前一緒に働いていたJavaプログラマの方の今でも印象に残ってる言葉は
「名前には魂を込めなきゃ!」
です。いままで何となく画像やファイルに名前をつけていた僕に降りてきた雷のような言葉でした。

そしてウェブデザイナーは特に名前を略するのを好む(image = img とか)のですが、
そのプログラマの方はそれも好ましくないというふうにおっしゃってました。
その理由としてはJavaの作法として冗長になっても意味のわかる名前のつけかたをするみたいなことがあるということで、そういうのがないとちがう人のファイルを触る時にわからなくなってしまいうとのことでした。まさにその通りだと。。。

それ以来、名前をつける際は「魂」を込めるように気をつけております。(DTPではちょっと手を抜き気味ですが(笑))

そんなこんなで、長い前置きになりましたが勉強中に大事というか覚えておきたいなぁと思ったことを雑記いたします。



プログラムにはコンパイラ型とインタプリタ型がある。


これもなんかふぉあ〜んとしか覚えてなかったのですが、PHPやJavascriptはインタプリタ型でCやJavaはコンパイラ型ということですよね。静的型付け言語と動的型付け言語とも言うみたいです。コンパイラとはソースファイルを実行可能な形式のファイルに変換するプログラムのことだそうです。そして、Javaのコンパイラはソースファイルをプログラムが実行可能な形式のファイルには変換せず中間コードを生み出すとのこと。そしてそのままではCPUが理解できないので「バーチャルマシン」という方式を使って実行させるそうです。もしかしてこれがJavaVMのことか!


実行可能なファイルを作成するためのプログラムをまとめて「開発環境」という。

Java 2 SDKのことですね。ふむふむ。Javaの開発環境を「JDK」と呼ぶ事もある。

「.java」のファイルを実行すると「.class」ファイルが生成される。

これがコンパイルすること。Javaプログラマの方のデスクトップの覗き込んだ時に.java以外に.classが大量にあったのはこれだったのか!

Javaにはアプリケーション構築に必要なプログラムの部品を集めた「パッケージ」という仕組みがある。

「System.out.println」のような文も開発環境で標準に用意された「パッケージ」を使っている。そして基本的なパッケージ(コアパッケージ)は変更してはいけない。バーチャルマシンはコンパイラが生成した中間コードと、あらかじめ用意されたコアパッケージの中間コードの両方を解釈してプログラムを実行する。そしてコアパッケージの中間コードはrt.jarというファイルに格納されている。そこからバーチャルマシンは必要な中間コードを取り出して実行している。





以上、本当に初歩の初歩ですが。
自分なりの雑記でした。Scala・Lift目指してコツコツ勉強していくぞ〜。
(三日坊主になりませんように・・・)
ってかこの間、PythonでGoogleAppEngineとかいっといてって感じですね(笑)
でもきっとJavaを学べばそこにも生きてくる気がいたします。。。

このページのトップヘ

見出し画像
×