Как стать автором
Обновить

Полноценный REST API для перфекционистов за 5 минут

Время на прочтение15 мин
Количество просмотров229K


Привет, Хабр! Меня зовут Владимир, мне 28 лет и я наркоман наркоман. Мой наркотик – простота. На простоту я подсел из-за своего перфекционизма, которым меня наградили при рождении.

Врачи говорят, что это взаимосвязано, мол перфекционизм — это стремление к совершенству, а простота позволяет подобраться к этому мифическому совершенству. Чем проще решение, тем меньше ошибок можно допустить, вот я и подсел. Я не стал с ними спорить и вместо того, что бы искать виновников моей истории, решил с этим жить и постараться повысить качество этой самой жизни.

Мир вокруг не идеален, сложную вещь сделать простой – невероятно сложно, поэтому всё чрезмерно усложнено. Людям нравится чувствовать себя профессионалами, поэтому они оперируют сложными терминами, когда в этом нет необходимости, так они ощущают свою значимость и заполняют пустоту, которая образовалась из-за страха потерянного времени.
Читать дальше →
Всего голосов 49: ↑41 и ↓8+33
Комментарии78

Открытая система прокторинга для дистанционного сопровождения онлайн-экзаменов

Время на прочтение6 мин
Количество просмотров35K
Летом прошлого года в Университете ИТМО прошел дистанционный экзамен для поступающих в аспирантуру, а в январе этого года для слушателей курсов Национальной платформы открытого образования, желающих получить подтвержденный сертификат, была предоставлена возможность пройти итоговую аттестацию по выбранному курсу под присмотром проктора. Все это было организовано на базе открытой системы дистанционного надзора, специально разработанной для этих целей. В данной статье я постараюсь провести обзор системы, а также рассказать о некоторых особенностях ее разработки.

Дистанционный экзамен с проктором
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии15

Об онлайн университете MongoDB

Время на прочтение3 мин
Количество просмотров19K
Осенью прошлого года из официальной рассылки MongoDB узнал о существовании их университета с бесплатными онлайн курсами по продукту. Я решил воспользоваться возможностью прокачать свои знания и прошёл один из курсов. В этой статье расскажу о том, как проходит обучение в MongoDB University.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии10

Amelisa. Оффлайн и реалтайм движок для React и Mongo

Время на прочтение6 мин
Количество просмотров20K

Написал недавно движок для синхронизации данных, имеющий первоклассную поддержку оффлайна. Например, можно уйти в оффлайн, изменять данные, закрыть браузер, открыть браузер, открыть сайт (выйти в онлайн) и данные смержатся без потерь. Также во время онлайна данные между клиентом и сервером синхронизируются в реальном времени. Хочу рассказать, в чём была идея, какие есть подобные решения/технологии и кому это может пригодиться.




Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии15

Слежение за обновлениями из MongoDB Replica Set Oplog используя Scala и Akka Streams

Время на прочтение4 мин
Количество просмотров5.6K
Представляю вашему вниманию перевод статьи Tailing the MongoDB Replica Set Oplog with Scala and Akka Streams.

Введение


В этой статье я попробую объяснить, как следить за обновлениями в MongoDB Oplog при помощи Scala драйвера MongoDB и Akka Streams.
Примеры, приведенные в данной статье не следует рассматривать и использовать в продакшн среде.
Каждый из нас знает Unix команду tail -f, Tailable Cursor имеет тот же концепт. MongoDB предоставляет возможность использовать эту функцию по умолчанию и не требует дополнительных библиотек и инструментов. Что касается Oplog — это такая же коллекция, как и все остальные и ничего нового не требуется.
Если вы хотите узнать больше об Oplog и Tailable Cursor, то вы можете найти больше информации в документации MongoDB:

Проект созданный в данной статье удобно расположился на Github.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Стек MEAN. Пример использования

Время на прочтение15 мин
Количество просмотров30K
Здравствуйте, уважаемые читатели.

Сегодня вашему вниманию предлагается статья о стеке MEAN (Mongo, Express, Angular, Node) который кажется нам перспективной (при этом достаточно модной) темой. Просим высказаться, хотите ли вы увидеть на русском языке книгу об этом стеке. Добро пожаловать под кат.
Читать дальше →
Всего голосов 11: ↑6 и ↓5+1
Комментарии7

Слежение за обновлениями из MongoDB Oplog в Sharded Cluster используя Scala и Akka Streams

Время на прочтение5 мин
Количество просмотров4.4K

Введение


Эта статья является продолжением предыдущей опубликованной статьи Tailing the MongoDB Replica Set Oplog with Scala and Akka Streams.
Как мы обсуждали прежде, слежение за обновлениями в MongoDB Sharded Cluster Oplog имеет свои подводные камни по сравнению с Replica Set. Данная статья попытается раскрыть некоторые аспекты темы.
В блоге команды MongoDB имеются очень хорошие статьи, полностью покрывающие тему слежения за обновлениями из MongoDB Oplog в Sharded Clusters. Вы можете найти их по следующим ссылкам:

Так же вы можете найти информацию об MongoDB Sharded Cluster в документации.
Примеры, приведенные в данной статье не следует рассматривать и использовать в продакшн среде. Проект с примерами доступен на github.


MongoDB Sharded Cluster


Из документации MongoDB:
Sharding, или горизонтальное масштабирование, разделение и распределение данных на нескольких серверах или сегментах (shards). Каждый сегмент является независимой базой данных, и в совокупности все сегменты составляют единую локальную базу данных.

Sharded Collection


В продакшин среде каждый узел является Replica Set:


Sharded Cluster Architecture
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии0

MongoDB хранение деревьев

Время на прочтение3 мин
Количество просмотров8.6K
Есть несколько алгоритмов хранения деревьев в mysql, и мне кажется, что это в корне неправильно, так как реляционная база данных не предназначена для этого, а представление линейных структур данных в древовидную — один большой костыль в коде и понижение надёжности и скорости приложения. Как я задумался об использование NoSQL в частности mongoDB? Всё просто, меня на собеседование спросили:
Как построить дерево?

Я ответил:
Берём mongodb и документ с деревом из неё

Мне так и не перезвонили, но я не расстраиваюсь за то теперь я изучаю mongoDB и не люблю Mysql(к счастью или к сожалению я не знаю). В общем, разберём как всё это работает? На примере дерева комментариев написанном на php.
Читать дальше →
Всего голосов 24: ↑6 и ↓18-12
Комментарии54

За и против: Когда стоит и не стоит использовать MongoDB

Время на прочтение5 мин
Количество просмотров91K


Разработчик и сотрудник проекта CouldBoost.io Наваз Дандала (Nawaz Dhandala) написал материал о том, почему в некоторых случаях не стоит использовать MongoDB. Мы в «Латере» развиваем биллинг для операторов связи «Гидра» и уже много лет работаем с этой СУБД, поэтому решили представить и свое мнение по данному вопросу.
Читать дальше →
Всего голосов 47: ↑30 и ↓17+13
Комментарии93

Osliki.Net – социальная доставка

Время на прочтение2 мин
Количество просмотров2.3K
Osliki.Net

Исходный код доступен на GitHub. Используется full-stack JavaScript инструментарий Node.js + Angular2 + MongoDB, сборка Gulp.js, тестирование Mocha, хостинг DigitalOcean, платежи PayPal API.

Этапы процесса создания проекта запечатлены на LiveCoding.

Суть проекта в том, что люди, которые часто путешествуют, могут доставлять другим практически любые вещи в своем багаже. Например вы живете в США и вам срочно нужны какие-либо лекарства или документы из России. На Осликах можно найти человека, который как раз едет из Москвы в Нью-Йорк. Он может помочь за деньги или бесплатно.

Таким образом, пользователи могут выступать и в качестве клиентов, которым нужна доставка, и в качестве путешественников, которые могут доставлять что-либо. Путешественник имеет возможность выставлять счета на оплату клиенту, service fee, вместе с PayPal fee, составляет около 10%.

Проект будет интересен в первую очередь:
  • людям, которые находятся далеко от дома (тоска по родной еде типа халвы, шоколада, кефира и т.д., необходимость в специфичных лекарствах)
  • тем кто хочет сэкономить на покупке товаров. Один подписчик на livecoding, например, утверждал что во Франции электроника дешевле чем в Британии :)
  • студентам, которые учатся вдали от дома, и сезонно перемещаются от места учебы до дома и обратно
  • дальнобойщикам, стюардессам, коммивояжерам вообщем всем тем, кто по роду деятельности часто путешествует и не прочь на этом дополнительно подзаработать.

Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии23

Развертывание стека MEAN (MongoDB, Express, AngularJS, Node.js) в Microsoft Azure

Время на прочтение5 мин
Количество просмотров8.4K
Вы уже знаете, что мы запустили новый проект, посвященный проектам с открытым исходным кодом — linuxloves.ms. Подробности про проект вы можете найти в нашей публикации на Хабре, которая уже вызвала ожесточенный флейм :-).


Разработчики, которые создают решения в стеке MEAN могут легко размещать свои решения в облачной платформе Microsoft Azure. Проще всего это сделать с помощью виртуальных машин.

Для упрощения работы с виртуальными машинами в облаке Azure предлагается площадка Azure Marketplace, в которой находятся сотни заранее настроенных виртуальных машин с разным окружением и установленными инструментами, включая операционные системы, базы данных, среды, фреймворки, CMS и так далее.

Рассмотрим, как любой пользователь Azure может развернуть стек MEAN за несколько минут.
Читать дальше →
Всего голосов 27: ↑16 и ↓11+5
Комментарии1

Видео с OpenSQL Camp o MySQL и не только

Время на прочтение4 мин
Количество просмотров1.4K
В ноябре этого года, в Портланде, США прошла конференция OpenSQL Camp посвященная опенсорс СУБД.
Совершенно случайно наткнулся на видео докладов и спешу ими поделиться. Общий уровень конференции, как мне показалось, достаточно высок, так что советую посмотреть. Часть видео, к сожалению, в плохом качестве. Все презентации, конечно же, на английском.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии4

Форсаж под нагрузкой на Symfony + HHVM + MongoDB + CouchDB + Varnish

Время на прочтение6 мин
Количество просмотров13K


Сегодня хотим рассказать о том, как строили систему, к которой сейчас обращается более 1 млн. уникальных посетителей в день (без учёта запросов к API), о тонкостях архитектуры, а также о тех граблях и подводных камнях, с которыми пришлось столкнуться. Поехали…
Читать дальше →
Всего голосов 20: ↑12 и ↓8+4
Комментарии12

phpDaemon — фреймворк асинхронных приложений

Время на прочтение6 мин
Количество просмотров44K
Сегодня речь пойдет о phpDaemon — асинхронном модульном демоне-фреймворке, который берёт на себя обработку I/O (libevent) и другие низкоуровневые задачи, присущие демонам. С его помощью легко писать правильные сетевые приложения с блэкджеком и шлюхами.
Из коробки идут сервера FastCGI, HTTP, CGI, FlashPolicy, Telnet, WebSocket (!) — да-да тот самый волшебный пендаль новый протокол от Google. И клиенты mysql, memcached, mongodb… И многое другое, полный список под катом. Работать с сетью действительно просто. Программист средней руки может написать, к примеру, IRC-бота за считанные часы.
В качестве наглядного примера я реализовал вот этот чат на phpDaemon + WebSocket + MongoDB + jQuery. Он наглядно демонстрирует преимущества этой технологии: доставка сообщений мгновенна, накладные расходы при обмене данными минимальны, высока производительность, приложение масштабируется горизонтально. Исходники этого чата (в данный момент 17 кб). Прошу заметить, чат тестировался и работает в Chrome, FF, IE6+, Iron, Safari.
Читать дальше →
Всего голосов 114: ↑99 и ↓15+84
Комментарии103

Про использование MongoDB и CouchDB в продакшене

Время на прочтение1 мин
Количество просмотров4.5K
Просмотрел списки инсталляций MongoDB и CouchDB.

MongoDB используют как минимум два крупных сервиса, это SourceForge и Disqus, а вот в списке CouchDB я вообще не нашел ничего достаточно крупного, по моему там все небольшие наколеночные сайтики. Поправьте меня, если я не прав.

Вот список для MongoDB, а вот для CouchDB.

Как по вашему, что из них больше готово для продакшена?
Всего голосов 7: ↑5 и ↓2+3
Комментарии11

Руби-встреча в Петербург: noSQL

Время на прочтение1 мин
Количество просмотров911
Когда: 15 октября (четверг) 2009 в 18:30.
Где: Учебный центр «Авалон».

Тема этой встречи — noSQL, не реляционные базы данных. Будет два доклада:
Алексей Газиев за еду расскажет про MongoDB.
Роман Снитко — про TokyoCabinet.

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

Также мы можем выделить немного времени для различного рода
объявлений. Например, если в Питере есть работодатели, которые ищут
Ruby-программистов, то мы с удовольствием предоставим им время
рассказать о своих вакансиях. Либо если есть какие-то проекты, которым
нужна помощь. Просто предупредите заранее и приходите на встречу.
Всего голосов 22: ↑17 и ↓5+12
Комментарии7

MongoDB или как разлюбить SQL

Время на прочтение6 мин
Количество просмотров66K
Введение

Коллеги, при разработке приложений, мы каждый день сталкиваемся с потребностью в гибком хранении информации (обновлении, поиске по ней, и т.д.). Класс продуктов, которые решают этот круг задач, как все мы знаем — Базы данных. Но что это такое в нашем понимании? У многих «база данных» твердо ассоциируется с MySQL, таблицами и SQL-запросами. И это устраивает до определенного момента. Действительно, реляционные базы данных дают массу преимуществ в работе: поскольку данные имеют сильную связанность, не нужно контролировать целостность базы данных. Используя простой под-запрос можно выбрать количество комментариев к каждому посту в блоге. Используя JOIN нетрудно делать сложные связанные выборки и получать данные сразу о нескольких сущностях.
Читать дальше →
Всего голосов 129: ↑122 и ↓7+115
Комментарии99

Как найти ближайшее кафе, достопримечательность, свободное такси глазами программиста

Время на прочтение7 мин
Количество просмотров12K
Сервисы, решающие какие-либо задачи в контексте нашего местоположения достаточно прочно вошли в нашу жизнь. Большинство смартфонов может при наличии доступа в интернет вызвать нам такси, рассчитать, через сколько приедет автобус, проложить маршрут с учетом пробок и различных предпочтений пользователя или показать друзей поблизости. Задачки вроде поиска ближайших кафе или достопримечательностей стали для них тривиальны и обычно могут быть решены вообще без доступа ко всемирной паутине. В данной статье я хочу рассмотреть некоторые инструменты для решения подобных задач и сравнить их производительность между собой.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии11

MongoDB — варим хороший кофе

Время на прочтение4 мин
Количество просмотров18K
Введение

Друзья, в первую очередь хочу поблагодарить вас за высокую оценку моего труда, это приятно, и мотивирует меня продолжать. Итак, почему надо покупать наших слонов я думаю вы уже поняли из первой статьи, кто-то уже скачал и попробовал на вкус, а кто-то только собирается. Как бы там ни было, начнем.

Сегодня мы поставим MongoDB, ниже рассмотрим свежеиспеченный ХабраЛоггер и пошпионим за главной страницей Хабра в реальном времени.
Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии51

NeDB: аналог SQLite для NodeJS

Время на прочтение2 мин
Количество просмотров34K


NeDB (Node.js Embedded Database) — встраиваемая база данных для NodeJS, реализующая подмножество MongoDB API. Эта легкая NoSQL СУБД написана на чистом JavaScript, не имеет бинарных зависимостей и, помимо NodeJS, может использоваться в NW.js, Electron или прямо в браузере.
Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии10