-
カテゴリー 日常 / プライベート
-
ワークパーミット(労働許可証)の取得方法【ベトナム編】
毎度、川勝です。
海外で正規で働くためにはワークパーミットが必要です。それぞれの国によって資格要件や
必要な手続きは違いますが、必要書類は似てるかもしれませんので参考にしてください。1)犯罪証明書

犯罪証明。日本語・英語・フランス語・ドイツ語・スペイン語で記載されています。 お住まいの都道府県の警察で取得できます。東京都の場合は警視庁でした。桜田門です。
http://www.keishicho.metro.tokyo.jp/tetuzuki/tokou/tokou.htm
取得にはパスポートと身分証と「提出先機関からの証明書を要求する文書等、証明書発給の必要性が確認できる書類」
の3つがいるそうです。この3つ目がわかりづらいのですが、弊社の場合ベトナム人のadminが該当書類を用意してくれたため、すぐに申請できました。
両手の5本指すべての指紋を1本ずつ撮りますのでちょっと緊張しますね^^;そもそも警視庁が物々しいのでいい経験になりました。ちなみにベトナムでも簡単に取得することができるそうですが、日本に照会するためか日数はかかるようです。
日本で取得の場合は2週間程度ですが、ベトナムで取得する場合は1か月程度かかるようです。2)健康診断結果

健康診断は日本とほとんど同じでした。血液検査の結果が二日で出たのがちょっと驚きでした。 正確にはどういう項目を網羅する必要があるのかわかりませんが、英語とベトナム語で健康である旨が記載されたドキュメントを提出しました。健康診断は日本で行うものと何ら変わりません。ひとつ特徴だったのが、HIV検査でしょうか。
「もし陽性だった場合、当局に通知します」という書類にサインする必要がありました。
特に思い当たる節もなかったのですが興味本位でもし本当に陽性だったらどうなるか聞くと、その人の経験では陽性の人に当たったことはないようですが、恐らくワークパーミットが取得できないのではとのことでした。3)大学の卒業証明書

うちの大学はすぐに発行してくれました。 これは卒業した大学ですぐに取得できます。英語で取得してベトナムに送ってもらいました。
証明書は私の大学では無料で複数枚発行してくれました。
ちなみに大卒でない場合、親会社で5年間の勤務経験が必要だそうです。また大卒であっても新卒の場合は1年間の就業経験が必要なようです。それを満たすまではワークパーミットの取得ができず、ビザの更新で対応することになります。他、記載するドキュメントや証明写真などもありますが、いつでも準備できるものばかりなので割愛します。また、これはひとつの方法であって他にもやり方はあるかもしれませんので是非お調べください。弊社の場合、既に現地法人があるので楽なほうと思います。
ベトナムは日本に対してはかなり甘い国だと思いますがそれでも上記のような書類が必要です。身近な国ではシンガポールはワークパーミットの取得が厳しくなってると聞きますし、アメリカも結構厳しいです。何かの参考になれば幸いです。
ではでは。
カテゴリー ベトナム / オフショア開発 -
【Thunderbird】保存したファイルウィンドウを閉じないようにする
どうも、Thunderbird使いのむかいだです。
ここ最近、資料をメール添付でいただくことが多く、
Thunderbirdだと勝手にダウンロードマネージャが閉じてしまって、
「なにこれ、めんどくさい…(ショートカットはあるものの…)」
と感じたので、設定がないのか調べてみました。Firefoxではダウンロードマネージャが出っ放しになるのだから、
Thunderbirdにもそういう設定がどこかにあるだろうと。…案の定、ありましたよ!
これでイライラしなくてすみますよ!やったー!
手順の詳細は以下からどうぞ~ “【Thunderbird】保存したファイルウィンドウを閉じないようにする” の続きを読む
カテゴリー 日常 / プライベート -
ローソンの麺類がオススメ
カテゴリー 日常 / プライベート -
オフィス改造計画実行委員会活動!スチールラックの設置を行いました。
-
WebGL+HTML5で3DCGを勉強してみた! Part1
どうも。営業部の伊藤です。
前回のブログで書いたように、今更感は否めないですが…最近WebGLの勉強をしています。
まだ超々初心者レベルまでしか勉強できていないですが、これはなかなか頭の体操になります。
今まであまり経験した事のない思考が必要という事もあり、抜け毛の本数が増えそうではありますが…初心者レベルになれるまでは頑張ろうと思います。という事で、復習も兼ねてWebGLを利用した3Dグラフィックの描画方法について書こうと思います。
※3DCG、WebGLに着目しているため、実装で利用するHTML、JavaScript、数学的知識の基礎については省かせていただきます。3DCGのサンプルは以下をご覧ください。

※ピカピカしているのは描画遅延ではないです。チカチカしたらすいません。。。【補足情報】
利用しているオープンソースは以下2種類となります。
○Google webgl-utils.js
setIntervalやsetTimeoutだと色々と問題が多い(複数オブジェクトの描画に向いていない、処理の効率化ができない(GPUに優しくない))ので、上記再帰処理はwebgl-utilsを利用しています。○glMatrix.js
3DCGを表現するために必要となる行列計算用ライブラリとして利用しています。
後述しますが、STEP6の座標変換行列を生成&通知のところで利用します。勉強に利用しているサイトは以下になります。
○wgld.org
初心者向けに基礎から細かくレクチャーしてくれており、非常に分かりやすいです。オススメ!!
それではサンプルをもとに実装内容を書いていきます。
3DCG描画までのSTEPは以下のようになります。STEP1 canvasエレメントを取得
STEP2 canvasからWebGLコンテキストを取得
STEP3 シェーダを生成&コンパイル
STEP4 モデルデータを用意
STEP5 モデルデータからVBO(VertexBufferObject)を生成&バインド
STEP6 座標変換行列を生成&通知
STEP7 描画命令
STEP8 STEP6~7の再帰処理(canvasをレンダリング)それでは早速STEP1から処理の内容から確認していきます。
■STEP1(canvasエレメントを取得)
WebGLを利用した3DレンダリングはHTML5で策定されたcanvasタグ上で動きますので、まずはHTML内のcanvasエレメントを取得します。
今回の場合、以下部分でエレメントを取得しています。var canvas = document.getElementById(“cube”);■STEP2(canvasからWebGLコンテキストを取得)
次に、描画処理用オブジェクトとして、STEP1で取得したcanvasエレメントからWebGLコンテキストを取得します。
このコンテキストで各種描画処理や属性の設定をするため、ここでコンテキストが取得できなれけばWebGLを利用できないブラウザという事になります。
今回の場合、以下部分でコンテキストを取得しています。gl = c.getContext(“webgl”) || c.getContext(“experimental-webgl”);
gl.clearColor(0.0, 0.0, 0.0, 1.0);
gl.enable(gl.DEPTH_TEST);canvasに”webgl”という名前のコンテキストを要求しますが、仕様が策定中の時は失敗してしまうため”experimental-webgl”という名前のコンテキストも要求します。(失敗時用)
その後、コンテキスト内部を初期化(clearColor)し、黒色に塗りつぶしています。
3行目のenable(gl.DEPTH_TEST)はコンテキストに深度(DEPTH)を計算(TEST)しておけよ!という命令です。
近くにあるものが遠くにあるものを隠すためにも描画の前に深度を把握しておく必要があります。サクサク進みますね。
以外と簡単なのでは?と僕もここまでは今までの知識で問題なく吸収できたのですが、STEP3から急に難しくなり髪の毛が数本抜けたのを覚えています。。。■STEP3(シェーダを生成&コンパイル)
まず3D関係の知識が無い人はここで壁にぶるつかるでしょう。
「シェーダ」ってなに?
ウィキペディア先生には以下のように記載されています。主にライティング(光源計算)・シェーディング(陰影処理)とレンダリング(ピクセル化)を実行するためにグラフィックリソースに対して使用するソフトウェア命令の組み合わせである。
「shade」とは「次第に変化させる」「陰影・グラデーションを付ける」という意味で、「shader」は頂点色やピクセル色などを次々に変化させるもの(より具体的に、狭義の意味で言えば関数)を意味する。
※wikipedia内の文章を引用難しい………
超々初心者なりに要約します(間違えていたらすいません)。
ソース内のコメントにも記載しておりますが、シェーダには大きく以下2種類のシェーダ存在します。1. バーテックスシェーダ(頂点シェーダ)
2. フラグメントシェーダ(ピクセルシェーダ)【バーテックスシェーダ(頂点シェーダ)】
3次元描画はポリゴンで表示する事が多く、ポリゴンは一般的に三角形の面をつなげたものが使われます(四角形を利用する事もあります)。
三角形が利用されるポイントは、三角形は頂点の位置さえ決めれば面の位置やサイズが確定するという点です。
四角形、五角形、、、それ以上の多角形も頂点だけでは面の位置やサイズを決める事はできません。
この頂点の位置を計算するのがバーテックスシェーダ(頂点シェーダ)です。
※バーテックスシェーダは頂点の位置情報だけ管理する訳ではなく、頂点に関する”全ての情報(頂点の法線、テクスチャ座標、頂点色など)”を管理します。【フラグメントシェーダ(ピクセルシェーダ)】
バーテックスシェーダ(頂点シェーダ)で頂点の位置や形状を決め、その後ラスタライズ(着色前準備)まで終えると、次にオブジェクトへの「着色」が必要になります。
この着色内容を計算、決定する役割を担うのがフラグメントシェーダ(ピクセルシェーダー)です。
色の計算だけであれば簡単に思えますが、これがそうでもないんです。
3次元を表現するため、陰影、深度、光源、重複(オブジェクトやテクスチャの重なり)、乗算(透過時の後ろのテクスチャ色)などを考慮した着色計算が必要です。
よって、上記のような色を計算するため、バーテックスシェーダ(頂点シェーダ)の情報が不可欠になります。
このシェーダ連携についてはSTEP6で書かせていただきます。シェーダの生成&コンパイルは以下部分で実施しています。
var shader;
var shaderElement = document.getElementById(id);
if (!shaderElement) {
return null;
}switch(shaderElement.type){
case “x-shader/x-vertex”:
shader = gl.createShader(gl.VERTEX_SHADER);
break;
case “x-shader/x-fragment”:
shader = gl.createShader(gl.FRAGMENT_SHADER);
break;
default:
return null;
}//子ノード取得
var source = “”;
var childNodes = shaderElement.firstChild;
while (childNodes) {
if (childNodes.nodeType == 3) {
source += childNodes.textContent;
}
childNodes = childNodes.nextSibling;
}
gl.shaderSource(shader, source); // ソース割り当て
gl.compileShader(shader); // コンパイル見慣れないエレメントタイプがありますね。
「x-shader/x-vertex」
「x-shader/x-fragment」JavaScriptファイルではなく、HTMLファイルのheader部分も見てみてください。
この2つのキーワードが上記で説明したバーテックスシェーダ(頂点シェーダ)とフラグメントシェーダ(ピクセルシェーダ)です。<script id=”vertex” type=”x-shader/x-vertex”>
attribute vec3 vertexPosition;
attribute vec2 vertexTexture;
uniform mat4 vertexMatrix1;
uniform mat4 vertexMatrix2;
varying vec2 textureCoord;void main(void) {
gl_Position = vertexMatrix1 * vertexMatrix2 * vec4(vertexPosition, 1.0);
textureCoord = vertexTexture;
}
</script>
<script id=”fragment” type=”x-shader/x-fragment”>
precision mediump float;
uniform sampler2D fragmentTexture;
varying vec2 textureCoord;void main(void) {
gl_FragColor = texture2D(fragmentTexture, vec2(textureCoord));
}
</script>中途半端にはなりますが…
ここから説明が一気に難しくなる&細かくなり始めるので今回のブログはここまでにします。ではでは。
カテゴリー 技術 / デザイン / 制作

