Как стать автором
Обновить
8
0
Александр @torf

PHP программист

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

Как стать Frontend-разработчиком бесплатно? Программа обучения с нуля

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

Если вбить слово «фронтенд» в поисковую строку, можно найти огромное количество курсов по данному направлению. Проблема в том, что все курсы являются платными и, как правило, имеют ценник в несколько десятков тысяч рублей. 

Чтобы разбавить засилие платных курсов, мы подготовили для вас программу обучения «Frontend-разработчик с нуля», которая состоит только из бесплатных материалов.

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

Как я обработал один миллиард строк в PHP

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

Вероятно, вы уже слышали о соревновании под названием "The One Billion Row Challenge" (1brc), если же нет, то предлагаю ознакомиться с репозиторием 1brc Гуннара Морлинга.

Моё участие в проекте было мотивировано присутствием в нём двух моих коллег, которые достигли лидирующих позиций.

PHP не известен своими выдающимися скоростными показателями. Тем не менее, учитывая, что я работаю над профайлером PHP, я решил исследовать его производительность на примере этого вызова.

Читать далее
Всего голосов 76: ↑74 и ↓2+72
Комментарии33

Популярные конфигурационные опции для работы с git

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

Привет! Я всегда мечтала, чтобы в инструментах для работы с командной строкой заранее сообщалось, насколько популярны те или иные конфигурационные опции, предусмотренные в них, например:

o    «В принципе, никто этим не пользуется»

o    «Этой опцией пользуется 80% аудитории, стоит ознакомиться»

o    «У этой опции предусмотрено 6 возможных значений, но в реальной практике применяется всего 2 из них».

Так что я решила спросить пользователей Mastodon, какие у них любимые опции конфигурации git:

А какие опции git config вы больше всего любите выставлять? В настоящее время у меня в ~/.gitconfig установлены только git config push.autosetupremote true и git config init.defaultBranch main, вот интересуюсь, а что выставляют другие люди.

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

Далее перечислю их по порядку, при этом (очень примерно) попытаюсь начать с наиболее популярных.

Все описанные опции документированы на странице man git-config, а также на этой странице.

Читать далее
Всего голосов 40: ↑39 и ↓1+38
Комментарии15

JSON in GO

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

Это перевод одноименной статьи.

Базовое использование

Сериализации JSON в Go

В стандартном пакете encoding/json присутствуют механизмы сериализации marshaling и десериализации unmarshaling JSON.

Пример:

Читать далее
Всего голосов 10: ↑6 и ↓4+2
Комментарии19

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

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

Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.

Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.

(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go

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

Разница между веб-сокетами и Socket.IO

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


Доброго времени суток, друзья!

Веб-сокеты и Socket.IO, вероятно, являются двумя наиболее распространенными средствами коммуникации в режиме реального времени (далее — живое общение). Но чем они отличаются?

При построении приложения для живого общения наступает момент, когда необходимо выбрать средство для обмена данными между клиентом и сервером. Веб-сокеты и Socket.IO являются самыми популярными средствами живого общения в современном вебе. Какое из них выбрать? В чем разница между этими технологиями? Давайте выясним.
Читать дальше →
Всего голосов 26: ↑17 и ↓9+8
Комментарии22

Как я проектирую интерфейсы

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

Привет, я Егор Камелев, проектировщик интерфейсов (UX-дизайнер). За последние 20 лет я поработал с командами десятков агентств, IT-отделов, действующих проектов и продуктов, стартапов (и запущенных, и незавершённых). Я знаком с сотней команд, не меньше. И среди них не нашлось и двух, использующих одинаковые подходы к работе. Верно говорят: «У каждого додика — своя методика!».

У всех свои названия должностей, артефактов, процессов. Свои требования и наборы компетенций. Где-то проектированием занимается маркетолог и разработчик (потому что в команде больше никого и нету), а где-то эта задача распределена между десятью разными специалистами (системные- и бизнес-аналитики, технические писатели, UX-дизайнеры, продакт оунеры и так далее).

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

Читать далее
Всего голосов 29: ↑25 и ↓4+21
Комментарии20

Подробно о свойстве float

Время на прочтение4 мин
Количество просмотров212K
Правильное использование CSS свойства float может стать непростой задачей даже для опытного верстальщика. В этой статье собраны варианты применения float, а также некоторые ошибки, с наглядными примерами.

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

REM vs EM – Великий спор

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


Представляю вашему вниманию перевод достаточно большой и объемной статьи по поводу вечного спора, какие же единицы измерения использовать при верстке: em'ы или rem'ы. В каких случаях стоит использовать одни единицы, а в каких другие. Вас ожидает много кода, примеров и их объяснений.

Добро пожаловать в мир типографики и относительных единиц измерения =)
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии38

Как выдавать бесплатные SSL сертификаты с помощью certbot, Nginx и Docker

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

Всем привет! Одна из моих рутинных задач - это подъем новых проектов и микросервисов в облаках. Для этого практически всегда нужны домены и поддомены с наличием SSL сертификата. У меня выработался подход, с помощью которого я автоматизировал процесс выдачи сертификатов с помощью certbot. О чём и хочу рассказать.

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

10 самых распространенных проблем при линтинге Dockerfile'ов

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

Весной 2023 года разработчики Depot добавили в свой сервис возможность проверять Dockerfile'ы при каждой сборке.

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

Читать далее
Всего голосов 36: ↑35 и ↓1+34
Комментарии4

Сравнение популярных брокеров MQTT с открытым исходным кодом

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

MQTT (Message Queue Telemetry Transport) — легковесный протокол обмена сообщениями для публикации/подписки сообщений, на настоящий момент этот протокол является основным стандартом в Интернете Вещей (IoT). Брокер MQTT — главный узел (серверное ПО) для подключения IoT устройств и обмену сообщений между ними. На текущий момент доступно более 20 брокеров MQTT с исходным кодом, что затрудняет выбор архитекторами и разработчиками программного обеспечения. В статье будут рассмотрены и сравнены некоторые из самых популярный MQTT-брокеров.

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

Ручная пила для PHP-монолита

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

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

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

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

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

OpenConnect: недетектируемый VPN, который вам понравится

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

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Всего голосов 325: ↑324 и ↓1+323
Комментарии342

Как был создан потоковый SQL-движок

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

Возможно, вы как раз их тех, кто, просыпаясь каждое утро, задаёт себе три самых вечных жизненных вопроса: 1) как мне сделать потоковый SQL‑движок? 2) Что это такое — потоковый SQL‑движок? 3) Способен ли Господь наш сбрасывать те таблицы, коими владеет иной пользователь?

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

Так вот, где‑то год назад я (довольно смело, если «смелость» — это вообще про меня) снарядился как следует и пустился в долгий и тернистый путь, искать ответы на эти вопросы. Я шёл от монаха к пресвитеру, а от того — к жрецу макаронного монстра, и только в ужасе осознавал, сколь жалкие вопросы их занимают — например, каков смысл жизни, и как обрести мир с самим собой. Но, в конце концов, потерявшись в глубочайших расщелинах моего разума, я набрёл на часовенку, над входом которой значилось: «Epsio Labs». Тут я преисполнился откровения и вошёл в двери этого храма.

Друзья, сегодня я поделюсь с вами теми таинствами, которые познал там (за исключением тех, что подпадают под многочисленные NDA).

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

Разработка высоконагруженного игрового WebSocket сервера на Java, Netty с поддержкой BattleRoyale/Matchmaking

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

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

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

Улучшаем возможности Nginx без затрат на коммерческую подписку (спойлер: с помощью Haproxy)

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

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

Читать далее
Всего голосов 20: ↑18 и ↓2+16
Комментарии33

Какую библиотеку на Python выбрать для создания телеграм-бота?

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

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

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

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

Этот обзор поможет вам сохранить время и ресурсы, а также создать более надежный и эффективный телеграм-бот на Python.

Читать далее
Всего голосов 21: ↑11 и ↓10+1
Комментарии12

Книжный кружок. Рецензия на книгу «Микросервисы от архитектуры до релиза»

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

Всем прив :-)

Дочитал недавно книжку «Микросервисы от архитектуры до релиза» (в оригинале наз: «Microservices Up & Running») Вышла она в конце 2020, недавно ее перевели. В издательстве «Питер» периодически делают щедрые скидосы на книжки, и я решил порадовать себя и накупил кучу). Вообще люблю книги в бумажном виде, особенно фундаментальные книги — те, к которым я еще неоднократно возвращаюсь и из которых черпаю идеи. Более хардовые и с кодом я предпочитаю электронные.

«Microservices Up & Running» написали два чувака: Ронни Митра и Иракли Надареишвили. Оба они не понаслышке поели финтех энтерпрайза и имеют очень богатый опыт, занимаются консалтингом и пишут книги. Ронни — соавтор «Continuous API Management», а также вместе с Иракли участвовал в написании «Microservices Architecture». Ронни занимается консалтингом финтех компаний, а Иракли сейчас Banking Platform Managing Director в JPMorgan Chase & Co, а до этого был вице‑президентом по инновациям в Capital One Financial и возглавлял команды, ответственные за создание современной банковской платформы. В общем, это все можно посмотреть в их профиле в Линкедине. Им явно есть чем поделиться.

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

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

Распределённые транзакции

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

На собеседованиях на позицию middle/senior разработчика часто задают вопросы по распределенным транзакциям в микросервисной архитектуре.

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

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

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

Читать далее
Всего голосов 26: ↑23 и ↓3+20
Комментарии1
1
23 ...

Информация

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