Devdays2h2012 — различия между версиями
(→Python type checking) |
(→Python type checking) |
||
Строка 54: | Строка 54: | ||
</pre> | </pre> | ||
− | + | P. S. Создатели dialyzer написали 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:15, 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. signature(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)
P. S. Создатели dialyzer написали paper по мотивам своих изысканий: [Experience from Developing the Dialyzer: A Static Analysis Tool Detecting Defects in Erlang Applications]
stream-lib revisited
Для Java [есть] замечательная библиотека, реализующая summary statistics для потоков данных. Было бы здорово реализовать что-то похожее на Python.
Клиент для Google Play
Есть только 2 способа пользоваться Google Play, с телефона, или из браузера, при этом если хочется получить apk файл на компьютер, то единственный способ это вытаскивать его с телефона. Почему бы не написать кросс платформенный клиент с использованием Qt, который позволит качать файлы прямо на ПК(и можно добавить различные возможности). Притом что протокол довольно прост.