Pull to refresh
30
0

Web-разработчик, Android-разработчик

Send message

Кроссплатформенные приложения на Python с Flet и FastAPI: Полное руководство по разработке

Reading time39 min
Views8.7K

Сегодня я покажу вам, что для создания полноценных кроссплатформенных приложений достаточно одного языка — Python. С помощью всего нескольких библиотек и фреймворков можно легко обойтись без JavaScript для веб-разработки, без Kotlin и Swift для мобильных приложений и даже без C++ для десктопных программ. В этой статье разберем, как, используя Flet и FastAPI, можно создавать мощные и удобные решения для любой платформы!

Читать далее
Total votes 7: ↑6 and ↓1+7
Comments10

Разбор регулярного выражения, проверяющего простоту чисел

Level of difficultyEasy
Reading time16 min
Views7.7K

Как-то я исследовал способы наиболее эффективного определения простоты числа и наткнулся на показанный выше код.

Он меня заинтриговал. Хоть это, возможно, и не самый эффективный способ, но определённо один из наименее очевидных, поэтому мне стало любопытно. Каким образом соответствие регулярному выражению .?|(..+?)\1+ должно показать, что число непростое (после его преобразования в унарную систему счисления)?

Если вы заинтересовались, продолжайте чтение, я проанализирую это регулярное выражение и объясню, что же в нём происходит. Объяснение не зависит от языка программирования, однако я приведу версии показанного выше Java-кода на PythonJavaScript и Perl  и объясню, почему они немного различаются.

Я объясню, как регулярное выражение ^.?$|^(..+?)\1+$ способно отфильтровывать все простые числа. Почему это выражение, а не .?|(..+?)\1+ (использованное в примере кода на Java)? Это связано с тем, как работает String.matches(), о чём я расскажу ниже.

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

Читать далее
Total votes 40: ↑39 and ↓1+58
Comments15

Разработка Telegram Mini App с помощью React

Level of difficultyMedium
Reading time18 min
Views5K

Telegram Mini App — это веб-приложения, которые открываются внутри мессенджера Telegram. Эти приложения создаются с использованием стандартных веб-технологий, таких как HTML, CSS и JavaScript, и выглядят как обыкновенные сайты.

Более подробно о том, что такое Telegram Mini App, мы рассказали в предыдущей статье, а сегодня рассмотрим, как создать собственный Mini App, используя React.

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

Готовьтесь к росту цен

Reading time8 min
Views131K
Это был тяжёлый год, был он тяжелей, чем тот.

В этом году Центробанк выставил высокие ставки и фактически перекрыл возможность строить ЦОДы за кредитные деньги. А если что, то дата-центры строятся за колоссальные деньги. То есть исключительно на кредиты — с тем, чтобы потом продавать их мощности и постепенно отбивать кредитные деньги. То же самое происходит в других областях бизнеса, и почти везде практическая невозможность взять кредит означает стагнацию многих направлений бизнеса. За ипотеку же вообще можно слетать в космос!

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

А дефицит стойко-мест растёт. Уже в прошлые годы всё, что строилось, на 80 % раскупалось ещё на стадии строительства. То есть речь идёт даже не про текущие свободные стойки, а про предзаказы на то, что будет готово только в следующем году.

Цена размещения стойки уже выросла на 9–21 % в зависимости от колокации в России.

Кстати, познакомьтесь со звездой рынка — киргизскими серверами:

imageЭто экспорт из Германии в Кыргызстан. Примерно такие же графики — по Польше, Австрии, Италии и т. п.
Читать дальше →
Total votes 279: ↑256 and ↓23+292
Comments245

Хьюстон, у нас проблема?! Что, если Google Docs у нас не будет?

Level of difficultyEasy
Reading time11 min
Views12K

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

Читать далее
Total votes 25: ↑20 and ↓5+15
Comments38

Rust без прикрас: где мы ошибаемся

Level of difficultyEasy
Reading time6 min
Views13K

Привет, исследователи Rust! Сегодня хочу поделиться своим опытом (не всегда радужным) работы с Rust. Да, язык классный, безопасный, быстрый — все мы это знаем. Но, как и в любом инструменте, здесь есть свои подводные камни, на которые я благополучно наступал.

Читать далее
Total votes 39: ↑33 and ↓6+39
Comments39

Языки программирования, взорвавшие мой мозг

Level of difficultyMedium
Reading time11 min
Views28K

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

Я перечислю их в том порядке, в котором узнавал о них. В большинстве случаев я буду ассоциировать функциональность с языками, в которых они появились не впервые. Это не ошибка, я просто хочу показать, когда узнал об этих возможностях.
Читать дальше →
Total votes 71: ↑60 and ↓11+68
Comments103

Как обойти блокировки с помощью Tor в Docker

Level of difficultyMedium
Reading time2 min
Views9.1K

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

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

Для запуска нам понадобится Ubuntu с установленными: git, make и docker.

Читать далее
Total votes 11: ↑7 and ↓4+3
Comments15

UML для всех: почему бы не описать проект на языке диаграмм?

Level of difficultyEasy
Reading time6 min
Views4.5K

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

Читать далее
Total votes 9: ↑5 and ↓4+1
Comments11

Не усложняй: простые фреймворки, чтобы быстрее принимать решения и приоритизировать задачи

Reading time3 min
Views12K

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

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

Amazon: обратимые и необратимые решения
Матрица "Ценность vs. Затраты"
Матрица Эйзенхауэра

Читать далее
Total votes 10: ↑9 and ↓1+15
Comments8

Моя подборка ChatGPT Телеграм ботов

Level of difficultyEasy
Reading time1 min
Views11K

1. Free Chats GPT Bot

Перейти в бот

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

2. ChatSGPTs Bot

Перейти в бот

Этот бот позволяет использовать нейросети без регистрации. Основной акцент сделан на Chat GPT, но также доступны инструменты для генерации изображений: Midjourney, DALL-E 3 и Stable Diffusion.

Что можно делать:

• Создавать тексты для учебы, работы или творчества с помощью Chat GPT и Llama

• Генерировать изображения в различных стилях по текстовым запросам.

3. GPT4 Omni

Перейти в бот

Многофункциональный бот с доступом к бесплатным моделям, включая Claude 3.5 Haku и GPT 4o Mini. Он подойдет для анализа, решения задач и общения.

4. ChatGPT x Midjourney

Перейти в бот

Этот бот объединяет возможности Chat GPT и Midjourney. Chat GPT помогает с текстами, а Midjourney отлично справляется с генерацией изображений, что делает его универсальным инструментом для работы и творчества.

5. GPTChatBot

Перейти в бот

Бот поддерживает несколько версий Chat GPT: 3.5, 4 Omni, 4 Turbo и другие. Ответы можно получать в текстовом или голосовом формате. Настройки длины и контекста лично для меня важны, так как можно ускорить время ответа бота

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

Читать далее
Total votes 10: ↑5 and ↓5+1
Comments10

Лучшие backend-фреймворки для веб-разработки в 2024 году

Level of difficultyEasy
Reading time13 min
Views26K

Фреймворки упрощают разработку, ликвидируют хаос и задают понятные рамки при создании приложения.

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

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

Читать далее
Total votes 56: ↑24 and ↓32+2
Comments42

Обзор российских VPS-серверов в Нидерландах

Level of difficultyEasy
Reading time8 min
Views18K

Недавно увидел рекламу от FirstVDS, что у них появились серверы в Нидерландах — стало интересно и захотелось протестировать предложение. Но чтобы было проще ориентироваться на местности, я также решил протестировать серверы нескольких других хостеров, которые также предоставляют свои услуги в Нидерландах. А их оказалось немало: это и привычные RUVDS с Timeweb, и не бывавшие ранее в моих тестах VPS1 и VDSKA. Под катом — несколько тестов на производительность и сравнение предложений между собой.

Читать далее
Total votes 26: ↑25 and ↓1+42
Comments21

ByeDPI + Redsocks на OpenWRT: дарим свободу локальной сети на дровах (на примере ASUS RT-N12 ROM/ОЗУ: 8/32 Мб)

Level of difficultyEasy
Reading time6 min
Views48K

Решение проблемы зачастую упирается в использование роутеров с ограниченными ресурсами, таких как ASUS RT-N12 VP B1 с ROM/ОЗУ 8/32 Мб. В этой статье я расскажу, как настроить связку ByeDPI и Redsocks на роутере с OpenWRT, даже если ваш роутер далеко не топ по характеристикам.

## Зачем нужны ByeDPI и Redsocks?

ByeDPI — это утилита для обхода DPI (Deep Packet Inspection), которая изменяет сетевые пакеты таким образом, чтобы они не распознавались системами фильтрации трафика.

Redsocks — это прокси-инструмент, который перенаправляет трафик через SOCKS или HTTP прокси, даже если приложение не поддерживает прокси напрямую.

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

Ставим ByeDPI и Redsocks на OpenWRT
Total votes 36: ↑36 and ↓0+53
Comments86

Уже не джун, но знаний нужно всё больше. Как самостоятельно учиться сложным вещам

Reading time6 min
Views11K

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

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

Читать далее
Total votes 24: ↑21 and ↓3+20
Comments3

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

Level of difficultyMedium
Reading time14 min
Views8K

Шаблоны проектирования распределенных систем предоставляют разработчикам проверенные решения и передовые методы проектирования и внедрения распределенных приложений.

Читать далее
Total votes 11: ↑7 and ↓4+3
Comments0

VSCode — идеальный инструмент для хакера

Level of difficultyMedium
Reading time15 min
Views15K

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

В прошлой статье мы уже разобрали устройство редактора кода VSCode и его особенности. Сегодня хочу рассказать про еще одну уязвимость в расширении, связанном с GitHub, рассмотреть функцию «туннелирование» в VSCode и варианты использования ее атакующими. После посмотрим, что можно сделать для детектирования подобных действий с помощью R-Vision SIEM.

Начнем с функционала туннелирования, который в «стабильном» варианте появился в версии 1.74. Функция позволяет удаленно управлять хостом, используя серверы Microsoft. Для запуска туннеля даже не обязательно устанавливать VSCode, достаточно только серверного компонента приложения VS Code Server. Конечно, это заинтересовало атакующих, и они стали использовать этот метод в своих целях.

exploit it >
Total votes 11: ↑10 and ↓1+10
Comments3

macOS сильно переоценена

Level of difficultyEasy
Reading time9 min
Views23K

Добрый день! Сегодня я хочу обсудить с вами весьма противоречивую для меня операционную систему — macOS. Вокруг неё ходит немало легенд, слухов и мифов, которые я постараюсь сегодня развеять. Усаживайтесь поудобнее — статья будет интересна как опытным маководам, так и тем, кто никогда не видел эту операционную систему вживую.

Окунуться в мир macOS
Total votes 53: ↑34 and ↓19+20
Comments169

Вам не нужно готовое API чтобы начать писать фронтенд или краткий обзор готовых решений для мокинга данных

Level of difficultyEasy
Reading time7 min
Views8.7K

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

Однако, её статус был не в “Ready for development”. Также можно было увидеть что сама задача ждёт выполнения другой задачи - на разработку API с данными. Здесь у меня начались вопросы, а также желание в очередной раз разъяснить менеджерам что критичных блокеров у этой задачи нет.

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

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

Читать далее
Total votes 6: ↑5 and ↓1+5
Comments16

Квантизация позволяет запускать Llama 3.2 на мобилках

Reading time3 min
Views7.5K

Квантизация помогла портировать последнюю версию LLM Llama 3.2 на мобильные платформы - iOS и Android. Для этого разработчики выпустили квантованные версии Llama 3.2 1B и 3B, которые при тестах на ARM-процессорах показали высокую скорость инференса, по сравнению с несжатыми весами в формате BF16. 

Как вообще получилось, что Llama работает на мобильных процессорах, ведь для ее запуска нужен определенный программный стек, чаще всего библиотека Pytorch и CUDA на операционной системе Linux?

Дело в том, что Meta* (признана в России экстремистской организацией) используют ExecuTorch - это фреймворк, который является частью Pytorch-платформы и предназначен для запуска Pytorch-программ на мобильных девайсах. ExecuTorch поддерживается фреймворком Llama Stack для запуска моделей Llama, а именно легковесных Llama 3.2 1B и 3B, на iOS и Android. Для разработки мобильных приложений под эти платформы Llama Stack предоставляет клиентский SDK на Swift для iOS и Kotlin для Android, оба написаны под ExecuTorch бэкенд.

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

В среднем это ускорение инференса от двух до четырех раз по сравнению с весами в формате BF16, при сохранении практически сопоставимого качества. Уменьшение размера модели на 56% - что важно для мобильного приложения, чтобы меньше места на телефоне занимало - и уменьшение объема потребляемой памяти на 41% процент. Все это согласно результатам бенчмарков, приведенных на сайте Llama.

Сразу стоит отметить важную деталь: речь идет не об обычной post-training квантизации, когда вы берете веса в FP16 и квантуете в GGUF или GPTQ. Хотя такие веса, безусловно, имеют практическое применение для множества задач, они страдают падением качества, это хорошо заметно на бенчмарках ниже. 

Читать далее
Total votes 2: ↑2 and ↓0+3
Comments5
1
23 ...

Information

Rating
Does not participate
Location
Рыбинск, Ярославская обл., Россия
Date of birth
Registered
Activity