SlideShare une entreprise Scribd logo
1  sur  219
Télécharger pour lire hors ligne
Pythonで始める
 DropboxAPI

Daisuke Igarashi <planset@gmail.com>
ppyytthhoonn?
ppyytthhoonn?
pythonってなに?
プログラミング言語
>>> print ‘Hello world!’

Hello world!
>>> for i in range(5):
...     print “Hello world!”
...
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
>>> for i in range(5):
...     if i == 3:
...          print "aho"
...     else:
...          print "Hello world!"
...
Hello world!
Hello world!
Hello world!
aho
Hello world!
pythonとは

• オープンソース
• スクリプト言語
• オブジェクト指向
• Guido van Rossum によって1991年
 くらいに開発された
python事例

• linux(red hat)のいろいろ
 anaconda, virt-managerなど

• Trac, Ploneなどのウェブもの。
• DropboxなどのサービスやSDK
• googleでも割と使われている。
 開発者がgoogle勤務。
なんでpython?
毎年少なくとも一つの言語を学習する
プログラミング言語歴

• さらっと
 Delphi(object pascal)、アセンブラ、
 php、perl、ruby、html、javascript、
 java

• わりとしっかり
 c/c++、VisualBasic、VB.NET
プログラミング言語歴

• さらっと
 Delphi(object pascal)、アセンブラ、
 php、perl、ruby、html、javascript、
 java

• わりとしっかり
 c/c++、VisualBasic、VB.NET
プログラミング言語歴

• さらっと
 Delphi(object pascal)、アセンブラ、
 php、perl、ruby、html、javascript、
 java

• わりとしっかり
 c/c++、VisualBasic、VB.NET
今日話すこと


•python入門

•Dropbox APIを使ってみよう
Python入門

•pythonの特徴
•pythonの基本
•pythonの色々
Python入門

•pythonの特徴
•pythonの基本
•pythonの色々
インデント
インデント
  インデント
    インデント
インデント
  インデント
    インデント
インデント

ここ
     インデント
     ここ
          インデント
たとえば、Cでは
(丁寧にかけば)
int testfunc(int x, int y)
{
    if (x + y == 0)
    {
        return true;
    } else {
        return false;
    }
}
int testfunc(int x, int y)
{
    if (x + y == 0)
    {
        return true;
    } else {
        return false;
    }
}
int testfunc(int x, int y)
{
    if (x + y == 0)
    {
        return true;
    } else {
        return false;
    }
}
pythonでは
def testfunc(x, y):
    if x + y == 0:
        return True
    else:
        return False
def testfunc(x, y):
    if x + y == 0:
        return True
    else:
        return False
def testfunc(x, y):
    if x + y == 0:
        return True
    else:
        return False
def testfunc(x, y):
    z = 1
    x = z + y
    return x
def testfunc(x, y):
    z = 1
    x = z + y
  return x
あ。ずれちゃった
File "dame.py", line 6
    return x
           ^
IndentationError: unindent does not match
any outer indentation level

意訳:インデントがずれてるじゃねーかばかやろー!
そんなpythonなため
pythonキモイ
でも
こうは書かないよね?

int testfunc(int x, int y){
if (x==0){return true;}else{
return false;}}
だったらそう書かなきゃ
動かないようにすればい
    いじゃん
思想
pythonの思想


• 言語自身の機能を最小限に。
• 誰が書いても同じ機能は同じような実装
 になるように。

• 文書化の重視
pythonの思想


• 言語自身の機能を最小限に。
• 誰が書いても同じ機能は同じような実装
 になるように。

• 文書化の重視
文書化といっても



• ドキュメントを書け
• コメントを書け
文書化といっても


• ソースに書いても、API仕様書にかかな
 きゃだめだったり

• ドキュメントを書いても結局メンテされ
 なかったり
pythonでは
言語レベルで
 サポート
sample.py

def add(x, y):
    """
    xとyを加算します。
    ただし、結果が3の倍数の場合、'aho'を返します。

    例)x=15、y=5の場合
    >>> add(15, 5)
    20

    例)x=10、y=2の場合
    >>> add(10, 2)
    'aho'
    """
    return x + y if (x + y) % 3 != 0 else 'aho'

if __name__ == '__main__':
    import doctest
    doctest.testmod()
>>> help(sample)

Help on module sample:

NAME
       sample - # -*- coding: utf-8 -*-

FILE
       /path/to/sample.py

FUNCTIONS
    add(x, y)
        xとyを加算します。
          ただし、結果が3の倍数の場合、'aho'を返します。

          例)x=15、y=5の場合
           >>> add(15, 5)
           20

          例)x=10、y=2の場合
           >>> add(10, 2)
if __name__ == '__main__':
    import doctest
    doctest.testmod()
sample.py

def add(x, y):
    """
    xとyを加算します。
    ただし、結果が3の倍数の場合、'aho'を返します。

    例)x=15、y=5の場合
    >>> add(15, 5)
    20

    例)x=10、y=2の場合
    >>> add(10, 2)
    'aho'
    """
    return x + y if (x + y) % 3 != 0 else 'aho'

if __name__ == '__main__':
    import doctest
    doctest.testmod()
# python sample.py -v
Trying:
    add(15, 5)
Expecting:
    20
ok
Trying:
    add(10, 2)
Expecting:
    'aho'
ok
1 items had no tests:
    __main__
1 items passed all tests:
   2 tests in __main__.add
2 tests in 2 items.
2 passed and 0 failed.
Test passed.
つまり、


 コメントがドキュメントであり


 コメントがテストであり、かつ


信頼できるコードのサンプルになる。
ちなみに
ちゃんとテストをしたいなら


 unittest パッケージ


  が標準でついてます
電池が付属しています
Python入門

•pythonの特徴
•pythonの基本
•pythonの色々
変数
整数、実数

•宣言は必要ないです
•x = 1
•y = 1.1
•x++ はない!
配列


•変更不可能な配列
•変更可能な配列
変更不可能な配列


•a   = ‘igarashi‘   # 文字列

•c   = (1, 2, 3)    # タプル
変更不可なので

•a = ‘igarashi‘   # 文字列

•a[2] = ‘3’
変更不可なので

•a = ‘igarashi‘   # 文字列

•a[2] = ‘3’
 できません!
変更可能な配列



•d   = [1, 2, 3]   # リスト
変更可能なので

•d = [1, 2,   3]   # リスト

•d[0] = 10
•>>> d
 [10, 2, 3]
辞書

• dic   = {'name': 'yamada',
           'age': 20}

• ‘name’ in dic # True
• del dic[‘age’] # 削除
• キーは変更できない値なら何でも良い。
集合


•g =   set([1,2,3,2,1])
•>>> g
 set([1,2,3])
True False


•is_true = True
•if is_true:
     print “hello”
注意点
pythonでは
全て参照渡しです
なのでー
>>> x = 1
>>> x = x + 1
>>> print x
2
>>> x = 1

     1

     x
>>> x = x + 1

    1+1         2

     x          x

>>> print x
2
>>> x = 1

     1

     x


    1+1   まちがい
>>> x = x + 1

                2

     x          x

>>> print x
2
>>> x = 1

     x          1


>>> x = x + 1
                1
     x
            ×
                2
>>> print x
2
>>> var1 = 1
>>> var2 = var1

この時点では同じオブジェクトを指している。

>>> var1 = 2

v1だけ新しいオブジェクトを参照する。

>>> var1
2
>>> var2
1
>>> var1 = [1, 2, 3]
>>> var2 = var1

この時点で同じオブジェクトを指している。

>>> var1.append(4)

v1だけに新しい要素を追加したつもりが・・・

>>>   var1
[1,   2, 3, 4]
>>>   var2
[1,   2, 3, 4]
制御構文
if, elif, else
if x == 1:
    print 'A'

elif x == 2:
    print 'B'

else:
    print 'C'
for

for i in [1,2,3,4,5]:
    print i


for i in range(1, 6):
    print i
while

i = 0
while i<10:
    i += 1
    print i

break,continueもつかえるよ。
try, with

try:
    lines = []
    with open("infile.txt", "r") as f:
         lines = f.readlines()
except:
    print 'error'
    raise
finally:
    print 'o wa ri'
関数、クラス
関数

def testfunc(x, y):
  return x + y


testfunc(10, 2)
関数

def testfunc():
    print “hoge”
    return

testfunc()
関数

def testfunc():
    print “hoge”
    return

testfunc()
関数

def testfunc():
    print “hoge”
    return

testfunc
関数

def say():
    print “hoge”


>>> hogehoge = say
>>> hogehoge()
“hoge”
無名関数


>>> add = lambda x,y:x + y

>>> add(1, 2)
3
クラス

class Human(object):
    name = ''
    age = 0
    def __init__(self, name, age):
        self.name = name
        self.age = age

   def say(self):
       print 'hoge'
クラス

class Human(object):
    name = ''
    age = 0
    def __init__(self, name, age):
        self.name = name
        self.age = age

   def say(self):
       print 'hoge'
クラス

class Human(object):
    name = ''
    age = 0
    def __init__(self, name, age):
        self.name = name
        self.age = age

   def say(self):
       print 'hoge'
クラス

class Human(object):
    name = ''
    age = 0
    def __init__(self, name, age):
        self.name = name
        self.age = age

   def say(self):
       print 'hoge'
できればこう書きたい?

class Human(object):
    name = ''
    age = 0
    def __init__(name, age):
        self.name = name
        self.age = age

   def say():
       print 'hoge'
こう考えてみる


obj = Hoge()

obj.age = 20
obj.name = 'hoge'
こう考えてみる

def initialize(obj, age, name):
    obj.age = age
    obj.name = name

obj = Hoge()
initialize(obj, 20, 'hoge')
こう考えてみる

class Hoge():
    def initialize(obj, age, name):
        obj.age = age
        obj.name = name

obj = Hoge()
Hoge.initialize(obj, 20, 'hoge')
こう考えてみる

class Hoge():
    def initialize(obj, age, name):
        obj.age = age
        obj.name = name

obj = Hoge()
obj.initialize(20, 'hoge')
こう考えてみる

class Hoge():
    def __init__(obj, age, name):
        obj.age = age
        obj.name = name

obj = Hoge(20, 'hoge')
こう考えてみる

class Hoge():
    def __init__(self, age, name):
        self.age = age
        self.name = name

obj = Hoge(20, 'hoge')
便利な書き方
コメント
# コメント

def func():
    '''
    関数のドキュメント
  '''
  print 'Hello world!'
コメント

>>> help(func)
Help on function func in module __main__:

func()
    関数のドキュメント
値の比較

>>> x = 5
>>> 1 < x < 10
True

>>> x < 10 < x*10 < 100
True
値を入れ替え

>>> a = 10
>>> b = 5

>>> a, b = b, a

>>> a, b
(5, 10)
戻り値を分けて入れる

>>> a, b = b, a
これができるのは、リスト代入(タプル代入)のおかげ

>>> ip1, ip2, ip3, ip4 =
        ‘192.168.0.1’.split(‘.’)

ip1 = 192, ip2 = 168, ip3 = 0, ip4 = 1
配列のインデックス

>>> items = [‘A’, ‘B’, ‘C’]

>>> for index,item in enumerate(items):
>>>    print index, item

0 A
1 B
2 C
後置if

>>> i = 2
>>> “hoge” if i%2==0 else “fuga”
hoge

>>> i = 1
>>> “hoge” if i%2==0 else “fuga”
fuga
map

>>> items = [1,2,3,4,5]

>>> map(str, items)
[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]

>>> map(lambda x:x*x, items)
[1, 4, 9, 16, 25]
リスト内包表記


result =
  [do_something(i) for i in range(0, 10)]
リスト


>>> t = [1,2,3,4,5]
>>> t[1]
2
リスト
>>> t = [1,2,3,4,5]

>>> t[-1]
5

>>> t[1:4]
[2,3,4]

>>> t[2::-1]
[3,2,1]
リスト


>>> [1,2,3]+[4,5,6]
[1,2,3,4,5,6]

>>> [1,2,3]*3
[1,2,3,1,2,3,1,2,3]
イテレータ
>>> i = iter('abc')
>>> next(i)
'a'
>>> next(i)
'b'
>>> next(i)
'c'
>>> next(i)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
ジェネレータ


・ジェネレータはイテレータを
 簡単に生成するためのもの
ジェネレータ
def generator2():
    i = 0
    while True:
        yield i
        i += 1

>>> g = generator2()
>>> next(g)
0
>>> next(g)
1
ジェネレータ


for i in generator2():
    print i
Python入門

•pythonの特徴
•pythonの基本
•pythonの色々
色々というかウェブ開発
WEBフレームワーク
しっかり

•Django
•pylons(Pyramid)
•google app engine
•tornado
さくっと


•Flask
•他にも山ほど。
稼働環境
ウェブサーバ
•apache     •wsgi
•nginx      •fcgi
•lighttpd   •gunicorn
PaaS
•heroku     • DjangoZoom
•dotcloud   •OpenShift
•fluxflex     •Cloud
             Foundry
•google app
 engine
学習
学習する価値



• 基本はc/php/vb/perlと同じだけど、各
 所で色々違っておもしろいよ。

• なにより書きやすい。
学習する価値


• rubyでウハウハしてるなら別に良いかも
• 採用曲線の頂点(後は下るだけ)
• むしろ今からならjavascriptがいいかも
おすすめ
• 公式ドキュメントのチュートリアル
おすすめ
• Flaskのドキュメント
Python入門

•pythonの特徴
•pythonの基本
•pythonの色々
今日帰ったら

•手洗い
•うがい
•pythonインストール
ふぅ
今日話すこと


•python入門

•Dropbox APIを使ってみよう
Dropbox APIを
  つかってみよう

•DropboxAPIとは
•oauthとは
•APIにアクセスしてみよう
Dropbox APIを
  つかってみよう

•DropboxAPIとは
•oauthとは
•APIにアクセスしてみよう
DropboxAPIとは
DropboxAPIとは
DropboxAPIとは
APIでできること

•アカウント情報の取得
•ファイルのアップロード
•ファイルのダウンロード
•検索、共有、サムネイル取得
APIでできること

•ファイルのコピー
•フォルダの作成
•ファイルの移動
•ファイルの削除
詳しくは
でもね
すぐには使えません
OAuth
OAuth
おーおーす
OAuthとは

•API認可の方法
•認証(Authentication)ではな
 く

•認可(Authorization)
OAuthとは


•twitterとかfacebookとか
•もちろんDropboxも
なぜ認可?
たとえば


•dropboxのAPIを使ってサービ
 スを提供するサイトがあって

•これを利用しようとします
利用者       サービス提供サイト

あんたのサービス使わせてよ!




            dropbox
利用者       サービス提供サイト


いいけど、dropboxのアクセスに必要な
ユーザー名とパスワードを教えてちょ


             dropbox
利用者       サービス提供サイト

ユーザー名とパスワードを入力




            dropbox
利用者        サービス提供サイト
           ユーザー名&パスワード


      データのやりとり


             dropbox
利用者         サービス提供サイト
            ユーザー名&パスワード




              dropbox


 サービス提供サイトがアカウント情報を
 持つことが問題!
OAuthだと
利用者       サービス提供サイト

あんたのサービス使わせてよ!




            dropbox
利用者        サービス提供サイト



使いたいって人がいるんだけど、
許可してくれない?

             dropbox
利用者      サービス提供サイト




            dropbox

それは本人に聞いてみないと!
あのサービス提供サイトがあなたのデータに
アクセスしたいって言うんだけどいい?
利用者      サービス提供サイト




          dropbox


いいともー!
利用者        サービス提供サイト
             アクセストークン

      いいってさー
      よかったねー

               dropbox
利用者      サービス提供サイト
           アクセストークン




           dropbox



 アカウント情報をサービス提供サイトに
 預ける必要がなくなる。
認可API

•/oauth/request_token
•/oauth/authorize
•/oauth/access_token
Dropbox APIを
  つかってみよう

•DropboxAPIとは
•oauthとは
•APIにアクセスしてみよう
1.登録

•Dropboxにアプリ登録する
•consumer key
•consumer secret key
1.登録


https://www.dropbox.com/
developers
1.登録
1.登録
1.登録
1.登録




consumer key
consumer secret key
2.リクエストトークン

•/oauth/request_token
•cosumer keyとsecretを使う
•必要な情報を固めてPOST
•リクエストトークンを取得
2.リクエストトークン


ここがめんどう
2.リクエストトークン
•oauth_consumer_key
•oauth_signature_method
•oauth_timestamp
•oauth_nonce
•oauth_version
•oauth_signature
2.リクエストトークン


これをPOST!
2.リクエストトークン

•成功するとリクエストトークンを
 返してくれる

•oauth_token_secret
•oauth_token
3.認証/認可URL


•/oauth/authorize+トークン
•利用者がURLにアクセスして許可
 する
3.認証/認可URL
4.アクセストークン

•/oauth/access_token
•consumer keyとsecretを使う
•リクエストトークンも使う
•アクセストークンを取得
4.アクセストークン


•POSTする方法は
 リクエストトークン取得時+
 リクエストトークンを投げる
4.アクセストークン
•成功するとアクセストークンを返
 してくれる。

•oauth_token_secret
•oauth_token
•uid
5.APIの利用

•アクセストークン
•consumer keyとsecretを使う
•各種APIへアクセス
じつは

•oauthは非常に面倒
 oauth2策定中
 実装してるところもある
 facebook GraphAPI
つまり
今更OAuth1.0とか覚えなくていい


         え・・・、じゃあ、今までのスライドは何のために・・・
そこで
Dropbox APIを
  つかってみよう
• DropboxAPIとは
• oauthとは
• APIにアクセスしてみよう
•めんどくさいのでSDKを使う
DropboxSDKとは
SDKを使うと
1.登録 consumer key
SDKのクラスを作る
2.リクエストトークン取得
3.認可用URL作成
4.アクセストークン取得
5.APIの利用
5.APIの利用
5.APIの利用
5.APIの利用
5.APIの利用
5.APIの利用
Dropbox APIを
 つかってみよう

文字列だけの画面見ても

よくわからないから

わかりやすいの見せろよ!
こんなの作ってみる
dropboxフォルダのファイル一覧
環境構築
# mkvirtualenv dropboxtest

...開発用の仮想環境が準備される。


(dropboxtest)# pip install flask dropbox dotcloud

...必要なパッケージがインストールされる。
flaskサンプル1
flaskサンプル1
flaskサンプル2
flaskサンプル2
アプリ作成
アプリ作成
アプリ作成
アプリ作成
デプロイ
デプロイ
まとめ
まとめ

•pythonはキモくない
まとめ

•pythonはキモくない
•ライブラリで面倒なことも楽勝
まとめ

•pythonはキモくない
•ライブラリで面倒なことも楽勝
•フレームワークもいい感じ
まとめ

•pythonはキモくない
•ライブラリで面倒なことも楽勝
•フレームワークもいい感じ
•稼働環境も増えてきた
pythonするなら
いまがチャンス!
以上です。
ありがとうございました。


 おつかれさまでした。

Contenu connexe

Tendances

Javaプログラミング入門【第3回】
Javaプログラミング入門【第3回】Javaプログラミング入門【第3回】
Javaプログラミング入門【第3回】Yukiko Kato
 
C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~Fujio Kojima
 
Javaデザインパターン入門【第3回】
Javaデザインパターン入門【第3回】Javaデザインパターン入門【第3回】
Javaデザインパターン入門【第3回】Yukiko Kato
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールNobuhisa Koizumi
 
LINQソースでGO!
LINQソースでGO!LINQソースでGO!
LINQソースでGO!Kouji Matsui
 
Metaprogramming in JuliaLang
Metaprogramming in JuliaLangMetaprogramming in JuliaLang
Metaprogramming in JuliaLangYuichi Motoyama
 
C#を始めたばかりの人へのLINQ to Objects
C#を始めたばかりの人へのLINQ to ObjectsC#を始めたばかりの人へのLINQ to Objects
C#を始めたばかりの人へのLINQ to ObjectsFumitaka Yamada
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料時響 逢坂
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門kwatch
 
Javaセキュアコーディングセミナー東京第1回演習の解説
Javaセキュアコーディングセミナー東京第1回演習の解説Javaセキュアコーディングセミナー東京第1回演習の解説
Javaセキュアコーディングセミナー東京第1回演習の解説JPCERT Coordination Center
 
Python勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイルPython勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイル理 小林
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料時響 逢坂
 
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」Nagi Teramo
 
Scalaのオブジェクトの話
Scalaのオブジェクトの話Scalaのオブジェクトの話
Scalaのオブジェクトの話Yasuyuki Maeda
 
Java8 Lambda chapter5
Java8 Lambda chapter5Java8 Lambda chapter5
Java8 Lambda chapter5Takinami Kei
 
traitを使って楽したい話
traitを使って楽したい話traitを使って楽したい話
traitを使って楽したい話infinite_loop
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類Tetsuya Hasegawa
 

Tendances (20)

Introduction Xtend
Introduction XtendIntroduction Xtend
Introduction Xtend
 
Javaプログラミング入門【第3回】
Javaプログラミング入門【第3回】Javaプログラミング入門【第3回】
Javaプログラミング入門【第3回】
 
C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~
 
Javaデザインパターン入門【第3回】
Javaデザインパターン入門【第3回】Javaデザインパターン入門【第3回】
Javaデザインパターン入門【第3回】
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
 
LINQソースでGO!
LINQソースでGO!LINQソースでGO!
LINQソースでGO!
 
Metaprogramming in JuliaLang
Metaprogramming in JuliaLangMetaprogramming in JuliaLang
Metaprogramming in JuliaLang
 
C#を始めたばかりの人へのLINQ to Objects
C#を始めたばかりの人へのLINQ to ObjectsC#を始めたばかりの人へのLINQ to Objects
C#を始めたばかりの人へのLINQ to Objects
 
Mock and patch
Mock and patchMock and patch
Mock and patch
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
 
Javaセキュアコーディングセミナー東京第1回演習の解説
Javaセキュアコーディングセミナー東京第1回演習の解説Javaセキュアコーディングセミナー東京第1回演習の解説
Javaセキュアコーディングセミナー東京第1回演習の解説
 
Python勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイルPython勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイル
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料
 
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
 
Juliaで並列計算
Juliaで並列計算Juliaで並列計算
Juliaで並列計算
 
Scalaのオブジェクトの話
Scalaのオブジェクトの話Scalaのオブジェクトの話
Scalaのオブジェクトの話
 
Java8 Lambda chapter5
Java8 Lambda chapter5Java8 Lambda chapter5
Java8 Lambda chapter5
 
traitを使って楽したい話
traitを使って楽したい話traitを使って楽したい話
traitを使って楽したい話
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
 

Similaire à Pythonで始めるDropboxAPI

F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~Nobuhisa Koizumi
 
すごいHaskell読書会#1 in 大阪
すごいHaskell読書会#1 in 大阪すごいHaskell読書会#1 in 大阪
すごいHaskell読書会#1 in 大阪yashigani
 
第3回BDD勉強会
第3回BDD勉強会第3回BDD勉強会
第3回BDD勉強会zakihaya
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミングOuka Yuka
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)Masahiro Hayashi
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1Susisu
 
15分でざっくり分かるScala入門
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門SatoYu1ro
 
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すAromaBlack
 
モナドハンズオン前座
モナドハンズオン前座モナドハンズオン前座
モナドハンズオン前座bleis tift
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Springanyakichi
 
20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swift20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swiftnecocen
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)Masahiro Hayashi
 

Similaire à Pythonで始めるDropboxAPI (20)

F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~
 
Pythonintro
PythonintroPythonintro
Pythonintro
 
Python opt
Python optPython opt
Python opt
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門
 
すごいHaskell読書会#1 in 大阪
すごいHaskell読書会#1 in 大阪すごいHaskell読書会#1 in 大阪
すごいHaskell読書会#1 in 大阪
 
第3回BDD勉強会
第3回BDD勉強会第3回BDD勉強会
第3回BDD勉強会
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1
 
15分でざっくり分かるScala入門
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門
 
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
 
モナドハンズオン前座
モナドハンズオン前座モナドハンズオン前座
モナドハンズオン前座
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Spring
 
たのしい関数型
たのしい関数型たのしい関数型
たのしい関数型
 
20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swift20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swift
 
Subprocess no susume
Subprocess no susumeSubprocess no susume
Subprocess no susume
 
R intro
R introR intro
R intro
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
 
[xDNCL] 配布資料
[xDNCL] 配布資料[xDNCL] 配布資料
[xDNCL] 配布資料
 

Dernier

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Dernier (12)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

Pythonで始めるDropboxAPI