Category Archives: 未分類

株式会社プラスアールでは、iOS or Android or PHPのエンジニアを募集しています。
http://www.plusr.co.jp/recruit/programmer

今回は下の問題が解けたら書類選考なしにいたします。さらに、面接の際にバックジョイをプレゼントしちゃいます。

image_backjoy

求人への応募はしないという方でも、問題が解けた&弊社まで景品をとりに来ていただけるようでしたら、先着5名様に限りバックジョイをプレゼントいたします。

こぞってご応募ください。

[問題]

以下の表はそのマスとその周囲8マスに含まれている爆弾の個数を表しています。フィールドに含まれている爆弾の位置を(x,y)としたとき、その積k(=x*y)が小さい順にアルファベットを並べるとある単語が完成します。

マインスイーパの説明

解けた方は次のメールアドレスまでご連絡ください!
[完成したメッセージ]-[kの総和]@plusr.co.jp
※[]は要りません。
※作成したプログラムのGithubへのリンク又は、プログラムを添付してください。
※面接の日程についてはメールで調整致します。

求人に応募しない方は、”解けた!”というご連絡だけでも構いません。
景品だけ希望の場合はその旨ご記載ください。
例:「景品ほしい」

よろしくお願いいたします!

※求人の定員に達し次第終了しますので、解けた方はすぐにご連絡下さい。

1 2 3 4 5 6
1  1 i  2 p  2 a  1 g  1 x  1 u
2  1 c  2 t  2 e  2 h  2 r  2 a
3  1 g  2 q  1 i  2 r  3 n  3 z
4  2 r  2 d  2 g  2 o  3 e  2 o
5  2 v  2 n  2 o  1 w  3 y  2 s
6  2 b  2 t  2 r  1 p  2 w  1 a
7  2 g  2 u  2 i  1 x  3 q  2 u
8  2 e  2 t  2 s  1 m  2 x  1 n

—–7月5日追記—–
たくさんの”解けた!”連絡ありがとうございました!
お陰様で、先着5名様についてはすぐに埋まってしまいました。
(該当の方には別途ご連絡いたします)
採用へのご応募と、解けたかどうかの確認については引き続き受け付けておりますので、
是非チャレンジしてみてください。

また機会をみて開催させていただきます!
ご興味を持っていただき、ありがとうございました。
———-

みなさんこんにちは!
 
株式会社プラスアールではiOS/android問わずスマートフォンアプリ開発エンジニアを募集しています。
 
ただ単に募集をかけてもあまり面白くないので、
今回は特別に、下の問題を解けた方の書類選考を無しにいたします!
かつ、オフィスすぐそばにある野田岩のうなぎ(ランチ)をごちそういたします!
 
  
応募以外の方でも、
問題が解けた&ランチ時間帯に赤羽橋まで来ていただけるようでしたら、
野田岩のうなぎをごちそういたします。(応募以外の方は先着5名様まで)
 
 
是非チャレンジしてみてください。

[問題]
 
7×7のマス目上にチェスのコマであるクイーン(将棋の飛車と角を合わせた動き)をお互いが取り合う事のないように出来る限りの数置くことを考えます。下図のように既に2つのクイーン(♕)が置かれているとき、どのように置けばいいでしょうか?
クイーンの動き方
 
クイーンを置くべき座標(x,y)の積k(=x*y)が小さい順にアルファベットを並べるとある単語が完成します。

解けた方は次のメールアドレスまでご連絡ください!
[完成した単語]-[kの合計値]@plusr.co.jp
※[]は要りません。
 
応募以外でも、”解けた!”というご連絡だけでも構いません。
応募ではなくうなぎだけ希望の場合はその旨ご記載ください。
例:「うなぎ食べたい」
 
よろしくお願いいたします!
※応募の期限は有りません。

みなさんこんにちは。株式会社プラスアールではスマートフォンアプリ開発エンジニアを募集しています。

今回は特別に下の問題を解いた方の書類選考を無しにいたします!!

■問題

最短経路で始点Sから終点Gまで辿ったときの経路と距離をお答えください。

※最短経路を辿った時にできる英単語はプラスアールにちなんだ単語になります

答えが分かった方は以下のメールアドレス宛にお名前とご連絡先をお送りください。書類審査は無しとさせていただきます。

[最短経路]-[最短距離]-saiyou@plusr.co.jp

みなさんこんにちはこんばんは。イッシーですʕ→ᴥ←ʔ。iPhoneのブラウザではCSS3のアニメーションや3D効果が使用できます。そこで今回はCSS3を使って様々な効果を作ってみましょう。Google Chromeなどのブラウザでも見ることができますので様々な効果を楽しみつつ、様々な場で使ってみてください。

■角丸

特に目新しくありませんが、見栄えが良くなるのでとりあえず角丸にしておきます。

.element{
    border:1px solid #333333;
    -moz-border-radius:10px;
    -webkit-border-radius:10px;
    border-radius:10px;
}

ʕ→ᴥ←ʔ キュンキュン!

■影

CSS3では要素に影をつけることができます。

.element{
    border:1px solid #333333;
    -moz-border-radius:10px;
    -webkit-border-radius:10px;
    border-radius:10px;
    -webkit-box-shadow: 10px 10px 20px #bbbbbb, -3px -3px 10px #bbbbbb;
    -moz-box-shadow: 10px 10px 20px #bbbbbb, -3px -3px 10px #bbbbbb;
    box-shadow: 10px 10px 20px #bbbbbb, -3px -3px 10px #bbbbbb;
}

ʕ→ᴥ←ʔ キュンキュン!

テキストに影をつけることもできます。

.element{
    border:1px solid #333333;
    -moz-border-radius:10px;
    -webkit-border-radius:10px;
    border-radius:10px;
    -webkit-box-shadow: 10px 10px 20px #bbbbbb, -3px -3px 10px #bbbbbb;
    -moz-box-shadow: 10px 10px 20px #bbbbbb, -3px -3px 10px #bbbbbb;
    box-shadow: 10px 10px 20px #bbbbbb, -3px -3px 10px #bbbbbb;
}
.element p {
    -webkit-text-shadow: 0 -1px 1px #FFF, -1px 0 1px #FFF, 1px 0 1px #000;
    -moz-text-shadow: 0 -1px 1px #FFF, -1px 0 1px #FFF, 1px 0 1px #000;
    text-shadow: 0 -1px 1px #FFF, -1px 0 1px #FFF, 1px 0 1px #000;
}

ʕ→ᴥ←ʔ キュンキュン!

■アニメーション

お待たせしました。アニメーションです。

.element {
    border:1px solid #333333;
    -moz-border-radius:10px;
    -webkit-border-radius:10px;
    border-radius:10px;
    -webkit-box-shadow: 10px 10px 20px #bbbbbb, -3px -3px 10px #bbbbbb;
    -moz-box-shadow: 10px 10px 20px #bbbbbb, -3px -3px 10px #bbbbbb;
    box-shadow: 10px 10px 20px #bbbbbb, -3px -3px 10px #bbbbbb;
    -webkit-transition-property: opacity;
    -webkit-transition-duration: 1000ms;
}
.element:hover {
    opacity:0;
}

マウスオーバーするとアニメーションします。

ʕ→ᴥ←ʔ キュンキュン!

3D効果

以下のようにすることで立体的に回転させることができます。

.element {
    border:1px solid #333333;
    -moz-border-radius:10px;
    -webkit-border-radius:10px;
    border-radius:10px;
    -webkit-box-shadow: 10px 10px 20px #bbbbbb, -3px -3px 10px #bbbbbb;
    -moz-box-shadow: 10px 10px 20px #bbbbbb, -3px -3px 10px #bbbbbb;
    box-shadow: 10px 10px 20px #bbbbbb, -3px -3px 10px #bbbbbb;
    -webkit-perspective: 100;
    -webkit-transition-property: -webkit-transform;
    -webkit-transition-duration: 3000ms;
    -webkit-transform: rotateY(0deg);
    -webkit-transform-style: preserve-3d;
}
.element:hover {
    -webkit-transform: rotateY(180deg);
}

マウスオーバーするとアニメーションします。

ʕ→ᴥ←ʔ キュンキュン!

■JavaScriptイベント

CSS3によってプログラミングすることなく様々な表現ができるようになりました。しかし、もっと複雑なことをするにはJavaScriptとの組み合わせが必要になってきます。まずは以下のようにアニメーションの終了をキャッチしましょう。

var elm  = document.getElementById('card2011052906');
var text = document.getElementById('card2011052906text');
var flag = false;
elm.addEventListener(
    'webkitTransitionEnd',
    function(){
        flag = false;
        text.innerHTML = 'かいてんしゅーりょー';
    },
    false
);
elm.addEventListener(
    'click',
    function(){
        if(!flag){
            flag = true;
            elm.style['-webkit-transform'] = 'rotateY(180deg)';
            text.innerHTML = 'かいてん中';
        }
    },
    false
);

見ての通りCSSによるアニメーションが終了すると、webkitTransitionEndイベントが発火します。(クリックしてください)

ʕ→ᴥ←ʔ キュンキュン!

これを応用してカードを裏返す効果を演出してみます。(クリックしてください)

ʕ→ᴥ←ʔ

コードは以下のようになります。

var counter = 0;
var emoticon = ['ʕ→ᴥ←ʔ', 'ʕ•͡ᴥ•ʔ'];
var elm = document.getElementById('card2011052907');
var flag = false;
var rotate90 = function(){
    elm.removeEventListener('webkitTransitionEnd', rotate90);
    elm.getElementsByTagName('p').item(0).innerHTML = emoticon[++counter % emoticon.length];
    elm.style['-webkit-transform'] = 'rotateY(180deg)';
    elm.addEventListener(
        'webkitTransitionEnd',
        rotate180,
        false
    );
}
var rotate180 = function(){
    flag = false;
    elm.removeEventListener('webkitTransitionEnd', rotate180);
}
elm.addEventListener(
    'click',
    function(){
        if(!flag){
            flag = true;
            elm.style['-webkit-transform'] = 'rotateY(90deg)';
            elm.addEventListener(
                'webkitTransitionEnd',
                rotate90,
                false
            );
        }
    },
    false
);

90°までCSSで回転させJavaScriptで表示を入れ替え、さらに90°回転させています。

■まとめ

いかがでしょうか?丸角に画像を使っていた時代が懐かしいですね。CSS3を使えばデザイン性が向上するだけでなく、不要な画像を減らすことができます。また、Mobile SafariではCSS3の一部の機能がGPUによって処理されるため、setTimeoutを使用したjQueryのアニメーションよりもスムーズなアニメーションになります。

■注意

Mobile Safari

上述のカードのサンプルは少し修正するだけで、画像を裏返すといったものに変更が可能です。しかし、img要素にbox-shadowを適用してしまうとMobile Safariで処理に時間がかかってしまい、アニメーションが止まってしまいます。そういった場合は外側のブロック要素に対してbox-shadowを適用するようにしてください。

android

android2.1(実機・エミュレータ)のブラウザは3D Transformsは動作はします。しかし、GPUの支援がないのでカクカクしたアニメーションになります。また、android2.2(エミュレータ)のブラウザでは回転方向が異なってしまい使い物になりませんでした。この不具合はandroid3.0(エミュレータ)では修正されていました。androidのブラウザには本当に頑張ってほしい限りですね。

こんにちは。イッシーです(๑°⌓°๑)!今回は前回の続きでAWSで立てたサーバーを簡単に複製できるようAMIを作成したいと思います。社内ドキュメントをHTMLで記録しておこう的なノリです。ちなみにAmazon Linuxを使用しております。

そういえば、前回書き忘れていたので以下のコマンドでルートのパスワードを設定しましょう。

sudo passwd root

■証明書の取得

管理画面にアクセスして、「X 509証明書」で「秘密鍵」と「証明書」をダウンロードしましょう。

サーバ上でamazon コマンドを実行していく感じですね!

■証明書の転送

上述でダウンロードした2ファイルをサーバ上に転送しましょう。scpでもgitでもOKです。

■AMIの作成

Account Activityにアクセスして右上にある口座番号(ハイフン付き)をメモってください。それではAMIを作成します。

su
ec2-bundle-vol -d /mnt --privatekey [秘密鍵ファイルパス] --cert [証明書ファイルパス] --user [口座番号] --fstab /etc/fstab

使用している容量によりますが、僕は10分くらい時間がかかりました。

■S3へ転送

管理画面にアクセスして、「アクセスキーID」と「シークレットアクセスキー」をメモしてください。次に以下のコマンドを実行しs3のバケットに転送します。

ec2-upload-bundle --bucket [バケット名] --manifest image.manifest.xml --access-key[アクセスキーID] --secret-key [シークレットアクセスキー]

僕は1時間くらい時間がかかりました。ネットサーフィンでもして・・・違った、別のタスクをこなして終了を待ちましょう。

■AMIの登録

s3に転送したファイルからEC2を起動できるようにします。以下のコマンドでAMIを登録しましょう。

ec2-register [バケット名]/image.manifest.xml

もしくは以下のコマンドで登録します。

ec2-register [バケット名]/image.manifest.xml --privatekey [秘密鍵ファイルパス] --cert [証明書ファイルパス]

実行するとIDが出力されるのでメモっておいてください。

登録したAMIを確認

ec2-describe-images -o self

登録したAMIを削除

ec2-deregister [AMIのID]

個人的な感想ですが、AWSは他のサービスよりも柔軟性も高く機能も豊富です。そのため固有の操作というものが少なからずありますが、インフラを0から構築するよりははるかに楽なので頑張って覚えていきたいところです。‎(๑╹ڡ╹)