Как стать автором
Обновить
8
0

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

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

Регулярные выражения в SQL

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

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

Представьте, что вам нужно найти иголку в стоге сена, но стог — это ваша БД, а иголка — данные со сложным шаблоном. Деофлтные операторы LIKE и IN тут не помогут — слишком уж они прямолинейны. Но зато здесь отлично зайдут регулярные выражения, которые позволяют выполнять сложные поиски и преобразования строк.

Читать далее
Всего голосов 30: ↑26 и ↓4+27
Комментарии11

Как стать VPN провайдером за один вечер

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

Рассказываю о своём опыте использования Xray (с протоколом VLESS-Reality) - одного из лучших решений для преодоления интернет-цензуры на сегодняшний день. Я потратил много времени на то, чтобы разобраться с ним - теперь вам достаточно одного вечера, чтобы поднять свой сервер на несколько десятков пользователей, c xray на борту!

скрипт ex.sh для простой настройки и установки; есть поддержка Docker

легко добавлять пользователей; клиентские конфиги в форме url-ссылок

правильные конфиги: скрытность + удобство

трафик популярных российских сайтов идёт напрямую, a не через сервер

для xray есть приложения под все популярные ОС - делюсь инструкциями

только https, нет udp; торренты через сервер блокируются по возможности

мой проект на гитхабе: easy-xray

Интересны детали? Добро пожаловать под кат
Всего голосов 59: ↑58 и ↓1+69
Комментарии143

Как мы переезжали с PostgreSQL на Data Lake в AWS и какие грабли собрали по пути

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

За несколько лет Whoosh в несколько раз вырос по числу самокатов, пользователей и локаций, а данных по ним накопилось на 30 терабайт. Прежней архитектуры уже не хватало для работы. К тому же платить за I/O (input/output)-операции на Aurora (PostgreSQL) выходило дорого (тогда еще не было I/O‑optimized версии, однако с ее появлением, актуальность не исчезла). Другое дело — Redshift: расходы постоянны (n$/час), а работает он быстрее, благодаря колоночному формату хранения данных. В этом году мы переехали с одного хранилища на базе PostgreSQL — того, где вся отчётность для бизнеса и модели dbt — на рельсы Data Lake в AWS.

Меня зовут Никита Зеленский, я главный по данным в Whoosh. Эту статью я написал вместе с другими участниками переезда — Пашей Сивохиным, ГИС-аналитиком, и Костей Малыхиным, руководителем группы анализа данных. Надеюсь, наш опыт будет полезен всем, кому предстоит миграция данных, особенно если вы работаете с геоаналитикой.

whoooooosh
Всего голосов 18: ↑18 и ↓0+18
Комментарии8

Профилирование Python — почему и где тормозит ваш код

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

Представьте ситуацию: вы написали скрипт для обработки каких-то данных на ноутбуке, ушли попить кофе, а когда пятнадцать минут спустя вернулись, завершилось едва ли 10%.

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

Ответить на все эти вопросы поможет инструмент под названием «профилировщик» (profiler).
Читать дальше →
Всего голосов 48: ↑47 и ↓1+66
Комментарии10

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля

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

К огромному сожалению, старые смартфоны всё чаще и чаще находят своё пристанище в мусорном баке. К прошлым, надежным «друзьям» действует исключительно потребительское отношение — чуть устарел и сразу выкинули, словно это ненужный мусор. И ведь люди даже не хотят попытаться придумать какое-либо применение гаджетам прошлых лет! Отчасти, это вина корпораций — Google намеренно тормозит и добивает довольно шустрые девайсы. Отчасти — вина программистов, которые преследуют исключительно бизнес-задачи и не думают об оптимизации приложений совсем. В один день я почувствовал себя Тайлером Дёрденом от мира IT и решил бросить вызов проприетарщине: написать свою прошивку для уже существующего смартфона с нуля. А дабы задачка была ещё интереснее, я выбрал очень распространенную и дешевую модель из 2012 года — Fly IQ245 (цена на барахолках — 200-300 рублей). Кроме того, у этого телефона есть сразу несколько внешних шин, к которым можно подключить компьютер или микроконтроллер, что даёт возможность использовать его в качестве ультрадешевого одноплатника для DIY-проектов. Получилось ли у меня реализовать свои хотелки? Читайте в статье!
Читать дальше →
Всего голосов 204: ↑202 и ↓2+246
Комментарии138

Что происходит, когда запускаешь «Hello World» в Linux

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

Сегодня я задумалась о том, что происходит, когда запускаешь в Linux простую программу «Hello World» на Python.

print("hello world")

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

$ python3 hello.py
hello world

Но внутри происходит гораздо больше. Я объясню, что там творится, и, что гораздо важнее, расскажу об инструментах, при помощи которых вы сами сможете исследовать происходящее. Мы воспользуемся readelf, strace, ldd, debugfs, /proc, ltrace, dd и stat. Я не буду рассматривать относящиеся к Python части, только объясню, что происходит при выполнении динамически компонуемых исполняемых файлов.
Читать дальше →
Всего голосов 98: ↑98 и ↓0+98
Комментарии10

Шпаргалка по SQL (postgres), которая выручает меня на собесах

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

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

Я решил посвятить свою первую статью SQL. Вопросы, рассмотренные ниже мне задавали на собеседованиях на позицию python-разработчика. Естественно отвечать правильно получалось не всегда, а если точнее то чаще не правильно, однако проведя N часов в рефлексии я составил перечень ответов, которыми пользуюсь до сих пор.

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

Читать далее
Всего голосов 156: ↑149 и ↓7+177
Комментарии178

Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто

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

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

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

Кроме того, что этот протокол еще более устойчив к выявлению, приятным фактом будет и то, что настройка сервера XTLS-Reality гораздо проще, чем описанные ранее варианты - после предыдущих статей я получил довольно много комментариев типа "А что так сложно, нужен домен, нужны сертификаты, и куча всего" - теперь все будет гораздо проще.

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

Тест: сумеете ли вы стать junior QA в большой компании

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

Собеседоваться в большие IT-компании страшно — вдруг завалят каверзными задачами и съедят? Чтобы развеять страхи, три крупные компании — «Альфа-Банк», «Цифра» и «Лаборатория Касперского» — сделали для Хабра этот тест.  Попробовать себя в роли кандидата на junior QA несложно: выберите любую компанию и посмотрите, какие вопросы в них задают, на что обращают внимание, как оценивают и что считают важным.

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

Регулярные выражения (regexp) — основы

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

Регулярные выражения (их еще называют regexp, или regex) — это механизм для поиска и замены текста. В строке, файле, нескольких файлах... Их используют разработчики в коде приложения, тестировщики в автотестах, да просто при работе в командной строке!

Чем это лучше простого поиска? Тем, что позволяет задать шаблон.

Например, на вход приходит дата рождения в формате ДД.ММ.ГГГГГ. Вам надо передать ее дальше, но уже в формате ГГГГ-ММ-ДД. Как это сделать с помощью простого поиска? Вы же не знаете заранее, какая именно дата будет.

Читать далее
Всего голосов 50: ↑42 и ↓8+43
Комментарии77

Nature: создан моющийся HEPA фотокаталитический фильтр со сроком службы до 20 лет

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

Исследователи Samsung разработали  фильтр для очистки воздуха от пыли (PM) и летучих органических соединений (VOC) со сроком службы 20 лет, убирающий 95% PM и 82% VOC за проход, и моющийся при этом обычной водой почти до показателей первоначальной эффективности. Статья опубликована в престижнейшем журнале Nature Communications.

Чтобы вы понимали, сейчас чаще всего используют разные фильтры для PM и VOC. Оба этих фильтра одноразовые со сроком службы порядка полугода. По-моему, именно так и выглядит прорыв :)

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

Платежные системы простыми словами. Как устроены и зачем нужны Mastercard, Visa, МИР и прочие

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

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

Читать далее
Всего голосов 299: ↑267 и ↓32+276
Комментарии256

Пять новых возможностей сайта с тестами батареек и аккумуляторов Batterytest.ru

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров5.7K
Я продолжаю тестировать батарейки и аккумуляторы, а программист Алексей Синёв добавляет на сайт всё новые возможности.



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

«Карманный синоптик за час». Пишем Telegram-бота для мониторинга погоды на Python

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

Хабровчане, всем привет! Меня зовут Максим Плачковский, я автор канала PythonToday. Из этой статьи вы узнаете, как написать своего Telegram-бота для получения данных о погоде в любом городе нашей планеты. Мы детально рассмотрим работу с API, парсинг JSON и напишем бота на асинхронной библиотеке aiogram. А после — загрузим его на виртуальный сервер и запустим. Если интересно, добро пожаловать под кат!
Читать дальше →
Всего голосов 48: ↑38 и ↓10+41
Комментарии16

О том, как я сломал Ubuntu и убил день на то, чтобы починить

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

Бывало у вас такое, что Snapd User Session Agent входит в бесконечный цикл? Вы вводите правильный пароль и... попадаете на тот же экран входа.

Это широко известная ситуация, которая может происходить из-за самых разных факторов. Не менее широко известен и универсальный рецепт: попадите в терминал bash через tty (Ctrl + Alt + F1), найдите проблему и устраните её.

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

Итак, вы впервые сталкиваетесь с infinite login loop и пытаетесь залогиниться в терминал при помощи tty. Но тут вас встречает "родная" русская раскладка вместо родной английской. Никакие хоткеи не работают: вы попробовали Shift + Alt, Alt + Shift, Cmd (Win) + пробел и все до единой остальные. Ничего не помогает. Можно сколько угодно стрессовать и сомневаться в своей вменяемости ("каким идиотом надо быть, чтобы поставить русскую раскладку как основную на машине Ubuntu???"), это не отменяет тупиковой ситуации. Как итог - вход невозможен. Вы перезагружаете машину, зажимаете Esc (иногда также Shift, но не в моем случае), чтобы попасть в grub menu и входите в recovery mode. Но - о ужас - и тут вас преследует ненавистная раскладка.

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

Читать далее
Всего голосов 86: ↑79 и ↓7+88
Комментарии190

Бекенд на AWS Lambda за 60 минут

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

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

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

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

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

VS Code, python, контейнеры — как обуздать эту триаду и разрабатывать внутри контейнера

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

Как пользоваться VS Code в полную силу


image


Это небольшой туториал о настройке VS Code для работы с python. Здесь вы не увидите каких-то божественных откровений — тут будет просто мой опыт о том, как сделать свою работу/хобби немного комфортнее и почему я пришел именно к такой конфигурации.

Читать дальше →
Всего голосов 42: ↑40 и ↓2+55
Комментарии18

Софт, хард и два колеса: как мы строили IT-инфраструктуру в Whoosh

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

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

На связи команда Whoosh — лидера в разработке и интеграции технологий микромобильности в стране. Если вы живете в России или СНГ (мы уже присутствуем в некоторых городах Казахстана и Беларуси), то наверняка видели наши электросамокаты или пользовались ими. Вероятность этого большая: за 9 месяцев 2022 года года уже совершено 46 млн поездок, парк вырос до 82 тысяч устройств и размещены они в 40+ городах трех стран.

За четыре года мы прошли путь от стартапа до зрелой IT-компании. То, какими мы были в начале и сейчас — два разных проекта. Поэтому, в первой статье мы решили поделиться воспоминаниями о том, как все начиналось несколько лет назад, к чему мы пришли и какие у нас планы на будущее.

Меня зовут Сергей Шилин, я руководитель отдела разработки электроники и встроенного ПО. Вместе с CIO и со-основателем Whoosh Егором Баяндиным мы вспомним, как все начиналось несколько лет назад, как все устроено сейчас с точки зрения IT и какие у нас планы на будущее.

Как? Какие?
Всего голосов 16: ↑14 и ↓2+14
Комментарии19

Самообучаемый чат-бот python, который умеет искать ответы в Wikipedia

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

Написание телеграмм бота, обучающегося при общении с Вами и умеющим искать ответы на Ваши вопросы в Википедии.

Читать далее
Всего голосов 19: ↑15 и ↓4+16
Комментарии8

Что такое *args и **kwargs в Python?

Время на прочтение4 мин
Количество просмотров416K
Функции — это жизнь. Правда? Если вы только начали осваивать Python, неважно — первый ли это ваш язык программирования, или вы пришли в Python из другого языка, то вы уже знаете о том, что количество параметров в объявлении функции соответствует количеству аргументов, которые передают функции при вызове.



Это — основы. Это то, что помогает людям понимать окружающий мир. Но утверждение «количество параметров равно количеству аргументов» закладывает в голову новичка бомбу замедленного действия, которая срабатывает после того, как он увидит в объявлении функции таинственные конструкции *args или **kwargs.

Не позволяйте всяким значкам загонять себя в ступор. Тут нет ничего архисложного. В общем-то, если эти конструкции вам незнакомы — предлагаю с ними разобраться.
Читать дальше →
Всего голосов 39: ↑32 и ↓7+44
Комментарии15
1
23 ...

Информация

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

Специализация

Специалист
Python
Linux
SQL
English
Research work
Git