Задать вопрос
  • Обработка звука(голоса) в реальном времени, Arduino или raspberry?

    MaxDukov
    @MaxDukov
    впишусь в проект как SRE/DevOps.
    распознавание голоса на ардуино? врядли.
    да и на малине - я сильно сомневаюсь. Другое дело, что на малине можно этот поток отдать в облако и получить уже текст.
    Ответ написан
    3 комментария
  • Почему все скептически относятся к MongoDB?

    @lega
    Опять вам тут "скептические" отзывы наоставляли.

    Можно много филосовских доводов привести, например, если бы у вас был-бы идеальный сервер с неограниченной RAM памятью, скоростью и стабильностью, то ваше приложение могло бы хранить все ваши данные в памяти/переменных (зачем скидывать в БД?), дак вот вы в своем приложении оперируете объектами, а не таблицами! Потому что так удобней (и быстрее - прямая ссылка на связанный объект вместо идентификатора например). И NoSQL - это какое-то отражение этого. А раскладывание по табличкам - это подход из 80х годов, для того что-бы выиграть памяти и скорости, потому что тогда были сервера дохлые.

    Реляционные данные/не реляционные данный - разбрасывание терминами, попытка блеснуть умом?, - монга решает большинство задач, просто она решает их по другому, там нет проблем с ссылками, если нужны джойны (что не факт, возможно достаточно ссылок) или транзакции - можете попробовать ArangoDB, OrientDB...

    Так же в Радио-Т'е (профессиональные) ведущие, в одном из выпусков, сделали "заключение": Монги хватает на 99% задач.
    Поэтому если в вашем проекте где-то попадается тот 1%, то ненужно переводить весь проект на sql, просто сделайте эту задачу в sql, не трогая оставшуюся часть проекта.

    В наше время это вообще проблема - попытка написать все на одном языке. Вместо того что-б ускорить какой-то кусок PHP на С++, они берут и конвертируют весь проект на С++, вместо того что-б только чат сделать на асинхронном фреймворке, они переводят весь проект/блог на асинхронный фреймворк и т.п.
    Ответ написан
    1 комментарий
  • Почему все скептически относятся к MongoDB?

    opium
    @opium
    Просто люблю качественно работать
    все отлично относятся к монгодб, просто на реляционных данных глупо использовать не реляционную бд, ну если у вас данные четко реляционные и вы выбрали монгодб, то скорее всего вы идиот.
    Ответ написан
    1 комментарий
  • Почему все скептически относятся к MongoDB?

    @nirvimel
    Во-первых, я не отношусь к NoSQL скептически. Я считаю, что у таких продуктов большое будущее на рынке. Потому, что для них существует огромная ниша, которую они только начинают занимать. В свое время PHP занял такую нишу в качестве массового языка для веб-разработки, хотя многие относились и относятся к нему скептически, и это даже мягко сказано.

    Во-вторых, что касается проблем NoSQL. Его главная проблема - та задача, которую он пытается решить.
    Итак, у нас был старый добрый RDBMS, которому приходилось исполнять сложные запросы, комбинировать данные из разных таблиц. Это и была причина его торможения. Поэтому перед ним ставили всякие redis, memcached и просто внутренние кеши приложения. И это решало проблему быстродействия.
    Потом появились парни в розовых кедах и сказали: "Зачем такая сложная архитектура? Поменяем все это на ОДИН сервер, который будет хранить объемы как oracle и отдавать со скоростью memcached". Это решение выглядело как полностью аналогичное предыдущей схеме, но с меньшим количеством деталей. Аналитики и бизнес ухватились за это и возвели NoSQL на трон, а предыдущий стек технологий отправили в корзину. Все казалось замечательно. Но при этом упустили всего одну мелочь - данные в NoSQL хранятся не в Нормальной форме, и это неотъемлемое свойство технологии не возможно исправить.
    Чем опасно хранение данных не в нормальной форме? Это начали понимать по мере разработки. Когда структура базы подогнана под запросы, эти данные выбирающие, и когда в процессе разработки возникает необходимость выбирать данные как-то по-другому, приходится создавать новые структуры, под новые запросы, то есть ДУБЛИРОВАТЬ ДАННЫЕ. Вот с этого момента эротический сон превращается в кошмар. Когда данные пишутся в одно место, то они тут же мгновенно (или не мгновенно?) должны быть отражены в другом месте. Если производить такую синхронизацию синхронно с записью, то возникают забытые проблемы с производительностью, если асинхронно - то возникают (совсем недавно забытые) проблемы с инвалидацией кешей. Но это - только начало. Следующий кошмар - контроль (ссылочной, например) целостности. Вся грязная работа, которой раньше занимался движок RDBMS, опять ложится на плечи прикладных кодеров. В итоге наступает момент, когда усложнять логику, контролирующую работу с базой (раньше о такой необходимости даже не слушали) становится дороже чем выбросить весь проект в корзину и переписать все обратно на нормальную RDBMS. И тогда приходит философское понимание того, почему эту классическую форму данных в науке называют НОРМАЛЬНОЙ.
    Ответ написан
    2 комментария
  • Почему все скептически относятся к MongoDB?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Скептически мылят ретрограды, люди боящиеся всего нового и незнакомого.
    У NoSQL есть свои проблемы и преимущества, нужно понимать, когда и как это использовать. Многие пытаются их использовать по-старинке, городят свои костыли для организации реляционной модели и потом удивляются, что их решение не работает. Монги придуманы для другого. Они хороши там, где нужно сохранять много относительно небольших структур данных и быстро их доставать. Причем это все должно хорошо масштабироваться. Например телефонный справочник на триллион номеров, который ну никак не помещается на одну машину, при этом в него постоянно кто-то записывает новые номера и к нему должны быть реплики в нескольких датацентрах. Плюс у вас должен быть полнотекстовый поиск по нескольким полям на нескольких языках.
    Это реально сделать и на MySQL, но решение выглядит сложнее, но и у него есть свои плюсы. Например переименовать всех Василиев можно одним простым движением в виде редактирования одной записи. В Монге потребуется изменить все записи с Василиями.
    У обоих решений есть и репликация, и шардинг и т.д. Монгу чуть проще настроить, только и всего.
    Монга не подойдет тем, кому нужна четкая фиксация транзакций, потому что там целостность данных основана на потоке событий.
    Вам нужно просто внимательно почитать по то, какие базы для чего использовать.
    Ответ написан
    3 комментария
  • ADF только для энтерпрайза?

    voidnugget
    @voidnugget
    Программист-прагматик
    Ну в общем-то да, это дикларатизавр времён популярности Struts и JSF.
    Ничего не мешает взять Vaadin, ZK, gwt, extgwt. Предпочитаю Vaadin.

    Я остановился на связке Scala Play2 Slick + Scaladin, либо Groovy Grails + Vaadin.
    Можно конечно пробросить контекст сервлета Vaadin в Play вручную и писать на Java, правда я не знаю как там работают Push-нотификации, и работают ли вообще.
    Ответ написан
    9 комментариев
  • Актуальны ли старые книги по Си?

    akarin
    @akarin
    Смотря какая.
    Язык программирования СИ Кернигана и Ритчи(1978) классика.
    Ответ написан
    2 комментария
  • Для каких целей используется ElasticSearch?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    это ж типа полнотекстовый поиск, и вообще надстройка над Lucene, не БД
    Ответ написан
    6 комментариев
  • Какие существуют блоги посвященные алгоритмам?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Ответ написан
    Комментировать
  • Какие цели преследует Dependency Injection?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    DI это один из вариантов Inversion of Control. Основная его задача - ресолвить зависимости объектов, больше он ничего не умеет да и не должен. Вам надо создать объект? просите DI. Надо переопределить реализацию интерфейса, на который завязаны ваши классы, не вопрос, поправили в одном месте - применилось везде.

    для тестирования важно скорее соблюдение принципа инверсии зависимостей (D в SOLID), а как эти зависимости к нам приходят это уже детали.
    Ответ написан
    Комментировать
  • Какие цели преследует Dependency Injection?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    DI это способ создать интерфейсы там, где их не было ранее, но они вдруг понадобились сейчас. Интерфейсы вводятся не просто так, а для решения какой-либо задачи. Отойдя от программирования и взяв в качестве примера ситуацию с аппаратным обеспеченим, то мы поймем, что люди очень сильно выиграли когда решили разделить вычислительные средства на материнская плата, ЦПУ, ОЗУ, Жесткий диск и др. Да, они усложнили введя интерфейсы, но при этом повысилось удобство эксплуатации и возрасла скорость разработки. Скорость изготовления частей возрасло за счет того что отдельный компонент изготовить проще, чем целую систему! Более того компонент может быть с разными характеристиками, ценою и изготавливаться многими компаниями на различных производственных мощностях. Возвращаясь к DI : программист выигрывает за счет того что теперь значительно легко установить новый компонент. К примеру дав интерфейс программисту на стороне, дав ему модульные тесты(в качестве "живого" ТЗ) вы получаете дополнительное время, т.к. пока пилится компонент стороним программером Вы можете пилить другую часть системы, а принять работу можно по прохождению модульных тестов и быть уверенным, что это то что Вы хотели, если конечно хорошо продумали модульные тесты ;)
    Ответ написан
    Комментировать
  • Rust или C++/C?

    @vilgeforce
    Раздолбай и программист
    readwrite.com/2011/06/06/cpp-go-java-scala-perform... - работа 2011 года, С/C++ выигрывает у Go в 5-7 раз по производительности даже на алгоритме с контейнерами.
    Ответ написан
    Комментировать
  • Rust или C++/C?

    Lerg
    @Lerg
    Defold, Corona, Lua, GameDev
    Не правильно поставлен вопрос. Вам для каких целей язык?
    Я думаю вы можете смело выбирать между Go, Rust, Java и C#. Что больше понравится.
    Ответ написан
  • Как создаются биткоины?

    gbg
    @gbg
    Любые ответы на любые вопросы
    С подключением!
    Процесс получения биткоинов называется майнинг

    Решается всегда одна и та же задача - подбор хэша. Эта задача практически идеально параллелится. На сегодняшний день для ее решения принято использовать заказные чипы (ASIC).
    Ответ написан
    3 комментария
  • Есть ли лаконичная книга по Python?

    @n3k0
    Слегка не понял конечную цель.
    Если речь об ознакомлении, то мне очень понравились лекции гугла. (Английский)
    Ответ написан
    1 комментарий
  • Есть ли лаконичная книга по Python?

    www.diveintopython3.net В печатном виде она около трехсот страниц.
    Ответ написан
    2 комментария