habrahabr.ru

    Лучшие публикации за сутки

  • [Перевод] Почему нужна инструментальная поддержка пагинации на ключах

    Всем привет! Я бэкэнд-разработчик, пишу микросервисы на Java + Spring. Работаю в одной из команд разработки внутренних продуктов в компании Тинькофф.



    У нас в команде часто встает вопрос оптимизации запросов в СУБД. Всегда хочется еще чуть-чуть быстрее, но не всегда можно обойтись продуманно выстроенными индексами — приходится искать какие-то обходные пути. Во время одного из таких скитаний по сети в поисках разумных оптимизаций при работе с БД я нашел бесконечно полезный блог Маркуса Винанда, автора книги SQL Performance Explained. Это тот самый редкий вид блогов, в котором можно читать все статьи подряд.


    Хочу перевести для вас небольшую статью Маркуса. Ее можно назвать в какой-то степени манифестом, который стремится привлечь внимание к старой, но до сих пор актуальной проблеме производительности операции offset по стандарту SQL.

    Читать дальше → Read more »
  • CRM 2020
    IT-сфера — штука неблагодарная и прогнозы тут такие же, как  с погодой прошлым летом, всё равно замёрзнешь. Или промокнешь. Или солнечный удар жахнет. Но с предсказаниями на 2019, как показало время, у нас вышло неплохо, поэтому мы решили рассказать о трендах CRM 2020, какими мы их видим для малого и среднего бизнеса. У нас их получилось совсем не символично 11, да и какие символизм и провидение в инженерной работе. Всё, что мы помещаем в тренды по версии нашей команды, основано на 14-летнем опыте работы на CRM-рынке, текущих делах в отрасли и запросах наших клиентов. В общем, за прогноз отвечаем.


    Этой зимой погоду определять только так 🙁
    Читать дальше → Read more »
  • Коты в коробочках, или Компактные структуры данных

    image


    Как быть, если дерево поиска разрослось на всю оперативку и вот-вот подопрет корнями соседние стойки в серверной? Что делать с инвертированным индексом, жадным до ресурсов? Завязывать ли с разработкой под Android, если пользователю прилетает «Память телефона заполнена», а приложение едва на половине загрузки важного контейнера?


    В целом, можно ли сжать структуру данных, чтобы она занимала заметно меньше места, но не теряла присущих ей достоинств? Чтобы доступ к хэш-таблице оставался быстрым, а сбалансированное дерево сохраняло свои свойства. Да, можно! Для этого и появилось направление информатики «Succinct data structures», исследующее компактное представление структур данных. Оно развивается с конца 80-х годов и прямо сейчас переживает расцвет в лучах славы big data и highload.


    А тем временем на Хабре найдется ли герой, способный пересковоговорить три раза подряд
    [səkˈsɪŋkt]?

    Читать дальше → Read more »
  • Не плачь, девчонка! Ответ автору с vc.ru на письмо о Хабре
    Я давний участник Хабра — обычный читатель и корпоративный автор. Для меня Хабр — это хорошо знакомая, изученная, родная и не враждебная среда, поэтому каждый раз я удивлённо читаю доводы участников «кармасрачей» и обхожу их стороной, потому что писать комментарии на 5000 знаков нет времени. Но сегодня утром мне прилетела ссылка на пост с vc.ru, на который я заглядываю редко, в основном, по нужде. И пост меня задел — безапелляционностью, линейностью суждений и даже искажением фактов. В кои веки я решил порамсить. Итак, го в кармасрач, я создал.
     
    Та самая статья.
     

    Комментарий к статье в ближайшей рюмочной на vc.ru. Идеальная КДПВ
    Читать дальше → Read more »
  • Мой опыт работы с Plesk
    Хочу поделиться некоторыми впечатлениями о нужности или ненужности такой вещи, как контрольная панель для коммерческого односерверного веб-проекта при наличии очень part time админа. История началась пару лет назад, когда знакомые знакомых попросили меня сопроводить покупку бизнеса — новостного сайта — с технической точки зрения. Нужно было слегка вникнуть, что на чем работает, проследить, чтобы все необходимые реквизиты были переданы в надлежащем виде и объеме, и стратегически прикинуть, что можно улучшить.


    Сделка состоялась, скрипач стал не нужен. Конец. На самом деле нет.
    Читать дальше → Read more »
  • [Перевод] Оптимизация времени сборки проекта
    Там, где я работаю (в стартапе Spot.IM, размер которого находится где-то между малым и средним), Webpack используется для сборки различных проектов. После 4 лет работы над нашим основным продуктом, когда в его код внесло вклад столько народа, что и не сосчитать, время его первоначальной сборки достигло непомерных 90 секунд, а время пересборки — 14.

    Речь идёт о 14 секундах, которые нужно ждать после каждого нажатия на кнопку «Сохранить».

    Прибегнув к некоторым несложным оптимизациям, к таким, которые любой может применить в своём проекте, мы смогли сократить вышеприведённые цифры до 20 секунд на сборку и 1 секунды на пересборку проекта.



    В этом материале я хочу рассказать о некоторых простых изменениях, внеся которые в проект можно значительно улучшить время его сборки. Обратите внимание на то, что если вы используете CreateReactApp (или какой-нибудь другой модный генератор приложений), то эта статья, возможно, не окажется для вас особенно полезной. А вот если ничем таким вы не пользуетесь — тогда то, о чём здесь пойдёт речь, может вам очень пригодиться.
    Читать дальше → Read more »
  • [Из песочницы] Так ли просто организовать свой бизнес ИТ-специалисту
    В последнее время много читаю на хабре статей про огромные возможности, которые открыты для разработчиков и ИТ специалистов в целом, в плане основания собственного бизнеса. Последней каплей стала статья Кое-как одетые принцы и дворяне.

    Я не согласен с мнением автора о том, что открыть свое прибыльное дело может легко и непринужденно почти любой разработчик.
    Читать дальше → Read more »
  • Вышел Wine 5.0
    21 января 2020 года состоялся официальный релиз стабильной версии Wine 5.0 — свободного инструмента для запуска нативных Windows-программ в UNIX-среде. Это альтернативная, свободная реализация Windows API. Рекурсивный акроним WINE означает "Wine Is Not an Emulator".

    За этой версией — около года разработки и более 7400 отдельных изменений. Ведущий разработчик Александр Джуллиард (Alexandre Julliard) выделяет четыре:

    • Поддержка модулей в формате PE. Это решает проблемы с разными схемами защиты от копирования, которые проводят сверку системных модулей на диске и в памяти.
    • Поддержка нескольких мониторов и нескольких GPU, включая динамическое изменение настроек.
    • Реимплементация XAudio2 на базе проекта FAudio, открытой реализации звуковых библиотек DirectX. Переход на FAudio позволяет добиться более высокого качества звука в играх, задействовать смешивание громкости, расширенные звуковые эффекты и др.
    • Поддержка Vulkan 1.1.
    Читать дальше → Read more »
  • От личного развития до Agile в XXXL масштабе за два дня на TeamLead Conf
    Итак, подготовка к пятой конференции TeamLead Conf идёт своим чередом. Осталось три недели. Площадка ждёт строителей, мы ждём вас и ваших коллег, типография ждёт расписание. Пока все чего-то ждут, расскажу немного о том, что у нас уже получилось. А получилось в целом очень неплохо. Ещё больше профессионализма спикеров, ещё больше интерактива (митапы и воркшопы), ещё больше тимлидов.

    Если посмотреть на программу, то можно выделить две большие части. Первая и основная — это что-то о личном развитии, софт-скилах, умении работать с собой — преимущественно стоит в расписании в первый день. Вторая часть полностью посвящена работе с командой. Казалось бы, какие еще могут быть варианты? Оказалось, что они есть. В этот раз мы подумали и решили, что будет полезно позиционировать доклады относительно границ их применимости по масштабу компании или команды. К сожалению, однозначно определить «маленькую команду» или «большую компанию» очень сложно, т.к. всё в этом мире относительно. Также стоит отметить тот факт, что редкий доклад на 100% принадлежит одной категории — в докладе про командную работу легко может найтись рецепт личностного роста, также как и в докладе про лидерство может быть полезная информация про взаимодействие с командой. Тем не менее мы ввели метки «человечков» примерно как на картинке ниже и разбили доклады на три категории. Дальше расскажу, что из этого получилось.


    Читать дальше → Read more »
  • [Перевод] Война за выключение света


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

    Большой верхний свет, небольшой светильник, направленный вверх с несколькими уровнями яркости, и вентилятор. И каждый раз, когда я пытался выключить светильник, направленный вверх, включалось что-то ещё. Через десять минут я разбудил жену и попросил у неё помощи. Но ситуация стала только хуже.
    Читать дальше → Read more »
  • Ростов-на-Дону: IT-компании, сообщества и мероприятия в 2019 году
    Привет. Меня зовут Вадим и я занимаюсь развитием IT-тусовок в Ростове.
    В 2016 году spasibo_kep написал статью "Едем в город южный: как живут разработчики в Ростове-на-Дoну" о Ростовском IT. Пришло время её обновить, тем более, что Ростов в 2019 году стал 4ым в России городом по интенсивности IT-мероприятий и активности сообщества. Статья будет полезна тем, кто думает о релокации, хочет узнать про IT-жизнь за пределами столиц, или интересуется развитием IT-сообществ.

    В статье будет чуть-чуть о климате и географии и очень много о компаниях и сообществе.

    Читать дальше → Read more »
  • Что такое I в ACID или вы нам не подходите


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

    Читать дальше → Read more »
  • Давайте быстрокодить как профессионалы

    Да!


    Дайте мне рычаг, точку опоры, место для ног и армированный скотч

    верни картинку взад

    Даже попытавшись, нельзя лаконично обрисовать, насколько бездонная кроличья нора вас поджидает. Здесь один из тех редкостных случаев, когда, чтобы осознать, о чём будет идти речь, надо выслушать речь до самого финала. Изучив по шагам настоящее руководство, каждый обнаружит для себя что-то своё: эзотерический «текстовый» редактор Leo Editor всей своей сутью призывает применить его самым изумительным образом.
    Читать дальше → Read more »
  • Инкрементальный annotation proccesing для ускорения gradle-сборок

    image


    Начиная с версий Gradle 4.7 и Kotlin 1.3.30 появилась возможность получить ускорение инкрементальной сборки проектов за счет корректной работы инкрементальной обработки аннотаций. В статье разбираемся, как в теории работает модель инкрементальной компиляции в Gradle, что нужно сделать, чтобы раскрыть весь ее потенциал (не лишаясь при этом кодогенерации), и какой прирост к скорости инкрементальных сборок может дать активация инкрементальной обработки аннотаций на практике.

    Читать дальше → Read more »
  • HighLoad++, Евгений Кузовлев (EcommPay IT): что делать, когда минута простоя стоит $100000
    Все рассказывают про процессы разработки и тестирования, обучения персонала, повышение мотивации, но этих процессов мало, когда минута простоя сервиса стоит космических денег. Что делать, когда вы проводите финансовые транзакции под жесткий SLA? Как повысить надежность и отказоустойчивость ваших систем, вынося за скобки разработку и тестирование?



    Следующая конференция HighLoad++ пройдет 6 и 7 апреля 2020 года в Санкт-Петербурге. Подробности и билеты по ссылке. 9 ноября, 18:00. HighLoad++ Moscow 2018, зал «Дели + Калькутта». Тезисы и презентация. Читать дальше → Read more »
  • [Перевод] Шпаргалка для сисадмина по SELinux: 42 ответа на важные вопросы
    Перевод статьи подготовлен специально для студентов курса «Администратор Linux».




    Здесь вы получите ответы на важные вопросы о жизни, вселенной и всем таком в Linux с улучшенной безопасностью.

    «Важная истина, что вещи не всегда являются тем, чем кажутся, общеизвестна…»

    ―Дуглас Адамс, Автостопом по Галактике

    Безопасность. Повышение надежности. Соответствие. Политика. Четыре Всадника Апокалипсиса сисадмина. В дополнение к нашим ежедневным задачам — мониторингу, резервному копированию, внедрению, настройке, обновлению и т. д. — мы также отвечаем за безопасность наших систем. Даже тех систем, где сторонний провайдер рекомендует нам отключить усиленную безопасность. Это похоже на работу Этана Ханта из “Миссия невыполнима”. Читать дальше → Read more »
  • Как изменился английский Илона Маска за 20 лет

    Илон Маск — одна из самых ярких личностей XXI века. Инженер, предприниматель и миллионер с просто невообразимыми идеями. PayPal, Tesla, SpaceX — это всё его детища, и бизнесмен не собирается останавливаться только на нескольких проектах, которые стали всемирно успешными. Он вдохновляет миллионы людей своим примером и доказывает, что даже один человек вполне способен изменить мир к лучшему.

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

    В этой статье мы подробно разберем английский язык Илона Маска, его акцент и особенности произношения слов. А также проанализируем, как за последние 20 лет изменилась английская речь бизнесмена. Итак, поехали.
    Читать дальше → Read more »
  • [Перевод] RTL Styling 101 — подробное руководство по RTL-стилизации в CSS


    Перевод «RTL Styling 101 — An extensive guide on how to style for RTL in CSS» Ахмада Шадида.

    Более 292 миллионов людей во всём мире говорят на арабском, как на родном языке. К ним отношусь и я, поэтому иногда разрабатываю сайты, которые должны поддерживать оба направления написания текста: слева направо (LTR – Left To Right) и справа налево (Right To Left).
    Читать дальше → Read more »
  • [Перевод] Основы левел-дизайна: эффект течения или как не дать заскучать игроку


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

    Большую часть времени игрок не должен заходить в тупик. Конечно, такие моменты можно использовать для разворота и других уникальных фишек геймдизайна. Проблема возникает, когда тупик — это просто тупик.
    Читать дальше → Read more »
  • Часть 6: Портирование MemTest86+ на RISC-V

    Наверное, мало какому айтишнику нужно объяснять, что такое Memtest86+ — пожалуй, он уже стал более-менее стандартом в тестировании оперативной памяти на ПК. Когда в одной из предыдущих частей я наткнулся на битую планку памяти, пришедшую в комплекте с платой, он (вместе с поддерживающим DDR2 нетбуком) казался очевидным решением. Другой вопрос, что там в принципе нестабильная работа системы была видна невооружённым глазом. В более хитрых случаях, слышал, что кроме банального «простукивания» ячеек памяти до бесконечности, этот инструмент использует некоторые специальные паттерны данных, на которых ошибки в работе DDR выявляются с большей вероятностью. В общем чудесная вещь, жаль, что даже в названии указано: 86 — «Только для x86-совместимых систем». Или нет?


    Под катом вы увидите мои попытки портировать MemTest86+ v5.1 на RISC-V и промежуточный итог. Спойлер: оно шевелится!

    Читать дальше → Read more »