<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:snf="http://www.smartnews.be/snf">
  <channel>
    <title>IoTBank テックブログ</title>
    <link>https://www.wantedly.com/stories/s/iotbank-techblog</link>
    <description></description>
    <pubDate>Fri, 17 Sep 2021 12:01:38 +0900</pubDate>
    <item>
      <guid>https://www.wantedly.com/companies/company_4811466/post_articles/344033</guid>
      <link>https://www.wantedly.com/companies/company_4811466/post_articles/344033</link>
      <dc:creator id="151966801" nameJa="" nameEn="Koji Kubo" avatarUrl="https://images.wantedly.com/i/5hspm1y?w=200" job="" description="テレビの放送作家、ガラケーコンテンツ製作、androidアプリ製作、VRコンテンツ製作を経て、Pythonistaになったおじさんです。&#10;"/>
      <pubDate>Fri, 17 Sep 2021 12:01:38 +0900</pubDate>
      <description>どうも、ガジェット好きPyおじです。ウチの周りには野良猫が多く、糞害、車のボンネットに乗る、自転車の前かごにスッポ...</description>
      <title>【IotBank テックブログ】野良猫を退治したい#1</title>
      <content:encoded>
        <![CDATA[<div><p><span>どうも、ガジェット好きPyおじです。</span></p><p><span>ウチの周りには野良猫が多く、糞害、車のボンネットに乗る、自転車の前かごにスッポリはまってくつろぐ、など、大変に迷惑しております。</span></p><p><span>そこで、なんとか野良猫を追っ払うために、私は考えました。</span></p><h2><span>使ってないスマートフォンのカメラを入力にして、猫を検知したら「ガオー」と音声が流れるというアプリを作って、追っ払ってやろうと！</span></h2><p><span>流れはこうです。</span></p><ol><li value="1"><span>スマートフォンのカメラで１秒毎に撮影。jpgをAPIに投げる</span></li><li value="2"><span>APIで受け取った画像から、猫を検知する。結果をスマートフォンに返す。</span></li><li value="3"><span>カメラのFlashを焚いてもいいが、昼間も機能させたいのでスマートフォンから音を出し驚かす。</span></li></ol><p><span>とりあえず、画像認識機能から手をつけようと思いまして、後学（向学、好学）のために、Kerasの有りモノのVGG16モデルに</span><a href="http://host.robots.ox.ac.uk/pascal/VOC/voc2012/#devkit" target="_blank" rel="nofollow noopener"><span>PASCAL VOC2012の画像</span></a><span>を食わせて、</span><a href="http://host.robots.ox.ac.uk/pascal/VOC/voc2012/htmldoc/devkit_doc.html#SECTION00031000000000000000" target="_blank" rel="nofollow noopener"><span>猫と猫以外</span></a><span>に２クラス分類させてみました。</span></p><p><span>ただ、正直、VGG16モデルをそのまま使って、猫を検知させたほうが精度は良いです。その場合、Egyptian_catとかPersian_catとかtiger_catというラベルが返ってきます。</span></p><h3><span>- 前処理</span></h3><p><span>で、VOC2012のデータですが、使うのは</span></p><p><span>VOCdevkit/VOC2012/JPEGImages/*.jpg</span></p><p><span>VOCdevkit/VOC2012/Annotations/*xml</span></p><p><span>でして、画像ファイル名とラベルを紐付けたDataFrameを作っちゃいましょう。</span></p><pre class="language-python" tabindex="0"><code class="language-python"><span># xmlからDataFrameを作成
def xml_2_df(xmlFiles):
    image_id = 0
    dic_list=list()
    for file in xmlFiles:
        annotation_path = file
        image = dict()
        doc = xmltodict.parse(
            open(annotation_path).read(), force_list=(&#39;object&#39;))
        # jpg名
        image[&#39;file_name&#39;] = str(doc[&#39;annotation&#39;][&#39;filename&#39;])
        image[&#39;height&#39;] = int(doc[&#39;annotation&#39;][&#39;size&#39;][&#39;height&#39;])
        image[&#39;width&#39;] = int(doc[&#39;annotation&#39;][&#39;size&#39;][&#39;width&#39;])
        # ラベル
        image[&#39;label&#39;] = str(doc[&#39;annotation&#39;][&#39;object&#39;][0][&#39;name&#39;])
        dic_list.append(image)
    
    df_load = pd.DataFrame(dic_list)
    return df_load


path = &quot;VOCdevkit/VOC2012/Annotations/&quot;
trainXMLFiles = glob.glob(os.path.join(path, &#39;*.xml&#39;))
df_images = xml_2_df(trainXMLFiles)
df_images</span></code></pre><p><br></p><p><br></p><figure class="image-wrapper photo-viewer-opener" data-original-image-url="https://images.wantedly.com/i/48SQP2m"><img src="https://images.wantedly.com/i/48SQP2m" width="334" height="351" alt=""></figure><p><span>DataFrameができました。</span></p><p><span>教師データX、正解ラベルYを用意しましょう。</span></p><pre class="language-python" tabindex="0"><code class="language-python"><span>from keras.preprocessing.image import array_to_img, img_to_array, load_img
from keras.utils import np_utils
from tensorflow.keras.applications.vgg16 import preprocess_input

# 画像
input_dirpath = &#39;VOCdevkit/VOC2012/JPEGImages/&#39;

# サブディレクトリ配下の画像（パス）を取得する。
img_files = glob.glob(os.path.join(input_dirpath, &#39;*.jpg&#39;))

X_train = []
X_test  = []
y_train = []
y_test  = []

IMAGE_SIZE = 112

X_data=[]
Y_data=[]
# 画像パスから行列として読み込む
for img_path in img_files:
    temp_img = load_img(img_path, target_size=(IMAGE_SIZE,IMAGE_SIZE))
    # np.arrayへ変換 (IMAGE_SIZE, IMAGE_SIZE, 3)の行列
    img_arr  = img_to_array(temp_img)
    # 画素値を0から1の範囲に変換
    X_ = preprocess_input(img_arr)
    # listに突っ込む
    X_data.append(X_)
    basename = os.path.basename(img_path)
    # ラベルデータ
    row=df_images.loc[df_images[&#39;file_name&#39;] ==basename]
    # listに突っ込む
    Y_data.append(row[&#39;label&#39;].values[0])
    
# クラスの形式を変換 出力層が１なのでone hot しない
#Y_data = np_utils.to_categorical(Y_data, 2)
# arrayに変換
X_data = np.asarray(X_data)
Y_data= np.asarray(Y_data)</span></code></pre><p><br></p><p><span>VGG16モデルを使った２クラス分類は調べれば沢山出てくるのでここでは書きませんが、出力層が</span></p><pre class="language-python" tabindex="0"><code class="language-python"><span>model.add(Dense(1, activation=&#39;sigmoid&#39;))</span></code></pre><p><span>なので、0.5を閾値にして猫が写った画像かそうじゃないかの判定までは出来ました。</span></p><p><span>次は、aws lambdaを使って、画像の判定をAPI化してみようと思います。</span></p><p><span>つづく。。。</span></p></div>]]>
      </content:encoded>
      <media:thumbnail>https://d2v9k5u4v94ulw.cloudfront.net/small_light(dw=1440,dh=630,da=s,ds=s,cw=1440,ch=630,cc=FFFFFF)/assets/images/7551228/original/4f4aa564-b4de-4629-92e9-629ee5e449cf?1631846012</media:thumbnail>
    </item>
    <item>
      <guid>https://www.wantedly.com/companies/company_4811466/post_articles/343225</guid>
      <link>https://www.wantedly.com/companies/company_4811466/post_articles/343225</link>
      <dc:creator id="152334572" nameJa="" nameEn="Yutaka Ebina" avatarUrl="https://images.wantedly.com/i/jbhiAZD?w=200" job="" description="Webのデザイン、コーディングからスタートしています。最近ではWebとアプリに関するディレクション業務まで比較的幅広く行う機会も増えてきています。"/>
      <pubDate>Fri, 10 Sep 2021 12:01:47 +0900</pubDate>
      <description>IotBankでは複数のサービスをリリースしています。それぞれのサービス毎にLP（ランディングページ）を公開してい...</description>
      <title>【IotBank テックブログ】Webサイト運営でABテストを活用 〜その1〜</title>
      <content:encoded>
        <![CDATA[<div><p><span>IotBankでは複数のサービスをリリースしています。それぞれのサービス毎にLP（ランディングページ）を公開しています。</span></p><h3><code><strong style="font-weight: 600; font-family: monospace; word-wrap: break-word;">子供見守りGPS まもサーチ</strong></code></h3><figure class="image-wrapper photo-viewer-opener" data-original-image-url="https://images.wantedly.com/i/eNKXQtg"><img src="https://images.wantedly.com/i/eNKXQtg" width="1495" height="852" alt=""></figure><h3></h3><h3><strong style="font-weight: 600;">CO2センサー まもセンサー Air</strong></h3><figure class="image-wrapper photo-viewer-opener" data-original-image-url="https://images.wantedly.com/i/SGoY3dX"><img src="https://images.wantedly.com/i/SGoY3dX" width="1633" height="711" alt=""></figure><p><br></p><p><span>LP（ランディングページ）ではサービスの情報をわかりやすく掲載するだけではなく、サービスの認知や購入になるべく結び付けられるようにAnalyticsの分析から改善や検証をしています。</span></p><p><span>改善、検証の1つの方法としてABテストを行っています。IotBankでははLP（ランディングページ）のABテストでGoogle Optimize（グーグル・オプティマイズ）を導入しております。</span></p><p><span>今回はGoogle Optimize（グーグル・オプティマイズ）でのABテストについて触れたいと思います。</span></p><h2><strong style="font-weight: 600;">ABテストとは</strong></h2><p><span>Google Optimize（グーグル・オプティマイズ）に触れる前に簡単にABテストについてです。</span></p><p><span>ABテストとはLP（ランディングページ）の中でコンテンツの内容をAパターン、Bパターンのように2つ用意し、特定の期間内でどちらが狙った成果を得ることができたかをテストするWebマーケティング施策の一つです。</span></p><figure class="image-wrapper photo-viewer-opener" data-original-image-url="https://images.wantedly.com/i/eb2zwNs"><img src="https://images.wantedly.com/i/eb2zwNs" width="1152" height="582" alt=""></figure><p><span>上記の図のようにコンテンツの内容を一部変更し、どちらのパターンがより狙いの効果が出るのか検証しよい結果のパターンを採用していくというようなテスト方法です。</span></p><p><span>ABテストは前提としてWebサイト内の小さな改善を積み重ねる施策です。大きなコストをかけずに、ピンポイントで課題のあるコンテンツや構成を見きわめたり改善することができます。</span></p><h2><span>ABテストのポイント</span></h2><p><span>では実際にABテストを行う際のポイントです。ABテストに関するセミナーで学んだことやネットの情報を中心にまとめています。</span></p><h3><strong style="font-weight: 600;">1 目先の勝率を追わないこと</strong></h3><p><span>ABテストの敷居は低いため簡単なボタンの変化などからスタートさせるというような場合も多いかと思います。しかし簡単な内容では大きく差が出ない傾向がABテストにはありますので、目先ではなく大きな目標に向けて改善する内容を選定することからスタートします。</span><br><span>選定した目標によっては長期時間が必要で一定時間経過後に効果が伸びるというような場合も多くありますのでゴールを意識してコツコツ運用することを意識してテストを行います。</span><br><br><span>例）住宅ローンサイトでのテスト</span><br><span>ユーザーの理解＝メインターゲットのセグメントを理解することがサイトのコンテンツ改善へと直結して行きます。</span><br><span>家が決まっている4割、借り換え4割、家が決まっていない2割とセグメントが存在している場合、全てのユーザーに同じコンテンツ、導入導線を用意しコンバージョンボタンだけを変化させてABテストをしても思ったような効果は得られない場合が多いです。</span><br><span>メインターゲットを絞り込み、メインターゲットに対しての訴求できるコンテンツでABテストを行います。</span><br><span>ターゲットに対して導線分けやコンテンツデザインを修正をするということがその場合は有効です。</span><br><span>ターゲット分析と導線変更でコンテンツの制作量は多くなりコストはかかり一見遠回りではありますが、大きな目標に向けての改善テストとなり長期的に考えると効果は大きくなると予想できます。</span></p><h3><strong style="font-weight: 600;">2 コンテンツの影響度をはかる</strong></h3><p><span>全てのコンテンツが同一の影響を及ぼしているわけではないため、伝えたい内容以外で削除できるコンテントがないか検討します。本当に影響のあるコンテンツを厳選していく削除のABテストが有効です。</span><br><span>コンテンツ削除を行いページをシンプルにすることでフォーカスを絞り込んで閲覧いただく効果が期待できます。ABテストではユーザーの興味のあるコンテンツをより具体的に把握できるようになります。</span></p><h3><strong style="font-weight: 600;">3 ゴールに近いページから実施す</strong><span>る</span></h3><p><span>例）フォームがゴールの場合</span><br><span>フォームに触れずに離脱→フォーム以前の問題</span><br><span>フォームに触れて離脱→フォームの項目</span><br><span>フォームの送信で離脱→エラー</span><br><span>このようにケース分けができるので、それぞれの場合で影響力の高いコンテンツをまず判断します。ゴールに近いところでABテストを行うことで、コンバージョンの要因がわかるようになり、改善に直結したABテストが可能となります。</span></p><h2><span>まとめ</span></h2><p><span>ABテストではターゲットの分析を行い課題を抽出することが第一歩となっています。そしてABテストを活用してゴールに近い部分から予測、改善のABテストをコツコツ繰り返して行くことで大きな結果につながっていきます。</span></p><p><span>次回はGoogle Optimize（グーグル・オプティマイズ）を活用しての実践編〜その2〜として書いていきたいと思います。</span></p><h2><span>参考リンク</span></h2><p><strong style="font-weight: 600;">セミナー　　2回に1回は勝つABテストの考え方</strong></p><p><a href="https://contentsquare.gaprise.jp/seminar/210720" target="_blank" rel="nofollow noopener"><span>https://contentsquare.gaprise.jp/seminar/210720</span></a></p><p><strong style="font-weight: 600;">無料で始めるABテスト</strong></p><p><a href="https://www.uncovertruth.co.jp/blog/analyst_blog/cro-webmarketing-analytics-20181121-1/#2-2" target="_blank" rel="nofollow noopener"><span>https://www.uncovertruth.co.jp/blog/analyst_blog/cro-webmarketing-analytics-20181121-1/#2-2</span></a></p></div>]]>
      </content:encoded>
      <media:thumbnail>https://d2v9k5u4v94ulw.cloudfront.net/small_light(dw=1440,dh=630,da=s,ds=s,cw=1440,ch=630,cc=FFFFFF)/assets/images/7419581/original/9d107392-da48-4b77-be0c-f11fb997fc92?1630047063</media:thumbnail>
    </item>
    <item>
      <guid>https://www.wantedly.com/companies/company_4811466/post_articles/343103</guid>
      <category>Laravel</category>
      <category>採用</category>
      <category>開発</category>
      <category>自社サービス</category>
      <category>テックブログ</category>
      <link>https://www.wantedly.com/companies/company_4811466/post_articles/343103</link>
      <dc:creator id="152148366" nameJa="新井 弘" nameEn="" avatarUrl="https://images.wantedly.com/i/ZPnbpPK?w=200" job="" description="Webエンジニアとして様々な受託案件や自社サービスに携わってきました。現在はIoTサービスのバックエンド側の設計・開発・テストを行なっています。">新井 弘</dc:creator>
      <pubDate>Fri, 03 Sep 2021 00:01:26 +0900</pubDate>
      <description>こんにちは、サーバー側で自社サービスのスクリーンショットを撮る必要出てきたので、そのお話を簡単にします。スクレイピ...</description>
      <title>【IotBank テックブログ】PuPHPeteerでスクレイピングを行う</title>
      <content:encoded>
        <![CDATA[<div><p><span>こんにちは、サーバー側で自社サービスのスクリーンショットを撮る必要出てきたので、そのお話を簡単にします。</span></p><p><span>スクレイピングはPythonで行うと言う方も多いと思いますが、弊社のバックエンドはLaravelを使ってシステム開発しておりますのでPHPでスクレイピングを行いました。</span></p><p><span>ライブラリで有名どころはGoutteやseleniumなどありますが、今回は</span><a href="https://github.com/rialto-php/puphpeteer" target="_blank" rel="nofollow noopener"><span>PuPHPeteer</span></a><span>を使用しました。</span></p><p><span>PuPHPeteerはNodeライブラリである</span><a href="https://github.com/puppeteer/puppeteer" target="_blank" rel="nofollow noopener"><span>Puppeteer</span></a><span>をPHPでも利用出来るようにしたもので、Headless Chrome, Firefoxを使ってのスクレイピングも簡単に行えます。</span></p><p><span>スクリーンショットを撮るサンプル</span></p><blockquote><span>use Nesk\Puphpeteer\Puppeteer;</span><br><br><br><span>$puppeteer = new Puppeteer([</span><br><span>    &#39;executable_path&#39; =&gt; {node_path},</span><br><span>]);</span><br><span>$browser = $puppeteer-&gt;launch([&#39;args&#39; =&gt; [&#39;--no-sandbox&#39;, &#39;--disable-setuid-sandbox&#39;]]);</span><br><br><span>$page = $browser-&gt;newPage();</span><br><span>$page-&gt;goto(&#39;</span><a href="https://example.com" target="_blank" rel="nofollow noopener"><span>https://example.com</span></a><span>&#39;);</span><br><span>$page-&gt;screenshot([&#39;path&#39; =&gt; &#39;example.png&#39;]);</span><br><br><span>$browser-&gt;close();</span></blockquote><p><span>オプションでサイズの変更したりフルページスクリーンショットなども指定出来ます。</span></p><p><span>サイズ変更したい場合</span></p><blockquote><span>use Nesk\Puphpeteer\Puppeteer;</span><br><br><br><span>$puppeteer = new Puppeteer([</span><br><span>    &#39;executable_path&#39; =&gt; {node_path},</span><br><span>]);</span><br><br><span>$browser = $puppeteer-&gt;launch([&#39;args&#39; =&gt; [&#39;--no-sandbox&#39;, &#39;--disable-setuid-sandbox&#39;]]);</span><br><br><span>$page = $browser-&gt;newPage();</span><br><span>$page-&gt;goto(&#39;</span><a href="https://example.com" target="_blank" rel="nofollow noopener"><span>https://example.com</span></a><span>&#39;);</span><br><br><span>// サイズ指定</span><br><span>$page-&gt;setViewport([</span><br><span>　　　　&#39;width&#39;  =&gt; {width},</span><br><span>       &#39;height&#39; =&gt; {height},</span><br><span>]);</span><br><span>$page-&gt;screenshot([&#39;path&#39; =&gt; &#39;example.png&#39;]);</span><br><br><span>$browser-&gt;close();</span></blockquote><p><span>フルページで撮りたい場合</span></p><blockquote><span>use Nesk\Puphpeteer\Puppeteer;</span><br><br><br><span>$puppeteer = new Puppeteer([</span><br><span>    &#39;executable_path&#39; =&gt; {node_path},</span><br><span>]);</span><br><br><span>$browser = $puppeteer-&gt;launch([&#39;args&#39; =&gt; [&#39;--no-sandbox&#39;, &#39;--disable-setuid-sandbox&#39;]]);</span><br><br><span>$page = $browser-&gt;newPage();</span><br><span>$page-&gt;goto(&#39;</span><a href="https://example.com" target="_blank" rel="nofollow noopener"><span>https://example.com</span></a><span>&#39;);</span><br><br><span>// フルページ指定</span><br><span>$page-&gt;screenshot([&#39;path&#39; =&gt; &#39;example.png&#39;, &#39;fullPage&#39; =&gt; true]);</span><br><br><span>$browser-&gt;close();</span></blockquote><p><br></p><p><span>また、スクリーンショットを撮る他にもDOM操作をしてゴニョゴニョしたりも出来ます。</span></p><p><br></p><p><span>Pタグの中身を取得</span></p><blockquote><span>use Nesk\Puphpeteer\Puppeteer;</span><br><br><br><span>$puppeteer = new Puppeteer([</span><br><span>    &#39;executable_path&#39; =&gt; {node_path},</span><br><span>]);</span><br><br><span>$browser = $puppeteer-&gt;launch([&#39;args&#39; =&gt; [&#39;--no-sandbox&#39;, &#39;--disable-setuid-sandbox&#39;]]);</span><br><br><span>$page = $browser-&gt;newPage();</span><br><span>$page-&gt;goto(&#39;</span><a href="https://example.com" target="_blank" rel="nofollow noopener"><span>https://example.com</span></a><span>&#39;);</span><br><br><span>// Pタグの中身を取得 </span><br><span>foreach ($page-&gt;querySelectorAll(&#39;p&#39;) as $el) {</span><br><span>    var_dump($el-&gt;getProperty(&#39;textContent&#39;)-&gt;jsonValue());</span><br><span>}</span><br><br><span>$browser-&gt;close();</span></blockquote><p><br></p><p><span>検索フォームに入力して検索結果をスクリーンショット</span></p><blockquote><span>use Nesk\Puphpeteer\Puppeteer;</span><br><br><br><span>$puppeteer = new Puppeteer([</span><br><span>    &#39;executable_path&#39; =&gt; {node_path},</span><br><span>]);</span><br><br><span>$browser = $puppeteer-&gt;launch([&#39;args&#39; =&gt; [&#39;--no-sandbox&#39;, &#39;--disable-setuid-sandbox&#39;]]);</span><br><br><span>$page = $browser-&gt;newPage();</span><br><span>$page-&gt;goto(&#39;</span><a href="https://ec.mamosearch.jp/" target="_blank" rel="nofollow noopener"><span>https://ec.mamosearch.jp/</span></a><span>&#39;);</span><br><br><span>// 検索フォームに入力して検索</span><br><span>$page-&gt;type(&#39;input[name=&quot;name&quot;]&#39;, &#39;まもサーチ&#39;);</span><br><span>$page-&gt;click(&#39;button, input[type=&quot;submit&quot;]&#39;);</span><br><br><span>$page-&gt;setViewport([</span><br><span>    &#39;width&#39;  =&gt; 1920,</span><br><span>    &#39;height&#39; =&gt; 1440,</span><br><span>]);</span><br><span>$page-&gt;screenshot([&#39;path&#39; =&gt; storage_path(&#39;app/public/&#39;) . &#39;example.png&#39;]);</span><br><br><br><span>$browser-&gt;close();</span></blockquote><p><br></p><p><br></p><figure class="image-wrapper photo-viewer-opener" data-original-image-url="https://images.wantedly.com/i/Rn1ZcuE"><img src="https://images.wantedly.com/i/Rn1ZcuE" width="1920" height="1440" alt=""></figure><p><br></p><p><span>他社のサービスなどをスクレイピングする時は禁止していないか規約を確認して、相手のサーバーに負担をかけないように注意しましょう。</span></p></div>]]>
      </content:encoded>
      <media:thumbnail>https://d2v9k5u4v94ulw.cloudfront.net/small_light(dw=1440,dh=630,da=s,ds=s,cw=1440,ch=630,cc=FFFFFF)/assets/images/7417299/original/53f8ea5a-8737-48a3-909e-9b5bbeb28b21?1630031873</media:thumbnail>
    </item>
    <item>
      <guid>https://www.wantedly.com/companies/company_4811466/post_articles/340867</guid>
      <category>採用</category>
      <category>開発</category>
      <category>チーム</category>
      <category>サービス</category>
      <link>https://www.wantedly.com/companies/company_4811466/post_articles/340867</link>
      <dc:creator id="147005908" nameJa="天野 高志" nameEn="" avatarUrl="https://lh3.googleusercontent.com/a-/AOh14GhECisDbVnprJAxxK1iEPlkuU0Ryh0kK4DSN2my=s96-c" job="その他エンジニア" description="オンプレミスのサーバ、ネットワーク管理などデータセンターでのエンジニアからはじめ、アプリケーション開発、クラウドでの開発などを経験しました。&#10;いろいろな業務を経験し...">天野 高志</dc:creator>
      <dc:creator id="151966801" nameJa="" nameEn="Koji Kubo" avatarUrl="https://images.wantedly.com/i/5hspm1y?w=200" job="" description="テレビの放送作家、ガラケーコンテンツ製作、androidアプリ製作、VRコンテンツ製作を経て、Pythonistaになったおじさんです。&#10;"/>
      <dc:creator id="152334572" nameJa="" nameEn="Yutaka Ebina" avatarUrl="https://images.wantedly.com/i/jbhiAZD?w=200" job="" description="Webのデザイン、コーディングからスタートしています。最近ではWebとアプリに関するディレクション業務まで比較的幅広く行う機会も増えてきています。"/>
      <dc:creator id="152148366" nameJa="新井 弘" nameEn="" avatarUrl="https://images.wantedly.com/i/ZPnbpPK?w=200" job="" description="Webエンジニアとして様々な受託案件や自社サービスに携わってきました。現在はIoTサービスのバックエンド側の設計・開発・テストを行なっています。">新井 弘</dc:creator>
      <pubDate>Fri, 27 Aug 2021 00:02:19 +0900</pubDate>
      <description>この度、弊社 開発チームのことを知ってもらうためにテックブログをはじめました。現在、研究している事や開発中に採用し...</description>
      <title>【IotBank テックブログ】テックブログはじめました</title>
      <content:encoded>
        <![CDATA[<div><p><span>この度、弊社 開発チームのことを知ってもらうためにテックブログをはじめました。</span><br><span>現在、研究している事や開発中に採用した技術、開発の考え方、ネタに困った時はテックブログと言いつつも最近、気になる事やハマっていること、そんなに形式張らずに発信してチームについて伝えることができればと思います。</span></p><p><span>開発チームは結成して2年と間もないチームで成長の段階です。ある程度、お互いの考え方、主張、価値観、仕事のやり方が確立できている段階にあります。会社全体としては、これからの考え方が異なるところで衝突するといった課題はありますが、コミュニケーションを重ねて解決していこうと進行しています。</span></p><p><span>事業の内容としては、主にIoTに関わる開発を行っております。特徴としては物の開発とインターネットにおけるシステム開発を内製化しており、企画、設計、開発、運用をワンストップで行えるところにあります。簡単ながら、今までにローンチしたサービスを紹介します。</span></p><h3><strong style="font-weight: 600;">まもサーチ 第一世代</strong></h3><figure class="image-wrapper photo-viewer-opener" data-original-image-url="https://images.wantedly.com/i/yJN7cUF"><img src="https://images.wantedly.com/i/yJN7cUF" width="2840" height="1200" alt=""></figure><p><span>通信方式としてNB-IoTを使って、センシングしたGPSデータを送信し、スマートフォンアプリケーションで提供するサービスになります。</span></p><h3><a href="https://mamosearch.jp/" target="_blank" rel="nofollow noopener"><strong style="font-weight: 600;">子供見守りGPS 『まもサーチ2』</strong></a></h3><figure class="image-wrapper photo-viewer-opener" data-original-image-url="https://images.wantedly.com/i/CXnqScS"><img src="https://images.wantedly.com/i/CXnqScS" width="911" height="534" alt=""></figure><p><span>まもサーチ 第1世代での課題を解決するため、通信方式をLTE-Mに切り替えてバージョンアップしました。</span></p><h3><strong style="font-weight: 600; text-decoration: underline;">空気環境を見える化『まもセンサーAir』</strong></h3><figure class="image-wrapper photo-viewer-opener" data-original-image-url="https://images.wantedly.com/i/pRXTKQq"><img src="https://images.wantedly.com/i/pRXTKQq" width="750" height="472" alt=""></figure><p><span>コロナ禍で感染症予防などの課題解決を目的として通信機能を搭載したCO2センサーです。こちらもセンシングしたデータを送信してWEBブラウザで提供するサービスになっています。</span></p><p><span>これからも引き続き、新たなプロダクトの開発を検討しながらチームを盛り上げていければと思います。</span></p></div>]]>
      </content:encoded>
      <media:thumbnail>https://d2v9k5u4v94ulw.cloudfront.net/small_light(dw=1440,dh=630,da=s,ds=s,cw=1440,ch=630,cc=FFFFFF)/assets/images/7417655/original/432ef32a-d26c-4eca-91ca-052f01f97f50?1630034474</media:thumbnail>
    </item>
  </channel>
</rss>
