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

Свободный интернет, или как мы реализовали бесплатный VPN в России

PHP *
Ожидает приглашения

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

В связи с этим, VPN (виртуальная частная сеть) становится все более популярным инструментом, который позволяет обходить ограничения в интернете и обеспечивать безопасность в сети. Однако, многие VPN-сервисы могут быть дорогими и не доступны для всех.

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

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

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

Мы не поддерживаем использование VPN для посещения экстремистских ресурсов или запрещенных в РФ веб-сайтов, и не рекомендуем это. Наш сервис предназначен для тех, кто ищет безопасный и свободный доступ в интернет, соблюдая все законы и правила России.


Содержание статьи:

Читать далее

Полезные Snippets для Flutter-разработчика

Уровень сложности Простой
Flutter *Разработка мобильных приложений *
Ожидает приглашения

Всем привет! На связи Глеб Гусаров, flutter-разработчик в команде aim digital. Мы занимаемся разработкой цифровых продуктов и сервисов и автоматизацией процессов для бизнеса. В статье рассказываю, как создать файл конфигурации сниппетов и делюсь своей подборкой полезных сниппетов.

Snippet — это шаблон (подсказка в коде), по вызову которого можно быстро вставить готовый код.

Читать далее

Множественное наследование в PHP на собеседовании

Уровень сложности Средний
PHP *
Ожидает приглашения

Стандартным вопросом на PHP собеседованиях выступает вопрос про наследование, может ли класс наследовать нескольким классам или нет. На поверхности, конечно лежит ответ – «нет не может, класс всегда наследует только одному родителю». Далее обычно идет что-то «но если сильно нужно, то можно, так как есть трейты» и на этом все кончается. Как правило, и соискатель и интервьюер множественное наследование в деле не испытывали, и обоим просто добавить тут нечего.

А добавит есть что... Дело в том, что трейт - это механизм повторного использования кода. И этот механизм никак не влияет на типизацию, а без типизации наследование не наследование!

В случае использования обычного наследования мы имеем

Читать далее

Сделай свой код чище: JavaScript

Уровень сложности Простой
Angular *JavaScript *ReactJS *TypeScript *VueJS *
Ожидает приглашения

Часто ли у вас случалось так, что возвращаясь к написанному вчера коду вы уже не можете в нём разобраться? Не можете понять, что делает тот или иной компонент, функция, для чего используется какая либо переменная, не улавливаете как вообще работает ваш код ?

Знакомо, да?

Читать далее

Как внедрить российские сертификаты от МинЦифры в React Native приложение

Уровень сложности Простой
JavaScript *Информационная безопасность *Разработка мобильных приложений *
Ожидает приглашения

Всем привет! Меня зовут Екатерина и я React Native разработчик в компании Fortech.

Осенью 2022 года “Сбер” объявил о переводе всех своих ресурсов на работу с применением российских сертификатов от Минцифры (ссылка на новость). Это изменение затрагивало сервис онлайн-оплаты, поэтому при планировании одного из недавних спринтов я ожидаемо увидела в своем беклоге задачу по внедрению сертификатов в мобильное приложение.

Читать далее

Безопасность использование Python при создании платформ

Уровень сложности Простой
Функциональное программирование *
Ожидает приглашения

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

Читать далее

Win + R всегда от Администратора

Уровень сложности Простой
Системное администрирование *
Ожидает приглашения

Иногда команды в меню «Выполнить» необходимо выполнять с правами администратора, иначе некоторые действия, например, в консоли (cmd.exe) будут недоступны.

Читать далее

Кто такие «Кванты»? И почему им платят до 500 000 долларов в год

Уровень сложности Простой
Python *R *Криптовалюты
Ожидает приглашения

Термин «Квант» охватывает не одну, а несколько специализаций, таких как Quantitative Analyst, Quantitative Developer, Quantitative Researcher и Quantitative Trader. Все они относятся к направлению Quantitative Finance. Направление Quantitative Finance зародилось еще в 1900 году с диссертации Луи Башелье «Теория спекуляции» в которой была представлена модель ценообразования опционов при нормальном распределении. Однако современная версия началась с исследования Эдварда Торпа. Торп использовал теорию вероятности и статистический анализ, чтобы создать систему для успешного выигрыша в Блэкджек, известную сейчас как «подсчет карт». Впоследствии инвестиционные компании с Wall Street начали использовать его исследования для получения прибыли на финансовых рынках, используя статистические методы анализа. Однако популярность профессия начала набирать только в последние годы вместе с развитием Data Science.

Читать далее

Как добавить секцию с различными элементами на макрос шаблонного процессора в phpWord

PHP *
Ожидает приглашения

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

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

Для этого как бы подходит метод setComplexBlock() (ссылка на док'у), но если этому методу передать объект секции выпадет ошибка об отсутствии данного класса в пространстве имён Writer'а для Word2007.

Читать далее

Типы данных

Уровень сложности Простой
Java *
Ожидает приглашения

Типы данных

Примитивные типы. Преобразование данных. Переменные. Литералы.

Читать далее

Продуктовый дизайн. Инструкция по Agile методологии для новичка

Уровень сложности Простой
Usability *Веб-дизайн *Высокая производительность *Дизайн мобильных приложений *Интерфейсы *
Ожидает приглашения

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

В этой статье я хочу рассказать о том, как новичку работать с методикой Agile при создании продуктового дизайна.

Читать далее

Inspections vs PHPStan: так ли плохи инспекции, как их малюют

Уровень сложности Простой
PHP *
Ожидает приглашения

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

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

Читать далее

Если вы выбираете OAUTH, то это ничего не значит. По крайней мере для Яндекса

Уровень сложности Простой
Информационная безопасность *Яндекс API *
Ожидает приглашения

Привет всем.

Хочу поделиться опытом использования OAuth. И более того, немного окунуться в то место куда макают лицом в тупизм Яндекса в этой области. Как оказалось, даже если ты используешь этот метод, то это ничего не значит.

Читать далее

Стресс глазами ребенка. Или нас самих?

Здоровье Научно-популярное Читальный зал
Ожидает приглашения

Мир стремительно меняется. Постоянная тревога о будущем, эмоциональные срывы, ощущение бессилия перед сложившимися обстоятельствами… Всем нам непросто, но что же происходит с нашими детьми?

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

Также с удовольствием отвечу на Ваши вопросы. 

Ну что, пойдем дальше?

Неочевидные вещи в TypeScript

Уровень сложности Средний
JavaScript *TypeScript *
Ожидает приглашения

TypeScript — это строго типизированный язык программирования, являющийся надмножеством JavaScript. Он предлагает несколько функций, которые делают его популярным выбором среди разработчиков. Однако есть некоторые неочевидные вещи, которые разработчики должны знать о TypeScript, чтобы в полной мере использовать его возможности.

Утверждения типа

Утверждения типов позволяют разработчикам переопределять систему вывода типов по умолчанию в TypeScript. Они используются, когда разработчик знает о типе значения больше, чем может вывести TypeScript. Утверждения типа записываются в виде значения или значения как Type.

Читать далее

ЖЦ кастомного UI в андроиде с примерами кода на Котлине?

Уровень сложности Средний
Kotlin *Дизайн мобильных приложений *Разработка под Android *
Ожидает приглашения

ЖЦ (жизненный цикл) кастомного UI-компонента в Android схож с жизненным циклом обычных компонентов (Activity, Fragment, View и т.д.). Жизненный цикл состоит из нескольких этапов: создание, инициализация, изменение, уничтожение и т.д. Каждый этап предоставляет возможность для выполнения определенных действий, таких как установка атрибутов, обработка событий и т.д.

Пример кастомного UI-компонента, который наследуется от View и имеет жизненный цикл:

Читать далее

Практики и инструменты для стартапа

Уровень сложности Средний
DevOps *IT-стандарты *JavaScript *Python *Развитие стартапа
Ожидает приглашения

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

Цель статьи: дать общее представление о “правильных” подходах при создании стартапа.

Читать далее

Разница между Type и Interface в TypeScript

Уровень сложности Простой
JavaScript *TypeScript *
Ожидает приглашения

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

Если Вам лень читать, то можете сразу посмотреть видео на данную тему:

И так, приступим

Решать как Виет! Новый метод решения кубических уравнений

Уровень сложности Средний
Matlab *Математика *Научно-популярное
Ожидает приглашения

В школе все были знакомы с квадратными уравнениями, а кто-то даже и с кубическими игрался. В этой статье/обзоре мы рассмотрим именно решение кубического, которое ещё в 15-ом веке получил математик Франсуа Виет используя прямую подстановку вида x=2acos(\phi). Я же в этой статье использую так называемую p-параметризацию из которой формула Виета следует напрямую, из неё следует не только она, но сегодня поговорим именно о ней.

Начнем с того с чего начал я когда получал все эти формулы. Рассмотрим, как обычно, уравнение такого вида:

Читать далее