Pull to refresh
15
0
Андрей Тушев @tushev

User

Send message

Введение в GitLab CI

Reading time6 min
Views249K

Публикую перевод моей статьи из блога ГитЛаба про то как начать использовать CI. Остальные переводы гитлабовских постов можно найти в блоге компании Softmart.




Представим на секунду, что вы не знаете ничего о концепции непрерывной интеграции (Continuous Integration — CI) и для чего она нужна. Или вы всё это забыли. В любом случае, начнем с основ.


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


Hello wolrd


Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments21

Скотч, кабель, Интернет: умный съемный дом

Level of difficultyEasy
Reading time9 min
Views19K

Я люблю автоматизацию, гаджеты и IoT

Поэтому, места где я живу, рано или поздно становятся автоматизированными и обвешанными интернетом вещей

Да чего там, у меня даже бойлер по расписанию работает!

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

Автоматизируй это
Total votes 55: ↑51 and ↓4+59
Comments64

PostgreSQL 16. Изоляция транзакций. Часть 2

Level of difficultyMedium
Reading time13 min
Views13K

Данная статья является продолжением первой части: "PostgreSQL 16. Организация данных. Часть 1".

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

Читать далее
Total votes 19: ↑19 and ↓0+21
Comments15

Как пройти собеседование на backend в топовую IT-компанию

Level of difficultyEasy
Reading time14 min
Views6.7K

Поделюсь личным опытом прохождения собеседований в ведущие российский IT-компании на backend Go и PHP разработчика. Надеюсь статья поможет соискателям лучше подготовиться к собеседованию и найти работу в компании мечты. 

Статья, в первую очередь, написана для тех, кто еще не устраивался в крупные IT-компании. 

Читать далее
Total votes 20: ↑11 and ↓9+3
Comments16

Представляем планировщик Go: Вы никогда не смотрели на горутины с этой стороны

Level of difficultyMedium
Reading time7 min
Views14K

Вероятно, вы слышали о планировщике Go раньше, но насколько хорошо мы знает о том как он работает? Как он связывает горутины с потоками?

Разберем по очереди операции, которые выполняет планировщик.

Читать далее
Total votes 30: ↑27 and ↓3+30
Comments1

Как устроена страничная организация памяти x86_64

Level of difficultyEasy
Reading time15 min
Views11K

В этом посте я буду говорить о страничной организации только в контексте PML4 (Page Map Level 4), потому что на данный момент это доминирующая схема страничной организации x86_64 и, вероятно, останется таковой какое-то время.

Окружение

Это необязательно, но я рекомендую подготовить систему для отладки ядра Linux с QEMU + gdb. Если вы никогда этого не делали, то попробуйте такой репозиторий: easylkb (сам я им никогда не пользовался, но слышал о нём много хорошего), а если не хотите настраивать окружение самостоятельно, то подойдёт режим практики в любом из заданий по Kernel Security на pwn.college (вам нужно знать команды vm connect и vm debug).

Я рекомендую вам так поступить, потому что считаю, что самостоятельное выполнение команд вместе со мной и возможность просмотра страниц (page walk) на основании увиденного в gdb — хорошая проверка понимания.

Читать далее
Total votes 53: ↑53 and ↓0+53
Comments0

Сказ о том, как я за год решил более 600 leetcode задач

Level of difficultyEasy
Reading time7 min
Views98K

Всем салют!

Хочу рассказать вам историю о том, как я начинал с уровня — «не могу решить даже 1 easy задачу из 10» до уровня — «могу решить каждую вторую medium задачу» и прошел несколько coding сессий в таких компаниях как Meta, Booking, Careem, Avito...

Читать далее
Total votes 121: ↑112 and ↓9+129
Comments407

Как Чинить Программные Ошибки?

Level of difficultyEasy
Reading time6 min
Views4.2K

В программировании микроконтроллеров регулярно приходится занимаются починкой bug(ов).

При этом все bug(и) уникальные. Поиск причины каждой конкретной осечки это скорее искусство. Починка программ сродни работы детектива.

Есть ли универсальные приемы того как искать причину программных ошибок?

Считаю, что да. Подробности в тексте...

Читать далее
Total votes 11: ↑5 and ↓6+2
Comments40

Stable Diffusion. Курс молодого бойца

Level of difficultyMedium
Reading time22 min
Views94K

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

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

Так же в конце будет изложен mindset, который необходимо иметь чтобы научиться пользоваться SD. Я буквально попытаюсь научить вас думать как AI художник.

Поэтому без лишних слов, начинаем.

Поехали!
Total votes 60: ↑58 and ↓2+70
Comments24

Немного об ATARI XL/XE: 6502, графика, код

Level of difficultyEasy
Reading time26 min
Views4K

Статья является введением, которое знакомит с компьютерами семейства ATARI XL/XE. На примерах, на встроенном языке ATARI BASIC с щепоткой ассемблера, показаны некоторые особенности графики для этой платформы. Читатель легко сможет повторить примеры на собственном ПК используя эмулятор Altirra. Подготовка статьи велась несколько месяцев и пережила несколько редакций и я решил приурочить её к появлению нового продукта под брендом ATARI - приставки 2600+.

Далее...
Total votes 17: ↑16 and ↓1+24
Comments31

Проксируем OpenVPN с помощью Cloak

Level of difficultyEasy
Reading time9 min
Views71K

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

Руководство будет включать:

1. Предисловие

2. Описание работы Cloak

3. Настройку сервера Cloak

4. Настройку клиента Cloak на OpenWRT

5. Настройку клиента OpenVPN

Читать далее
Total votes 34: ↑34 and ↓0+34
Comments59

Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все

Reading time20 min
Views378K

Три месяца назад здесь на Хабре была опубликована статья “Интернет-цензура и обход блокировок: не время расслабляться”, в которой простыми примерами показывалось, что практически все популярные у нас для обхода блокировок VPN- и прокси-протоколы, такие как Wireguard, L2TP/IPSec, и даже SoftEther VPN, SSTP и туннель-через-SSH, могут быть довольно легко детектированы цензорами и заблокированы при должном желании. На фоне слухов о том, что Роскомнадзор активно обменивается опытом блокировок с коллегами из Китая и блокировках популярных VPN-сервисов, у многих людей стали возникать вопросы, что же делать и какие технологии использовать для получения надежного нефильтрованного доступа в глобальный интернет.

Мировым лидером в области интернет-цензуры является Китай, поэтому имеет смысл обратить на технологии, которые разработали энтузиасты из Китая и других стран для борьбы с GFW (“великим китайским файрволом”). Правда, для неподготовленного пользователя это может оказаться нетривиальной задачей: существует огромное количество программ и протоколов с похожими названиями и с разными не всегда совместимыми между собой версиями, огромное количество опций, плагинов, серверов и клиентов для них, хоть какая-то нормальная документация существует нередко только на китайском языке, на английском - куцая и устаревшая, а на русском ее нет вообще.

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

Читать далее
Total votes 126: ↑124 and ↓2+153
Comments136

Как открыть портал наружу: самый полный гайд по VPN

Level of difficultyEasy
Reading time19 min
Views66K

Выбор, установка и настройка VPN. Какие VPN заблокированы на территории РФ. Рабочие VPN в России в 2023 году с оплатой криптой. Как ускорить VPN. Как узнать, работает ли шифрование трафика

Читать далее
Total votes 22: ↑16 and ↓6+13
Comments32

10 интересных научно-фантастических книг 2023 года

Reading time9 min
Views94K

К 1 сентября мы подготовили подборку из 10 НФ произведений, вышедших или планирующихся к выходу в этом году в России и которые, как нам кажется, будут интересны любителям жанра. Ведь не только же перечитывать старых добрых Брэдбери, Херберта, Стругацких или Лукьяненко? (спойлер — он тоже есть в подборке).

Сразу оговоримся — никакие рейтинги присваиваться не будут.  
1. В подборке представлены не только зарубежные, но и отечественные авторы, некоторые из них пока мало кому известны.
2. Некоторые книги могли быть написаны раньше, но в список они попали, потому что были изданы в 2023 году на русском языке (!) — это очень важный критерий. 
3. В подборку вошли только научно-фантастические книги — про классное фэнтези сделаем отдельную статью, если вам понравится формат.
4. Мы не одобряем пиратства, за исключением самиздата, если автор сам распространяет книгу бесплатно. Поэтому приводим ссылки на фрагменты книг для ознакомления, чтобы вы могли решить, нравится ли стиль автора и завязка сюжета.

Читать далее
Total votes 27: ↑24 and ↓3+27
Comments17

Что для меня значит быть программистом

Reading time13 min
Views49K

Как-то мне написали с Хабра и сказали: Саня, хочешь написать статью про программистов?

Разумеется, я отнёсся к этому скептически. Ладно там девопсины или вайтхэты какие - почитать про них было бы интересно, но вот жизнь программиста... Я сразу вспомнил эти мемы как на КДПВ, которые на самом деле не мемы, а правда.

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

Чтобы получать 300кк/c, нужно всего лишь..
Total votes 158: ↑143 and ↓15+149
Comments71

Причины «имитации работы» в Big Tech

Level of difficultyEasy
Reading time11 min
Views19K

Когда Грэма приняли в Amazon, ему казалось, что это работа его мечты. Его привлекли как учёного-исследователя в помощь для разработки функций голосового помощника Alexa. Грэм (имя изменено) предполагал, что вскоре начнёт использовать свой опыт машинного обучения для создания новых потрясающих функций, делающих Alexa более индивидуальной для каждого пользователя. Но спустя четыре месяца после найма стало очевидно: Amazon понятия не имеет, что с ним делать.

Следующие два года он провёл в броуновском движении — менял команды, наблюдал за тем, как руководителей проектов повышали, несмотря на то, что, по его мнению, они не создавали ничего существенного, и в целом занимался бегом в своём колесе. Грэму платили больше $300 тысяч в год, но результатов его работы практически не существовало. Оказавшись в тупике, он постепенно потерял интерес к своей работе и попал под проверку рабочих показателей Amazon.

Столкнувшись с угрозой увольнения, Грэг, наконец, пришёл в проект по применению машинного обучения для улучшения рекомендаций музыки Amazon, который, по его мнению стал «первой по-настоящему интересной задачей, над которой мне довелось работать». Он был счастлив ощущать себя ценным членом команды, но его менеджер сообщил ему нечто поразительное: готовый проект, над которым Грэм работал больше месяца, никогда не будет выпущен. Ему сказали, что это было просто занятие, чтобы соответствовать условиям его плана контроля производительности и продления срока его найма. Вскоре после этого Грэм уволился из Amazon.
Читать дальше →
Total votes 49: ↑46 and ↓3+60
Comments48

PostgreSQL под капотом. Часть 6. Сложный SELECT запрос

Level of difficultyMedium
Reading time57 min
Views6.6K

Продолжим погружение в код PostgreSQL. Сейчас посмотрим, что происходит, когда вы хотите выполнить запрос сложнее, чем в прошлый раз: добавим WHERE, GROUP BY, HAVING, ORDER BY, LIMIT.

Плюс:

Системный кэш

Сходство обращения к столбцам и вызовов функций

Предсказание количества возвращаемых кортежей

Работа с простыми типами

Маркировка столбцов при использовании FOR UPDATE

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments2

30 фильмов про IT и киберпанк, которые можно пересмотреть на новогодних праздниках

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

Читать дальше →
Total votes 49: ↑32 and ↓17+28
Comments99

Вы в Самом Деле Хотите Стать Программистом Микроконтроллеров?

Level of difficultyEasy
Reading time63 min
Views75K

В этом тексте я напишу о буднях программиста МК в РФ.

Что вообще пишут программисты МК и на чем?

Основной язык программирования это С. Языку С уже более 50лет. Кроме микроконтроллеров С уже практические никому не нужен. Навыки программирования на С очень слабо конвертируются. В свое время, видимо на С написали компилятор для С++ и нужда в С для desktop как таковая отпала. A сам С остался для сборки артефактов для микроконтроллеров с экстремально малыми ресурсами. Хотя и сейчас большинство компаний в ЕС уже микроконтроллерные сборки собирают на С++ 17. 

Иногда программистам MК приходится обсчитывать аналоговые цепи и вычислять какие-то сложные 8-этажные формулы и строить графики. Для этого практикуют бесплатный интерпретатор Python.

Главным образом программисты МК составляют Board Support Package, пишут драйверы для новых умных периферийных чипов, пишут загрузчики, портируют RTOS(ы) на разные процессорные ядра, пишут код-генераторы, скрипты сборки, составляют модульные тесты, изредка производят рефакторинг, часто чинят ошибки в Legacy коде, изредка что-то изменяют в коде Assembler(а), который запускается до вызова функции main().

Иногда программист МК даже ничего не пишет сам вообще. Важно уже не сколько уметь программировать сколько уметь тестировать и собирать, улучшать из готового кода из интернета. Какие-то исходники можно взять из github или ядра Linux. Там есть код на многие темы. Драйверы для множества чипов.  Важно уметь верифицировать найденные сорцы и аккуратно подключить их к нужной сборке.

Читать далее
Total votes 135: ↑110 and ↓25+122
Comments409

[Личный опыт] Разработчик на ремоуте: как искать работу на биржах, и кому это подойдёт?

Reading time12 min
Views10K
Поработать с зарубежными заказчиками хочется, а переезжать в другую страну и сталкиваться со всеми трудностями релокейта — нет. Что делать? Вариант — искать проекты на удалёнке из той страны, где вы живёте. На прошлый вебинар мы пригласили Дмитрия Рязанцева, ведущего Android-разработчика: последние пять лет он путешествует и работает в режиме ремоут, например, с Emirates и Crowdservice. Расспросили его про поиск проектов на бирже Toptal, плюсы, минусы и подводные камни удалённой работы. Ответы Дмитрия на вопросы — в сегодняшней статье.


Читать дальше →
Total votes 20: ↑13 and ↓7+15
Comments49

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity