Как стать автором
Обновить
2
0
Марат @Xakki

Пользователь

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

Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами

Уровень сложностиСредний
Время на прочтение54 мин
Количество просмотров77K

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

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

Все примеры изначально писались для СУБД SQLite, но почти всё из этого применимо также и к другим СУБД.

Здесь есть и примеры довольно сложных запросов с агрегирующими функциями, триггерами, длинными подзапросами, с оконными функциями. Помимо этого, часть примеров посвящена работе с SQL в Python, используя sqlite3, pandas, polars. Этот список запросов с комментариями можно использовать как наглядное пособие для изучения SQL.

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

Как я устроился в Амазон и перестал переживать за свой английский

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

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

Меня зовут Андрей Столбовский, последние 5 лет я работал в Яндексе, а в прошлом году перешёл в Амазон и теперь работаю Software Development Manager в AWS Redshift – это мой первый полноценный опыт работы в международной компании. 

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

Итак, поехали. 

Поехали!
Всего голосов 282: ↑279 и ↓3+276
Комментарии160

Опыт масштабирования Kubernetes на 2k узлов и на 400k подов

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

Расскажу, как мы в PayPal начинали осваивать Kubernetes. На тот момент большинство наших рабочих нагрузок выполнялось на Apache Mesos, и в рамках этой миграции нам требовалось разобраться с некоторыми аспектами производительности у кластеров, в которых будет работать Kubernetes – с учётом той плоскости управления, что действует в PayPal. Из всех этих аспектов важнее всего было понять, как именно масштабируется платформа, а также выявить, как можно было бы улучшить масштабируемость, настраивая параметры кластера.

Тогда как Apache Mesos может прямо из коробки масштабироваться вплоть до 10 000 узлов, масштабировать Kubernetes непросто. При масштабировании Kubernetes требуется учитывать не только количество узлов и подов, но и ещё некоторые вещи, в частности: сколько ресурсов создано, сколько у нас контейнеров на под, сколько всего сервисов задействовано, а также пропускная способность при развёртывании подов. В этом посте описаны некоторые проблемы, с которыми нам довелось столкнуться при масштабировании, и рассказано, как нам удалось с ними справиться.
Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии10

Вёрстка — это не тупо

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

Небольшая сводка ошибок которые встречались во Frontende и Вёрстке за время работы с разными проектами. Конечно это очень малая часть и только те ошибки которые постоянно повторяются. Но всё же давайте пробежимся хотя бы по ним.
Мб кому-то этого и не хватало))

Читать далее
Всего голосов 14: ↑12 и ↓2+10
Комментарии23

Восстановление данных с M.2 NVMe SSD. Скрипт ddrescue-loop v0.2

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

Речь пойдет о способе извлечения данных с неисправного SSD для случаев когда после попытки чтения любого сбойного сектора - SSD совсем перестает отдавать данные и помогает только отключение включение питания.

Представляю доработанную версию скрипта ddrescue-loop с поддержкой управления USB реле и uhubctl.

Для прерывания питания SSD задействовал простое и дешевое решение USB Relay Module LCUS-1 CH340 которые доступны на Aliexpress. И подключение через док станцию AgeStar 31CBNV1C на основе USB-NVMe моста JMicron JMS583.

Рассмотрим процесс восстановления на примере случая с неисправными M.2 NVMe SSD производства Kimtigo на контроллере Maxio MAP1202.

Погнали!
Всего голосов 42: ↑42 и ↓0+42
Комментарии11

Советы начинающим тимлидам: как работать с командой, выбраться из ловушки токсичного специалиста и не сойти с ума

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

Привет, Хабр! Меня зовут Никита Пимошенко, я тимлид команды Billing API в Quadcode. Сегодня поделюсь советами и кейсами из практики, которые пригодятся начинающим тимлидам.

Читать далее
Всего голосов 26: ↑21 и ↓5+16
Комментарии23

Самая дешевая заводская панель управления умным домом, которая отлично работает

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

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

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

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

Выбор пал на NSPanel из‑за цены около 3,5 тысяч рублей, а также возможности установки в подрозетник или покупки настольной подставки — как у меня на фото.

Панель в подрозетник или на стол
Всего голосов 106: ↑103 и ↓3+100
Комментарии126

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров8.8K

Многие разработчики думают, что доступность реализуется только с помощью aria-атрибутов. Если их не добавить, то всё, доступности нет. Конечно, aria-атрибуты нужны, но HTML и CSS такая же важная часть процесса создания доступных интерфейсов. Эти технологии непросто несут в себе кучу скрытых моментов, влияющих на доступность. Они напрямую позволяют её улучшить. В статье хочу показать это.


Я затрону не все аспекты. Их очень много, поэтому поговорю о: интерактивных элементах, доступности текста, анимации и изображениях. В статье буду использовать опыт моего незрячего знакомого (привет, Илья). Он внёс бесценный вклад. Уверен, что вам будет интересно. Поехали!

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

Протоколы семейства TCP/IP. Теория и практика

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров98K
image

В сети можно найти огромное количество материала о том, как функционируют сети на базе стека протоколов TCP/IP, а также как писать компьютерные программы с сетевыми возможностями. При рассмотрении компьютерных сетей часто углубляются в описание физических основ и структур данных, передаваемых по сети, а при рассмотрении сетевого программирования основное внимание уделяют интернет-сокетам.

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

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

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

В статье изложены наиболее важные с моей точки зрения понятия, которые должен знать любой программист, хоть как-то сталкивающийся с компьютерными сетями. Так что без теоретических сведений не обошлось.
Читать дальше →
Всего голосов 82: ↑82 и ↓0+82
Комментарии5

Первый стабильный выпуск низкоуровневого корректора раскладок в linux «xswitcher»

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

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

В общем, ура! "Мы строили-строили и наконец построили". И оно даже работает/переключает. Причём, и в gnome3 тоже (не без помощи костыля).

Но, обо всём — по порядку.
Всего голосов 26: ↑25 и ↓1+24
Комментарии13

Как генерируются UUID

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

Вы наверняка уже использовали в своих проектах UUID и полагали, что они уникальны. Давайте рассмотрим основные аспекты реализации и разберёмся, почему UUID практически уникальны, поскольку существует мизерная возможность возникновения одинаковых значений.

Современную реализацию UUID можно проследить до RFC 4122, в котором описано пять разных подходов к генерированию этих идентификаторов. Мы рассмотрим каждый из них и пройдёмся по реализации версии 1 и версии 4.
Читать дальше →
Всего голосов 70: ↑69 и ↓1+68
Комментарии40

Организация кода в Laravel. Личный опыт

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров18K

Hola Amigos! На связи Евгений Шмулевский, PHP-разработчик в Amiga. Начал заниматься программированием с 2001 года, привет Basic и Express/Turbo Pascal. Веб-разработкой — с 2011 года, а профессионально в вебе с 2013 года. Работал продолжительное время с Битрикс, а с 2018 начал осваивать Laravel. 

Читать далее
Всего голосов 23: ↑21 и ↓2+19
Комментарии29

Что бесит рекрутеров и соискателей на интервью. Собрала топ-5 триггеров

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

Привет! Меня зовут Ира Калаева, я IT-рекрутер в AGIMA. Моя задача — пополнять команду классными специалистами и делать пребывание сотрудников в компании комфортным. В этой статье хочу рассказать вам о триггерах (или раздражителях), которые случаются в ходе собеседования между соискателем и HR-специалистом. Подготовка к собеседованию и обратная связь после него останутся за скобками нашего разговора, так как тянут на отдельную статью.

Читать далее
Всего голосов 53: ↑43 и ↓10+33
Комментарии211

Библиотека конца света

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

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

Читать далее
Всего голосов 37: ↑27 и ↓10+17
Комментарии68

Вам придётся выбросить все зубы и поставить новые

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров14K
Наверное, одна из вещей, которых подсознательно боится любой человек перед походом к стоматологу, — это объём вмешательства. Приходишь с жалобой на небольшое щёлканье сустава, а стоматолог печально сообщает, что вам будет нужно поменять левые зубы с правыми и вообще тут нужен новый рот. Давайте выкинем все старые и некрасивые и заменим на новые протезы.

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

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

Сегодня буду рассказывать про сложные случаи, когда такое радикальное вмешательство действительно необходимо. И нет, тут не подходит причина «я не хочу больше возиться со стоматологией, с искусственными будет проще». Ключевая причина тут — снижение прикуса из-за потери зубов и стираемости. Если ничего не делать — рассыпятся суставы, начнутся хронические головные боли и начнут страдать мышцы.

image
Рентген до/после тотального протезирования
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии22

Почему от экранов портится зрение у подростков. Гигиена света от синдрома сухого глаза

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров11K

Сейчас до 50% школьников имеют проблемы со зрением. Страсть к Genshin Impact, Pubg, GTA и еще десятку‑другому убивает зрение? Нет, дело не видеоиграх. Несмотря на низкое качество мониторов, поклонники Doom, Quake и Duke Nukem остались к 25–30 годам примерно с тем же зрением, что и остальные их сверстники, которые в игры не играли совсем.

Другие экраны? Экраны стали лучше, намного лучше. Но никакие усилия по улучшайзингу* экранов не привели к решению проблемы зрения. В чем отличие экранов от бумаги? Экраны копируют с помощью собственного излучения отраженный от предметов свет, на этом основная разница заканчивается.

В чем же дело? Дело в освещении. За 20 лет мы плавно перешли от ламп накаливания к люминесцентным, а от них к светодиодам. Примерно с 2015 года светодиоды прочно заняли свое место под потолком и практически вытеснили все иные источники света. В чем их преимущество? Они излучают только видимый свет, ни инфракрасного ни ультрафиолета, потерь электричества на «ненужные» излучения нет. У современных экранов тоже нет излучения в невидимом глазу диапазоне**. Все остальные источники света будь то керосиновая, люминесцентная или лампа накаливания, излучают ультрафиолет и инфракрасный.

А точно ли, что эти излучения совсем не нужны? Именно так заявляет официальная медицина.

Давайте разберемся в том, так ли это на самом деле.

Давайте разберемся
Всего голосов 31: ↑17 и ↓14+3
Комментарии102

Делай нейминг как сеньор

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

Это объект Pizza, там хранится инфа о латте, а заказали его в Restaurant или в Pizzeria? Неудобно? Максимально. Мы читаем код существенно больше, чем пишем. И хочется сразу понимать, что происходит, не играя в квесты «что имел в виду автор», «да как это работает» и «я снова ничего не понял». Без навыка давать хороший нейминг невозможно писать качественный и поддерживаемый код. Про нейминг говорят заодно, в рамках архитектуры и общих инженерных практик. В статье поговорим про него отдельно.

Как получается, что код становится мало понятным даже для его авторов? Почему нейминг так важен? Как придумывать названия, не применяя целые теории нейминга? Как лёгким процессом организовать работу с неймингом в команде? На все эти вопросы мы ответим в статье.

Читать далее
Всего голосов 186: ↑184 и ↓2+182
Комментарии221

Как сформировать IT-отдел и зачем убирать HR

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

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

Поехали...
Всего голосов 13: ↑12 и ↓1+11
Комментарии12

Сравнительный анализ Apache Kafka и RabbitMQ

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров9.1K

Сравнительный анализ Apache Kafka и RabbitMQ

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

Тема будет интересна разработчикам на проектах, где требуется обмен информацией между разными компонентами или системами.

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

Уровни изоляции транзакций с примерами на PostgreSQL

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

Вступление


В стандарте SQL описывается четыре уровня изоляции транзакций — Read uncommited (Чтение незафиксированных данных), Read committed (Чтение зафиксированных данных), Repeatable read (Повторяемое чтение) и Serializable (Сериализуемость). В данной статье будет рассмотрен жизненный цикл четырёх параллельно выполняющихся транзакций с уровнями изоляции Read committed и Serializable.


Для уровня изоляции Read committed допустимы следующие особые условия чтения данных:


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


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


Что же касается Serializable, то данный уровень изоляции самый строгий, и не имеет феноменов чтения данных.

Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии17
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность