• Андрей Карпов считает, что код проекта Manticore качественнее, чем код проекта Sphinx
    +1
    У меня сложилось впечатление, что в Sphinx отсутствие проверок на ошибочные данные было/стало скорее фичёй. Это следует из оборачивания проверок в assert() — в случае реально возникающей проблемы (а не гипотетической), запускается дебажная версия, и баг фиксится, а в продакшене ресурсы процессора на бесполезные проверки не расходуются. Я, правда, столкнулся с ситуацией, когда дебажная версия всегда падает на определенном запросе к определенному набору данных, а обычная — работает. Да и не выставишь дебажную версию в продакшен — она не справляется с нагрузкой (к вопросу об оверхеде), а некоторые проблемы вылезают только там (видмо есть race condition). Еще можно отметить трудноуловимые глюки с тредами под FreeBSD, из-за чего пришлось перенести его на линукс, где эта скульптура из подпорок находится в более сбалансированном состоянии ;) Но в целом альтернатив Sphinx по производительности нет.
  • Вы уволили самого талантливого сотрудника. Надеюсь, теперь вы довольны
    +6
    И еще мне кажется, это часть большой истории о том, как в перспективный стартап пришли венчурные инвесторы, жаждущие тысяч процентов роста, а основатели и управленцы не были готовы к взрывному росту. Набрали кучу разработчков, но основатель сопротивлялся, а менеджмент с ним не справился. В результате недовольные инвесторы сменили менеджмент и дали новой команде возможность приступить к полному переписыванию всего проекта с нуля.
    «Капитализм!» (с) к/ф Красная Жара
  • Вы уволили самого талантливого сотрудника. Надеюсь, теперь вы довольны
    +18
    В оригинальной статье как-то вскользь, но отмечено, что команду управленцев уволили первыми.
    His manager shares in this responsibility. In fact, the original management team was held accountable: they were let go first.
    Ну а то, что акцент в статье сделан на личности Гения, а не на управленческих просчетах, можно списать не на предвзятость автора, а на то, что это было первопричиной проблем. Возможно, Гений был основателем стартапа, но не смог доверить развивать свое детище другим разработчикам
  • Наш рецепт отказоустойчивого VPN-сервера на базе tinc, OpenVPN, Linux
    +1
    Не совсем ясно, зачем нужны дополнительные точки отказа, у клиента могут быть для этого какие-то свои причины, а может быть просто непонимание этого. Может пропасть связанность между VPS и ДЦ клиента, может отвалиться туннель tinc в ДЦ клиента. Обычно стараются терминировать VPN как можно ближе к оборудованию, к которому будет предоставлен доступ.
  • Наш рецепт отказоустойчивого VPN-сервера на базе tinc, OpenVPN, Linux
    +1
    «Мы засунули твой VPN в VPN, чтобы… ». Не совсем понятна причина разнесения узлов с OpenVPN по каким-то VPS, при том, что «сервис клиента», к которому нужно получать доступ, находится в другом ДЦ/офисе, с одним или несколькими каналами. В это самое место и надо ставить OpenVPN. Если ДЦ несколько, с разными блоками адресов (но предположительно L2 VPN между ними), то ставить в каждый ДЦ OpenVPN.
    Выдавать адреса ДНСом с TTL 0 — ну в принципе не самая плохая затея, но неплохо бы проверять доступность узлов, и выкидывать их при авариях. Но все равно будут перерывы в доступности из-за кэширования ДНС записей.
  • Директор Linux Foundation использует Mac OS X, анонсируя «год Linux на десктопах»
    –1
    В Microsoft во времена Балмера сотрудникам запрещалось крайне не рекомендовалось носить iPhone, и использовать опенсорсный софт. Балмер обозвал Линукс раком, и открытые лиценции (типа GNU) — вирусными, заражающими тех кто к ним прикасается. Так что в Майкрософт — вполне себе религия, по крайней мере была раньше.
  • Тайминговая атака на Node.js — когда время работает против вас
    +1
    В первом же примере сравнивается токен, также это может быть и идентификатор сессии. Угнать чужую сессию — это, конечно, не пароль узнать, но не менее эффективно в некоторых случаях
  • Oracle фактически ликвидирует Sun
    0
    Jail во FreeBSD был в то время небольшим патчем сетевой подсистемы для функционала chroot, а chroot существовал с незапамятным времен. В то время в соляре уже был менеджер ресурсов (память, CPU) для приложений, чего в джейлах нет до сих пор. Конечно, какие-то идеи они позаимствовали из джейла, какие-то — из эмулятора (сисколлов) линукса
  • Не виноватая я. Он сам пришел
    +11
    Больничные по ТК оплачивает государство (фонд соц страхования) и, скажем так, далеко не в полном объеме. Компании от них ущерб разве что в нехватке рабочих рук и срыве сроков
  • ZFS — лучшая файловая система (пока)
    +2
    Надо отдать должное NetApp — у них получился действительно инженерный шедевр, от железа до метрик. Вот только стоимость их решений доступна лишь очень жирным котам. Революционность ZFS в том, что Sun взяли годные идеи NetApp, и переписали их, избегая запатентованных технологий, и открыли исходники. Как-то давно примерно так поступил Торвальдс и GNU.
    Так что скажем спасибо IBM за многомилионные мейнфреймы, благодаря которым у каждого есть дешевые компьютеры, скажем спасибо NetApp, что их разработки, окупившись в энтерпрайзе, пошли «в народ», и скажем «спасибо» Ораклу, похоронившему дальнейшую разработку ZFS, благодаря чему мы застряли в прошлом десятилетии с файловыми системами.

    P.S.: Снапшоты при помощи систем виртуализации для файлового хранилища — это как-то странно. У решений поверх стандартных файловых систем они дадут значительно больший оверхед, у VMWare они интегрированы с файловой системой (=тот же подход, что у wafl/zfs)
  • Снимаем и вносим наличные в банкомате с помощью смартфона. Впервые в мире
    0
    Пин-код от карты, отжатой мускуклистыми молодцами, можно попытаться не сказать, а вот не показать лицо банкомату — несколько сложнее. Или Сбербанк будет распознавать эмоции?
  • Как быстро удалить множество строк из большой базы в MySQL
    +5
    Удаление (да и вообще модификация) записей через LIMIT в случае statement-based репликации — не самая хорошая идея. Лучше уж использовать диапазон значений первичного ключа (id >= 5000 AND id < 10000).
    Также, в отдельных случаях может быстрее оказаться выбрать оставляемые записи в новую таблицу, на старую сделать truncate, и залить данные обратно. Или просто удалить таблицу, если в нее не ведется запись, а новую переименовать
    Ну и конечно, можно таблицы партицировать, в том числе и по времени, и удалять ненужные партиции целиком.
  • Магия SSH
    +1
    Такие опции будут выдавать Warning при подключении, если не указать -o LogLevel=ERROR. Ну и конечно, их можно не указывать каждый раз, а засунуть в конфиг — ~/.ssh/config:
    StrictHostKeyChecking=no
    UserKnownHostsFile=/dev/null
    LogLevel=ERROR

    Что касается возможного MiTM — ну на сервере в консоли как правило не вводят конфиденциальные данные. А вот проброшенный SSH-агент (ForwardAgent=yes) может представлять интерес для такой атаки
  • Как в «Додо Пицца» потеряли 8 миллионов за один час из-за технической ошибки, а потом вернули
    0
    Вернуть деньги можно только тому, кто их перечислил. И судя по плате за SMS уведомления это были вполне реальные люди
  • Как в «Додо Пицца» потеряли 8 миллионов за один час из-за технической ошибки, а потом вернули
    +3
    судя по статье, это были реальные платежные операции из копии продакшен-базы, которые в результате «обезличивания», (а вернее чистки части данных с продакшена), потеряли связь с заказами. А поскольку транзакции и реляционная целостность в современном мире считается устаревшим подходом, для приведения базы в порядок был специальный сервис, отменяющий платежные операции, не привязанные к заказам. Интересно, почему на продакшене нельзя было делать этого вручную, или может даже исправить причину появления таких операций?
  • Аудит изменения данных PostgreSQL
    0
    На мой взгляд, идея не самя удачная — WAL логи не слишком хорошо подходят для извлечения из них запросов, это лог изменения данных на диске. Из самих WAL файлов (без наличия реплики с реплицированной базой) эту информацию извлечь невозможно.
  • Zabbix 3.X: мониторинг контролеров Adaptec в Windows Server (Hyper-V Core)
    0
    Если серверов — десятки, то лучше мониторить количество логических дисков с статусом отличным от optimal, и на него повесить триггер. Читать текст SMART в заббиксе — странная идея, если есть реальная необходимость в ранних предупреждениях, то надо мониторить конкретные параметры. Но вообще сбой одного диска — вполне нормальная ситуация для RAIDа, зачем слушать подземный стук, когда проще заменить диск после выхода из строя?
  • Файлы для Windows с DRM-защитой можно использовать для деанонимизации пользователя Tor
    +4
    Для обладателей VLC (и не только) подойдет такой вариант — делается m3u8 плейлист с HLS потоком, и урлом для запроса ключа расшифровки. Отдается этот m3u8 как application/octet-stream, юзер скачивает и запускает его. Никаких 10k$ не нужно
  • Шустрый, удобный и кроссплатформенный профилировщик C++ кода
    0
    Мне кажется, что на Mac/FreeBSD/Solaris лучше использовать DTrace
  • Как мы Redis Cluster готовили
    +1
    не нужен никакой двойной объем памяти, CoW существует с незапамятных времен. Форк процесса редиса наследует его память в состоянии «снапшота», и просто записывает ее на диск, упаковывая в более компактный формат хранения
  • PostgreSQL slave + btrfs и systemd = горячая тестовая база
    0
    Вероятно, имелось ввиду что девелоперская база находится в DMZ и снаружи недоступна. Непущать разработчиков продакшен базу — в целом здравая идея. Пусть разрабатывают набор начальных данных для заливки на тестовую базу. И на все вопросы отвечают — а у нас все работает ;)
  • PostgreSQL slave + btrfs и systemd = горячая тестовая база
    0
    Загрузка полного дампа на больших базах — это последнее средство, когда все плохо. У меня только дамп базы делается несколько дней, загрузка его — раза в полтора-два дольше. А накатывание архивлогов ведется в один поток, и при большом потоке изменений в базе накатить логи за 4 дня займет едва ли не сутки.

    В этом случае снапшоты — наше все. Они в случае btrfs практически бесплатные — то есть расходуют только занимаемое место, по объему примерно как сжатые gzip'ом архивлоги. Хранить их можно, пока свободное место позволяет (процентов до 20).

    Снапшоты в btrfs — записываемые (вернее, доступен для записи каталог, куда снапшот монтируется). Нет необходимости переводить основную реплику в мастер, можно поднять еще один постгрес (лучше еще один контейнер) на снапшоте и его перевести в мастер. В этом случае не придется нагонять репликацию — у вас всегда будет актуальная реплика, с нее можно снимать дампы (хотя в этом есть нюансы).
    В таком сценарии делать снапшоты базы без ее остановки весьма удобно — у вас всегда есть некоторое количество снапшотов, для отката базы или для поднятия тонких копий в качестве девелоперской базы
  • PostgreSQL slave + btrfs и systemd = горячая тестовая база
    +1
    Нет особого смысла хранить архивлоги за большой период. Если только вам не нужно откатиться на заданную минуту в прошлом, тогда пригодятся и снапшоты и архивлоги. Для случаев отставания реплики достаточно периода в несколько дней. Само отставание (в секундах) мониторить можно так
    select extract(epoch from now() - pg_last_xact_replay_timestamp())::integer

    Останавливать базу для создания снапшота необязательно, достаточно выполнить два запроса
    psql -U pgsql postgres -t -A <<EOT
    SELECT select pg_xlog_replay_pause();
    CHECKPOINT;
    EOT
    

    и после создания снапшота
    psql -U pgsql postgres -t -A -c "select pg_xlog_replay_resume();"
    


  • «Пьяная» база данных: как на 1 базе мы сделали 7 тестовых площадок, причём у каждой — свой собственный инкремент и дифф
    +1
    В крупных компаниях управлять Delphix все равно будет админ (как минимум настраивать полномочия для представителей каждой из 4х групп разработчиков), да и обычно разбираться в интерфейсе никому не охота, а отправить письмо «Вась, откати базу db4 на вчера» куда проще. Но ок, запишем это как преимущество.
    Никакой экономии пространства у Delphix по сравнению с клонами нет.
    Снапшоты — почти эквивалент откатыванию на любой период времени, с поправкой на частоту их создания. Точность до секунды для дев-БД врядли нужна.
    Вебинтерфейс для управления снапшотами есть и у СХД
  • «Пьяная» база данных: как на 1 базе мы сделали 7 тестовых площадок, причём у каждой — свой собственный инкремент и дифф
    +1
    Для решения такой задачи обычно обходятся клонами («тонкими» копиями), либо основной базы, либо ее реплики. Клонирование умеет делать некоторое количество СХД (NetApp в часности), ZFS, BTRFS, а также системы виртуализации (VMWare). Если СХД уже есть, то лицензия на клонирование явно будет дешевле, а главное проще внедрения нового ПО. Сами клоны «бесплатны» по занимаемому месту, увеличивается лишь число iops (причем чтение оседает в общем для всех клонов кэше)
  • FreeNAS 10 — новое лицо старого хранилища
    0
    Вы говорите о вполне узком случае. Могу тоже рассказать про кэширующие сервера, для которых был выбран XFS, потому как на ext4 удаление файла — долгая блокирующая операция, и один тред nginx, чистящий кэш, не успевал его чистить. Есть сценарии для применения XFS, есть и для ZFS. Я, например, не представляю, как бы я держал девелоперские копии продакшен БД без клонов — объем базы большой.

    Что касается домашних NAS, то HP Microserver — наш выбор ;) Память ECC, но встает и обычная. Ну дороговат стал, но и харды сейчас недешевые.
    Да и потом, сбой в одном байте на фотке или фильме с торрента — не критичен совершенно. А полное разрушение файловой системы от сбоев памяти — все же большая редкость.
  • FreeNAS 10 — новое лицо старого хранилища
    0
    Если надо занять 99% диска для энтерпрайз-использования — это повод задуматься о смене работы =) Вообще говоря все файловые системы в здравом уме резервируют свободное место, и NTFS при полном забивании диска тоже будет тупить. А на домашнем NAS с zfs и полное забивание диска не приводит к полной остановке хранилища, скорость записи и чтения остается приемлемой. Но такая особенность присутствует, надо просто о ней помнить.
  • FreeNAS 10 — новое лицо старого хранилища
    0
    Еще есть предположение, что при большом количестве мелких файлов DDT будет расти. Каждая запись в DDT — 320 байт, их умножить на количество блоков на диске, блок имеет размер 128к (дефолтный recordsize). Из этой математики вытекает 2,5Гб на 1Тб хранилища, но мелкие файлы и последние байты от файлов не кратных 128к, пишутся блоками меньшего размера, так что DDT будет больше. Также в случае изменения recordsize=8k (так например рекомендуется для MySQL) DDT будет уже 40Гб на 1Тб. Для виртуалок же рекомендуется размер блока в 4к.
  • Юридическое лицо? Предоставьте ваш IP-адрес
    0
    Эта статья закона называется "… система обеспечения целостности, устойчивости и безопасности функционирования российского национального сегмента сети «Интернет»", и очевидно конечных клиентов провайдеров не касается
  • FreeNAS 10 — новое лицо старого хранилища
    +1
    Дедупликация годится, когда у вас очень много памяти, и не очень много дискового пространства. ZFS для эффективной работы нужно много памяти и без дедупликации. При дедупликации хранится словарь из контрольных сумм всех блоков на диске — DDT, но для ZFS DDT является просто метаданными, и может быть из памяти вынеснен и на диск, тогда все просто встает
    Дедупликация небесплатная не только по памяти, но и по процессору. При записи каждого блока будет посчитан SHA256 (по умолчанию) от него.
    В некоторых случаях взамен дедупликации можно использовать клоны — «образцовый» датасет снапшотится, и делается его клон, который будет занимать место на диске только за счет записи измененных блоков по отношению к образцовому датасету.
  • LEGO MINDSTORMS Education EV3 в профориентации
    0
    Кстати ПО Home версии для Mac OS жутко глючит. Вернее, глючит воспроизведение видео на первом экране, которое сделано на Silverlight (мир его праху), а сам LabVIEW просто жрет проц когда не надо
  • LEGO MINDSTORMS Education EV3 в профориентации
    0
    В образовательный набор входит аккумулятор, но не входит зарядка для него (китайский зарядник продается на ebay за копейки). Разница в цене между Home и Education что-то порядка 7 тысяч рублей. Если нужен аккумулятор, лучше купить образовательную версию — там пара дополнительных деталей и датчиков есть. Но для домашнего использования батарейки менять дешевле ;) Сам процессорный блок одинаковый, ПО бесплатно и совместимо между Home и Education. При покупке недостающих деталей можно собрать из набора Home всех роботов из Education.
  • Принимая PHP всерьёз
    0
    Вопрос, видимо, в том, почему '0123' приводится из строки согласно десятичной системе счисления, а не восьмеричной.
  • Заблуждения большинства программистов относительно «времени»
    0
    Сравните вывод ncal 02 1918 и cal 02 1918 при локале ru_RU и ncal 09 1752 и cal 09 1752 при en_US. Вполне можно дополнить список из статьи
  • Заблуждения большинства программистов относительно «времени»
    0
    И что самое интересное, вывод этого календаря верен лишь для Британской Империи
  • Удостоверяющий центр из Китая по ошибке выдал пользователю SSL-сертификат для домена GitHub
    0
    Для подтверждения легитимности используются сертификаты Extended Validation («зелененькие»), с предоставлением документов о компании-владельце домена. Вот тот самый гитхаб, про который речь шла, как раз такой сертификат использует.
    А у простых сертификатов проверяется то, что запрашивающий их либо
    — может читать почту postmaster@ webmaster@ и пр на домене
    — его е-мэйл явно указан в whois домена
    — он может редактировать записи в ДНСах домена
    — он может размещать файлы на веб-сайте домена
    Это по-вашему гарантия легитимности? Такие сертификаты запрашивают не владельцы домена, а технический персонал, а уж доступ к одному из способов верификации может получить в общем случае еще большее количество людей.

    И повторюсь — HTTPS используется не для доверия, а для невозможности перехвата паролей открытым текстом на уровне провайдера, или еще где по дороге. Для здравомыслящих людей серый замочек — не повод вводить данные кредитной карты.
  • Удостоверяющий центр из Китая по ошибке выдал пользователю SSL-сертификат для домена GitHub
    –2
    Шифрование транспортного уровня к доверию никакого отношения не имеет. Доверие в данном случае — это маркетинговая лапша от продавцов воздуха. И WoSign тут конечно им портит всю малину — вместо 200 баксов в год в былые времена теперь выдают бесплатные сертификаты, да еще на три года.

    MiTM даже при наличии сертификата на чужой домен осуществить довольно сложно, если конечно речь не о спецслужбах. Ну а если вами заинтересовались они, то https вам врядли поможет, особенно против терморектального криптоанализа

    А Доверие, о котором говорят эти жулики, теперь называется EV сертификатом, и вот сюрприз, стоит как сертификат у Verisign 15 лет назад — 200-300 баксов
  • Аудит уязвимостей Linux c Vulners.com
    0
    Ну вот мне нужно находить уязвимости в установленных джумлах, вордпрессах и их плагинах, о которых менеджеры пакетов не знают совсем. Правда, представленный агент о них тоже не знает, а методы нахождения версии у всех этих ЦМС и форумов сильно разнятся (про плагины вообще молчу), но задача в целом решаемая
  • Аудит уязвимостей Linux c Vulners.com
    0
    Возможно более безопасным был бы такой вариант — агент запрашивает по названию пакета, а ему возвращается список уязвимостей в версиях, который он фильтрует локально согласно версии пакета, и выводит актуальные уязвимости.
  • Аудит уязвимостей Linux c Vulners.com
    0
    Передавать данные об актуальных уязвимостях третьим лицам, да еще и с адреса сервера (если белый IP) — вот этого хотелось бы избежать. Почему-то мне кажется, что платные сканеры уязвимостей имеют локальную БД с уязвимостями. Ну и во FreeBSD есть VuXML