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

Материал из SEWiki
Перейти к: навигация, поиск
(Парсер теховских формул на хаскелле (или на скале))
(Платформа для Web автоматизации)
Строка 78: Строка 78:
 
В будущем возможно расширение скриптов добавлением различных возможностей, как минимум ветвлений.
 
В будущем возможно расширение скриптов добавлением различных возможностей, как минимум ветвлений.
 
Основное требование: скорость работы и максимальная загрузка сетевого соединения.
 
Основное требование: скорость работы и максимальная загрузка сетевого соединения.
 +
 +
-- Внезапно! таких уже миллион, google web crawler DSL. (С. Лебедев)

Версия 23:15, 11 ноября 2012

Идеи проектов

  • Андроид клиент для biletolovilka.ru
  • Сетевые шахматы на троих; бессмысленно и беспощадно.
  • Фреймворк для организации CTF-соревнований
  • Experimental project for http://www.chromeexperiments.com/
  • Just another extension for Chrome
  • Платформа для Web Автоматизации

Андроид клиент для 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, который позволит качать файлы прямо на ПК(и можно добавить различные возможности). Притом что протокол довольно прост.

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

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

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

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

-- Обычно идут другим путем, записывают формулу на каком-нибудь DSL, чтобы можно было её вычислить и сконвертировать в TeX. (С. Лебедев)

Платформа для Web автоматизации

Было бы здорово написать библиотеку, которая бы позволила писать простые скрипты: зайти на сайт N, вытащить данные с помощью данного регулярного выражения, сохранить данные. В будущем возможно расширение скриптов добавлением различных возможностей, как минимум ветвлений. Основное требование: скорость работы и максимальная загрузка сетевого соединения.

-- Внезапно! таких уже миллион, google web crawler DSL. (С. Лебедев)