Для меня загадка, почему программисты не могут оценить бизнес компании, в которую устраиваются. Почему у них прямо разрыв между тем, что компания должна быть прибыльной ежегодно, и тем, что она ему платит и повышает зарплату из-за этого, чтобы удержать программиста.
Пользователь
Как Минковский во Flappy Bird играл
Многие пробовали играть во Flappy Bird. Редко кому удается пролететь за 50 труб, очень немногие долетают до сотни-двух. Некоторые пробовали создать бота, в том числе на хабре. Удивительно, но даже у самого успешного бота, которого можно найти на просторах интернета, результаты не очень-то впечатляют – что-то около 160 очков. Возникает вопрос, а можно ли вообще играть во Flappy Bird бесконечно долго? Или всегда с некоторой, пусть и небольшой, вероятностью может встретиться последовательность препятствий, которую даже опытный игрок/идеальный бот не сможет преодолеть?
И тут на помощь приходит математика. Давайте найдем выигрышную стратегию для Flappy Bird.
Как мы научили заводчан строить красивые инженерные отчеты из Jupyter Notebook на Python
Была у нас тут история, когда легкий перфекционизм помог привести в порядок конструкторскую документацию и регулярно экономить инженерам кучу дней на прохождение бюрократических процедур. В ее основе – создание системы управления расчетными данными и переход от трудночитаемых и трудноинтегрируемых отчетов Mathcad к гибкой связке Jupyter Notebook с Python и Teamcenter. Но основной рассказ будет про то, как преобразовывать и экспортировать математические формулы, таблицы и другие элементы из Jupyter в красивый и удобный вид.
Взламываем транспортные карты: чит на бесконечные деньги
Этот парень открыл все турникеты на станции. Вы до сих пор считаете, что все хакеры вредны?
Начну с простого вопроса: кто из вас пользуется общественным транспортом? А кому нравится за него платить? Если такие все же найдутся, то могут смело переставать читать статью. Для остальных у меня есть рассказ о том, как четверо старшеклассников из Массачусетса взломали местную транспортную систему.
Жителям Бостона статья поможет получить бесплатные поездки, а для всех остальных этот материал будет неплохим уроком по реверс-инжинирингу. Ну или, по крайней мере, вы узнаете любопытную историю.
Взлом YouTube для быстрого скачивания видео
Но главным врагом для этих программ остаются даже не правообладатели, а злобная корпорация Google, которая постоянно вносит изменения в YouTube API, чтобы
Сами программки — просто технические инструменты для скачивания общедоступного контента, они ничего не воруют и не пиратят. Просто доступ происходит нестандартным способом, который не предусмотрен официально. Посмотрим, как это делается.
Алгоритм роя частиц
Введение
Стая птиц представляет собой прекрасный пример коллективного поведения животных. Летая большими группами, они почти никогда не сталкиваются в воздухе. Стая двигается плавно и скоординировано, словно ей кто-то управляет. А любой, кто вешал в своем дворе кормушку, знает, что спустя несколько часов его найдут все птицы в округе.
Чем полезен DevTools тестировщику: об основных вкладках и инструментах
Зачем тестировщику DevTools и что с ним делать? Разбираем, как начать работу с инструментом, какие вкладки использовать, как назначить задачу для багфикса, чтобы разработчик был доволен. И кое-что ещё.
JetBrains выпустила новую IDE для работы с документацией Writerside
Инструмент используется в JetBrains уже более 10 лет, и, по словам команды, продукты JetBrains, от языка программирования Kotlin до IntelliJ Platform SDK, используют Writerside для создания своей документации.
Асинхронный API First
API-First — один из популярных подходов к проектированию серверных приложений. Для обеспечения этого подхода создано множество программных продуктов. Однако сложно найти продукт, который поможет реализовать этот подход для серверных приложений, использующих брокеры сообщений в качестве средства интеграции — такие, как Apache Kafka, RabbitMQ, Apache ActiveMQ. Мы решили это исправить и представляем вам свое решение AxenAPI.
Общий буфер обмена для Windows/Linux систем, с активацией по требованию
Виртуальные машины плотно вошли в мое рабочее окружение, VMware, VirtualBox, Hyper-V и RDP. Наличие поддержки у них общего буфера обмена — это удобная возможность обмена данными между системами. Но есть и ряд минусов:
- Автоматическая синхронизация буфера обмена далеко не безопасна, можно случайно «засветить» чувствительные данные в другой системе.
Лучший Wi-Fi-адаптер для Kali Linux
Хочешь взломать или проверить безопасность своего Wi-Fi? Тебе понадобится сам пк с установленной kali и USB-адаптер беспроводной сети с Wi-Fi-картой (набором микросхем), который поддерживает внедрение пакетов и режим монитора
Настройка авторизации через ssl сертификат на уровне nginx
Привет уважаемые, хабровчане!
Иногда возникает потребность выдать доступ пользователям только к одному веб ресурсу в компании. Самый очевидный вариант сделать это через урезанный VPN, но тут возникают препятствия в виде девайсов, с которых подключаются пользователи, и качество интернета, которым они пользуются. OpenVPN, который мы пробовали использовать для этих целей, не дал желаемого результата, подключение было медленным и нестабильным. Поэтому было найдено альтернативное решение.
Docker Desktop для Ubuntu: установка, минусы и альтернатива
Всех приветствую. Переустанавливая Убунту, подумал, почему бы не попробовать Docker Desktop в этот раз, ведь он уже должен быть в приемлимом для использования состоянии. Для чего он может пригодиться, спросите вы? Как-то я насоздавал кучу volumes и разных images примерно одного и того же, и чистить это было не в удовольствие, хоть и есть специальные команды для этого, но зачем до такого доводить, не лучше было бы иметь какой-то UI, чтобы следить за всем и по необходимости сразу удалять? Казалось бы, раз на Linux с docker нет никаких проблем, то и с Docker Desktop не должно быть, но не тут то было...
Xray на Keenetic / Xkeen
Утилиту для поддержки Xray на роутерах Keenetic — Xkeen.
Весь код написан на чистом shell и открыт на GitHub.
Собирает Xray под Ваш Keenetic на Entware.
Доступны GeoIP и GeoSite от AntiFilter, AntiZapret и v2fly.
Автоматически обновляет в указанное время Xray, GeoIP и GeoSite.
Релиз Bun 1.0 (новый runtime для JavaScript )
Представляем Bun версии 1.0.
Bun — это быстрый и универсальный набор инструментов для запуска, сборки, тестирования и отладки JavaScript и TypeScript кода (от одного файла до fullstack-приложения). Сегодня Bun стабилен и готов к продакшену.
Скрипты для wireguard
Эти скрипты генерируют серверные и клиентские файлы конфигурации, а также HTML файлы с QR кодом для настройки мобильных клиентов.
Написаны были довольно давно, когда я снова запутался в ключах при ручной настройке. Вдруг кому тоже пригодятся. Возможно, есть более другие конфигураторы, но наличие собственного закрыло мои потребности в расширении кругозора. Впрочем, где-то видел нечто для организации защищённой локалки на wireguard, но ссылку тогда не сохранил, а теперь никак не могу найти.
Новые целочисленные типы для языка C++
Тем не менее, я считаю, что здесь есть место для инноваций. Позвольте мне рассказать о трех новых семействах целочисленных типов, которые я хотел бы увидеть в C++.
Как сохранить команду разработчиков, если не хочется платить больше?
Полтора года в нашей компании длился эксперимент, в котором участвовали 150 сотрудников. Он показал, что при разнице уровней оклада в 10-14% по сравнению с рынком разумеется не в нашу сторону специалисты от среднего до высокого уровня готовы продолжать работу при условии наличия программы заботы об их здоровье.
Иными словами, если вы не можете или не хотите платить своим сотрудникам столько, сколько платит рынок, и это "нежелание" не превышает 14%, то вы можете выдавать витамин D, что сокращает выгорание, и как следствие — текучесть кадров.
Обезличенный вызов делегатов в C#
Как говорится: сидел, никого не трогал, программировал на C#, и тут родилась «хитрая» нужда. В рамках одного из своих проектов мне понадобился механизм обезличенного вызова делегатов, который бы позволил организовать их универсальные хранение и вызов. Также, главной целью разработки являлся уход от необходимости вызова методов конкретных экземпляров объектов через рефлексию (рефлексия используется только на этапе инициализации), что в конечном счете сильно увеличило производительность.
Обезличенный вызов делегата - вызов делегата с известным количеством параметров, но с неизвестными типами параметров, где каждый тип параметра представлен базовым классом Object. Пример: Action<string, int> преобразуется в Action<object, object>.
Быстрый консольный ввод на .NET
Во времена, когда .NET был закрытой технологией только для Windows, за ним и языком C# закрепилась репутация платформы, которая отлично подходит для решения бизнес-задач, но непригодна для соревновательного программирования и написания высокопроизводительного кода.
Часто приходится слышать, что "шарпы медленные", особенно в контексте алгоритмических задач, например с timus.online и codeforces.com. И, увы, не только слышать, но и сталкиваться с реальными проблемами, связанными с особенностями платформы, получая Wrong Answer, Runtime Error, Memory Limit, Time Limit при корректном алгоритме.
Большинство этих проблем кроется в особенностях консольного ввода и вывода. Да и часто куда проще написать cin >> n
или sc.nextInt()
, чем int.Parse(Console.ReadLine())
или Console.ReadLine().Split().Select(int.Parse).ToArray()
, из-за чего выбор падает на другой язык.
Далее я расскажу о распространённых проблемах с консольным вводом-выводом в .NET, и о том, как сделать ввод быстрым и удобным.
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity