2015年10月21日水曜日

Flutter x Dartlang で Androidアプリ作成

Flutter x Dartlang で Androidアプリ作成


QiitaにFlutter x Dartについて投稿しました。

Flutterを使うことで、AndroidやiOSなどの Mobile Platform 向けのアプリが Native な Dartlang で開発できるようになります


[投稿]
http://qiita.com/kyorohiro/items/c478b98dd364050d23e5

[GitBook]
調べたことはgitbookにまとめています

https://www.gitbook.com/book/kyorohiro/hello_skyengine/details




-------
Kyorohiro work

http://kyorohiro.strikingly.com



2015年8月17日月曜日

P2P探訪 HetimaNetはDart:ioに対応しました。

hetimanetは、chrome用のsocket機能のみ提供していましたが、新たに、dart:ioに対応しました。hetimanetはdart用のライブラリです。


下記、機能に対応しています。

  • UDP
  • TCP
  • Http Server
  • Http Client
  • UPnP Portmap 



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import 'package:hetimanet/hetimanet.dart';
import 'package:hetimanet/hetimanet_dartio.dart';
//
//
main()  async {
  HetiSocketBuilderDartIO builder = new HetiSocketBuilderDartIO(); 
  UpnpPortMapHelper helper = new UpnpPortMapHelper(builder, "test");
  //
  // get network interface
  List<HetiNetworkInterface> interfaces = await builder.getNetworkInterfaces();
  for (HetiNetworkInterface i in interfaces) {
    print("<ni>${i.address} ${i.prefixLength} ${i.name}");
  }
  //
  // portmapping 
  try {
    StartGetExternalIp exip = await helper.startGetExternalIp(reuseRouter: true);
    print("<exip> ${exip.externalIp}");
  } catch (e) {
    print("<exip ERROR> ${e}");
  }
  //
  // get local ip
  try {
    StartGetLocalIPResult loip = await helper.startGetLocalIp();
    for(HetiNetworkInterface i in loip.networkInterface) {
      print("<glip> ${i.address} ${i.name}");      
    }
  } catch (e) {
    print("<glip ERROR> ${e}");
  }
  //
  // start portmap
  try {
    StartPortMapResult sp = await helper.startPortMap();
    print("<add> ${sp}");
  } catch (e) {
    print("<add ERROR> ${e}");
  }
  //
  // end portmap
  try {
    DeleteAllPortMapResult ep = await helper.deletePortMapFromAppIdDesc();
    print("<del> ${ep}");
  } catch (e) {
    print("<del ERROR> ${e}");
  }
}

Source

- https://github.com/kyorohiro/dart_hetimanet
- https://github.com/kyorohiro/dart_hetimanet/tree/master/example/HetimaPortMap

Port map chrome app

- Chrome Store

https://chrome.google.com/webstore/detail/hetimaportmap/naifildeohmcocnmibaampijofhcohif

--------------
kyorohiro work

http://kyorohiro.strikingly.com

2015年8月14日金曜日

P2P探訪 DHTを実装してみよう!! (6) おわり

GetPeersでInfoHashに対応するPeerを探す


  • GetPeersでPeerを探す
  • AnnouncePeerでP2Pネットワーク上に値を保存する


DHTを動作させてみよう


  • DHTを動作させてみよう!!


「P2P探訪 DHTを実装してみよう!! 」をQiitaに投稿しました。
http://qiita.com/kyorohiro/items/2c60fd072f61d2dc52c4

これで、ひととおり、説明したつもりです。

今後書き直したり修正した内容は、「なぜなにTorrent」のほうに反映していく予定です。多分、いまある、文章は全て入れ替わるはず。

GitBook なぜなにTorrent

https://www.gitbook.com/book/kyorohiro/doc_hetimatorrent/details

ソース

 https://github.com/kyorohiro/dart_hetimatorrent

REF

- http://www.bittorrent.org/beps/bep_0005.html
- http://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf

-------
Kyorohiro work

2015年8月11日火曜日

P2P探訪 なぜなにTorrent

Torrent Client開発時に得たノウハウは、「なぜなにTorrent」にまとめています。

https://app.gitbook.com/@kyorohiro/s/nazenani-torrent/
https://nazenani-torrent.firefirestyle.net/

-------
Kyorohiro work




P2P探訪 DHTを実装してみよう!! (4) FindNodesでネットワークを構築する

FindNodeでネットワークを構築する

  • FindNodeクエリでネットワークを構築する
  • レスポンスを受けたらRootingTableを更新する

Qiitaに移動しました。


http://qiita.com/kyorohiro/items/62347c69075bdcb6fdc2





GitBook なぜなにTorrent

ソース

REF


-------
Kyorohiro work

http://kyorohiro.strikingly.com

P2P探訪 DHTを実装してみよう!! (3) kBucket RootingTable の実装編

RootingTableを実装してみよう。

  • KIdを実装する
  • kBucketを実装する
  • RootingTableを実装する

RootingTableを実装してみましょう。コードに落とす事で理解も深まります。

Qiitaに移動しました。





GitBook なぜなにTorrent

https://www.gitbook.com/book/kyorohiro/doc_hetimatorrent/details

ソース

 https://github.com/kyorohiro/dart_hetimatorrent

REF

- http://www.bittorrent.org/beps/bep_0005.html
- http://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf

-------
Kyorohiro work

http://kyorohiro.strikingly.com

Game Boy の VGM から JavaScript への変換後に、 生成AIの補正が有効だった事について

Game Boy の VGM から JavaScript への変換後に、 生成AIの補正が有効だった事について Tetorica FM2612 Playground には GameBoy や Genesis の VGM ファイル から JavaScript へ変換する機能を持って...