電脳ミツバチのコンピュータ広報室

銀座の屋上菜園を耕しています。コンピュータ畑も耕します。

【IoT】従来300万円かかっていたコインロッカービジネスを6.5万円から出来る電子コインロッカーSPACER(スペースアール)を開発しました

皆さんこんにちは。 最近ヤマトさんなど多くの配達に関するニュースを見かけますね。 今日はそんな配達問題を解決する電子コインロッカーを開発しました。 まずはこちらの動画をご覧ください ロッカーへ近づくとアプリがbluetoothを認識し、閉めることができ…

Facebookの公開した人工知能fastTextを試してみた

みなさんこんにちは。最近はセキュリティコンテストCTFにはまっていて国内外の様々なコンテストに手あたり次第参戦しています。団体戦だと大体上位6%〜10%、個人だと上位10%くらいの成績です。 さて、2016/8/18にfacebookが新しい人工知能のfastTextを公開し…

マウスなんてもう古い!ジェスチャーでパソコン、iPhoneを動かすVR時代へ

みなさんこんにちは。 今為替の値動きを人工知能で解析して遊んでます。1分足の終値-始値データを10本づつまとめて10分のデータセットにして、これを元に後の10分を予測するリカレントニューラルネットワークを実装してみましたが収束せず発散してしまいまし…

エンジニアが左うちわPart4。猫でもわかる金融の歴史

今日は猫でもわかる簡単な金融の歴史を記事にします。うちの猫のテンテンくんは餌をもらった後にスリーステップで食べたことを忘れてしまい2つある餌場をウロウロ往復しているので難しいですが、普通の猫くらいなら分かるほど簡単です。 世界最古の文字はメ…

エンジニアが左うちわPart3。夏場はバカンスで為替値動きが少ないことの証明。月、日、時間ごとのボラ強度測定

皆さんこんにちは。 最近メンサの投資クラブに入り、諸先輩方に色々教えていただいております。 昨今の業界のブームは通貨ごとの強度を測ることらしいのですが私は今回、月ごと、日にちごと、時間ごとの強度を測ってみました。 ここでの強度とは簡単に言うと…

エンジニアが左うちわPart2。一人FinTech。為替ハッキング。為替データで統計を取る方法

皆さん最近流行りの言葉でFinTechという単語をご存知ですか?これはファイナンス(金融)とテクノロジーを合わせた造語で、近年のコンピュータが個人で充分に金融の精度を測れるようになり、テクノロジーを使ってより良い金融ライフを送ろうじゃないかという試…

エンジニアが左うちわでホクホクする。AmazonEC2を使い月額1000円程度で24時間FX自動売買環境を整える方法

今日はAmazonEC2を使ってコンピュータに24時間FX自動売買させる方法をご紹介します。 これによって寝ている間も機械がトレードを続け、うまくいけば左うちわで暮らしていけるかもしれません。 FXはやったことあるけど結局負けて退場した、システムトレード…

銀座、六本木、新宿、渋谷、レストランマップアプリをEC2+Swiftで作った

みなさんこんにちは 最近、銀座、六本木、新宿などの街の中で増えていくレストラン難民をお助けしようと、レストランマップをiPhoneアプリで公開しました。 銀座レストランマップ Ginza Restaurant Map on the App Store 六本木レストランマップ Roppongi Re…

ミニドローンによる三次元広告の可能性を検証してみた

皆さんこんにちは。 今日はミニドローンを買ったので三次元広告が可能かを検証してみた。 イメージとしてはこんな感じです。 必要なものは ミニドローン amazonとかで8000円程度の小型ドローンがいっぱい売ってますのでなんでもよろしいかと思います。私…

ECを支える人工知能の分類と学び方一覧

皆さんこんにちは。 1936年、かつてアランチューリングが書いた論文をもとに「エニグマの暗号を解読するのは人の手では無理だ、難しいことは機械にやってもらおうじゃないか!」という動きができました。 2015年現在、「情報が氾濫しすぎている。人…

数学の大統一に挑む②ーガロア群、リー群、そしてラングランズ・プログラムとは何か

皆さんこんにちは。 前回書いた「数学の大統一に挑む①-群論からフェルマーの最終定理まで」はおかげさまで多くの方にご観覧頂きありがとうございます。 今回は後編です。 前回の知識がかなり必要となってきますので①を読んでない方は前からお読みいただける…

数学の大統一に挑む①-群論からフェルマーの最終定理まで

皆さんこんにちは この度青木薫さんの翻訳で新しい数学の本が出たので早速購入しました。 www.amazon.co.jp 青木薫さんといえば世界最先端の数学の深遠な世界を、物語風に分かりやすく説明してくれる翻訳の第一人者です。 他にも 「無限」に魅入られた天才…

意識と人工知能ロボット

人間には意識があり、ロボットには無いと言われる果たしてロボットに意識を作る事が出来ないかそうは思わないロボットは現在では単純な意思決定にとどまっているだけなのである人間とは体内の意思決定の一定水準以上を知覚するものではないのか?胃袋の意思…

最強の地図API「Google Maps JavaScript API v3」を使って外国人用のレストランガイド作りました

皆さんこんにちは。 今週末時間があったので今日は地球上でもっとも使いやすい地図APIであるGoogle Maps JavaScript API v3 を使ってどこまで出来るか調べてみるついでにレストラン情報サイトを作ってみました。 コンセプトは全く右も左も分からない外国人が…

ポータブルなハッカー御用達デバイス作った

皆さんこんにちは。 Raspberry piで遊んでますか? Raspberry piとはラズベリーパイ財団が提供する子供がプログラミングを覚える為の教育用に作られた数千円程度の安価で非常に小さいコンピュータのことです。 Raspberry Pi OSはLinux用に作られており、世に…

セキュリティに疎い昨今だからこそ必読!「ハッカーの学校」恵贈いただきました。

古い友人のIPUSIRONさんから2015/1/23に新しく出された本「ハッカーの学校」を恵贈いただきました。 <a href="http://www.amazon.co.jp/ハッカーの学校-IPUSIRON/dp/4781701973" data-mce-href="http://www.amazon.co.jp…

facebookなりすまし業者の犯人特定までの一連の流れ

昨年facebookでなりすましが流行ったのを覚えておりますでしょうか? その犯人とふとしたきっかけで出会い、ちょっとした調査で犯人が特定できたのが一年前。近年なりすまし事体が無くなったためそろそろ公開してもよいだろうと投稿を踏み切りました。 こと…

Twitterのツイートを利用してwordpressで全自動の多言語対応型まとめサイトを作る方法まとめ

今日はwordpressを利用して銀座の情報をまとめたまとめサイトを作りました。 最新銀座情報 このサイトはTwitterのツイートをwordpressに流し込んで全自動で更新するマイクロブログ型のまとめサイトとなっています。 Twitterのツイートをブログ化するメリット…

【サイト】自動翻訳掲示板ー10ちゃんねる

2年ほど前に職場で思いついてさっと作ってみました。 10ch/10ちゃんねる 10ch/10ちゃんねる それは2ちゃんねるの住人と4chanの住人(英語圏の2ちゃんねるのようなところ)を交流させたら面白いんじゃないかということだでした。お互いの趣味嗜好は一致して…

【動画】複雑ネットワーク・3次元コンタクトプロセス

9年ぶりに復活したので投稿してみる。因みに現在はIT業界にはおらずのんびり?銀座で農業やってます^^ 複雑ネットワークモデル・3次元コンタクトプロセス一定確率で隣接する個体が感染し、一定期間過ぎると元に戻る。700個から始まって1­%の感染率の場合と…

友愛数判定

友愛数判定に挑戦してみる。 友愛数とは例えば220や284などで220の約数は1,2,4,5,10,11,20,22,44,55,110で合計すると284。同様に284の約数は1,2,4,71,142で合計で220である。 このように約数が互いを示す数のことを友愛数とよび、ピタゴラ…

リスト

Lispでその名を轟かせたデータ構造リストだが、簡単に図で表すと >①----->②---->③----->④ このように項目(node)の最後と次の項目の最初をつなげたものである。 つながっていると言う点では配列と同じと思うかもしれないが配列よりも優れている点として、 …

Josephus problem(ジョセファスの問題)

いまN人が集団自殺しようとしているとして、まず全員が円陣に並び、その円の中のM番目の人を順に処刑する。一人死ぬと取り除かれ、円の大きさが1へることになる。 今N=9(つまり全員で9人)M=5(つまり5番づつ)とする。処刑される順番を求めよ。 解き…

①-2スタック

メモリの項で散々スタックの説明をしたがリストを使ったスタックの実装について説明する。 データ構造として最も重要なスタックだが、基本的な操作は2つだけで、プッシュとポップと言う概念からなる。プッシュはリストで言えば項目の挿入であり、ポップは項…

Eukleides(ユークリッド)のアルゴリズム

Elements(原論)の中の解法を用いて既約分数(これ以上割れない分数)を計算する。 難しく書いたが要するに 最大公約数は何か?と言う回答を吐き出すプログラムを作れればよい。 解答に至る手順として最大公約数(Greatest Common Divisor。以下gcd)を求めれ…

②型モデル

宣言はいつでもリストで似たような図をかける。 上の例で言えば int(*func[10])(int a); という宣言があったら、これを fanc is array[10] of pointer to function(a is int) returning int. fancはint型を返す関数(aはint)へのポインタの配列[10] とよめ…

②Cの宣言解読

前橋和弥氏の書いた「C言語ポインタ完全制覇」では非常に面白い宣言の解読法がある。 ややこしい宣言は英語で読め。 というものである。 int *f(); /*f:intへのポインタを返す関数 int (*pf)(); /*pf:intを返す関数へのポインタ と書かれても一行目は何とか…

①プリプロセッサ

ソースファイルから実行ファイルが出来上がるまでにはプリプロセッサ、コンパイル、リンク、という段階を踏む。(下図) プリプロセッサ コンパイラ {ソースファイル}→ {プリプロセス} →{コンパイル} #ifdef等の処理 オブジェクト ファイルの生成 リンカ → {…

NULLと0と'\0'

文字列の終端にNULLを入れる間違いが多くある。 array[len]=NULL; これは環境によって動くが間違いである。 文字列は「ナル文字」で終わるのであって「ヌルポインタ」で終わるのではない。 ナル文字とは「全てのビットが0である文字」と規格され、'\0'で表…

②構造体自体をポインタで扱う

構造体をmallocして動的に確保したい。 こんなときも多いだろうがとりあえず書き方として #include<stdio.h> #include<stdlib.h> #include<string.h> #include "kouzoutai.h" main() { POINT *p_memallocate; p_memallocate=malloc(sizeof(struct p_kouzoutai)); p_memallocate->a=strdup(</string.h></stdlib.h></stdio.h>…

②構造体の初期化

構造体は初期化することが出来る。 例えば一度に全て0を入れたい場合、memset関数を使う。 #ifndef KOUZOUTAI_H #define KOUZOUTAI_H typedef struct p_kouzoutai { char *a; char *b; char *c; }POINT; typedef struct a_kouzoutai { char a[10]; char b[1…

②関数のポインタと構造体を使ったプログラム

少し難しいが非常に有用なプログラム。 #include<stdio.h> #include<string.h> int list(void) { printf("func list\n"); return 1; } int show(void) { printf("fanc show\n"); return 1; } int quit(void) { exit(0); } struct command{ char *com_str; int (*com_func)(void)</string.h></stdio.h>…

①メンバに文字列をコピー

メンバに文字列をコピーする。なお上で作成したヘッダファイルkouzoutai.hを使う。 #include<stdio.h> #include<string.h> #include "kouzoutai.h" int main(void){ struct p_kouzoutai copy; strcpy(copy.a,"testcopy"); printf("%s\n",copy.a); } 結果 異常終了 <|| 結果うま</string.h></stdio.h>…

①構造体の使い方

struct p_kouzoutai { char *a; char *b; char *c; } と struct a_kouzoutai { char a; char b; char c[]; } の違いは何だろうか?関数とポインタの項でやったが大きさ分のメモリを取るのが配列でアドレス分だけを取るのがポインタである。 早速見てみると、…

①プロトタイプ宣言

もし、コードが複数ファイルにまたがっていた時、プロトタイプ宣言はどこでするのか。 答えから言うとヘッダファイルにするべきである。 そして、その関数を使う全てのコードファイルにそのヘッダをインクルードする。そうすれば仮にaというファイルのafanc…

①関数

関数を理解するには何といってもスタック(メモリ)の動作である。 詳しくはスタックの項にあるが、 void B(int b,int c) { int d=4; } void A(void) { int a=1; B(2,3); } このような関数を呼び出したときに | | | | | | |4 |d |復帰情報 |2 |b …

②構造体の場合の書き方

プロトタイプ宣言に並んでヘッダファイルを作成する価値のあるものは構造体である。 構造体のヘッダファイルの書き方にはコツがある。 #ifdef KOUZOUTAI_H #define KOUZOUTAI_H typedef struct p_kouzoutai { char *a; char *b; char *c; }POINT; typedef st…

②エラーチェック

mallocを使って行う典型的な仕事はエラーを処理することである。 メモリが足りないときに対処するわけですが、処理をするのにもメモリが必要になるわけです。 そこでmallocであらかじめ無駄なメモリを確保しておいていざとなったらfreeする。 という方法がと…

①malloc

メモリを管理するというのは重要である。 メモリを管理しなくてもプログラムは作れる。 だが、オーバーフローの原因となったり柔軟性が無くなったりメモリを無駄に取ってしまったりと公開するには支障が出る。 そこで考え出されたのは「○○個までのデータが扱…

const

constとは変数を読み込み専用にするために使うものです。 #include<stdio.h> main(){ const int i=432526; i=536; printf("%d",i); }エラー E2024 const.c 4: const オブジェクトは変更できない(関数 main ) と怒られてしまった。関数の引数として使うときに書き方に</stdio.h>…

①配列とポインタによる文字列操作

初心者がつまづきやすいこの問題は、まず 配列の初期化と代入は別物であるという認識から始めようと思う。 #include<stdio.h> main(){ char a[]="ABCDEF"; int i; for(i=0;a[i]!=0;i++) printf("%c",a[i]); printf("\n"); } 結果 ABCDEF非常に脆弱性を抱えているがひ</stdio.h>…

①ポインタと配列

配列 配列を出力するとなると大体こんな風に書く。 #include<stdio.h> #define size 10 main() { int i; int array[size]={232,21,4,142,412,532,643,745,12,543}; for(i=0;i<size;i++) printf("%d\n",array[i]); }ではこの時メモリ上ではどうなっているのだろうか? %pで表してみると #include<stdio.h> #define size 10 main() { int i; int array[size]; for(i=0;i</size;i++)></stdio.h>

①型

型とはメモリ領域をどれくらい取るかというのをコンパイラに教えるためのものである。 型を知る上で非常に重要な機能はsizeofという命令。sizeofで得られた結果はsize_t型になる。 #include<stdio.h> int main(){ printf("char =%u\n",sizeof(char)); printf("short =</stdio.h>…

typedef

typedefは型を自分の好きな名前で宣言するときに利用するもので、 たとえばunsigned longが書くのがめんどうくさいのでulongとかに変えて ulong a;とか宣言することでunsigned longを意味するようにします。 具体的な書き方は #include<stdio.h> main(){ typedef unsi</stdio.h>…

バイトオーダー

#include<stdio.h> main() { int a=0x12345678; int i; unsigned char *p=(unsigned char*)&a; for(i=0;i<4;i++) { printf("%x\t",p[i]); } puts("\n"); } 実行結果 78 56 34 12 0x123・・と%xはどちらも16進数であるということである。 現在のCPUは32bitベースが殆</stdio.h>…

①メモリとスタック

メモリ さて、すべてのプログラムはメモリ上にデータをのせて実行するわけなのだが、 プログラム全体には5つの領域(セグメント)に分けられて実行される。 スタックもその1つである。 -1テキストセグメント(コードセグメント) ここにマシン語で記述されたプ…

③ローカル変数とグローバル変数

前日記憶クラスの実践的な基本を載せた。 今日はもう少し詳しい内容を載せる。一般的な変数にはローカル変数とグローバル変数がある。 ローカル変数はコードブロック(分かりやすくいうと{ }←この中の部分)の先頭で宣言することができる その寿命はコード…

①宣言

そもそも宣言とは ・register static extern等の記憶域クラス指定子(Storage Class Specifiers) ・const等の型修飾子(Type Qualifiers) ・int char float long等の型指定子(Type Specifiers) ・a i m等の宣言子(Declarators) ・inti=0;とかするとき…

②記憶クラス

記憶クラスにはauto,register,static,externがある。 どこに変数を入れたいかで使い所が違う。「auto」は一般的な変数で通常は記述しない。 大抵はこれにintやcharをつけてauto int a;とか宣言するのを省いてint a;とか書いている。 関数の中で宣言され、そ…

bubblesort

void sort(int input[],int output[],int size) { int i,j; int flg=1; int temp; for(i=0;i<size;i++) {output[i]=input[i];} for(i=size-1;i>=0&&flg==1;i--) { for(j=0;j<i;j++) { if(output[j]>output[j+1]) { temp=output[j]; output[j]=output[j+1]; output[j+1]=temp; flg=1; } else {flg=0;} } } } どれも数分で書いたのでバ</i;j++)></size;i++)>…