SlideShare ist ein Scribd-Unternehmen logo
1 von 17
協賛
日本PostgreSQLユーザ会
後援
一般社団法人 PyCon JP
協力
オライリー・ジャパン
技術評論社
ご案内
• インターネット配信
• ハッシュタグ #pyconhiro
• ステッカー
• 飲食禁止
• 講演者
• LT希望者
• 懇親会参加者
PyCon とは
3
• Python Conference
– 世界30カ国で開催
– PyCon US は2000人以上参加
• PyCon JP
– mini, 2011, 2012, 2014, 2015 と開催
– 2013 は PyCon Asia Pacific
• 地域 PyCon
– PyCon mini Sapporo 2015年9月
2011年東京 PyCon mini 開催
• NVDA日本語化プロジェクトとして講演
4
併設イベント in PyCon JP 2012
5
PyCon mini Hiroshima の理想
• 誰でも参加して楽しんでもらえる
• 合理的配慮
• NVDAユーザ会広島
– 音声認識を使うテキストと点字の配信
– 位置情報を使う移動支援
• NVDAの実演
– SlideShare サイト
6
アクセシビリティを支えるPython
2015-11-22
PyCon mini Hiroshima 2015
Takuya Nishimoto
@24motz
スクリーンリーダー NVDA
• NonVisual Desktop Access
– 無料、オープンソース(GPL v2)
– 本家 = NV Access オーストラリア
– 全盲の技術者2人が2006年から開発
• Python
– 主要部分の実装
– アドオン
• 3ヶ月ごとのリリース
NVDA日本語版
• 日本語音声合成エンジン
– Open JTalk (C言語)を DLL 化
– export されている関数を ctypes でラップ
• 日本語点訳エンジン
– MeCab を ctypes でラップ
– 形態素からの変換規則
• 点字ディスプレイドライバ
– ベンダーの DLL を ctypes でラップ
0
50
100
150
200
250
300
350
400
450
May-14
Jun-14
Jul-14
Aug-14
Sep-14
Oct-14
Nov-14
Dec-14
Jan-15
Feb-15
Mar-15
Apr-15
May-15
Jun-15
Jul-15
Aug-15
Sep-15
Oct-15
2014.1jp 2014.2jp 2014.3jp 2014.4jp 2015.1jp 2015.2jp 2015.3jp 2015.4jp
Pythonのバグを踏む
• ログオン名が特定の文字を含むときに
NVDAインストーラーが起動しない
• 報告者の名前のアカウントで再現
• 架空の名前「川山」で再現
– 川 0x5ddd
– 山 0x5c71
• C:DOCUME~1川山LOCALS~1Tempnsd7.tmp…
2012-10-18 from Mick
• Actually, Jamie and I have spent the afternoon
investigating this further, and we have found the
exact issue and come up with a solution. I shall
commit the fix tomorrow.
• in short, there is a rather bad bug in Python's
tempfile.gettempdir when dealing with multi-byte
filenames.
• I was able to reproduce your issue exactly.
Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from os.path import normcase
>>> p = ur'C:DOCUME~1川山'
>>> print p
C:DOCUME~1川山
>>> print normcase(p.encode('cp932')).decode('cp932')
c:docume~1川屍
>>> print ["0x%02x %s" % (ord(c), c) for c in u'山'.encode('cp932')]
['0x8e x8e', '0x52 R']
>>> print ["0x%02x %s" % (ord(c), c) for c in normcase(u'山'.encode('cp932'))]
['0x8e x8e', '0x72 r']
mbcs が normcase されてた
• PythonIssue:14255
– あるはずの %home% が見つからない
– 当時すでに報告されているバグだった
• NVDA
– tempfile.gettempdir にモンキーパッチ
– 本家 NVDA issue 2729
• Python 2.7.6 で直ったという話
wxPython
• GUI ツールキット
• NVDA のコアは wx のイベントループ
• wxWidgets はアクセシブル
– Windows MSAA などをラップしている
– フレームワーク選びは重要
• NVDAコミュニティに sighted がいない
– 画面を見る人だけの不具合が頻発
これから
• 日本語版と本家版の統合
• グローバル、日本語チーム、広島地域
• www.nvda.jp
– クラッシュレポートでも歓迎
– Webに関しては本家にコミットしたい
– Web標準のサポート
• IE, Firefox, Chrome, Edge
• Gmail や Google Docs が使える
アクセシビリティ
• 技術ロードマップの真ん中
– 標準化
– マシンリーダブル、自動化
• エコシステムの端っこ
– 非営利
– ボランティア
• 手軽に参加、勉強になる、活躍できる

Weitere ähnliche Inhalte

Ähnlich wie PyCon mini Hiroshima アクセシビリティを支えるPython

Sohu邮箱的python经验
Sohu邮箱的python经验Sohu邮箱的python经验
Sohu邮箱的python经验
Ryan Poy
 

Ähnlich wie PyCon mini Hiroshima アクセシビリティを支えるPython (20)

10大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon201510大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon2015
 
GTC Japan 2017
GTC Japan 2017GTC Japan 2017
GTC Japan 2017
 
Introduction Pycon2010
Introduction Pycon2010Introduction Pycon2010
Introduction Pycon2010
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化
 
Azure Media Services 大全
Azure Media Services 大全Azure Media Services 大全
Azure Media Services 大全
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
 
コミケの取りまとめをしたので
コミケの取りまとめをしたのでコミケの取りまとめをしたので
コミケの取りまとめをしたので
 
プレイヤーサイド・マルチCDN
プレイヤーサイド・マルチCDNプレイヤーサイド・マルチCDN
プレイヤーサイド・マルチCDN
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
DockerCon '17 Feedback at PaaS JP
DockerCon '17 Feedback at PaaS JPDockerCon '17 Feedback at PaaS JP
DockerCon '17 Feedback at PaaS JP
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
 
Programming AWS with Python
Programming AWS with Python  Programming AWS with Python
Programming AWS with Python
 
IKEv2-VPN PyHackCon2023
IKEv2-VPN PyHackCon2023IKEv2-VPN PyHackCon2023
IKEv2-VPN PyHackCon2023
 
Sohu邮箱的python经验
Sohu邮箱的python经验Sohu邮箱的python经验
Sohu邮箱的python经验
 
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
 

Mehr von Takuya Nishimoto

Mehr von Takuya Nishimoto (20)

221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている
 
220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集
 
220126 python-datalake-spark
220126 python-datalake-spark220126 python-datalake-spark
220126 python-datalake-spark
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
 
211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10
 
210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから
 
210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython
 
210728 mpy
210728 mpy210728 mpy
210728 mpy
 
210630 python
210630 python210630 python
210630 python
 
210526 Power Automate Desktop Python
210526 Power Automate Desktop Python210526 Power Automate Desktop Python
210526 Power Automate Desktop Python
 
210428 python
210428 python210428 python
210428 python
 
200918 hannari-python
200918 hannari-python200918 hannari-python
200918 hannari-python
 
200429 python
200429 python200429 python
200429 python
 
200325 flask
200325 flask200325 flask
200325 flask
 
200208 osh-nishimoto-v2
200208 osh-nishimoto-v2200208 osh-nishimoto-v2
200208 osh-nishimoto-v2
 
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
 
191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto
 
191114 iotlt-nishimoto
191114 iotlt-nishimoto191114 iotlt-nishimoto
191114 iotlt-nishimoto
 
191030 anna-with-python
191030 anna-with-python191030 anna-with-python
191030 anna-with-python
 
190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp
 

PyCon mini Hiroshima アクセシビリティを支えるPython