44,70
рейтинг
8 октября 2013 в 19:21

Разработка → Исходники РосВыборов открыты



В августе на Хабре был пост, в котором мы срочно искали Rails-разработчиков, и ситуация выглядела почти критической. Тем не менее, хотя это было и непросто, мы успели – система координации наблюдателей успешно отработала на предвыборном этапе и непосредственно во время выборов, выполнив возложенные на неё задачи.
Конечно, были накладки, самая большая – почти часовой downtime интерфейса записи обращений коллцентра в день выборов, спровоцированный крупной DDoS-атакой на “соседние” проекты ФБК (наша ошибка, могли получше подготовиться), но в целом на результатах это не сказалось.

После выборов по понятным причинам разработка фактически остановилась, и проект потихоньку был подготовлен к открытию кода. Я сам в свободное время буду заниматься его доработкой, но так один далеко не уедешь, и поэтому, конечно, нам нужны руки и головы тех, кто готов пожертвовать немного времени на развитие системы. То, что она будет нужна, не вызывает сомнений, первые большие выборы, где понадобится такой масштаб координации наблюдателей – выборы в Мосгордуму, которые уже не за горами.

Итак, репозиторий проекта — github.com/fbkinfo/rosvybory.

Если вы не готовы брать и начинать писать код, но есть какие-то конструктивные предложения или критика, то, конечно, тоже не стесняйтесь, можно здесь или сразу в issues на гитхабе. Над проектом работала целая куча замечательных инженеров, но с разным опытом и в весьма адовых условиях, поэтому в проекте можно многое дорабатывать, и конкретика бы очень помогла, и мне, как maintainer’у, и, наверняка, другим разработчикам, которые возьмутся помогать.

Текущий вариант можно попробовать в действии на демо-версии, см. github.com/fbkinfo/rosvybory/wiki/Демо-сервер.
Основная задача сейчас – доработка в соответствии с имеющейся постановкой.
Более конкретные задачи и зафиксированные баги — github.com/fbkinfo/rosvybory/issues (мне ещё предстоит разобраться, как адекватно их упорядочить, во время разработки мы пользовались другим трекером).
Исходя из того, что проект будет нужен и дальше, нужно также покрытие тестами – сейчас их достаточно мало – и рефакторинг в меру сил и желания, – многие вещи писались на скорость.

На данный момент совсем важных задач вроде бы не очень много, но я уверен, что ребята из самих РосВыборов и других наблюдательных организаций ещё подкинут фидбека и идей, которые, по мере поступления, будут публиковаться в issues.

У меня нет опыта содержания публичного репозитория, поэтому советы и критика на тему организации этого процесса также приветствуются.

Присоединяйтесь! Как говорится, РосВыборы сами себя не напишут.:)

P.S.
Приходите завтра на встречу IT профессионалов все, кто хочет помогать Фонду борьбы с коррупцией. Познакомимся, поговорим о проектах и планах на будущее. 9 октября в среду в 19:30, улица Таганская, дом 29. www.facebook.com/events/443888772399542
Автор: @biomancer
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Комментарии (34)

  • +19
    У меня очень банальный вопрос: под какой лицензией распространяется этот код? Ни в репозитарии, ни в документации, ни в вашем посте не нашел этого.
    • +25
      Спасибо за замечение, лицензия MIT, указал в Readme.
  • +13
    Спасибо за вклад в борьбу с «невидимым врагом»
  • 0
    У меня немного другой вопрос, ребята, а почистили ли вы основную базу, перед тем, как сливать исходники. Не будем говорить кто, хотя это была Настя И, помнится, жестко поимела один из подобных проектов, получив базу зарегавшихся:) и я не хочу, чтобы мои данные утекали через ваши дыры.
    • +6
      Важный вопрос — разумеется, собственно в этом в основном и заключалась подготовка к открытию исходников, пришлось, в том числе, историю в репозитории менять, чтобы личные данные некоторых пользователей не засветить. Имена на демо-сервере сейчас сгенерированы через Faker, а email и телефоны, думаю, очевидно фейковые. Также демо-приложение не записывает ip заявок, чтобы публично его потом не светить.
      • 0
        Я немножко о другом, насколько я помню РосВыборы живой проект. И я про настоящие базы на живых серверах. Соответственно любая бага- это прямой доступ до наблюдателей.
        • 0
          и не говорите, что они потерты, рассылка — доказательство их жизнеспособности
        • +3
          Приложение выключено. Рассылки делаются через другой сервис.
          • 0
            спасибо
        • +7
          Именно эта часть сейчас отключена в продакшене, то, что висит на rosvybory.org — это отдельный проект, они никак не пересекаются.
          В будущем же, конечно, такая опасность существует, как и в любом open source проекте, но тут уже надо работать, чтобы не было таких дырок, что поделать. Скорее всего, если дырка есть, то её при желании и без исходников найдут, тут не стоит надеяться на закрытость кода, тем более в таком технически относительно несложном проекте, в котором можно и без кода в общих чертах понять, как что работает и где могут быть слабые места.
  • +8
    А как добраться до Restful API чтобы выставить 146%? )
    • +3
      501 Not Implemented
      • +1
        200 OK Спасибо
  • +3
    Уже сейчас с данными из вашего кода можно нафигачить сообщений на карту нарушений.
    • +2
      И на mandrill зачем-то логин\пароль в конфигах. Бардак-с.
      • 0
        Все пароли и ключи доступа в примерах конфигов не являются действующими, и оставлены скорее для примера.
        • +1
          Ну на mandrill я точно смог зайти. Хотя там действительно что-то похожее на тестовый аккаунт
          • +1
            Это был тестовый аккаунт одного из разработчиков, сменил пароль. Спасибо!
      • 0
        Для рекаптчи только оставил один из рабочих вариантов, но и то на продакшене другое указано.
        Пожалуй, надо будет поставить везде что-то вроде «your password here», чтобы не складывалось впечатление утечки.
      • +3
        Блин, с картой нарушений вы похоже правы — пропустил ключ в коде, прослежу, чтобы он точно не был действительным, спасибо!
  • 0
    Спасибо за код. Подскажите, а что с Росямой? Она где-то доступна?
  • +2
    >> но вы чет вы поздно спохватились с дедлайном.

    > совершенно верно, и я с удовольствием расскажу о причинах этого и готов буду обсудить, но давайте сделаем это 9 сентября :)

    habrahabr.ru/post/191262/#comment_6644890

    Т.е. что там за ситуация сложилась, и как из неё вышли? Как финансировалось? В комментариях сказано, что Вы отказывались от некоторой помощи. Если так, то почему?
    • 0
      Я не имею прямого отношения к фонду, и скорее являюсь волонтёром, взявшимся помогать их IT-проектам, поэтому на все вопросы компетентно не могу ответить. Что касается ситуации, то, в моём понимании, при планировании сильно помешало то, что скорость работы волонтёра, который занимается разработкой в свободное время, фиг спрогнозируешь — проект сам не сильно большой, и на самом деле времени на него было заложено не то, чтобы много, но вполне достаточно, просто в какой-то момент стало понятно, что без фуллтаймеров не успеть и начался их активный поиск. Где-то писали, что нельзя делать ставку на волонтёров, и всё отдавать профессионалам, но, в конце концов, тут всё завязано и стоит только на волонтёрах, поэтому, мне кажется, такой подход вполне имел право на существование.
      Вышли из ситуации, найдя программистов, как я понимаю.
      Возможно, я в чём-то ошибаюсь, но я так это вижу со своей стороны разработчика, участвовшего в проекте с первых дней (кодинга) с некоторым перерывом. Касательно остальных моментов, к сожалению, не могу ответить, т.к. не знаю.
      • 0
        Насколько я понял, исходники в какой-то момент стали закрыты. Почему такое произошло?
        • 0
          Так они были закрыты с самого начала. Причина — разработка велась в таких темпах и условиях, что через открытый репозиторий и открытую постановку задач точно бы что-нибудь утекло из данных не для распространения, не было времени это отдельно контроллировать, это сильно бы замедлило всё. Разработка, тем не менее, на начальных этапах, когда полагались на волонтёров, по сути была квазиоткрытая, то есть работать над проектом мог, в принципе, кто хотел, но надо было сначала связаться с фондом, и пройти какую-то минимальную премодерацию. Я сам так и начал участвовать в этом.
  • +1
    Скажите, а существует какой то механизм, подтверждающий что на выборах в данный момент используется именно та компиляция проекта что была показана общественности. Можно ли открыто проверить контрольные суммы файлов, их количество, откуда идут правки в базу итп. что то что гарантрирует что на выборах используется именно эта версия (без каких либо хаков под под чьи — либо интересы). Какие вообще предусмотрены возможности для контроля за программой например для оппозиции? Как это было на последних выборах? Кто следил от оппозиции за программой и оборудованием?
    п.с. меня всегда интересовало насколько имеют под собой почву утверждения о подтасовках и манипуляциях. Вообще, это тема для отдельной статьи, было бы интересно, а может и посоветовал бы кто потом чтото полезное. Согласитесь, если сделать все достаточно открыто то возможность манипуляции резко упадёт.
    • +4
      Я не уверен, что правильно понял ваш вопрос, на на выборах не используется этот проект, я имею в виду для подсчета голосов. Этот проект используется для регистрации и распределения по участкам наблюдателей, если я не ошибаюсь. Это проект и есть проект оппозиции — а именно фонда по борьбе с коррупцией Навального.
      • +2
        спасибо за разъяснение, я уж было размечтался что Чуров коды открыл. Думаю, надо же, как демократично, где же думаю подвох. Мечты так и остались мечтами. Успехов Вам ребята, хоть Вы пытаетесь что то сдвинуть.

        п.с. волшебники не раскрывают своих секретов
    • +2
      Это проблема всех открытых проектов.

      В случае компилируемых языков — проверить, соответствует ли бинарник исходникам или нет.
      Для проектов, хостящихся на сервере нельзя гарантировать, что исполняется та копия, исходники которой доступны.
      Если, например, сделать скрипт, который отдаёт нам контрольные суммы файлов, то, как нам доказать, что скрипт отдаёт реальные данные, а не фейк? А если, открыть, скажем, доступ по ftp только для чтения, то кто может дать гарантию, что этот ftp не проброшен на небоевую, заведомо «чистую» машину?
      • 0
        Ничего лучше, чем дать возможность проведения независимого технического аудита — типа дать любому желающему рутовую консоль под присмотром и контролем хозяев… Или так-экспортировать (после подписания соответствующего NDA.) весь входной поток данных, чтобы желающие могли повторить на отдельно установленной системе весь процесс работы системы, чтобы потом сверить контрольные суммы правильно сфоомированных дампов.
  • 0
    • +3
      Когда они это анонсировали, я попытался немного вникнуть. Во-первых, это ни разу не опенсорс. Лицензия, по которой они предоставляют доступ не допускает какого-то либо использования или изменения. Во-вторых, в коде у них там творится бардак, переменные на эстонском, какая-то другая магия и ни строчки документации. Т.е. рассчитывать на то, чтобы скачать и запустить локально не приходится. Ну так и нельзя по лицензии.

      Ну и они, естественно, не раскрыли клиентскую часть. Что, впрочем, понятно.

      В общем, я, если честно, не понял зачем они это сделали и кому это может быть интересно.
      • 0
        Ходил я на это открытие кода в vvk. Демагожили там часа 3. Совершенно ни о чём. Потом при нас залили код на гитхаб и «всем спасибо — все свободны»
        А клиентскую часть не открыли, потому что их не интересует, что происходит в клиентсокм компе.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка