• С чего начать разработку VPN сервиса?

    @younghacker
    Работу с шифрованием хорошо начинать с освоения криптоматематики.
    Она сразу поставит всё на свои места. Если осилите тогда дерзайте дальше.
    Параллельно можно почитать классику в подлинниках например OpenVPN, IPSEC.
    Постарайтесь найти проблемы в OpenVPN сравните потом свои достижения с результатами аудита кода профессионалами (как известно на аудит OpenVPN собраны деньги).
    Ответ написан
    Комментировать
  • Достаточно ли сегодня 8gb (Macbook Pro Retina) для работы?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Слишком маленький SSD. Рабочие файлы занимают место, исходник одного проекта может легко занять гигабайт (если туда пихать макеты, картинки и прочее). Кроме того, SSD прекрасно компенсирует недостаток памяти и в будущем это может сыграть свою роль. Я бы на вашем месте взяли именно эту конфигурацию и заменил SSD на 512 (ну или 256 хотя бы).
    Ответ написан
    4 комментария
  • Минимальные настройки безопасности Linux на VPS?

    @MechanID
    Админ хостинг провайдера
    Как работник хостинг провайдера я всячески поддерживаю то что написал Tyranron
    + дополню немного субьективной сатистики по отлому впс и дедикейтед серверов
    1 простые пароли и открытый доступ руту
    2 не менее простые пароли и секретные вопросы для емейлов - ответы на которые можно в ВК или Фейсбуке
    3 устаревший софт, в первую очередь cms в вторую все остальное

    Помните безопасность впс это не только настройки впс но и безопасность(недоступность посторонним) вашего пароля(используете вы keepass или аналоги?), ссш ключа(с паролем ли он у вас?), емейла через который можно сбросить пароль для аккаунта хостинг провайдера а далее сбросить пароль или написать тикет в техподдержку. Безопасность компьютера с которого вы заходите на впс.
    Включайте двух-факторную авторизацию если ее предоставляет ваш емейл провайдер и хостинг провайдер, если для обычной почты она слишком напряжна - заведите отдельный ящик для очень важных писем и там ее включите.
    Ответ написан
    Комментировать
  • Минимальные настройки безопасности Linux на VPS?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. На порты управления обязательно: port-knocking
    2. Не нужно использовать ключи взамен пароля.
    3. Нужно использовать здравый смысл, поведенческий фильтр с ограничением по подсетям. Его можно использовать как перед подключением к SSH, так и сразу после подключения (например, промежуточным логин-скриптом проверить: предоставить доступ с верным паролем или нет).

    Не забывайте, что кроме пары логин-пароль и ключей, есть много других способов аутентификации.

    4. port-knocking: https://www.vultr.com/docs/port-knocking-on-debian
    Подключение из putty с port-knocking "из коробки":
    putty-port-knocking.png
    https://putty.org.ru/

    5. Также, можно поставить AppArmor (что это?) для управления доступом приложений к системе: https://wiki.debian.org/AppArmor/HowToUse

    6. Защита web-сайтов от большинства видов атак (включая правила исполнения кода): sitecoder.blogspot.com/2016/05/website-protection-...
    Ответ написан
    3 комментария
  • Минимальные настройки безопасности Linux на VPS?

    Tyranron
    @Tyranron
    Ряд моментов Вы уже сделали, но я все равно их опишу для полноты списка.

    1. Создать отдельного пользователя и хороший пароль на sudo. Не использовать больше root напрямую. Совсем.

    2. SSH. Отключаем метод аутентификации по паролю. Если Вам не нужны другие методы, то их тоже можно отключить, оставив только publickey. Отключаем возможность аутентификации root'ом. Включаем использование только 2й версии SSH протокола.

    3. Устанавливаем Fail2Ban и настраиваем чтобы после нескольких неуспешных попыток подключения по SSH банило по IP на длительное время. Кол-во попыток и время бана можно тюнить в меру своей паранойи. У меня, например, банит на час после 2х неуспешных попыток.

    4. Iptables. Действуем по принципу "запрещено все, что не разрешено". Запрещаем по умолчанию весь INPUT и FORWARD трафик снаружи. Открываем на INPUT'е 22 порт. В дальнейшем открываем порты/forwarding по мере необходимости. Если у нас предполагаются сервисы на соседних серверах нужные только для внутренней коммуникации (Memcached, Redis, и т.д.), то открываем для них порты только для определенных IP. Просто так торчать наружу для всех они не должны.

    5. Настраиваем автоматические обновления apt-пакетов. Уровень security. То есть так, чтобы обновления безопасности накатывались автоматически, но при этом не выполнялись обновления со сменой мажорной версии (дабы обезопасить себя от "само сломалось").

    6. Устанавливаем ntpd. Серверное время должно быть точным. Также временную зону сервера лучше всего установить в UTC.

    7. TLS (не SSL) используем везде где можем. Через Let's Encrypt получаем бесплатные валидные сертификаты. В конфигах веб-серверов, mail-серверов, и других приложений торчащих наружу (в том числе и OpenVPN), запрещаем/убираем использование слабых шифров. Все ключи/параметры генерируем не менее 2048 бит. Самоподписные сертификаты подписываем с помощью SHA-256 (не SHA-1). Diffie-Hellman параметры (dh.pem) под каждый сервис лучше сгенерить отдельно. Проверяем TLS сервисов через Nmap. Минимальный grade должен быть A, не должно быть warning'ов.

    8. Правильный менеджмент пользователей/групп. Приложения/сервисы не должны запускаться под root'ом (разве что они действительно этого требуют и иначе никак). Для каждого сервиса создается свой пользователь.

    9. Если предполагается upload файлов через PHP (либо другие скриптовые языки), в директории, куда эти файлы загружаются (и которая доступна снаружи), должно быть жестко отключено любое выполнение скриптов/бинарников, что на уровне ОС (x права), что на уровне веб-сервера.

    Это была база.
    Дальше, в меру своей паранойи можно за'harden'ить сервер ещё следующими моментами:
    - SELinux, chroot
    - доступ к SSH только с определенных IP (нужно иметь 3-4 VPN-сервера под рукой)

    UPD И да, все это помнить/настраивать руками каждый раз может быть запарно. Используйте Ansible и автоматизируйте процесс (там родные и YAML, Jinja2 и Python).
    Ответ написан
    10 комментариев
  • Как оформить договор о совместном развитии проекта с будущей коммерциализацией?

    Я знаю вот этого русскоговорящего юриста, который как раз практикуется на урегулирование стартапов, живет в америке Dmitri I. Dubograev
    Ответ написан
    Комментировать
  • Какой ноутбук выбрать? На Ubuntu Linux или OS X?

    Я сам linux-админ, и пользуюсь Ubuntu с 2007 года. Но пару недель назад перешел на MacOS. Могу сразу сказать - сам макбук, его приятно держать в руках, на коленях, он даже приятнее на ощупь. Получаешь некоторое удовольствие от пользования такой вещью, и при этом она не отвлекает. Все пластиковые ноуты кажутся какой-то доской по сравнению с макбуком. Операционка приятная в поведении, но к ней я привыкал дня 4. Это то, что касается GUI.

    Консоль в макоси я не кастомизировал, только поставил fish и brew, но мне в ней не хватает многого, стандартных утилит GNU Coreutils, я понимаю, это все можно поставить, настроить, кастомизировать, но первое впечатление от работы с консолью - неприятные.

    Вообще конечно, обе руки "за" макбук, и выбирать нечего.
    Ответ написан
    Комментировать
  • Вопрос про ООП, как использовать?

    Epsiloncool
    @Epsiloncool
    Программер, веб-девелопер, гейм-девелопер
    ООП по сути - это синтаксический "сахар" и уровень абстракции. То есть вы можете сделать очень большой проект совсем без ООП, он будет работать. Но сопровождать его будет крайне тяжело, так же тяжело и дорабатывать и тем более что-то там исправлять.

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

    Объект в ООП - это замкнутая в себе законченная сущность, с которой можно работать дёргая за рычажки - методы. Это позволяет абстрагироваться от того, что происходит внутри объекта. Удобно, например, в случае с вашей галереей, представить одиночное изображение как объект и получать из него всякие свойства, такие как imageUrl (путь к изображению), запускать ресайз изображения (resizeImage) и всё такое прочее, совершенно не думая о том, как это всё внутри сделано.

    Аналогично, если всю галерею представить как объект, можно работать с ней через её методы, например, получить список всех изображений через getAllImages(), выбрать только популярные через getPopularImages() или реализовать более мощную функцию с возможностью отбора по параметрам getImages($params), добавление новых изображений через addImage($img) (при этом в коде галереи будет содержаться весь код, необходимый для сохранения изображения в БД и на диске, формирования статической ссылки и всё такое прочее.

    Можно создать несколько галерей простым вызовом new MyGallery() и быть 100% уверенным в том, что галереи никак не будут мешать друг другу в работе.

    Научитесь думать в ООП-стиле и ваша жизнь в корне изменится.
    Ответ написан
    Комментировать
  • Как построить свой рабочий день фрилансеру?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    3 комментария
  • Python-бекендер, что за профессия и какой функционал?

    aRegius
    @aRegius
    Python Enthusiast
    Python Backend Developer - это профессия, альфой и омегой которой являются два навыка:

    1. Умение пользоваться поисковыми системами.
    2. Знание английского языка.

    И, поверьте, дальше все пойдет "как по маслу": фреймворки, SQL, front-end (база) и т.п.

    P.S. Не говоря уже о конкретной вакансии, в которой предусмотрительные менеджеры по персоналу конкретно указывают, что именно от вас ожидает работодатель.

    Такова моя точка зрения. Надеюсь, помог. Успехов!
    Ответ написан
    Комментировать
  • Судиться с заказчиком, какие затраты, что посоветуете?

    SelectVim
    @SelectVim
    Юрист. Интересуюсь IT. Для души :-)
    Большинство споров в суде достаточно простые. Проблем особых не должно возникать. Трудности у неюристов больше возникают в формальных моментах.

    С актом судиться проще. Но он не гарантия. Подписанный акт не мешает заказчику заявить претензии по качеству или объему работы. Но по умолчанию, если акт подписал и результатом работ пользуется (как видно из ваших комментариев), то он обязан оплатить.

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

    Затрат, кроме почтовых расходов и госпошлины не будет (если сами). Всё это в случае выигрыша взыщете с другой стороны. Расходы на юриста тоже взыскать можно, но здесь уже есть всякие НО (на что именно расходы, размер и прочее). Экспертиза -- тоже расходы, но это дело нечастое. Для неё должны быть основания. Тогда да, придётся потратиться. Но опять же возмещается в полном размере. Калькулятор госпошлины есть на сайте суда. Почтовые расходы -- рублей двести. Подавать иск можно по почте или через интернет. Ехать в суд необязательно.

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

    Проверьте, кто акт подписывал. Генеральный или кто-то по доверенности?

    Не забудьте отправить официальную претензию. Бумажную. С описью вложения и уведомлением о доставке.
    Ответ написан
    1 комментарий
  • Как сравнить 2 тхт файла и удалить повторы?

    @undeadter
    Как то так:

    file_1 = open('1.txt', 'r').read().split('\n')
    file_2 = open('2.txt', 'r').read().split('\n')
    
    array = []
    for email in file_1:
        if email.split(':')[0] not in file_2:
            array.append(email)
    
    str = ""
    for email in array:
        str += email
        str += '\n'
    
    file_3 = open('3.txt', 'w')
    file_3.write(str)
    Ответ написан
    6 комментариев
  • Переход из С++ в PHP?

    ZloyHobbit
    @ZloyHobbit
    Я бы предложил, ruby/rails или python по следующим причинам:
    1) C# (.NET) и Java - лютый энтерпрайз, который лично я надух не переношу.
    2) PHP достаточно убогий язык, и на нем пишут почти все. В результате за него мало платят, и вы постоянно будете сталкиваться с проблемой: "Зачем мне платить вам, даже если вы профессионал, я лучше залачу в пять раз меньше недоученному школьнику и он как-нибудь да сговнокодит"
    3) PHP - это только web разарботка, python и ruby - универсальные языки, на ruby есть серверные приложения (puppet к примеру) на python вообще очень много всего, и на него сильно перешла обработка данных на пару с R. Надоест писать сайтики, и при должном знании математики пойдете в анализ данных.
    4) Я сам 6 лет писал на C++ в нии, но не считаю себя ни мидом ни сеньёром, поскольку самоучка без серьезных коммерческих проектов. За полтора года в рельсах стал зарабатывать весьма неплохо, и при этом получаю удовольствие от работы. Так что рекоммендую =)
    Ответ написан
    1 комментарий
  • В чем разница ОС Linux и OS X (Mac)?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    Просто IT'шник.
    Общего у мака и линя мало. Да, есть немного визуального сходства в терминале но даже там много кардинальных различий в "стандартном" наборе.
    В юниксовых тоже все немного не так просто. Такие же отличия внутренностей есть в Debian\RHEL\CentOS\Suse\FBSD.
    А вам я рекомендую остановиться на самых популярных серверных осях. (Debian или CentOS). Кроме того можно поступить еще интереснее, прикупить какой нибудь расберри пай и на него поставить серверную ось(или арендовать самый дешевый vds) а на рабочий комп макось. Опираться прямо на чистый desktop линукс тоже не имеет особого смысла т.к. опять же линуксовые доминируют на серверах а значит лучше сразу начинать именно с консоли.
    Ответ написан
    3 комментария
  • В чем разница ОС Linux и OS X (Mac)?

    Adamos
    @Adamos
    На самом деле, вы просто зря упираетесь в одну систему.

    Даже работая в Линуксе, сервер для бэкэнда лучше поднимать не в основной системе, а в виртуалке (Vagrant в помощь). Сервер этот, естественно, должен быть на Линуксе - хостинг под винду или макось вам вряд ли когда-нибудь понадобится. А вот что будет основной системой - тут "выбирай на вкус".

    У Макоси, имхо, всего два плюса: более вылизанное (но и менее настраиваемое) DE и существование под него проприетарных программ типа Photoshop. Мне лично второе не нужно, а первое только мешает - так что выбор очевиден...
    Ответ написан
    Комментировать
  • В чем разница ОС Linux и OS X (Mac)?

    Linux не имеет ничего общего с OS X, кроме POSIX.
    Bash и там и тут одинаковый, а вот firewall уже совершенно разные. Это так, к примеру.

    Если интересуют сервера и прочее-прочее, то OS X не заменит Linux. Всё совершенно по-другому.

    Если файл найти, или по содержимому текстового документа пробежаться - то разницы никакой.
    Ответ написан
    8 комментариев
  • Как писать много кода, оставляя его простым, как в начале?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ну в общем-то ответов много. Могу кое-что добавить от себя.

    Во-первых, голова не бесконечна во всех смыслах. Запихнуть в неё больше чем 10 объектов одновременно вряд ли получится, у многих начинаются огромные проблемы уже с 5. Лично я испытываю ДИКУЮ больше если собственный код становится больше чем большой. Для меня это где-то 15~20 сущностей, причём чем сильнее они связаны, тем сложнее они даются, так как становится сложно абстрагироваться. Что примечательно, при работе с чужим кодом таких проблем практически нет, ну у меня по крайне менее. Всё дело в том, что чужой код изначально воспринимается чёрным ящиком, поэтому если он не представляет из себя дикую лапшу, аккуратная работа с ним с минимальным вмешательством в проект получается легко.

    Во-вторых, не стоит делать код пушистым. Однообразность воспринимается лучше. Массивы некоторых объектов надо называть $названием_объекта + 's'. Классы с большой буквы, любой объект стоит называть так же, как класс, но с маленькой буквы. Конечно, если семантически прям просится по другому, то стоит правило нарушить, но в общем случае никаких выдумок не надо. Временная строка - str, временное число - tmp, временный объект - obj. И пробелов не жалей, внутри файла разделяй разные структуры двумя-тремя пробелами, стоит обособлять регионы, например, "глобальные" функции наверху, по середине структуры, потом классы. В C# есть #region.

    В-третьих, объём тоже воспринимать сложнее. Делай плоско. В том смысле, что меньше наследований, больше включений. Очень тяжело воспринимать архитектурную лапшу. Суть микросервисов - единственная, максимум две точки связи. То есть контроллер де должен склеивать всё и вся, это задача "простейшего" диспетчера событий, который крутится в своём цикле и распихивает поступившие сообщения. Микросервису надо думать чем меньше, тем лучше. Вообще, микросервисы не всегда хорошо подходят, они очень удобны в сверхраспределённых командах с высокой степенью самодисциплины, когда привычка смотреть в доки сильнее привычки звонить тимлидеру на каждый чих. В случае с самостоятельной разработкой они скорее зло, хотя в web поначалу довольно приятно, заливать чрезвычайно низкую производительность ресурсами, забивая каналы связи под завязку, не лучшая идея. Порой намного лучше сделать монолитно, но аккуратно, особенно когда вся жизнь продукта под ответственностью одного человека.

    В-четвёртых, внутри монолита также надо делать максимально растянуто, никаких супер-синглетонов бдящие за всем и вся. Равно как и с микросервисами, внутренние объекты должны иметь минимум точек входа. Они должны быть просты и понятны. Если какой-то класс выполняет слишком много задач, часть из них надо делегировать другим классам, возможно новым. Это по сути цикломатическая сложность, о которой упомянул Ivan Sokolov, но мне не нравится эта формальность. Да и некоторые вещи сложно формализовать ребром на графе.

    В-пятых, иерархия должна быть логически правильной, наивной, без выпендрёжа. Тоже самое, что и в третьем, плоское лучше объёмного.
    Плохо:
    3dbadffb7d954b2d93a5dfec863289be.png
    Лучше:
    1238e5c4d83340239a250116d4d2fa3a.png
    Пример немного утрирован, но суть, навроде, ясна. Не надо наследовать всё и вся от чего угодно, если есть возможность включить внутрь - включай. Всё остальное от лукавого и только в крайних случаях.

    В-шестых, используй UML, mind maps, блокнот и таск менеджеры. Эти инструменты словно манна небесная спасают дедлайны от полного уничтожения. Хотя UML спорен, им очень удобно следить за структурой проекта, представлять картину с высока, рисовать его стоит самому, учитывая неявные связи и убирая рудиментарные. Mind maps помогут собрать мысли в кучу. Блокнот банально запишит то, что постоянно забывается. Таск менеджеры сформируют привычный график, отобразят прогресс, помогут фокусироваться на текущих задачах, не растекаясь по проекту.

    В-седьмых, изучи декларативное программирование. Шикарная вещь, которая позволяет сконцентрироваться на задаче, а не на решении. Из коробки в функциональных (erlang) и логических (prolog) языках, однако многие элементы существуют и в монстрах вроде C#/Java, Python, особенно JavaScript. Насчёт Go не знаю, но на первый взгляд весьма декларативный.

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

    Ещё пара абзацев. Ну про вредные советы: методы надо делать ровно такими, какие они должны быть. 20 строк - это что-то вроде лакмусовой бумажки, однако это лишь один из параметров. Очень часто требуется сделать громадную функцию для работы со сложным API или подробить много разных чисел в циклах. Поэтому ориентироваться на это плохая идея. Равно как и папки-подпапки-подпапками погоняемы, максимум - два уровня в чрезвычайно сложных проектах. Иначе будет очень сложно ориентироваться. Ещё происходит странный возврат к комментариям. На мой взгляд, если это не продаваемая за большие деньги библиотека - нах*й надо. Документация в комментариях - рудимент кода, он нигде не используется, зато требует поддержки, на что приходится распылять внимание. Если нет условного рефлекса править комментарий после кода - выбрасывайте и не жалейте. Везде! Без исключений. Ещё есть много "архитектурных" паттернов. Снова вред, если вы не работаете в Google, где вашу зарплату надо оправдать умными словами. Самый эффективный способ - программировать наивно. Чем проще для вас сейчас, тем лучше для вас потом. Если думаете больше десяти минут - плохо думаете... Но об этом позже. Паттерны это некая систематизация неких знаний, причём совершенно не понимаю, зачем её вообще сделали. Да, архитектура в некотором роде нужна, но постоянно искать какой паттерн здесь надо использовать, если это не проект на 100500 лет вперёд - нельзя. Почти всегда будет дешевле в случае неуспеха отрефакторить всё и вся, чем переписывать с нуля или тратить месяцы на продумывание архитектуры... В которой также могут быть ошибки.

    И последнее. Отдыхайте. Если чувствуете, что задыхайтесь - пройдитесь, подышите. Если чувствуете, что мозги плывут - отвлекитесь, подумайте о другом. 8 часов в день для программиста - это дикость, но это реальность. Для разных людей наибольшая эффективность поддерживается где-то 3~6 часов, причём некоторым требуются перерывы каждые пол часа, другому хватит обеденного перерыва, а третьему вообще нельзя сегодня никаких отвлекающих факторов, ибо "волна". На самом деле, человек существо динамичное, так что будут разные дни. Но если не получается сейчас - не бесите самого себя. Отдохните, перекусите, пробежитесь, покурите, проверьте почту, послушайте музыку, почитайте статью. Не тратьте время бездарно и, что интересно, проблемы будут решаться, усилия будут прикладываться аналогичные, но вот ощущения от работы станут совершенно другими.
    Ответ написан
    7 комментариев
  • Есть апп, задающий ребёнку развивающие задачки, а в случае успешного решения задачки ставящий мультик с ютуба?

    Adamos
    @Adamos
    Ваш "компромисс" не решает проблему, а обостряет ее. Решая задачки ради мультиков, ребенок их возненавидит (задачи, а не мультики). Вы ее просто превращаете в крысу, которой нужно давить на рычажок, чтобы стимулировать центр удовольствия в мозгу.

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

    Моей сейчас семь, мультики любит, но без фанатизма. Мы успешно прошли все подшивки "Школы семи гномов", рекомендую. Из развивающих игрушек использовали разве что GComprix, и то очень умеренно. Зато настольных игр у нее полный шкаф. Для вашего возраста уже кое-что можно брать - "Доббль", например.

    В четыре года мы взяли букварь, и дочь читала по странице каждый вечер. Потом - мы читаем сказку на ночь. До сих пор последний час перед сном - час чтения. Сначала дочь, потом мы. К семи годам читает бегло, с выражением, а главное - с удовольствием. Школьные уроки - в охотку и с интересом.

    Нельзя приставить к ребенку автомат и рассчитывать, что он будет развиваться. Ничего так не выйдет. Воспитание такого ребенка, каким хочешь его видеть - это труд, ежедневный и упорный. Если же вам всего лишь хочется, чтобы ребенок не мешал - ну, это-то устроить несложно. Сложности будут потом.
    Ответ написан
    6 комментариев
  • Какие существуют книги по Big Data?

    @azzzimo
    А что вы вообще хотите узнать, чем хотите заниматься?

    BigData - очень слабоопределенный buzzword. Под этим термином могут скрываться:
    - анализ данных, построение моделей и прочий дата майнинг
    - построение и интеграция существующих DWH с Hadoop
    - анализ стримминговых данных
    - всяческие интеграции с NoSQL решениями.

    Скажите, что именно хотите делать - уже сможем подсказать реальный workflow обучения
    Ответ написан
    Комментировать