Pull to refresh
15
0
sania @sania

User

Send message

Сервис для создания планировок помещений и интерьеров

Reading time4 min
Views58K


Ровно год назад, мы с партнером, решили стать стартаперами. Точнее, поняли, что теперь мы партнеры-стартаперы. То как поменялась после этого наша жизнь — тема отдельной статьи. Сейчас хотелось бы уделить внимание нашему детищу — сервису планирования помещений и интерьеров.

Итак, пару лет назад, оба фаундера практически одновременно попали в жизненную ситуацию, которая бывает у всех — настало время ремонта.

Что из этого вышло
Total votes 165: ↑159 and ↓6+153
Comments176

Рассказ создателя хостинга-однодневки

Reading time6 min
Views22K
Прочитав топик про хостинги-однодневки, я решил описать свой опыт создания хостинг-провайдера.

Дело было так. Еще в далеком 2005 году я задумался о том, чтобы заняться продажей хостинга. Ведь затраты мизерны, по сравнению с доходами — думал я. И мы с другом арендовали небольшую ВПС. Но тогда ни у кого из нас не было опыта и видимо особого желания этим заниматься. На впс не было даже панели управления, всё делалось вручную. В общем месяца два провисел этот ВПС и всё как-то само собой загнулось.

Но идея заняться хостингом меня не отпускала. Я читал всевозможные статьи на эту тему. Изучал панели управления. В общем повышал уровень знаний как мог.
Читать дальше →
Total votes 198: ↑184 and ↓14+170
Comments100

Как FriendFeed использует MySQL для хранения данных без схемы

Reading time7 min
Views3.2K

Условия


Мы используем MySQL для хранения любых данных FriendFeed. Наша база данных растёт вместе с числом пользователей. Сейчас у нас более 250 миллионов записей, это записи пользователей (post'ы), комментарии, оценки («likes»)

По мере того как росла база данных, мы время от времени имели дело с проблемами масштабируемости. Мы решали проблемы стандартными путями: slave-сервера, используемые только для чтения, memcache для увеличения пропускной способности чтения и секционирование для увеличения пропускной способности записи. Однако, по мере роста, использованные методы масштабируемости привели к затруднению добавлению новой функциональности.

В частности, изменение схемы базы данных или добавление индексов к существующим 10-20 миллионов записей приводили к полной блокировке сервера на несколько часов. Удаление старых индексов требовало времени, а не удаление ударяло по производительности, так как база данных продолжала использовать их на каждом INSERT. Существуют сложные процедуры с помощью которых можно обойти эти проблемы (например создание нового индекса на slave-сервере, и последующий обмен местами master'a и slave), однако эти процедуры настолько тяжелые и опасные, что они окончательно лишили нас желания добавлять что-то новое, требующее изменение схемы или индекса. А так как наши базы сильно распределены, реляционные вещи MySQL как например JOIN никогда не работали для нас. Тогда мы решили поискать решение проблем, лежащее вне реляционных баз данных.

Существует множество проектов, призванных решить проблему хранения данных с гибкой схемой и построением индексов на лету (например CouchDB). Однако, по-видимому ни один из них не используется крупными сайтами. В тестах о которых мы читали и прогоняли сами, ни один из проектов не показал себя стабильным, достаточно зрелым для наших целей (см. this somewhat outdated article on CouchDB, например). А все это время MySQL работал. Он не портил данные. Репликация работала. Мы уже в достаточной мере понимали все его узкие места. Нам нравился MySQL именно как хранилище, вне реляционных шаблонов.

Все взвесив, мы решили создать систему хранения данных без схемы поверх MySQL, вместо использования полностью нового решения. В этой статье я попытаюсь описать основные детали системы. Так же нам любопытно как другие сайты решили эти проблемы. Ну и мы думаем, что наша работа будет полезна другим разработчикам.
Читать дальше →
Total votes 116: ↑110 and ↓6+104
Comments60

Тренировка памяти

Reading time3 min
Views41K
Вы когда-нибудь задумывались, насколько важна память для человека и конкретно для вас? Что можно достичь, с помощью хорошей памяти? А давайте прикинем прямо сейчас!? Для начала я думаю, стоит вспомнить образование и работу: прочитали книгу за несколько дней и все запомнили, экзамены за вечер на 5, язык программирования за месяц… можно продолжать долго.

Некоторые люди рождаются с феноменальной памятью, а остальные могут память тренировать и достигнуть хоть и не феноменальных результатов, но очень даже приличных, которые позволят достичь очень больших высот, не говоря уже о довольно простых вещах, перечисленных чуть выше… Поэтому моя заметка именно о тренировке памяти обычных людей: сжато и по сути.
Читать дальше →
Total votes 86: ↑72 and ↓14+58
Comments61

Habrahabr для PDA

Reading time2 min
Views644


Зачастую, находясь в общественном транспорте, на лекциях или где-нибудь ещё в дали от компьютера, я читаю новости и смотрю необходимую информацию на своём Pocket PC. И в основном посещаю сайты адаптированные для мобильных устройств. Однако, так уж вышло, что небезызвестный ХабраХабр расчитан лишь для пользователей полноценных ПК и открывать хабр с «карманника» дело мучительное и долгое.

Я знаю, что тема мобильной версии данного проекта поднималась здесь неоднократно, но никто так и не смог предложить нормального решения. И как мы все понимаем, ждать официальной реализации от разработчиков Хабра бесполезно.

Поэтому я вооружившись своими знаниями PHP и регулярных выражений, решил сам сделать мобильную версию хабрахабра. Получилась простая читалка, но быстрая и удобная. В ней можно посмотреть последние 20 новостей с главной страницы и 20 новостей из новых, плюс разделение на персональные и коллективные блоги.
Читать дальше →
Total votes 91: ↑89 and ↓2+87
Comments76
2

Information

Rating
Does not participate
Date of birth
Registered
Activity

Specialization

Specialist
SQL
Golang
High-loaded systems
MySQL
Database
Ajax