• Генерация уровней для пазл игры

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

    Хочу поделиться своим опытом решения данной задачи.

    Определим, в чем заключается наша игра:

    Читать далее
  • Garuda Linux — 2 часа радовался как младенец, но…

    Привет, друзья! Хочу поделиться опытом знакомства с Garuda Linux, так как в последнее время являюсь поклонником Arch-подобных KDE, для установки на свой довольно мощный ноутбук Dell G7-7790 (i9 2080RTX Max-Q 64GB RAM) выбирал на сайте одну из 2-х версий: Dragonized Gaming Edition и Dragonized BlackArch Edition.

    Хороший маркетинговый ход! Согласитесь, и одна и вторая сборка звучит очень заманчиво, Linux Gaming - прямо таки манит игроманов, которые всю жизнь сидят на Windows. Да и сам признаюсь, дядька я уже взрослый, но бывает Калду вечерок другой скоротаю с друзьями. Но как то для этих целей все еще Windows больше использую, но Linux уже почти догоняет в плане игр, спасибо Steam.

    А как вам сборка Dragonized BlackArch? Не нужно мучительно долго устанавливать BlackArch из командной строки, размечать диск, ставить графический интерфейс, сама мысль об этом отпугивает юных хакеров. А тут, прям из коробки - вот это клад! Мне захотелось побыстрее попробовать все и сразу, а лучше 2 в 1.

    Для этого решил задать вопрос на Garuda-форуме, мне там ответили, что лучше ставить BlackArch Edition, а игровые приложения и игры можно потом установить через фирменное приложение. Далее в ветку налетели какие то умники, типа зачем тебе совмещать эти 2 сборки не хакерское это дело, игры могут порты открытыми оставить.

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

    Читать далее
  • Установка Ispconfig3 на ubuntu 20.04 (nginx+php-fpm+mysql)

    ISPConfig - бесплатная панель управления хостингом с открытым исходным кодом c возможностью управлять несколькими серверами из одной панели управления. Это один из лучших вариантов для веб-студий, хостинг-компаний, а так же для всех, кто ищет бесплатную панель управления хостингом с широким функционалом. В данной статье мы рассмотрим как выполнить установку Ispconfig3 с nginx, php-fpm и mysql на ubuntu 20.04.

    Читать далее
  • Лайфхаки по продвижению для нишевого бизнеса

    Лайфхаки по продвижению для нишевого бизнеса

    Когда пора начинать играть не по правилам?

    Заниматься продвижением популярных сфер бывает сложно, что уж говорить о маркетинге узкого нишевого бизнеса, продукция и услуги которого могут заинтересовать/подойти небольшому количеству людей. Например, десерты для аллергиков в кондитерском магазине или авторские вязаные куклы амигуруми. Безусловно, плюсами нишевого бизнеса является низкая конкуренция, а минусами то, что привычные методы маркетинга, могут не работать. Если компания выбрала для себя микронишу, она может быть изначально обречена на провал и банкротство, так как товары и услуги могут и вовсе не найти своего потребителя. Мы же в данной статье подскажем лайфхаки по продвижению для компаний, имеющих небольшую целевую аудиторию. И первым шагом к успешным рекламным компаниям, как бы это банально не звучало, будет её точное определение.

    Читать далее
  • Модульные ИБП в современных реалиях

    Необходимость глобального сокращения негативных последствий от перерывов в электроснабжении вынуждают применять различные методы для решения проблемы надежности электроснабжения потребителей, реализованные на базе систем бесперебойного питания. Использование источников бесперебойного питания обусловлено обеспечением защиты крайне важного электрооборудования от всех нарушений электропитания, от его пропадания до радиочастотных помех и нелинейных искажений. На сегодняшний день максимальную защиту критичной нагрузки способны обеспечить источники бесперебойного питания класса «on-line» с модульной архитектурой. Модульные системы выделены в отдельный сегмент на электротехническом рынке. Сравним «ABB» и «Riello».

    В чём главные отличия...
  • Наша служба и опасна, и трудна, и на первый взгляд, как будто не видна…

    Очень много статей на тему "Manjaro - альтернатива Windows 10" появляется в интернете. В одном из ответов опубликованных на такие публикации, ничего не рассказано о истории Linux, предлагаю разобраться в истории и понять, почему с Linux связывать свое будущее не стоит и Windows 10 - единственная операционная система на сегодняшний день, не считая MacOS.

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

    2003 год. RedHat принимает решение о закрытии RedHat Linux и разделении дистрибутива на две версии: Fedora, которая поддерживается сообществом, и Red Hat Enterprise Linux, который имеет закрытую платную поддержку. Казалось бы, какое дело кому до тех событий? В те далекие времена поддержка Linux сторонним программистом, у которого еще недостаточно денег на капризы сообщества Linux, еще как-то была возможна. Программист мог спокойно собрать одну RPM-ку, одну DEB-ку, один пакет для Arch Linux, один для Слакваря. И на этом его работа заканчивалась. Состав дистрибутивов был весьма однородным. Но наступил 2003 год, и в итоге те, кто разрабатывал дистрибутивы на основе Red Hat, вынуждены были с ноля создавать свою структуру. В результате чего мы имеем Alt Linux, Mageia, Rosa, Opensuse, в которых состав дистрибутива в каждом релизе - свой. В итоге нужно 4 раза непонятно для чего адаптировать свою программу под состав каждого дистрибутива. Посмотрим на ситуацию глазами программиста, который только вышел из ВУЗа и у которого в столе есть только сбережения бабушки. Станет ли он вкладываться в платформу с такими капризами, которые непонятно как монетизировать? Вряд ли... А ведь основа Windows - это стабильный Win32 API, который может использоваться для разработки различного уровня программных продуктов, как крупного ПО, вроде Microsoft Office, Adobe Photoshop, так и малого ПО, вроде казуальных игр. Но политигрища для сообщества Linux оказались важнее, чем появление для начала хотя бы малого по в Linux.

    Читать далее
  • Свежие идеи в математике: неклассические арифметики и разнообразия

    Каким может быть график, скажем, линейной функции вещественного аргумента f(x) = x + c, c – константа, если операцию сложения определить иначе, нежели обычно? А каким будет множество решений уравнения x + c = d с неизвестным x в таком случае?

    Читать далее
  • Портрет предпринимателей России

    По данным GEM 2019-2020гг.

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

    Читать далее
  • Оптимизация хранения больших данных для быстрого поиска

    В этой статье я хочу представить мой алгоритм оптимизации суммирования ряда чисел в массиве (на примере контейнера map). 

    Итак, дано задание

    Есть некая электронная книга, которую одновременно читает неограниченное количество читателей. Нужно сделать так, чтобы любой читатель в любой момент мог проверить, сколько еще читателей читают ту же страницу, что и он. Предложена наивное решение хранить в map<int,int> в качестве ключа номера страниц, в качестве значения- количество прочитавших их пользователей. Конечно, при таком подходе программа медленно работает с большими тестами потому, что количество итераций по контейнеру map равняется числу прочитанных пользователем страниц. То есть, если пользователь прочел 1000 страниц из 1000 возможных, то в цикле нужно будет сделать 1000 итераций, и это сильно замедляет программу.  

    Чтобы уменьшить время работы программы, нужно упростить алгоритм подсчета пользователей. В этом алгоритме я отдельно считаю, сколько пользователей прочли столько же полных сотен страниц, как и искомый читатель, и затем уже постранично суммирую всех, кто прочел столько же страниц из той сотни, на которой сейчас находится читатель. Такой алгоритм позволяет вместо 999 итераций (если пользователь читает 999-ю страницу) сделать всего 108 (9 итераций сотням и 99 по единичным страницам). 

     Это вкратце, теперь перейдем к подробному описанию и для начала приведу код.

    больше информации
  • Устранение проблем с развертыванием приложений через SCCM из-за разрушения базы WMI

    Часто приходится выяснять причины, почему не разворачивается то или иное приложение через SCCM, хотя ПК находится в соответствующей коллекции и прошло достаточное количество времени.

    Принудительное же развертывание (Application Deployment Evaluation Cycle) и обновление групповых политик на ПК (Machine Policy Retrieval and Evaluation Cycle) через консоль SCCM ни к чему не приводят:

    Читать далее
  • Страшный сон: установка сертификата с Рутокена на жеский диск MacOS

    Спойлер: Установка заняла 5 минуту. 

     Изучив все просторы интернета по установке, приступать к этому делу было страшно. Начиная с установки Крипто-про и заканчивая работой в Терминале MacOS. Конкретной инструкцией я не нашла, поэтому решила написать и поделиться с вами. Ну что, Let’s go!

    Читать далее
  • История о том как я запускал свой форум

    Наверное кто то считает, что форумы это уже прошлый век и сейчас в тренде социальные сети. На самом деле все так и есть:). Но не смотря на это, форум это точно такой же сайт, как и любые информационники. Люди по прежнему попадают на форумы с поисковиков и читают на них статьи. Но не многие регистрируются на форуме и там сидят, как это было раньше. Сейчас таких людей все меньше.

    Читать далее
  • Python — средний цвет

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

    Суть программы: на выход дать средний цвет и фото out.jpg

    Читать далее
  • ROSA и ОСь репозитории CentOS 7

    Всем привет.

    Хочу с Вами поделиться информацией как к «российским» ОС прикрутить репозитории CentOS и заменить установленные пакеты.

    Всё началось, когда нашу организацию обязали перейти на «российское» ПО. В первую очередь начал искать серверные ОС. Как оказалось наши разработчики предлагают ОС на базе Linux, а в организации 100% windows платформа. Организация не маленькая, примерно 150 серверов только в одном округе.

    После изучения рынка «российских» ОС выбор пал на ROSA и ОСь. ROSA это платная ОС и стоит не маленьких денег, но так как не очень уж хочется платить за воздух я остановился на ОС ОСь. Далее начинается самое интересное далее. У ОСи добавлен репозиторий от РосТех и в версии пакетов добавлена как правило одна буква:

    1. Пакет от ОСи — openssh-6.6.1p1-33z3.el7.x86_64
    2. Стандартный пакет CentOS — openssh-6.6.1p1-33.el7.x86_64

    Первопроходцем должен быть AD на samba4, но тут возникает проблема. При установке зависимостей для samba4 yum не чего не может сделать с пакетами ОСи и соответственно пакеты не устанавливаются из-за неразрешнных зависимостей.

    Все действия я делал на ОС ОСь minimal.

    В общем решение этой проблемы следующее:

    1. Необходимо закоментировать существующие репозитории.
    2. Создать новый файл с CentOS'совскими репозиториями.

    vi /etc/yum.repos.d/centos7.repo

    Вот сам файл centos7.repo
    Читать дальше →
  • Файнтьюнинг трансформера GPT-3 на корпусе поэтических текстов

    Я пишу стихи еще со школьных лет. Но в последнее время вдохновение приходит реже и реже. А друзья иногда просят почитать "что-нибудь из нового". Поэтому я решил попробовать обучить нейросеть писать стихи в моем стиле.

    Читать далее
  • Шьём HDMI-USB Video capture

    Где-то в нете читал, что HDMI-USB Video capture 2.0(кит) на ms2109 можно прошить eeprom от HDMI-USB Video capture 3.0(кит) и качество улучшится. Но я так и не нашел слитых прошивок. Это скорее не обзор, а отчет о проделанном эксперименте. Надеюсь он кому-то поможет. Были куплены несколько карт для теста.

    Читать далее
  • Testproject.io Краткий обзор

    Добрый день, дорогие пользователи ресурса Habr,

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

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

    TestProject - это бесплатная платформа для тестирования, которая упрощает тестирование мобильных и веб-приложений.

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

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

    Помимо этого ребята также разработали гибридный оффлайн режим

     2. Еще одна замечательная особенность TestProject заключается в том, что он поддерживает множество операционных систем, таких как Windows, macOS, Linux, iOS, Android, веб-сервисы.

     3. Возможность тестировать на любых браузерах и на любом устройстве.

    4. Можно интегрировать тесты в конвейер CI/CD с помощью непрерывных интеграций Jenkins, Circle CI, TeamCity или любых других используемых вами инструментов для сборки билдов на движке TestProject Rest API.

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

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

    TestProject построен на основе стандартных инструментов автоматизации с открытым исходным кодом, таких как Selenium и Appium. В отличие от этих инструментов, работающих самостоятельно, он устраняет все сложности, связанные с установкой и управлением драйверами для каждой ОС и браузера, которые вы используете.

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

     Подробные преимущества TestProject:

    1. Smart Test Recorder

    Умная записная книжка:

    На мой взгляд, эта функция является уникальным преимуществом этого сайта. Для создания тестов не нужно писать ни единой строчки кода. С помощью этой функции вы можете создавать автоматические тесты, просто записывая шаги, выполняемые в тестировщике.

    Каждый шаг, который вы выполняете, будет записываться как тест, и в фоновом режиме будет автоматически генерироваться код Selenium или Appium.

     2. Test Recorder

     Запись тестов:

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

    3. Mobile Screen Mirroring

    Скан Экрана Мобильного:

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

     4. Element Inspector

    Утилита Инспектор:

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

     5. Element Explorer

    Утилита Проводник :

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

    Test Modifier

     6. Редактор тестов:

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

     Другие функции, делающие рекордер еще более мощным:

     Он предлагает всяческие дополнения по ходу процесса тестирования:

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

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

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

    На сайте есть множество регулируемых дополнительных утилит, доступных в зависимости от ваших потребностей. Например, если вы работаете с jquery, этот инструмент предлагает вам 4-5 надстроек jquery, которые вы можете использовать. Если вы хотите сгенерировать случайные идентификаторы электронной почты и пароли для тестирования, вы можете использовать утилиту Generate Random Credential.

    Некоторые из представленных утилит- это поиск элементов Advance, действия JS и общие расширения. Одним щелчком по кнопке установки вы можете получить любое дополнение, которое хотите, в мгновение ока. Сохраните его в репозитории тестового проекта, и он будет готов для использования любым членом вашей команды.

    Функция генерирования кода:

    Эта функция позволяет вам генерировать код Java из iOS, Android и веб-сервисов. Вы можете вносить любые изменения в код, расширять тесты и повторно загружать их как закодированные в TestProject.

     Для тех, кто не хочет использовать рекордер, но сначала хочет кодировать свои тесты, TestProject предлагает SDK для Ядро Java и .NET. SDK предоставляет удобную стандартизированную оболочку для Appium и Selenium.

    Чтобы подтвести небольшой итог под большим количеством технической информации изложенной выше мне бы хотелось отметить несколько плюсов в использовании данной платформы для тестирования:

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

    2. Среда для совместной работы: вы можете легко добавить неограниченное количество членов команды в свой проект и наслаждаться плавной работой, американцы в таких ситуациях любят говорить smooth-work. Все, что вам нужно сделать, это просто добавить их адреса электронной почты и разрешения на доступ, и они смогут сразу же начать вносить свой вклад в проект.

    3. Максимальное удобство для пользователя: юзабилити этого инструмента просто потрясающе. На каждом этапе вас будут сопровождать всплывающие подсказки и короткие руководства, которые помогут вам в работе с этим инструментом и изучении его функций.

    4. Мне очень понравилась вкладка внизу, что-то вроде чата, пользовательской поддержкой попользоваться мне не представилось возможности, но уже наличие такого окошка вселяет уверенность!

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

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

     

    Крепкие пять баллов за исполнение.

    Читать далее
  • Про бесплатный сыр, одну популярную соц. сеть и поиск сокровищ в биткоинах

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

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

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

    Читать далее