• Участие в соревновании разработчиков Evernote — Notex.me, постмортем

      Не слишком краткая история участия в соревновании разработчиков Evernote.

      Предыстория


      Началось всё довольно давно с приобретения смартфона на Android. Книга контактов автоматически сместилась в GMail. А будучи человеком ленивым — стараюсь записывать всё, что можно забыть, чтобы голова была максимально свободна. Постепенно заметки о людях, с которыми я общаюсь, росли и в количестве и в размере.

      Всё бы хорошо, но заметки в гмейле — это плеин текст и, по мере накопления информации, читабельность всё падала и падала… Кроме того, htc desire при связывании контакта с учетной записью на фейсбуке сохраняет в это поле фрагмент xml с информацией о связи.

      Хотелось как-то решить этот вопрос, но, то времени мало, то лень. Явно не хватало магического пинка под зад.
      И вот…
      Читать дальше →
    • hGate – web врата в управление репозиториями Mercurial

        Краткая версия

        Что предлагается: web интерфейс управления репозиториями и пользователями mercurial — hGate.
        Кому полезно: тем, кто использует связку Mercurial+HgWebDir и создает репозитории или пользователей чаще, чем раз в пару месяцев.
        Где скачать и как установить: bitbucket.org/shedar/hgate
        Если Вам интересно, зачем это было делать, подробный перечень возможностей и что будет дальше — продолжаем.
        Читать дальше →
        • +30
        • 3,4k
        • 5
      • Согласованные в конечном счете (Eventually Consistent)

        • Перевод
        В последнее время на хабре чаще стали встречаться обсуждения масштабируемых систем и NoSQL решений. Эта статья, написанная техническим директором Amazon — одна из лучших вводных, на мой взгляд, показывающая, какие проблемы возникают при построении масштабируемых систем, что нужно учесть при выборе инструментария, что имеют ввиду авторы кассандры, говоря про обеспечение AP в кассандре и CP в HBase и многое другое.
        Читать дальше →
      • Хранение файлов в MySQL и их быстрая раздача

          Думаю у многих возникала необходимость хранить файлы, связанные с записью в таблице. Это может быть картинка к новости, аватар, загруженный пользователем файл — да все, что угодно. Обычно в этому случае поступают просто — файл ложится в файловую систему, а ссылка на него — в запись БД.
          Но у такого классического похода множество недостатков:
          • файлы не удаляются при удалении соответствующей записи БД
          • проблемы при одновременной попытке обновления файла
          • нарушение синхронизации между БД и файловой системой при откате транзакции
          • при резервном копировании и восстановлении информации в БД может возникнуть рассинхронизация с файловой системой
          • файлы не подчиняются ограничениям доступа, наложенным с помощью БД

          Больше о проблемах, возникающих при хранении файлов отдельно от БД можно почитать в презентации SQL Antipatterns, раздел Phantom Files, страница 60. Кстати, автор презентации предлагает решение — хранить файлы прямо в БД, в поле типа BLOB. Правда следует замечание, что это должно быть взвешенное решение в каждом конкретном случае. Ведь при таком способе хранения файлов вебсервер должен при каждом запросе вызывать некий скрипт, который будет извлекать файл из БД и отдавать пользователю, что неминуемо отрицательно скажется на производительности.
          Для поиска решения данной проблемы был проведен мозговой штурм и придумано несколько вариантов решения проблемы:
          Читать дальше →