• Merkle Tree: ржавое и быстрое

      image


      Всем привет! Недавно открыл для себя язык Rust. О своих первых впечатлениях поделился в предыдущей статье. Теперь решил копнуть немного глубже, для этого необходимо что-то посерьёзнее списка. Выбор мой пал на дерево Меркла. В этой статье я хочу:


      • рассказать про эту структуру данных
      • посмотреть на то, что уже есть в Rust
      • предложить свою реализацию
      • сравнить производительность
      Читать дальше →
      • +39
      • 5.2k
      • 2
    • Топ ошибок со стороны разработки при работе с PostgreSQL

        HighLoad++ существует давно, и про работу с PostgreSQL мы говорим регулярно. Но у разработчиков все равно из месяца в месяц, из года в год возникают одни и те же проблемы. Когда в маленьких компаниях без DBA в штате случаются ошибки в работе с базами данных, в этом нет ничего удивительного. В крупных компаниях тоже нужны БД, и даже при отлаженных процессах все равно случаются ошибки, и базы падают. Неважно, какого размера компания — ошибки все равно бывают, БД периодически обваливаются, рушатся.



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


        О спикере: Алексей Лесовский (lesovsky) начинал системным администратором Linux. От задач виртуализации и систем мониторинга постепенно пришел к PostgreSQL. Сейчас PostgreSQL DBA в Data Egret — консалтинговой компании, которая работает с большим количеством разных проектов и видит много примеров повторяющихся проблем. Это ссылка на презентацию доклада на HighLoad++ 2018.
        Читать дальше →
        • +73
        • 15.8k
        • 8
      • Производительность сетевых приложений Linux. Введение

        • Translation
        Веб-приложения ныне используются повсеместно, а среди всех транспортных протоколов львиную долю занимает HTTP. Изучая нюансы разработки веб-приложений, большинство уделяет очень мало внимания операционной системе, где эти приложения реально запускаются. Разделение разработки (Dev) и эксплуатации (Ops) лишь ухудшало ситуацию. Но с распространением культуры DevOps разработчики начинают нести ответственность за запуск своих приложений в облаке, поэтому для них очень полезно досконально познакомиться с бэкендом операционной системы. Это особенно полезно, если вы пытаетесь развернуть систему для тысяч или десятков тысяч одновременных подключений.

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

        Я пишу эту серию статей в ответ на вопросы молодых разработчиков, которые хотят стать хорошо информированными системными архитекторами. Невозможно чётко понять методы оптимизации приложений Linux, не погрузившись в основы, как они работают на уровне операционной системы. Хотя есть много типов приложений, в этом цикле я хочу исследовать сетевые приложения, а не десктопные, такие как браузер или текстовый редактор. Этот материал рассчитан на разработчиков и архитекторов, которые хотят понять, как работают программы Linux или Unix и как их структурировать для высокой производительности.
        Читать дальше →
        • +24
        • 9.6k
        • 3
      • Успех социального эксперимента с поддельным эксплойтом для nginx

        • Translation
        Прим. перев.: Автор оригинальной заметки, опубликованной 1 июня, решил провести эксперимент в среде интересующихся информационной безопасностью. Для этого он подготовил поддельный эксплойт к нераскрытой уязвимости в веб-сервере и разместил его в своём твиттере. Его предположения — быть мгновенно разоблачённым специалистами, которые увидят очевидный обман в коде, — не просто не оправдались… Они превзошли все ожидания, причём в обратную сторону: твит получил огромную поддержку от многочисленных людей, которые не стали проверять его содержимое.



        TL;DR: ни в коем случае не используйте конвейеризацию файлов в sh или bash. Это отличный способ утратить контроль над компьютером.
        Читать дальше →
      • Почему только прокачка кодинга не сделает из тебя лучшего разработчика


          Techlead Skyeng Кирилл Роговой (flashhhh) выступает на конференциях с докладом, в котором рассказывает о навыках, развивать которые стоит каждому хорошему разработчику, чтобы стать лучшим. Я попросил его поделиться этой историей с читателями Хабры, передаю Кириллу слово.


          Миф про хорошего разработчика гласит, что он:


          1. Пишет чистый код
          2. Знает много технологий
          3. Быстрее кодит задачи
          4. Знает кучу алгоритмов и шаблонов проектирования
          5. Умеет отрефакторить любой код по Clean Code
          6. Не тратит время на непрограммистские задачи
          7. 100% мастер своей любимой технологии

          Так видят идеальных кандидатов HRы, и вакансии, соответственно, выглядят тоже так.


          Но мой опыт говорит, что это не сильно соответствует действительности.

          Читать дальше →
        • Что такое сервисная сеть

          • Translation
          Доброе утро всем!

          Сегодня мы рады предложить вам перевод статьи, кратко рассказывающей о новом технологическом веянии под названием «Service mesh» (сервисная сеть). Наиболее интересным решением в этой сфере (на наш взгляд) является Istio, но предлагаемая статья интересна, в первую очередь, экспресс-сравнением имеющихся технологий такого рода и high-level обзором всей парадигмы. Автор Тобиас Кунце также написал вторую, более практически-ориентированную статью о service mesh — просьба высказаться, стоит ли опубликовать и ее перевод


          Читать дальше →
        • Математические неопределенности на примере Python

            Всем привет! Мы очень часто пользуемся привычными числами в наших любимых языках программирования. Привычные это 1, -1.5, pi или даже комплексные. А вот NaN, +Inf, -Inf используется нами гораздо реже.

            Примечание:

            В статье я использую элементарные функции Python версии 3.6.8, но многое будет актуально и для других языков, например для JS.
            Читать дальше →
            • +11
            • 3.7k
            • 6
          • Даже web ресурсы известных организаций не защищены от детских ошибок

              Disclaimer. Все события происходили в 2017 году. Обо всех указанных в статье уязвимостях было сообщено представителям компаний в кратчайшие сроки с момента их обнаружения. Некоторые ресурсы, на 2019 год, были полностью обновлены (frontend и backend).
              Статья носит сугубо информационно-образовательный характер.


              Пробегая по старым папкам, наткнулся на сохраненные скриншоты, которые делал для представителей пары небезызвестных компаний на нашем финансово-IT рынке.
              Все началось с того, что я решил сменить профиль работы и попробовать себя в QA или смежной профессии, только уже не самоучкой-одиночкой, а заняться этим в штате какой-нибудь крупной организации, чтобы было у кого перенять опыт, поработать в команде…

              После размещения резюме, со мной пересекались Сбербанк-Технологии, Банк Открытие о которых и пойдет небольшое повествование.

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

              • Translation

              Все описания изменений представляют собой уникальную смесь случайностей и детерминизма, если верить радикальному доказательству «слабой гипотезы Пинскера»




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

              Такова природа одного из самых радикальных доказательств, полученных за последние годы. Его сделал Тим Остин, математик из Калифорнийского университета в Лос-Анджелесе. Но вместо цветов работа Остина связана с одним из наиболее изученных объектов в математике: математическим описанием изменений.
              Читать дальше →
              • +15
              • 5.2k
              • 7
            • День защиты детей от плохого кода


                Пост посвящен дню защиты детей. Любые совпадения – не совпадения.


                В 10 лет у меня появились первый компьютер и диск с Visual Studio 6. С тех пор я придумываю себе задачки — автоматизировать дела, собрать какой-нибудь веб-сервис для трёх человек или написать игру, которую потом удалят из плеймаркета от старости. Конечно, я терял исходники и писал код, который стыдно показывать людям. И в 10 лет я бы точно не отказался получить из будущего архив со всеми косяками — чтобы никогда их не допускать.


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

                Читать дальше →
              • Почему каждый Data Scientist должен знать Dask

                • Translation
                Здравствуйте, коллеги!

                Возможно, название сегодняшней публикации лучше смотрелось бы с вопросительным знаком — сложно сказать. В любом случае, сегодня мы хотим предложить вам краткий экскурс, который познакомит вас с библиотекой Dask, предназначенной для распараллеливания задач на Python. Надеемся в дальнейшем вернуться к этой теме более основательно.


                Снимок взят по адресу
                Читать дальше →
                • +15
                • 4.8k
                • 2
              • Single Responsibility Principle. Не такой простой, как кажется

                • Tutorial

                image Single responsibility principle, он же принцип единой ответственности,
                он же принцип единой изменчивости — крайне скользкий для понимания парень и столь нервозный вопрос на собеседовании программиста.


                Первое серьезное знакомство с этим принципом состоялось для меня в начале первого курса, когда молодых и зеленых нас вывезли в лес, чтобы сделать из личинок студентов — студентов настоящих.


                В лесу нас разделили на группы по 8-9 человек в каждой и устроили соревнование — какая группа быстрее выпьет бутылку водки при условии, что первый человек из группы наливает водку в стакан, второй выпивает, а третий закусывает. Выполнивший свою операцию юнит встает в конец очереди группы.


                Случай, когда размер очереди был кратен трем, и являлся хорошей реализацией SRP.

                Но почему соображать нужно именно на троих?
              • Монорепозитории: пожалуйста, надо

                • Translation

                image


                Перевод статьи подготовлен для студентов курса «DevOps практики и инструменты» в образовательном проекте OTUS.




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

                Читать дальше →
                • +12
                • 3.6k
                • 6
              • Базовые знания в безопасности сайтов

                Привет, Хабр!

                Безопасность — дело серьезное. И зачастую проблемы в этой области всплывают неожиданно и несут крайне неприятные последствия. Поэтому знания в этой теме крайне важны для каждого веб разработчика.

                Оговорюсь сразу — я далеко не профи, но стремлюсь к этому. Поэтому буду рад критике, но лишь объективной. Этот материал для новичков, которые хотят повысить свой профессионализм и ценность, как специалиста.

                И еще, я показываю максимально простую реализацию кода. Я знаю про исключения, знаю про ORM, про предусмотренную защиту в фреймворках. Моя цель — показать наглядно, так, чтобы поняли все.

                И так, пора заканчивать со вступлением и приступать к практике.
                Читать дальше →
                • +6
                • 6.6k
                • 9
              • Как условно-бесплатные VPN-провайдеры продают ваши данные

                  Привет, Хабр.

                  Мы к вам с новостью: бесплатных VPN не бывает. Вы платите всегда — просмотром рекламы или собственными данными. Для апологетов базовой идеи об анонимности в интернете последний способ оплаты особенно неприятен. Проблема в том, что продавать или передавать информацию о вас третьим лицам вы разрешаете сами.

                  image

                  Пользовательские соглашения есть везде, но кто их читает? Летом 2017 года 22 000 британцев согласились на уборку общественных туалетов, войдя в интернет через публичную сеть Wi-Fi (интересно, на что мы соглашаемся, подключаясь к Wi-Fi в российском метро). Некоммерческий проект The Best VPN Services провёл исследование и выяснил, что некоторые VPN-провайдеры делятся данными пользователей «легально» — это прописано в User Agreement даже самых популярных из них. Сегодня ровно год с момента публикации того материала, и мы решили посмотреть, осталась ли информация в исследовании актуальной.
                  Читать дальше →
                • Как ИТ-специалисту переехать в США: сравнение рабочих виз, полезные сервисы и ссылки в помощь



                    По данным недавнего исследования Gallup, за последние 11 лет число россиян, желающих переехать в другую страну утроилось. Большая часть из этих людей (44%) находится в возрастной группе до 29 лет. Также согласно статистике, среди наиболее желанных стран для иммиграции среди россиян уверенно держится США.

                    Поэтому я решил собрать в одном материале данные о типах виз, которые подойдут ИТ-специалистам (дизайнерам, маркетологам и т.п.) и предпринимателям, а также дополнить их ссылками на полезные сервисы для сбора информации и реальные кейсы соотечественников, которым уже удалось пройти этот путь.
                    Читать дальше →
                  • Ваш стиль чтения книг много говорит о вашем интеллекте — и вот почему

                    • Translation


                    Расскажем, почему у умнейших людей в мире — горы книг, которых они не читают


                    Если вы любите читать настолько же, насколько и я, то поход в книжный для вас — как вылазка в кондитерскую для ребенка.

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

                    Естественно, вы вытаскиваете кредитку или нажимаете кнопочку «Купить».

                    И книги накапливаются. У вас на полках. В спальне. В машине. Может быть, даже в ванной.

                    Наиболее самозабвенные библиофилы изыскивают место там, где ранее никто книг поставить не догадывался:


                    Источник: http://bit.ly/2JRrqbk

                    И по мере того, как накапливаются книги, растет и ваша алчность. Нет, не стремление прочесть все книги, которые вы покупаете. Жажда не дочитывать тех книг, к которым вы приступили.

                    Если следующая сентенция — про вас, то мне предстоит вас обрадовать.

                    «Даже если у вас нет времени прочитать их все, переполнение книжных полок или ридера идет вам на пользу».
                    — Джессика Стиллмен

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

                    Переведено в Alconost
                    Читать дальше →
                  • Личный опыт: Пять сложностей при запуске бизнеса в США



                      Вот уже пару лет я живу в США, развиваю два собственных проекта и сегодня решил поделиться опытом. Мне на глаза часто попадаются статьи с рассказами о том, как классно делать бизнес в США, авторы которых не рассказывают о возможных сложностях на этом пути. В итоге у многих может сложиться чересчур идеализированное представление о том, как они приедут в Кремниевую Долину со своим стартапом менять мир.

                      Так было и со мной, что неоднократно приводило к фрустрациям при столкновении с реальности. Поэтому сегодня я расскажу о сложностях в ведении бизнеса в Америке, к которым следует морально подготовиться еще до переезда.
                      Читать дальше →
                    • Инвесторам и предпринимателям пора начать решать проблему психического здоровья в стартапах

                      • Translation


                      Колин Кролл был со-основателем Vine и HQ Trivia, невероятно успешных компаний с миллионами довольных пользователей. Энтони Бурден был шеф-поваром, журналистом и философом, принесшим чувство осознанности и причастности в миллионы жизней. Робин Уильямс был потрясающим актером и комедиантом.


                      Что общего у всех трех? Каждый из них достиг высот в своей отрасли и все они умерли слишком рано. Их преждевременная кончина — трагедия.


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

                      Читать дальше →
                    • Страх и ненависть DevSecOps

                        У нас было 2 анализатора кода, 4 инструмента для динамического тестирования, свои поделки и 250 скриптов. Не то, чтобы это всё было нужно в текущем процессе, но раз начал внедрять DevSecOps, то надо иди до конца.



                        Источник. Авторы персонажей: Джастин Ройланд и Дэн Хармон.

                        Что такое SecDevOps? А DevSecOps? В чем отличия? Application Security — о чём это? Почему классический подход больше не работает? На все эти вопросы знает ответ Юрий Шабалин из Swordfish Security. Юрий подробно на всё ответит и разберет проблемы перехода от классической модели Application Security к процессу DevSecOps: как правильно подойти к встраиванию процесса безопасной разработки в процесс DevOps и ничего не сломать при этом, как пройти основные этапы тестирования на безопасность, какие инструменты можно применять, чем они отличаются и как их правильно настроить, чтобы избежать подводных камней.
                        Читать дальше →
                        • +23
                        • 5.2k
                        • 1