• Поиск решения задачи, не похожей на предыдущие. Есть ли идеальный алгоритм?

    Denormalization
    @Denormalization
    Часто сталкиваюсь с такими людьми. Это "программисты поневоле", как я их называю.
    Этим людям не интересно программирование как таковое, им интересна их зарплата.

    Обычно такие "программисты" заучивают базу + небольшой объем типичных решений, и с этими знаниями набиваются в работники. Они просто не хотят ничему учиться, так как им неинтересна эта область.
    С ними сложно что-то сделать. Сколько им не вдалбливай, они не станут от этого умнее, и будут так же продолжать тупить на нестандартных задачах.

    Если вы хотите заставить их нежные мозги шевелиться - ни в коем случае не давайте им решения.
    Пусть думаю сами, пусть ищут решение. Можно лишь давать наводки в какую сторону копать, но ни в коем случае нельзя делать так:
    В итоге описание задач сводится к полному написанию алгоритма решения, включая названия методов и переменных, а иногда и простая диктовка кода.

    Когда вы рассказываете им решение задачи - они ничему не учатся. Они тупо заучивают очередное решение, возможно даже не вникая в его суть.

    Заставляйте таких людей ДУМАТЬ. Задавайте наводящие вопросы.
    Пусть лучше они сделают кривое решение, которые вы потом заставите их переделывать, но у них в голове останутся хоть какие-то знания.
    Ответ написан
    15 комментариев
  • Поиск решения задачи, не похожей на предыдущие. Есть ли идеальный алгоритм?

    @dmitryKovalskiy
    программист средней руки
    Вот вы вроде опытный программист, Senior. Но хотите найти "идеальный" алгоритм для решения любой задачи. Я думаю что если бы имелось решение - задача про P/NP давно была бы разобрана, а миллион долларов пропит. К сожалению ИТ-индустрия, за счет зарплат выше среднего по всему рынку труда, привлекает к себе людей, не знакомых даже с самим понятием алгоритма. Умные специалисты рассказывают что "математика не нужна", а "высшее образование только мешается". Как итог мы имеем определенный пласт людей, прочитавших пару книг по синтаксису, решивших задачу обхода конем и уже считающих себя программистами. Я вот с завидной регулярностью на данном ресурсе нахожу вопросы вроде "мне 16 лет, как заработать фрилансом программиста". Да возможно человек - Билл Гейтс или другой гений отрасли, но тогда вряд ли бы он задавал здесь вопрос. Да, может быть разная финансовая ситуация и людей вынужденно толкают за заработком. Но итог - практически полное отсутствие подготовки в области алгоритмов, архитектуры, паттернов проектирования и прочее, а зряплату уже хочется хорошую. Я сам не без грешен в этом отношении. Желаю вам терпения и талантливых junior-ов. Но их будет меньшинство.
    Ответ написан
    2 комментария
  • Как организовать хранение даты в базе данных?

    @deliro
    Хранить в нативном для БД формате. Например, timestamp with time zone в Postgres. Не забудь про индексы.
    Ответ написан
    Комментировать
  • Нафига вообще и надёжна ли СХД?

    athacker
    @athacker
    СХД, как и многие другие вещи -- это дело такое... Если у вас возникает вопрос "а зачем нужны СХД", то значит, вам она точно не нужна :-)

    В чём профит СХД -- это многократно зарезервированная система. У неё от двух до N контроллеров, каждая дисковая полка подключена минимум двумя путями, каждый диск подключен двумя путями (SAS-диск, конечно же), и на дисках используются механизмы типа T10-PI, гарантирующие целостность данных. Диски имеют пропатченные прошивки, логика работы этой прошивки такова: "лучше мы ложно зафейлим диск, чем случится реальный сбой, а мы его прошлёпаем и потеряем данные".

    Также есть всякие функциональные штуки типа моментальных снапшотов, механизмов репликации (когда у вас два географически разнесённых тома имеют полностью одинаковое содержимое и синхронизируется практически в прямом эфире). СХД умеет tiered storage, когда система реализует кэш наиболее горячих данных на базе SSD-дисков или в RAM.

    Но надо понимать, что сама СХД и расходники для неё будут стоить как крыло от F-35, и СХД нужно брать ТОЛЬКО с соответствующими сервисными контрактами. Без сервисного контракта -- любой сбой будет вам обходиться в копеечку, а время ремонта может исчисляться месяцами. С другой стороны, СХД довольно надёжны, и количество сбоев у них не очень велико. С третьей стороны, вендоры очень любят брать деньги за воздух. Например, у IBM есть такая практика -- если у вас истёк сервисный контракт, а вы его не продлили, а потом у вас случился сбой и вы решили купить сервисный контракт обратно, то вам в стоимость добавят стоимость годичного сервисного контракта в виде штрафа. Т. е. если вы решите спустя N лет приобрести сервисный контракт на 2 года, то по факту заплатите как за 3 года -- "1 год условно" вам выставят в виде штрафа. Этим грешит не только IBM, но и ещё ряд вендоров.

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

    Для чисто файловых хранилищ подойдёт, например, Windows Storage Spaces в конфигурации с двумя серверами и одной двух-контроллерной корзинкой DAS, подключенной к обоим серверам. Это гораздо дешевле СХД, а многие вещи такая конфигурация умеет -- нет единой точки отказа, умеет RAID на дисках, умеет условно tiered storage и умеет снапшоты средствами VSS на винде.

    На фре тоже сейчас активно пилят High Availability в ctld. Полагаю, включат в 11.0, и можно будет строить отказоустойчивые iSCSI-хранилки на основе FreeBSD+ZVOL+ctld -- отличный вариант под хранение виртуалок. Причём ZFS тоже умеет снапшоты, вот если бы Veeam научился с ними работать, была б ваще чума... :-)
    Ответ написан
    6 комментариев
  • Нафига вообще и надёжна ли СХД?

    Jump
    @Jump Куратор тега Системное администрирование
    Системный администратор со стажем.
    В чём преимущества перед файловым серваком?
    В том что это не файловый сервак.
    Это совершенно другая вещь.

    Файловый сервер предоставляет вам доступ к файловой системе с которой вы можете работать. Вы не можете изменить файловую систему, отформатировать диск, с файлами работает файловая система на файловом сервере.

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

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

    Уточните что именно у вас за СХД и для чего она вам нужна.
    А по поводу надежности - у всех она разная.
    Ответ написан
    Комментировать
  • В чем отличие IPython от Jupyter?

    ipython.org/#jupyter-and-the-future-of-ipython
    ipython - интерактивная оболочка только для Python,
    Jupyter - это веб-приложение для "живых" страниц с кодом. Поддерживает не только python, но и ещё кучу языков, включая scala, R, julia и тд.
    Ответ написан
    Комментировать
  • Как указывать петли в матрице инцидентности?

    @AVKor
    Общее правило для петель: считается дважды.

    Конкретно по данному вопросу: разбор с примером.
    Ответ написан
    Комментировать
  • Что выбрать Ethernet to Coaxial и обратно?

    @pr0l
    советую прокинуть нормальную витуху, т.к. wifi каналы часто стали забиваться автонастройками говнооборудованиями провайдера. по коаксиалу наверно лучше всего vdsl модем использовать, но это в виде моста только. Нормальное выйдет 200$ за пару. nsgate.ru/nsgate_vdsl2.shtml оно же может и по коаксиалу отдавать dsl трафик
    Ответ написан
    Комментировать
  • Как защитить от провайдера передаваемые данные?

    Jump
    @Jump
    Системный администратор со стажем.
    Для защиты трафика от провайдера его нужно шифровать.
    Для безопасной передачи ключа шифрования по открытому каналу используется ассиметричное шифрование.

    При чем тут SSL непонятно, и сертификат на шифрование никак не влияет, он лишь удостоверяет что ваш собеседник тот за кого себя выдает.
    Ответ написан
    5 комментариев
  • Как на mikrotik router os пустить некоторые порты через vpn а остальные без vpn?

    @alegzz
    маркировать соединение на эти порты, настроить роутинг.
    bg.valec.ru/?p=27
    вот так
    Ответ написан
    1 комментарий
  • Как защитить от провайдера передаваемые данные?

    gbg
    @gbg Куратор тега Компьютерные сети
    Любые ответы на любые вопросы
    Разберитесь внимательно в том, какую роль играет сертификат в SSL. Сертификат не отвечает за шифрование.

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

    Сертификат же нужен для того, чтобы точно знать, что такое соединение установлено с тем узлом, который вам нужен, а не с посредником-злоумышленником.
    Ответ написан
    1 комментарий
  • Может ли бинарное дерево поиска иметь элементы с одинаковым значением?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Не может.
    Следовательно, реакция на данное действие - сообщение об ошибке. Как реагировать на это сообщение, решает пользователь дерева.

    В некоторых случаях, может оказаться удобным просто игнорировать такие элементы.
    Ответ написан
    Комментировать
  • На чем лучше и быстрее написать лаунчер для игры?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Qt / QML.
    Ответ написан
    Комментировать
  • Какие потоки вводы/вывода использовать в клиент-серверном приложении (TCP)?

    @nirvimel
    Вам нужны Protobuf, BSON, JSON или Thrift.
    И забудьте о ObjectInputStream.

    UPD: Сравнительный бенчмарк.
    Ответ написан
    7 комментариев
  • Какие потоки вводы/вывода использовать в клиент-серверном приложении (TCP)?

    Olej
    @Olej
    инженер, программист, преподаватель
    Я думаю, что ваш вопрос относится не к Java, а к специфике обмена по TCP:
    - в TCP нет сообщений, никаких - это поток, ... труба байт, куда в один конец втекает, а из другого вытекает ;-)
    - поэтому для передачи сообщений вы должны их как-то сами форматировать
    - наиболее широко используются 2 способа: а). передавать в потоке фиксированный ограничитель конца сообщения (так работают большинство протоколов Интернет), обычно это "\n\n" (пустая строка) и б). передача вначале длины, а затем байты тела сообщения (подобно POST в HTTP).
    - иногда используют 2 этих способа вместе.
    Ответ написан
    1 комментарий
  • Какую выбрать аппаратную базу для кастомного маршрутизатора?

    Jump
    @Jump
    Системный администратор со стажем.
    Если интересует именно кастомное решение, а не готовый маршрутизатор -
    любой компьютер с двумя сетевыми картами, и банальный свитч.
    Какой именно компьютер - все зависит от требований к производительности, надежности, цене, габаритам.
    Ответ написан
    7 комментариев
  • Как сформировать исходящие запросы с разными IP от одного сервера?

    Jump
    @Jump Куратор тега Системное администрирование
    Системный администратор со стажем.
    Программисту ставите задачу чтобы скрипт работал через прокси, а параметры прокси для каждого запроса брал из прокси листа.
    После чего покупаете список прокси, и подсовываете текстовый файлик со списком прокси вашему скрипту.
    Ответ написан
    Комментировать
  • Возможно ли взломать забытый пароль от cisco router с выключенным password recovery?

    @loyk
    Восстановить пароль точно нет (если, конечно включен service password-encryption, иначе можно).
    Поменять можно попробовать через rommon, из rommona'же можно стянуть конфиг. Правда конфиг роутера будет не 100% работоспособным, нужно заново генерить сертификаты ssh, сертификаты для vpn, если используется и пр.
    Ответ написан
    2 комментария