Devdays2h2012 — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Python type checking)
(Идеи проектов)
Строка 67: Строка 67:
 
=== Экстеншен для идеи про обход массивов ===
 
=== Экстеншен для идеи про обход массивов ===
 
Экстеншен для идеи, который видит, что двумерный массив обходится в "плохом" порядке (с потерей кэшей) и предлагает поправить.
 
Экстеншен для идеи, который видит, что двумерный массив обходится в "плохом" порядке (с потерей кэшей) и предлагает поправить.
 +
 +
=== Парсер теховских формул на хаскелле (или на скале) ===
 +
Хочется взять теховскую формулу и получить по ней объект, который умеет ее исполнять.

Версия 18:03, 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. Примеры:

# Assign a type signature to `os.path.exists`, it's a function, which takes a string and returns a boolean.
signature(os.path.exists, Function(str, bool))

# Now try to infer a type of the following expressions.
os.path.exists([])   # type: error, the input argument should be a string!
os.path.exists("/")  # type: bool

# Try the same for a function, with an unknown signature.
os.listdir("/")      # type: object, since we don't know the signature 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, который позволит качать файлы прямо на ПК(и можно добавить различные возможности). Притом что протокол довольно прост.

Экстеншен для идеи про обход массивов

Экстеншен для идеи, который видит, что двумерный массив обходится в "плохом" порядке (с потерей кэшей) и предлагает поправить.

Парсер теховских формул на хаскелле (или на скале)

Хочется взять теховскую формулу и получить по ней объект, который умеет ее исполнять.