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

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Не наступил ли у React момент переписывания Angular.js на Angular?

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 357
JavaScript *ReactJS *NestJS *
Мнение
Перевод

В 2012 году Angular.js серьёзно поменял frontend-разработку. Фреймворку от Google тогда очень быстро удалось снискать популярность у разработчиков.

И вот уже буквально через два года его разработчики решили объявить о выходе новой версии под именем Angular 2. Версия оказалось написанной полностью с нуля и не имела совместимости с предыдущей даже близко. Большинство разработчиков, не исключая и вашего покорного слугу, идея переписывать их приложения явно не прильщала. Писать приложения на старой версии, которая с припиской JS, тоже было так себе вариантом. Конкурирующие фреймворки уже были ничуть не хуже.

Одним из них мы и воспользовались, переведя в 2015 году нашу фронтенд-разработку на React. У него была простая архитектура, основанная на компонeнтном подходе и рассчитанная на то, чтобы не терять в производительности труда с ростом кодовой базы.

Сообщество Реакта с тех пор значительно выросло и вот недавно команды React и Next.js показали нам Server Components, новый способ разработки веб-приложений, который со стандартным React-приложением совместим примерно никак.

Это такое же серьёзное изменение как и переход с Angular.js на Angular 2? React сейчас проходит через ту же фазу, что и Angular.js когда-то?

Замечание: В этой статье я буду обсуждать фичи как от команды React так и от Next.js. Работают они сейчас очень тесно, так что зачастую трудно сказать, кто из них за что ответственен. Так что буду писать просто, "React" имея в виду обе команды.

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

Новости

Генерация Лабиринта | Алгоритм Эллера

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 403
Программирование *Алгоритмы *
Туториал

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

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

Быстрые машины, медленные машины

Время на прочтение 14 мин
Количество просмотров 723
Высокая производительность *Usability *История IT Процессоры
Перевод

Да, такого я не ожидал. Записал пару неказистых видосов за пять минут, опубликовал в треде Twitter, а они завирусились, набрав к моменту подготовки статьи 8,8K лайков. В самом деле не мог такого спрогнозировать – учитывая, что я годами вывешиваю только такой контент, который интересен лично мне… и ничего, отклик почти нулевой. Теперь, когда ситуация поостыла, время навести суету и с известной тщательностью изложить возникшие у меня мысли.

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

Как настроить Node.js Express сервер для React

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 642
JavaScript *Node.JS *ReactJS *
Из песочницы

Это руководство поможет вам разработать простое приложение на React и подключить его к серверу, созданному с использованием Node.js. Мы начнем с создания React приложения с помощью команды create-react-app, а затем настроим его подключение к серверу Node.js c помощью proxy.

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 1

Истории

Возвращаем 2007 год, или делаем Интернет без блокировок

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 7K
Информационная безопасность *Сетевые технологии *Софт Социальные сети и сообщества
Из песочницы

Как известно, в 2007 году кроме того, что деревья были выше, а трава зеленей, еще и в Интернете не было особых ограничений - можно было открыть почти любой сайт и наслаждаться им. До ковровых блокировок Telegram оставалось ещё 10 лет... К сожалению, в наше время такой возможности уже нет. Причины тут всем известны, в частности, некоторые компании уже не предоставляют своих услуг в России.

Хорошо, что существует возможность в рамках домашней сети восстановить свободный Интернет таким, каким он был в 2007-м. Именно этим мы и займемся. Стоит отметить, что в 2007 году довольно часто можно было встретить подключения на скорости 64-128 Кб/с, а то и вовсе dial-up; Wi-Fi был редкостью, а мобильная связь - довольно дорогим удовольствием. Однако, эти особенности того времени мы постараемся не воспроизводить.

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

Читать далее
Всего голосов 26: ↑24 и ↓2 +22
Комментарии 13

Async / Await in Swift

Время на прочтение 14 мин
Количество просмотров 408
Разработка под iOS *Swift *
Перевод

Apple представила концепцию async/await в Swift 5.5 и анонсировала ее на сессии WWDC21. Сегодня мы увидим async/await в действии и то, как мы можем использовать async/await для написания удобочитаемого асинхронного кода в своем приложении.

Читать далее
Рейтинг 0
Комментарии 1

GLFW + GLAD = OpenGL графика с шейдерами

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 833
C++ *Алгоритмы *
Мнение

Здравствуйте, как давно меня здесь не было... Наверное не было ещё такой темы ради которой стоило бы Вас, дорогие читатели моих опусов, беспокоить.

Решил я познакомится поближе с OpenGL. Единственный доступный инструмент для написания программ и их компиляции, оказался NetBeans IDE 8.2, установочный файл netbeans-8.2-windows.exe размером 225 472 кб. и jdk-8u144-windows-x64 установочный файл jdk-8u144-windows-x64.exe размером 202 523 кб.

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

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

Анализ уязвимостей стека протокола мобильных операторов связи SS7

Уровень сложности Средний
Время на прочтение 19 мин
Количество просмотров 1.2K
Информационная безопасность *Анализ и проектирование систем *IT-стандарты *
Аналитика

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

Анализ некоторых уязвимых команд данного стека протоколов в статье, приятного чтения!

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

Dagster и Great Expectations: Интеграция без боли

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 235
Python *Data Mining *Data Engineering *
Из песочницы

Меня зовут Артем Шнайдер, и я занимаюсь DataScience в Бланке. Сегодня я хочу рассказать вам о том, как можно интегрировать два мощных инструмента – Dagster и Great Expectations.

Great Expectations позволяет определить так называемые ожидания от ваших данных, то есть задать правила и условия, которым данные должны соответствовать. 

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

Исходный код к этой статье на GitHub.

Давайте начнем? :-)

Погнали 🚀
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Binance API и Telegram бот с уведомлениями о сделках

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 630
Python *API *
Туториал

Возникла задача сделать уведомления в Телеграм о сделках на Binance: открытие и закрытие позиций, текущий профит, баланс и прочее. Это актуально если кто-то или что-то торгует на вашем счете и вы хотели бы быть в курсе. Задача выглядела несложной - из Binance API забираем последние сделки и шлём в Телеграм - работы на пару часов. Но на практике это превратилось в квест на пару дней в котором 90% времени ушло на изучение особенностей работы с Binance API, их довольно странную логику и жесткие лимиты.

В итоге, родился минималистичный скрипт на 40 строк кода и новый интересный проект о котором упомяну в конце статьи. Скрипт можно запустить на своем компьютере и уведомления о сделках на вашем счете типа BUY BTCUSDT volume: 0.01 и CLOSE BTCUSDT profit: 10$ полетят в Телеграм.

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

PHP. Как увеличить потребление памяти в 3 и более раз при работе с массивами

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

1. Общие сведения
2. Увеличиваем потребление памяти вдвое
3. Увеличиваем потребление памяти втрое
4. Взрывное увеличение потребляемой памяти
5. Заключение

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

Самые громкие события инфобеза за июнь 2023 года

Время на прочтение 8 мин
Количество просмотров 461
Блог компании T.Hunter Информационная безопасность *

Всем привет! По следам ушедшего месяца подводим итоги дайджестом новостей. Он выдался довольно горячим: в первый же день июня прогремела «Операция Триангуляция» со спайварью под айфоны, выявленной Касперским на пару с ФСБ. А следом Atomic Wallet подвергся до сих пор не объяснённому компанией взлому, который грозит отправить кошелёк на дно, где умирают все стартапы. Помимо этого, в MicrosoftTeams обнаружили элементарную уязвимость, позволяющую внешним пользователям отправлять файлы в организации, открывая широкий простор для фишинга. А на репозитории NPM всплыл масштабный конфуз с манифестами, способными скрывать за собой малварь и прочее вредоносное. Об этом и других интересных новостях первого летнего месяца читайте под катом!

Читать далее
Рейтинг 0
Комментарии 3

Потоковые команды: ключ к эффективности

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 478
Анализ и проектирование систем *Управление разработкой *Управление проектами *
Туториал

В современном мире скорость поставки новой функциональности является определяющим критерием успеха ИТ-команд. Как правило, основными негативными факторами здесь являются дефицит ресурсов (времени, людей) и избыточная коммуникация для координации. Сегодня я хочу рассказать о прогрессивном подходе к организации команд, призванном ускорить поставки новой функциональности.

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

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

Почему ChatGPT нас (полностью) не заменит

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 1.2K
Машинное обучение *Исследования и прогнозы в IT *Карьера в IT-индустрии Искусственный интеллект Будущее здесь
Мнение

Примечание: этот текст не был написан ChatGPT.

В последнее время технологии искусственного интеллекта (ИИ), включая генеративные нейронные сети, стали все более распространенными среди широких масс. Одним из самых продвинутых и широко известных примеров является ChatGPT, созданный на базе GPT-3.5 архитектуры, которая позволяет ему обрабатывать и анализировать естественный язык и давать точные и часто неожиданные ответы на разнообразные вопросы. ChatGPT может быть использован во многих областях, включая образование, здравоохранение, банковское дело и многие другие.

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

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

Автопостинг ВК (VK) на python

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 829
Python *API *ВКонтакте API *Социальные сети и сообщества

У меня есть несколько групп в ВК, в которые нужно периодически публиковать посты. В целом мое желание можно описать фразой «А когда мне это делать, если я все время не хочу». Мотивация в моем случае это лень. Я не являюсь разработчиком, но решил набросать скрипт, который будет публиковать посты.

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

Что не так с бесплатным VPN

Время на прочтение 12 мин
Количество просмотров 8.3K
Блог компании Xeovo VPN Информационная безопасность *Монетизация IT-систем *Исследования и прогнозы в IT *Монетизация веб-сервисов *
Аналитика

В 2022 году Россия заняла второе место по использованию VPN в мире после Индии. Рост по количествам скачиваний VPN-сервисов составил 167%: если в 2021 году было скачано 12,59 млн. VPN-приложений, то в 2022 году уже 33,54 млн. О точном количестве пользователей VPN это не говорит, потому что устанавливать приложения на несколько гаджетов или скачивать несколько разных VPN в течение года. Тем не менее, эксперты предполагают, что VPN сейчас пользуется каждый четвёртый россиянин. Большинство используемых россиянами VPN — бесплатные.

Популярность бесплатных VPN обусловлена ценовой политикой большинства VPN-сервисов. Средняя цена VPN-серверов на долгосрочных планах, которые обеспечивают их основной доход — $3-4. Проблема в том, что такую цену за месяц можно получить, только оплатив 2-3 года сервиса разом — а это повышает разовый платёж до $80-120, при этом помесячная оплата намеренно завышена — $10 и выше. Высокие цены крупнейших VPN-провайдеров толкают людей в сторону бесплатных VPN, что делает ситуацию с ростом установок VPN довольно неоднозначной.

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

Читать далее
Всего голосов 39: ↑25 и ↓14 +11
Комментарии 43

Семантическая сегментация на основе архитектуры U-Net и определение расстояния между объектами

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 1.2K
Python *Машинное обучение *Искусственный интеллект Умный дом Data Engineering *

Всем привет!

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

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

Модель на базе U-Net архитектуры сегментирует различные объекты (кот, стул, стол, тарелка с котлетами итд) и при сближении двух объектов сегментации (кот - тарелка) модель сигнализирует об этом с помощью телеграмм бота.

Отлично, задача поставлена, теперь реализация!

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

Внезапно сложная задача на литкоде: Варианты покупки двух товаров

Уровень сложности Сложный
Время на прочтение 6 мин
Количество просмотров 3.5K
Алгоритмы *Математика *

Есть вот такая, вроде бы, простая задача на литкоде: Дано три числа total - сколько у вас есть денег, cost1, cost2 - цены двух товаров. Надо подсчитать, сколько всего существует различных способов купить сколько-то этих двух товаров, не выходя из бюджета (значение имеет только общее количество покупок). Иными словами, сколько существет целых неотрицательных пар (x, y), таких что x*cost1+y*cost2 <= total . Например, имея товары ценами {5, 10} и 20 денег на руках, есть 9 способов потратить деньги: 0, 5, 5+5, 5+5+5, 5+5+5+5, 10, 10+5, 10+5+5, 10+10.

Она там даже помечена как medium и вообще в одну строчку решается, но это если допускать безумно медленное решение за O(total / max(cost1, cost2)) , т.е линейное от входных чисел. А сможете ли вы решить ее сильно быстрее - за O(log(max(cost1, cost2))) ? В этом случае задачка становится вполне себе hard и требует много математики и аккуратности. Если интересно решение - добро пожаловать под кат. Буду рад любым альтернативным решениям. Может кто-то сможет додуматься до похожего решения проще.

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

Немного про «ПИ» и другие встроенные константы

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 3.6K
Программирование *Совершенный код *Компиляторы *

Нет-нет, я не собираюсь рассказывать все прибаутки о константах, вроде того, как связано число E и год рождения Льва Толстого. Речь о другом.
Как-то один мой коллега попросил меня «свежим взглядом» посмотреть его программу. Он проводил проверочный расчет, и в итоге должна была получиться единичная матрица. На месте нулевых элементов оказались величины, близкие к нулю – что-то около 10**-17, что можно объяснить погрешностью расчета и исходных данных. Но у трех элементов было значение 10**-7. Вопрос состоял в том, а, собственно, почему так? ведь все формулы «симметричны».

Читать далее
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 19

Как я использую React Hook Form

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 1.1K
JavaScript *ReactJS *
Туториал
Recovery mode

Приветствую, уважаемые читатели! Сегодня я хочу поделиться своим опытом использования одной из самых популярных библиотек для создания форм на React - React Hook Form. Когда я только начинал использовать эту замечательную библиотеку, я совершил несколько ошибок, которые я надеюсь, вы сможете избежать.

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