Всем привет! А вы знали, что RxJS содержит в себе более 100 операторов? Но если ваш проект использует эту библиотеку - скорее всего вы с трудом насчитаете у себя больше пары десятков. Интересная ситуация, да? Не знаю почему так получается, но сегодня я хочу поделиться реальными примерами использования “редких” операторов. Приступаем!
Разработка
Новости
Как я случайно превратила свой сокращатель ссылок в приманку для мошенников
Пару месяцев назад я запустила сервис y.gy, навороченный сокращатель URL. Вызвано это было личной нуждой: в другом моём проекте, getwaitlist.com, используется множество реферальных ссылок, а доступные сервисы сокращения url не внушали мне доверия. В итоге я решила создать собственный инструмент, который наверняка окажется полезен не только мне.
Я разработала лучший в своём роде сокращатель со всеми возможными примочками, начиная с обширной кастомизации и заканчивая хорошей аналитикой трафика. Это всё, что мне было нужно. По аналогии со многими аналогичными инструментами я разместила интерфейс «Shorten Link» по центру домашней страницы. Регистрация для использования сервиса не требуется. Я сделала доступ бесплатным и неограниченным, опираясь на принцип: «бесплатность – лучшая маркетинговая стратегия». Закончив с настройкой, я без громких заявлений сделала релиз и начала потихоньку продвигать свой проект.
Рисуем эффект «Таноса» на Android (и не только)
Привет! Вопрос мобильным разработчикам: часто ли вам приходится работать с необычным UI? Если вы ответили утвердительно, то я по-доброму вам завидую. В своей повседневной практике мне в основном приходится работать со стандартным набором компонентов и их базовой настройкой. Абсолютно ничего не имею против, но хочется чего-то «эдакого»: кастомных компонентов, написанных с нуля, необычных анимаций и эффектов. Часто подобные вещи вызывают много споров (как среди разработчиков, так и конечных пользователей) а-ля «А на кой оно вообще надо», но лично для меня это ни что иное, как творчество. Кто-то красиво рисует, кто-то красиво поёт, а кто-то пишет красивые уникальные приложения, которыми интересно и приятно пользоваться. И мы, пожалуй, не можем обвинять авторов за бессмысленность «украшательств», как по-хорошему не можем судить художника за его работу.
К чему я – спросите вы. Я отвечу: настраиваю на нужный лад :) В рамках этой статьи мы коснёмся полезной темы и создадим что-то бесполезное в практическом смысле, но несомненно интересное и достаточно уникальное.
Дизайн-разбор ссылок в вёрстке
Привет! Это первая статья из серии разборов элементов веб-вёрстки для дизайнеров интерфейсов (и немного аналитиков). Разберём атрибуты разных тегов, свойства, которые можно к ним применить, поведение в разных обстоятельствах. А главное – как они влияют на то, что видит пользователь на экране (и слышит), и какие неочевидные моменты можно продумать в дизайне заранее.
Начнём со ссылок, которые обозначаются в HTML тегом <a></a>
.
Семантические ловушки асинхронности: Ключи к разгадке и эффективному освоению тем Task, Синхронность, Асинхронность
При освоении новых знаний мы, так или иначе, стараемся связать их с уже освоенными знаниями, в связи с чем при изучении и без того непростых абстракций, в терминах которых заложен свой особый смысл, нередко заходим в тупик.
Такая ситуация имеет место когда начинающий программист знакомится с темами Task, Синхронность, Асинхронность. Ситуация усугубляется тем что зачастую, более опытные коллеги применяют в жаргоне выражения из разряда «Синхронное/Асинхронное выполнение задачи».
Для того, чтобы распутать этот «Гордиев узел», давайте подойдем к проблеме издалека: рассмотрим ее на примере работы симфонического оркестра. Сравним при этом значения проблемных терминов с точки зрения людей, обладающих различной профессиональной ориентацией.
Разбираемся в АА-деревьях (Python)
АА-дерево - это модификация красно-черного дерева с целью упрощения реализации
Как его реализовать и как оно работает на конкретных примерах - вот о чем эта статья
Обзор библиотеки FluentValidation. Часть 4. Сообщения об ошибках. Локализация
Прямо "из коробки" доступны переводы сообщений об ошибках на разных языках для встроенных валидаторов. Есть возможность частично переопределять сообщения об ошибках для встроенных валидаторов под нужную локаль. Также возможно локализовать свои кастомные сообщения об ошибках (например через файлы ресурсов).
Исследуем:
1. Свойство ValidatorOptions.Global.LanguageManager.Culture
2. Свойство CultureInfo.CurrentUICulture
3. Свойство CultureInfo.CurrentCulture
4. Тип LanguageManager
5. Тип IStringLocalizer
Создание генетического алгоритма для нейросети и нейроcети для графических игр с помощью Python и NumPy
Привет, Хабр!
Сегодня я расскажу и покажу, как сделать Genetic Algorithm(GA) для нейросети, чтобы с помощью него она смогла проходить разные игры. Я его испробовал на игре Pong и Flappy bird. Он себя показал очень хорошо. Совет прочитать, если вы не читали первую статью: "Создание простого и работоспособного генетического алгоритма для нейросети с Python и NumPy" , так как я доработал свой код который бы показан в той статье.
Я разделил код на две скрипта, в одной нейросеть играет в какую-то игру, в другой обучается и принимает решения(сам генетический алгоритм). Код с игрой представляет из себя функцию которая возвращает фитнес функцию (она нужна для сортировки нейросетей, например, сколько времени она продержалась, сколько очков заработала и т.п.). Поэтому код с играми(их две) будет в конце статьи. Генетический алгоритм для нейросети для игры Pong и игры Flappy Bird различаются лишь параметрами.
Используя скрипт, который я написал и описал в предыдущей статье, я создал сильно изменённый код генетического алгоритма для игры Pong, который я и буду описывать больше всего, так как именно на него я опирался, когда я уже создавал GA для Flappy Bird.
Вначале нам потребуется импортировать модули, списки и переменные:
SQL в качестве API
SQL в API???
Верно, вы уже успели подумать: «это же безумие, предоставлять API, который принимает SQL». Да, это ужасная идея. Особенно, если API обращён к Интернету. Делать так небезопасно, вы напрашиваетесь на атаки в виде SQL-инъекций. Поддержка такого интерфейса превратится в кошмар, а сама реализация бэкенда будет замкнута на конкретную технологию (это будет какая-нибудь база данных ANSI SQL).
Но справедливо ли такое суждение? Время его пересмотреть!
Linux на ПК получил 4% рынка десктопов. Это новый рекорд, но чем он объясняется?
Доля операционной системы Linux на настольных компьютерах никогда не была большой. Тем не менее она постепенно продолжает увеличиваться. Сейчас, в 2024 г., этот показатель достиг 4% — за три года он вырос на 2%. Что послужило причиной такого активного роста? Об этом — в продолжении.
Как «взвесить» open source: разбираем противоречивые мнения об исследованиях ценности открытого программного обеспечения
В хабраблоге beeline cloud мы уже говорили о модели post-open-source, а теперь посмотрим на исследование, которое подготовили специалисты из Harvard Business School (HBS) при поддержке Linux Foundation. Они представили модель для оценки экономического влияния открытого программного обеспечения на развитие ИТ-отрасли. Это — уже не первая попытка измерить ценность open source software (OSS). Мы решили посмотреть, какие исследования проводили раньше и разобраться, почему свежая работа HBS собрала такие противоречивые мнения.
Поведение Curl на macOS отличается от документированного. Apple считает, что это нормально
tldr: Apple считает, что все в порядке. Я нет.
28 декабря 2023 года в систему отслеживания ошибок Curl был отправлен отчет об ошибке 12 604. Мы получаем множество таких отчетов изо дня в день, так что сам по себе этот факт вряд ли был чем-то необычным. Мы читаем отчеты, проводим расследование, задаем дополнительные вопросы, чтобы увидеть, что мы можем узнать и на что нужно обратить внимание.
Название проблемы в этом случае было совершенно ясным: поведение флага –cacert несовместимо между macOS и Linux, и оно было зарегистрировано Юэдуном Ву.
«Физика для программистов» — как физтехи применяют её в приложениях. Бросок объекта под углом к горизонту
Данная статья входит в цикл, освещающий задачи на моделирование физических процессов на факультете МТФИ ВШПИ. Мы написали приложение на Flutter и сайт на React для моделирования броска, расскажем о нашем опыте в этой статье.
Ближайшие события
Где изучать Javascript в 2024. Бесплатные курсы, книги и ресурсы
Изучение JavaScript в 2024 году по открытым ресурсов имеет несколько преимуществ:
1. Востребованность: JavaScript остается самым популярным языков программирования в мире. Знание JavaScript открывает двери к множеству возможностей в IT-индустрии.
2. Бесплатный доступ: Благодаря бесплатным онлайн-курсам, вы можете изучать JavaScript без необходимости тратить деньги на платные обучающие материалы.
3. Актуальные материалы: Многие бесплатные курсы по JavaScript постоянно обновляются и содержат актуальную информацию о новых технологиях и подходах к разработке.
Почему не стоит покупать курсы и тратить деньги:
1. Доступность ресурсов: В интернете существует огромное количество бесплатных ресурсов, которые позволяют изучать JavaScript на высоком уровне. Покупка курсов не всегда является необходимой.
2. Качество бесплатных курсов: Некоторые бесплатные курсы могут предоставлять высококачественное обучение, сопоставимое с платными аналогами.
3. Мотивация и самодисциплина: Самое важное при изучении языка программирования – это ваша мотивация и самодисциплина. При достаточной мотивации и усердной работе можно достичь успеха в изучении JavaScript, не тратя деньги на покупку курсов.
Таким образом, изучение JavaScript по бесплатным курсам в 2024 году имеет множество преимуществ, особенно при наличии достаточной мотивации и самодисциплины.
Список ресурсов для бесплатного изучения JS.
Переключение-прыжок на цепи к обозначенным последовательным звеньям
Если честно - не хотел делать публикацию по схеме, но молчание участников в темах форума заставило. Идея очень не плохая и дополняет дерево моих работ публикуемых тут от корня (альтернатива свёрточным нейросетям ) до ветвей (последняя - процессор новой архитектуры), сейчас это работа над кэшем мостов. Вкратце - он должен обеспечить работу процессора без счётчика команд и дать выигрыш за отсутствием необходимости осуществления дешифрации адреса извлекаемой команды и за другими вытекающими нюансами.
Ложь по спасение в попытке доказать, что клиент мамонт или как Тинькофф врет и ЦБ РФ и суду
Получил тут возражения Тинькофф по суду и мягко сказать офигел от глупости и наглой лжи Тинькофф.
Так ЦБ РФ Тинькофф пишет
Применение георадара для обнаружения людей под завалами
В статье приводятся результаты опробирования георадара Izh-Terra для обнаружения движущихся людей, в том числе за преградами (стенами). Показано, что георадар может быть применен при поиске заживо погребенных людей в результате землетрясений или ракетно-бомбовых ударов.
Как из Proxxon (дремеля) сделать сверлилку для плат
Привет, Хабр! Тема небольших сверлильных приспособ на основе дрелей и бор-машинок разных форм и размеров, казалось бы, жёвана-пережёвана. Есть и фирменные решения (стойки для дрелей), и любительские конструкции. Однако кое-что пооптимизировать и придумать новые решения всегда можно.
У меня была неплохая бор-машинка Proxxon и мне захотелось сделать из неё сверлильный станок для плат. Я уже имел опыт работы с дремелем на фирменной стойке и собирал другой станочек с более-менее классической компоновкой, и мне в этих вариантах не нравились люфты, при наличии которых твердосплавные свёрла быстро заканчиваются. Кроме того, у меня были временные трудности с доступом в мастерскую и максимум работ было желательно сделать на 3д-принтере. Ну и, конечно же, трата каких-либо денег в этой сомнительной затее была признана излишней.
Ввиду поставленных ограничений использовать рельсовые направляющие было бы перебором, а скользящие на осях не дали бы минимально приличной жёсткости. Есть, однако, нюанс, который позволял задачу упростить: рабочий ход сверлилки всего 1-2см, хотя предварительное перемещение для настройки на задачу могло быть больше. Все эти обстоятельства привели меня к такому решению:
Начало Aircrack-ng и WEF
Предисловие
Рад приветствовать всех читателей статьи! С сегодняшнего дня запускаю новую рубрику моих статей "Без про-v-ода", в серии этих статей я буду обозревать различные методы, фишки, инструменты, устройства и всё что связано в вардрайвингом. Думаю не секрет, что довольно многие скажем так начинали свой путь с того "Как взломать Wi-Fi соседа?", а дальше углублялись в эту тему и находили что-то намного интересней чем просто бесплатный интернет.
Введение
Поскольку эта статья является первой в рубрике, я хочу познакомить тебя с основой инструментов вардрайвинга Aircrack-ng и с инструментами которые ты сможешь использовать практически сразу в Kali Linux. Так же хочу тебя дополнительно познакомить с хорошим фреймворком по атакам на беспроводные сети, который лёгок в установке и настройке, и послужит отличным помощником в изучении атак на беспроводные точки доступа.
Дисклеймер: Все данные, предоставленные в данной статье, взяты из открытых источников, не призывают к действию и являются только лишь данными для ознакомления, и изучения механизмов используемых технологий.
Aircrack-ng
Метод главных компонент (PCA). Принцип работы и реализация с нуля на Python
Метод главных компонент (Principal Component Analysis или же PCA) — алгоритм обучения без учителя, используемый для понижения размерности и выявления наиболее информативных признаков в данных. Его суть заключается в предположении о линейности отношений данных и их проекции на подпространство ортогональных векторов, в которых дисперсия будет максимальной.
Такие вектора называются главными компонентами и они определяют направления наибольшей изменчивости (информативности) данных. Альтернативно суть PCA можно определить как линейное проецирование, минимизирующее среднеквадратичное расстояние между исходными точками и их проекциями.