Как стать автором
Обновить
78
0
Sayan Malakshinov @xtender

Oracle ACE, performance tuning and troubleshooting

Отправить сообщение

Использование uprobe/uretprobe в bpftrace-скриптах вместо USDT probe

Уровень сложностиСложный
Время на прочтение3 мин
Количество просмотров361

В этой статье я приведу демонстрацию использования BPF uprobe/uretprobe для исследования внутреннего мира Postgres вместо usdt-проб.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Псс, парень… индекс нужен?

Время на прочтение8 мин
Количество просмотров20K

Самый больной вопрос для любого разработчика, которому приходится вычитывать данные из базы: "Как сделать мой запрос быстрее?". Классический ответ - необходимо создать подходящий индекс. Но куда именно его стоит "накатывать", да и как вообще он должен выглядеть?..

Мы научили наш сервис визуализации планов PostgreSQL отвечать на эти вопросы, и под катом расскажем, чем именно он руководствуется в своих рекомендациях.

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии24

Родинки — это плохо? Разбираемся с эстетикой и раком кожи (не всё так страшно)

Время на прочтение12 мин
Количество просмотров59K
Родинки уже который год ставят рекорды по мифам и страшилкам. Одно только клиническое исследование «Даже однократное посещение солярия повышает риск развития рака кожи в два раза!» чего стоит! Пруф.

Но бояться их не надо. Их надо отслеживать. Я лучше расскажу, что из себя представляют родинки, как самостоятельно отслеживать, всё ли с ними хорошо. Ну и про ультрафиолет тоже расскажу.


Стадии развития меланомы

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

Ниже будут примеры того, чего бояться не надо, а что, вовремя замеченное, спасёт вас от очень неприятных последствий.
Читать дальше →
Всего голосов 126: ↑123 и ↓3+120
Комментарии68

Как работает оптимизатор PostgreSQL при большом количестве таблиц в запросе

Время на прочтение9 мин
Количество просмотров19K
SQL — это декларативный язык программирования, используемый для создания и манипулирования объектами в реляционных СУБД. Этот язык описывает что должно быть получено, но не описывает как это получить. Программист пишет запрос и (чаще всего) хочет получить результат от СУБД максимально быстро.

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

Поэтому оптимизатор — это ключевая часть СУБД, один из самых сложных элементов всей системы.

Для демонстрации работы оптимизатора практически во всех наших (и чужих) примерах на эту тему используются довольно скромные параметры: две-три таблицы, пара JOIN-ов, миллисекунды на выполнение запросов. А что будет, если загрузить оптимизатор десятками таблиц за раз? Как разные конфигурационные параметры влияют на производительность запросов с сотней JOIN-ов? И переживет ли это среднестатистический рабочий ноутбук? Ответы на эти вопросы — со схемами и графиками — вы найдете под катом!
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии4

Упрощаем мониторинг и управление контейнерами Docker при помощи инструментов CLI

Время на прочтение6 мин
Количество просмотров11K

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

В этой статье мы сосредоточимся на некоторых простых и эффективных инструментах CLI, которые помогут вам контролировать и управлять контейнерами Docker.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии0

Новая Зеландия открывает границы

Время на прочтение4 мин
Количество просмотров15K

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

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

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

И примерно с июля 2022 смогут заехать обладатели рабочих виз.

Естественно все ниже не может являться советом по иммиграции, потому что по закону это могут делать только лицензированные агенты (кстати, есть русскоговорящие).

Читать далее
Всего голосов 25: ↑18 и ↓7+11
Комментарии34

Разработка игры на Unity с нуля до релиза

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров16K

Приветствую, Хабр! 👋

«Разработка игры с нуля до релиза» - это серии статей, где я покажу, как создать свою игру с самого нуля до публикации в Google Play и Itch.io на GNU\Linux 🐧

Читать далее
Всего голосов 15: ↑12 и ↓3+9
Комментарии8

Профилирование с точностью до ассемблерных инструкций

Время на прочтение12 мин
Количество просмотров3.2K

Работая над темой низкоуровневого профилирования, я обнаружил отсутствие подробного руководства по настройке окружения и сбору материала. Всё пришлось делать самому путём проб и ошибок. Итогом стала эта статья, в которой я по шагам описал профилирование кода, горячее место в котором не в силах обнаружить не только какой-нибудь VisualVM, но и титаны вроде async-profiler-а. В качестве примера использован код из ранее упоминавшейся статьи The volatile read surprise.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Рецепты для хворающих SQL-запросов

Время на прочтение7 мин
Количество просмотров51K
Несколько месяцев назад мы анонсировали explain.tensor.ru — публичный сервис для разбора и визуализации планов запросов к PostgreSQL.

За прошедшее время вы уже воспользовались им более 6000 раз, но одна из удобных функций могла остаться незамеченной — это структурные подсказки, которые выглядят примерно так:



Прислушивайтесь к ним, и ваши запросы «станут гладкими и шелковистыми». :)

А если серьезно, то многие ситуации, которые делают запрос медленным и «прожорливым» по ресурсам, типичны и могут быть распознаны по структуре и данным плана.

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



Давайте чуть подробнее рассмотрим эти кейсы — как они определяются и к каким рекомендациям приводят.
Всего голосов 23: ↑23 и ↓0+23
Комментарии28

Qualcomm QCC3020 — расцвет китайских TWS-наушников

Время на прочтение3 мин
Количество просмотров28K
Заголовок с беспроводными TWS-наушниками и результатами поиска Google по запросу QCC3020

Если вы погуглите QCC3020, то результаты поиска вывалят гору обзоров наушников — от визуальных подражателей AirPods до псевдо-винтажных моделей для ценителей. Edifier, Tronsmart, Mifo, Pamu… их всех объединяет небольшая ценность родного бренда и китайское происхождение. Давайте разберёмся, что это за чип, и почему производители недорогих TWS-наушников используют QCC3020 и почему так им гордятся.
Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии28

Ломаем игру на память: целый детектив

Время на прочтение13 мин
Количество просмотров22K


Эта игра не давала нам покоя несколько месяцев. Правила очень простые: надо выкладывать карточки с картинками и придумывать сказку. Потом вспомнить её.

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

Три месяца. Три долбанных месяца прошло, прежде чем мы почти научились выигрывать. По пути нам пришлось поднять переводы «Войны и мира» и вообще узнать много нового о длине слов в разных языках. Заодно дошли до психолингвистов. И решили для себя давний вопрос про длину сообщения в русском и английском.

Спойлер: русский язык в среднем (на длинных фразах) не длиннее английского. И вообще все языки примерно одинаковы по скорости передачи информации — по крайней мере, так нам сказали в РАН. Но сразу сказали, что цитировать их нельзя, потому что исследования нет, и где-то рядом ходит РЕН-ТВ. Тут очень кстати пришёлся релиз английской версии Хабра с переводами — так мы быстро нашли базу эквивалентов.

Но давайте с самого начала.
Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии40

Указатели в Python: в чём суть?

Время на прочтение15 мин
Количество просмотров148K

Если вы когда-нибудь работали с такими низкоуровневыми языками, как С или С++, то наверняка слышали про указатели. Они позволяют сильно повышать эффективность разных кусков кода. Но также они могут запутывать новичков — и даже опытных разработчиков — и приводить к багам управления памятью. А есть ли указатели в Python, можно их как-то эмулировать?

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

Благодаря этой статье вы лучше поймёте модель объектов в Python и узнаете, почему в этом языке на самом деле не существуют указатели. На случай, если вам понадобится сымитировать поведение указателей, вы научитесь эмулировать их без сопутствующего кошмара управления памятью.
Читать дальше →
Всего голосов 75: ↑70 и ↓5+65
Комментарии28

Годные туториалы на YouTube

Время на прочтение3 мин
Количество просмотров56K
На YouTube много бесплатных обучающих и курсов и туториалов.

image

Я веду freeCodeCamp, YouTube канал без рекламы. У нас есть полные видеокурсы и учебные пособия по многим популярным языкам программирования и фреймворкам (включая JavaScript, Python, Java, Ruby, C, C ++, Angular и не только).

Есть и другие YouTube каналы с бесплатными уроками по программированию, которые ничуть не хуже, а иногда даже лучше, чем платные.

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

Бывает полезно посмотреть одну и ту же тему у разных преподов, так можно глубже разобраться в вопросе.

Есть много отличных каналов, для которых у меня не хватило места в этом списке. Поделитесь своими находками в комментах.
Всего голосов 49: ↑41 и ↓8+33
Комментарии19

Безопасный SOCKS5 прокси для Telegram за 1 Евро и 10 минут

Время на прочтение3 мин
Количество просмотров133K
Не все прокси одинаково полезны. На волне новостей о блокировке мессенджера Телеграмм стало актуально поднимать свой SOCKS5 прокси, так как чужой использовать не безопасно — неизвестно, кому принадлежат серверы, какое ПО на них используется, и какие в нем присутствуют уязвимости. Кроме того, публичные прокси часто очень медленные, поскольку большое число клиентов одновременно «пытаются» его использовать, перегружая ресурсы сервера. Под катом инструкция по быстрой настройке приватного SOCKS5 прокси с аутентификацией за 1 евро и 10 минут времени и возможностью в дальнейшем расширить защиту сервера при помощи усиленной аутентификации.
Читать дальше →
Всего голосов 71: ↑45 и ↓26+19
Комментарии142

Деловая переписка на английском языке: фразы и советы

Время на прочтение18 мин
Количество просмотров600K
Елена Соловьева, менеджер проектов в компании Лаборатория Касперского, специально для блога Нетологии поделилась советами о том, как вести деловую переписку с иностранными коллегами и партнерами на английском языке. Статья участвует в конкурсе.

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

Задача становится сложнее, если вы общаетесь на неродном английском языке с представителями других культур. В статье я поделюсь, на что в этом случае обратить внимание, как избежать ошибок и достичь взаимопонимания с иностранными коллегами и партнерами.
Читать дальше →
Всего голосов 104: ↑100 и ↓4+96
Комментарии80

За пять дней я прошел собеседования в пяти компаниях Силиконовой долины и получил пять предложений о работе

Время на прочтение12 мин
Количество просмотров118K
За пять дней, с 24 по 28 июля 2017 года, я прошел собеседования в LinkedIn, Salesforce Einstein, Google, Airbnb и Facebook; все пять компаний предложили мне работу. Это был замечательный опыт и я понимаю, как мне повезло, что мои усилия оправдали себя, поэтому решил написать об этом. Здесь я расскажу о том, как готовился к собеседованиям, как они проходили и какое впечатление произвели на меня компании.



Как все началось


Я отработал в Groupon почти три года. Это моя первая работа, там были и прекрасные люди, и отличные проекты. Мы делали всякие интересные штуки, вводили перемены внутри компании, публиковали материалы и все в таком духе. Но со временем я стал ощущать, что темп моего самообразования стал затухать (попросту говоря, замедляться), мне не хватало пищи для ума. К тому же, как и всякого разработчика ПО из Чикаго, меня тянуло в Область залива Сан-Франциско — ведь там столько известных компаний.

Жизнь коротка, а профессиональная жизнь еще короче. Обговорив все с женой и заручившись ее полной поддержкой, я решил сделать решительный шаг и в первый раз в жизни поменять работу.
Читать дальше →
Всего голосов 95: ↑88 и ↓7+81
Комментарии98

Как собеседовать инженеров-программистов

Время на прочтение18 мин
Количество просмотров35K
Мы в компании Triplebyte проводим много собеседований. В реальности за последние два года я собеседовал более 900 инженеров. Насколько это эффективное использование моего времени — здесь можно спорить (иногда я просыпаюсь в холодном поту и сомневаюсь в этом). Но независимо от моих ощущений, главное, что мы стараемся улучшить процедуру собеседований. Для этого мы проводим собеседования без просмотра резюме (background-blind inrterview), определяем навыки программирования, а не оцениваем заслуги и рекомендации. После того, как инженеры прошли наше собеседование, они направляются для финального интервью напрямую в компании, с которыми мы работаем (включая Apple, Facebook, Dropbox и Stripe). Мы собеседуем инженеров, ничего не зная об их биографии, а затем смотрим, как они проявляют себя в разных крупнейших IT-компаниях. На мой взгляд, это самая лучшая проверка эффективности интервью.

В этой статье я собираюсь показать, что нам удалось понять к настоящему моменту. Технические собеседования во многом неправильно организованы. Это легко сказать, и во многих статьях об этом говорится. Сложнее исправить эти недостатки. Моя задача в этой статье — справиться с этой задачей и изложить конкретные советы для найма менеджеров и технических директоров. Собеседование — сложная вещь. Но я думаю, что многие проблемы можно решить, если тщательно продумать процесс. Здесь я пишу об оценке технических навыков. В будущих статьях мы поговорим о культурном соответствии, поведенческих интервью и оценке нетехнических качеств.
Читать дальше →
Всего голосов 42: ↑37 и ↓5+32
Комментарии44

Как сделать число 100 из любого другого шестизначного числа

Время на прочтение4 мин
Количество просмотров36K
Пару недель назад, в поисках ответа на задачу, абсолютно не связанную с описываемой здесь, я волею поисковых систем наткнулся на следующий пост: Как сделать из 123456789 число 100 или 0.

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

Предыстория


Давным давно, когда у людей не было смартфонов, в поездках на общественном транспорте каждый развлекал себя как умеет. Одним из таких способов не заскучать была занимательная игра, которая помогала не только скоротать поездку на автобусе, но и немного «расшевелить мозги». Звучит она так.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии33

Как сделать девушке предложение при помощи социальной инженерии

Время на прочтение4 мин
Количество просмотров23K
Многие до сих пор считают, что если ты разработчик, то коротаешь одинокие и унылые вечера на работе, с очередным проектом, а вовсе не с красоткой в киношке. На самом деле работа в сфере IT — не помеха личной жизни, а совсем наоборот. В преддверии Дня Всех Влюбленных iOS разработчик Or Ron рассказал, как покорил сердце своей невесты силами UX.


«Начало этой истории положила моя неуёмная страсть к сайд-проектам и сложным задачкам. Как разработчик софта, я постоянно нахожусь в поиске классных проектов, которые мог бы взять в работу. Когда я решился сделать предложение своей девушке, то сразу понял: нужно использовать эту страсть, чтобы придумать идеальный персонализированный сценарий.
Читать дальше →
Всего голосов 69: ↑55 и ↓14+41
Комментарии26

YT: зачем Яндексу своя MapReduce-система и как она устроена

Время на прочтение14 мин
Количество просмотров83K
В течение последних шести лет в Яндексе идет работа над системой под кодовым называнием YT (по-русски мы называем её «Ыть»). Это основная платформа для хранения и обработки больших объемов данных — мы уже о ней рассказывали на YaC 2013. С тех пор она продолжала развиваться. Сегодня я расскажу о том, с чего началась разработка YT, что нового в ней появилось и что ещё мы планируем сделать в ближайшее время.



Кстати, 15 октября в офисе Яндекса мы расскажем не только о YT, но и о других наших инфраструктурных технологиях: Media Storage, Yandex Query Language и ClickHouse. На встрече мы раскроем тайну — расскажем, сколько же в Яндексе MapReduce-систем.

Какую задачу мы решаем?


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

Читать дальше →
Всего голосов 108: ↑106 и ↓2+104
Комментарии45
1
23 ...

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность