Сегодня я покажу вам, что для создания полноценных кроссплатформенных приложений достаточно одного языка — Python. С помощью всего нескольких библиотек и фреймворков можно легко обойтись без JavaScript для веб-разработки, без Kotlin и Swift для мобильных приложений и даже без C++ для десктопных программ. В этой статье разберем, как, используя Flet и FastAPI, можно создавать мощные и удобные решения для любой платформы!
Web-разработчик, Android-разработчик
Разбор регулярного выражения, проверяющего простоту чисел
Как-то я исследовал способы наиболее эффективного определения простоты числа и наткнулся на показанный выше код.
Он меня заинтриговал. Хоть это, возможно, и не самый эффективный способ, но определённо один из наименее очевидных, поэтому мне стало любопытно. Каким образом соответствие регулярному выражению .?|(..+?)\1+
должно показать, что число непростое (после его преобразования в унарную систему счисления)?
Если вы заинтересовались, продолжайте чтение, я проанализирую это регулярное выражение и объясню, что же в нём происходит. Объяснение не зависит от языка программирования, однако я приведу версии показанного выше Java
-кода на Python
, JavaScript
и Perl
и объясню, почему они немного различаются.
Я объясню, как регулярное выражение ^.?$|^(..+?)\1+$
способно отфильтровывать все простые числа. Почему это выражение, а не .?|(..+?)\1+
(использованное в примере кода на Java
)? Это связано с тем, как работает String.matches(), о чём я расскажу ниже.
Хотя по этой теме есть несколько постов, я считаю, что они недостаточно глубоки и в них приводится лишь высокоуровневое объяснение, недостаточно хорошо излагающее важные подробности. В своей статье я попытаюсь объяснить подробности, чтобы их мог понять любой. Моя цель — сделать этот код понятным каждому, будь вы гуру регулярных выражений или впервые о них услышали.
Разработка Telegram Mini App с помощью React
Telegram Mini App — это веб-приложения, которые открываются внутри мессенджера Telegram. Эти приложения создаются с использованием стандартных веб-технологий, таких как HTML, CSS и JavaScript, и выглядят как обыкновенные сайты.
Более подробно о том, что такое Telegram Mini App, мы рассказали в предыдущей статье, а сегодня рассмотрим, как создать собственный Mini App, используя React.
Готовьтесь к росту цен
В этом году Центробанк выставил высокие ставки и фактически перекрыл возможность строить ЦОДы за кредитные деньги. А если что, то дата-центры строятся за колоссальные деньги. То есть исключительно на кредиты — с тем, чтобы потом продавать их мощности и постепенно отбивать кредитные деньги. То же самое происходит в других областях бизнеса, и почти везде практическая невозможность взять кредит означает стагнацию многих направлений бизнеса. За ипотеку же вообще можно слетать в космос!
Почему нельзя взять кредит? Потому что почти нет такого бизнеса, который даст денег больше, чем если просто положить их на счёт в банк. Правда, банкам я бы тоже не стал доверять на 100 % даже в случае депозитов, но это уже другая история.
А дефицит стойко-мест растёт. Уже в прошлые годы всё, что строилось, на 80 % раскупалось ещё на стадии строительства. То есть речь идёт даже не про текущие свободные стойки, а про предзаказы на то, что будет готово только в следующем году.
Цена размещения стойки уже выросла на 9–21 % в зависимости от колокации в России.
Кстати, познакомьтесь со звездой рынка — киргизскими серверами:
Это экспорт из Германии в Кыргызстан. Примерно такие же графики — по Польше, Австрии, Италии и т. п.
Хьюстон, у нас проблема?! Что, если Google Docs у нас не будет?
Как показывает практика, вероятность такого события далеко не нулевая, поэтому необходимо быть готовыми к любому сценарию. А чтобы было проще ориентироваться в многообразии классных продуктов и найти тот самый, свой, подходящий под сценарии именно вашей работы — открывайте этот материал и выбирайте: собрал шесть российских сервисов, от самых очевидных до специализированных с серьёзной функциональностью.
Этот материал — для всех, не только для «ждунов» и «авосьников», здесь каждый найдёт инструмент, подходящий именно вашей компании/команде или лично вам.
Rust без прикрас: где мы ошибаемся
Привет, исследователи Rust! Сегодня хочу поделиться своим опытом (не всегда радужным) работы с Rust. Да, язык классный, безопасный, быстрый — все мы это знаем. Но, как и в любом инструменте, здесь есть свои подводные камни, на которые я благополучно наступал.
Языки программирования, взорвавшие мой мозг
Я программирую с восьми лет, и основную часть жизни был разработчиком в том или ином качестве. На протяжении своей жизни кодера, как любителя, так и профессионала, я изучил множество языков программирования, которые казались клонами друг друга. Но было и несколько языков, изменивших мой взгляд на программирование, а то и мышление в целом.
Я перечислю их в том порядке, в котором узнавал о них. В большинстве случаев я буду ассоциировать функциональность с языками, в которых они появились не впервые. Это не ошибка, я просто хочу показать, когда узнал об этих возможностях.
Как обойти блокировки с помощью Tor в Docker
Если запустить Tor в Docker, то его можно использовать как прокси-сервер для обхода блокировок с разных сторон.
В этой инструкции мы запустим сам прокси-сервер. Настроим локальный компьютер для серфинга в интернете, минуя внутреннюю блокировку. И настроим сеть для другого контейнера, чтобы он мог получать данные, например антивирусные базы, минуя внешнюю блокировку.
Для запуска нам понадобится Ubuntu с установленными: git, make и docker.
UML для всех: почему бы не описать проект на языке диаграмм?
Даже долго работая в одной команде, люди смотрят на вещи по-разному – у них отличается бэкграунд, взгляды на технологии и подходы к работе., т.е. всегда есть проблема синхронизации. И для ее решения необходим общий способ коммуникаций, который исключает недопонимания. Без него даже аналитики не всегда могут договориться между собой, что уж тут говорить про передачу информации в другие сферы проекта. Можно писать огромные талмуды текстом, но на практике гораздо удобнее обмениваться диаграммами.
Не усложняй: простые фреймворки, чтобы быстрее принимать решения и приоритизировать задачи
Существует много фреймворков, призванных упросить жизнь и рабочую рутину, однако большинство из них становятся очередной головоломкой и никак не помогают быстрее принимать решения.
В этой статье я собрала самые простые и легкие способы, которые действительно помогают быстро принимать ежедневные решения, экономить время, энергию и нервы, освобождая место для действительно важных действий.
Amazon: обратимые и необратимые решения
Матрица "Ценность vs. Затраты"
Матрица Эйзенхауэра
Моя подборка ChatGPT Телеграм ботов
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 и другие. Ответы можно получать в текстовом или голосовом формате. Настройки длины и контекста лично для меня важны, так как можно ускорить время ответа бота
Так как публикую личное мнение, то прошу не кусаться на мой выбор) всем добра и позитива
Обложку решил сгенерировать тоже через ии, вышло так себе, но по феншую)
Лучшие backend-фреймворки для веб-разработки в 2024 году
Фреймворки упрощают разработку, ликвидируют хаос и задают понятные рамки при создании приложения.
При этом каждый фреймворк имеет определенный набор готовых инструментов — проверенных опытом технических решений, ускоряющих и облегчающих разработку.
В этой статье мы рассмотрим 10 самых популярных фреймворков для backend-а в 2024 году, без которых сегодня не обходится практически ни одно приложение.
Обзор российских VPS-серверов в Нидерландах
Недавно увидел рекламу от FirstVDS, что у них появились серверы в Нидерландах — стало интересно и захотелось протестировать предложение. Но чтобы было проще ориентироваться на местности, я также решил протестировать серверы нескольких других хостеров, которые также предоставляют свои услуги в Нидерландах. А их оказалось немало: это и привычные RUVDS с Timeweb, и не бывавшие ранее в моих тестах VPS1 и VDSKA. Под катом — несколько тестов на производительность и сравнение предложений между собой.
ByeDPI + Redsocks на OpenWRT: дарим свободу локальной сети на дровах (на примере ASUS RT-N12 ROM/ОЗУ: 8/32 Мб)
Решение проблемы зачастую упирается в использование роутеров с ограниченными ресурсами, таких как ASUS RT-N12 VP B1 с ROM/ОЗУ 8/32 Мб. В этой статье я расскажу, как настроить связку ByeDPI и Redsocks на роутере с OpenWRT, даже если ваш роутер далеко не топ по характеристикам.
## Зачем нужны ByeDPI и Redsocks?
ByeDPI — это утилита для обхода DPI (Deep Packet Inspection), которая изменяет сетевые пакеты таким образом, чтобы они не распознавались системами фильтрации трафика.
Redsocks — это прокси-инструмент, который перенаправляет трафик через SOCKS или HTTP прокси, даже если приложение не поддерживает прокси напрямую.
Сочетание этих двух инструментов на роутере позволяет обходить блокировки на уровне провайдера, обеспечивая свободу в домашней сети без необходимости установки ПО на каждом устройстве.
Уже не джун, но знаний нужно всё больше. Как самостоятельно учиться сложным вещам
Самостоятельное обучение для разработчика — процесс, который не кончается никогда. Это касается не только джунов, но и намного более опытных мидлов и сеньоров. Однако возникает вопрос: все ли мы умеем учиться правильно? Как преодолеть свою инертность и научиться понимать сложные вещи?
Один из важных моментов — это мышление роста, который подразумевает замену убеждения «я плох в X» на «я еще не узнал о X». Конечно, позитивный настрой помогает, но, одного его явно недостаточно, особенно на длинной дистанции. Обучение — это навык, над которым нужно упорно работать. Под катом разработчик и автор Джулия Эванс рассмотрит конкретные приемы, которые помогут вам стать более эффективным учеником. В частности — как превращать свое незнание в конкретные вопросы, которые приведут к решению задач и получению новых знаний.
Наиболее используемые шаблоны проектирования распределенных систем
Шаблоны проектирования распределенных систем предоставляют разработчикам проверенные решения и передовые методы проектирования и внедрения распределенных приложений.
VSCode — идеальный инструмент для хакера
Привет, Хабр!
В прошлой статье мы уже разобрали устройство редактора кода VSCode и его особенности. Сегодня хочу рассказать про еще одну уязвимость в расширении, связанном с GitHub, рассмотреть функцию «туннелирование» в VSCode и варианты использования ее атакующими. После посмотрим, что можно сделать для детектирования подобных действий с помощью R-Vision SIEM.
Начнем с функционала туннелирования, который в «стабильном» варианте появился в версии 1.74. Функция позволяет удаленно управлять хостом, используя серверы Microsoft. Для запуска туннеля даже не обязательно устанавливать VSCode, достаточно только серверного компонента приложения VS Code Server. Конечно, это заинтересовало атакующих, и они стали использовать этот метод в своих целях.
macOS сильно переоценена
Добрый день! Сегодня я хочу обсудить с вами весьма противоречивую для меня операционную систему — macOS. Вокруг неё ходит немало легенд, слухов и мифов, которые я постараюсь сегодня развеять. Усаживайтесь поудобнее — статья будет интересна как опытным маководам, так и тем, кто никогда не видел эту операционную систему вживую.
Вам не нужно готовое API чтобы начать писать фронтенд или краткий обзор готовых решений для мокинга данных
Идея написать данную статью у меня возникла в самый обычный рабочий день, в момент когда ко мне от менеджеров в jira упала новая задачка. Сама задача была нормально заполнена - было и подробное описание, и ссылка на документацию с бизнес-требованиями, и приложены макеты.
Однако, её статус был не в “Ready for development”. Также можно было увидеть что сама задача ждёт выполнения другой задачи - на разработку API с данными. Здесь у меня начались вопросы, а также желание в очередной раз разъяснить менеджерам что критичных блокеров у этой задачи нет.
За годы службы фронтенд‑разработчиком могу уверенно сказать что одна из достаточно часто встречающихся проблем в рабочем процессе команд веб‑разработки — это неправильно построенная коммуникация между фронтенд и бэкенд разработчиками, не до конца разделенные между ними сферы ответственности, и в целом пуск деятельности на самотек, «авось как‑нибудь сработаются, главное чтобы в конце нормальный продукт получился». При том что внутрикомандные практики взаимодействия между разработчиками в большинстве компаний в целом отлажены, взаимодействию межкомандному уделяется гораздо меньше времени, что странно, учитывая, что работают они зачастую над одним и тем же продуктом.
Одной из частностей этой общей проблемы является то, что в большинстве мест где я работал, толком была не распараллелена работа между бэкенд и фронтенд разработчиками. И даже если макеты готовы и сама фича «от и до» проанализирована со стороны системных аналитиков, то есть уже понятно что нужно получить на выходе — команде фронтенд‑разработки все‑равно надо дождаться работающей апишки прежде чем приступить к работе. Причем такая ситуация стабильно не меняется с годами, и отсутствие готовой серверной части фичи по умолчанию является блокером для работы команды клиентской разработки.
Квантизация позволяет запускать Llama 3.2 на мобилках
Квантизация помогла портировать последнюю версию 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. Хотя такие веса, безусловно, имеют практическое применение для множества задач, они страдают падением качества, это хорошо заметно на бенчмарках ниже.
Information
- Rating
- Does not participate
- Location
- Рыбинск, Ярославская обл., Россия
- Date of birth
- Registered
- Activity