Devdays2h2012 — различия между версиями
(→Идеи проектов) |
(→Python type checking) |
||
Строка 35: | Строка 35: | ||
=== Python type checking === | === Python type checking === | ||
− | Предлагаю реализовать cli tool для проверки типов в Python проектах. Вдохновиться можно [[http://www.erlang.org/doc/man/dialyzer.html аналогичным]] инструментом из мира Erlang. Основная идея: давайте типизируем __builtin__ и часть стандартной библиотеки, этого должно хватить, чтобы находить ошибки вида <code>map(1, 2)</code> или <code>os.path.exists([])</code>. | + | Предлагаю реализовать cli tool для проверки типов в Python проектах. Вдохновиться можно [[http://www.erlang.org/doc/man/dialyzer.html аналогичным]] инструментом из мира Erlang. Основная идея: давайте типизируем __builtin__ и часть стандартной библиотеки, этого должно хватить, чтобы находить ошибки вида <code>map(1, 2)</code> или <code>os.path.exists([])</code>. Всё, что мы таким образом типизировать не можем считаем значением типа <code>object</code>. Примеры: |
+ | |||
+ | <pre> | ||
+ | # Type signatures for `os` module. | ||
+ | type(os.path.exists, Function(str, bool)) | ||
+ | |||
+ | os.path.exists([]) # type: error | ||
+ | os.path.exists("/") # type: bool | ||
+ | |||
+ | os.listdir("/") # type: object, since we don't know the type of `os.listdir`. | ||
+ | </pre> | ||
+ | |||
+ | Можно сразу ориентироваться на Python3 и использовать [[http://www.python.org/dev/peps/pep-3107/ function annotations]] в качестве источника информации о типах: | ||
+ | |||
+ | <pre> | ||
+ | def f(x : int) -> float: | ||
+ | return float(x) | ||
+ | </pre> | ||
+ | |||
+ | Paper: [[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.66.699 Experience from Developing the Dialyzer: A Static Analysis Tool Detecting Defects in Erlang Applications]] | ||
=== stream-lib revisited === | === stream-lib revisited === |
Версия 17:13, 11 ноября 2012
Содержание
Идеи проектов
- Андроид клиент для biletolovilka.ru
- Сетевые шахматы на троих; бессмысленно и беспощадно.
- Фреймворк для организации CTF-соревнований
- Experimental project for http://www.chromeexperiments.com/
- Just another extension for Chrome
Андроид клиент для biletolovilka.ru
Очень тяжело найти билет в питер в ночь с пятницы на субботу. Однако билеты периодически возвращаются клиентами и очень хочется заменить кнопку F5 на cron-task. Пройдя по ссылки уже становиться понятен юзкейс приложения, и было бы здорово, сделать андроид(multiplatform) клиент с удобным UI'ем.
Мечта меломана
Клиентская и серверная части.
Сервер: - Мониторит аккаунты на youtube, vk - При добавлении трека в аудиозаписи сама добавляет его в музыкальную коллекцию со структурой по папочкам, скачивает обложку, приводит в порядок все тэги автоматически. Использует, например, информацию о длительности . - При добавлении видео в избранное на youtube конвертирует его в mp3, дальше всё аналогично. - Синхронизируется со всеми устройствами. В домашней wifi сетке автоматом синхронизируется со всеми android-девайсами по wifi. При подключении MTP-девайса (плеер) автоматом синхронизируется с ним. Можно в две стороны.
Клиенты: всякие мобильные платформы
Обеспечивают синхронизацию с базой на сервере при входе в зону
домашнего Wifi или вручную.
Python type checking
Предлагаю реализовать cli tool для проверки типов в Python проектах. Вдохновиться можно [аналогичным] инструментом из мира Erlang. Основная идея: давайте типизируем __builtin__ и часть стандартной библиотеки, этого должно хватить, чтобы находить ошибки вида map(1, 2)
или os.path.exists([])
. Всё, что мы таким образом типизировать не можем считаем значением типа object
. Примеры:
# Type signatures for `os` module. type(os.path.exists, Function(str, bool)) os.path.exists([]) # type: error os.path.exists("/") # type: bool os.listdir("/") # type: object, since we don't know the type of `os.listdir`.
Можно сразу ориентироваться на Python3 и использовать [function annotations] в качестве источника информации о типах:
def f(x : int) -> float: return float(x)
stream-lib revisited
Для Java [есть] замечательная библиотека, реализующая summary statistics для потоков данных. Было бы здорово реализовать что-то похожее на Python.
Клиент для Google Play
Есть только 2 способа пользоваться Google Play, с телефона, или из браузера, при этом если хочется получить apk файл на компьютер, то единственный способ это вытаскивать его с телефона. Почему бы не написать кросс платформенный клиент с использованием Qt, который позволит качать файлы прямо на ПК(и можно добавить различные возможности). Притом что протокол довольно прост.