• Обзор влияния компьютерных игр

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

    Если попытаться разделить культурную деятельность человечества по видам, можно условно выделить три основных типа: текст(знаки), музыка(звуки) и графика(изображение). В той или иной степени, все три этих вида искусства являются базовыми в культурной жизни человечества, как по отдельности каждый, так и в различных комбинациях друг с другом составляют виды различных искусств — литературу, музыку, театр. Искусство меняется в зависимости от технического развития общества, с появлением новых технологий возникают новые типы как уже существующих видов искусства (например, новые жанры музыки с появлением новых музыкальных инструментов), так и кардинально новые (как кинематограф с изобретением видеопленки).
    Читать дальше →
  • Кодогенерация для создания go-sqlmock'ов

    SQL-mock'и нужны, чтоб заменять собой подключения к настоящим БД в тестах. Действительно, очень неудобно держать сервер СУБД только для прогона тестов. Особенно если вы не пишете код работы с БД и она вам не нужна, или если вы — CI.


    Читать дальше →
  • WebCode — библиотека для Python, для написания Фронтэнда

    Введение


    Недавно я наткнулся на интересную библиотеку на GitHubWebCode. Библиотека позволяет писать на Python CSS и HTML код. Ранее я не встречал аналогов, поэтому решил изучить WebCode поподробнее.

    Начало


    Чтобы скачать WebCode нужно перейти по ссылке, а далее нажать на 'Clone or download' => 'Download ZIP'. (После извлечения файла, перенесите его в папку, где будете писать код)

    Итак, перейдём к делу.

    Первые строки, которые надо написать это:

    import webcode as wb
    wb.startuse(name='Test', header='Testing WebCode', css='forTesting', lang='ru')
    wb.finuse(True)

    В начале импортируем библиотеку, как wb. А дальше пишем базовую функцию startuse().

    Первый аргумент в этой функции — название HTML файла, который библиотека будет генерировать, второй — имя вашего сайта во вкладке, третий — название CSS файла(если не собираетесь его создавать, напишите css=0) и наконец четвёртый аргумент отвечает за язык, на котором Вы будете писать текст.
    Читать дальше →
  • Единственный рабочий способ запустить стартап-единорог и почему у тебя тоже получится

    Что нам стоит единорог построить


    Четыре месяца назад я завел Telegram-канал Единорог дня, в котором ежедневно препарирую очередной стартап с миллиардной оценкой из списка The Global Unicorn Club в поисках универсальных принципов их фантастического финансового успеха.

    За это время накопилась любопытная статистика нечестных стартовых преимуществ единорогов, или, другими словами, способов запуска стартапа на миллиард, которых, вначале, я насчитал 10:

    10 способов запуска стартапа на миллиард


    1. Самый простой: выбрать перспективный проект и технично превратить в единорог контролируемыми инвест-раундами. Кейсы: Grammarly, Intarcia Therapeutics и Global Switch.
    2. Самый надежный: выделить в единорог растущее бизнес-направление корпорации. Кейсы: Ant Financial, JD Health, Beike Zhaofang и Ziroom.
    3. Самый денежный: научиться финансировать единороги в инвестиционном банкинге и стратегическом консалтинге, после чего запустить собственный. Кейсы: Babylon Health, Gojek и Roivant Sciences.
    Читать дальше →
  • Как бороться со скликиванием в контекстной рекламе: проблематика и методы

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

    Как с этим бороться?


    В сети невозможно найти хороший сервис, который может защитить от скликивания.

    Следует отметить, что антифрод активно применяется в сфере банковского дела. Но что касается рекламного сектора, никто не может предложить своё решение. Как варианты, на рынке представлены сервисы ppcprotect, clickguard или их аналоги. Но к сожалению, все их возможности заканчиваются обычным блокированием IP адресов, от которых исходит «мусорный трафик». На деле рекламодатель получает от подобных сервисов минимальную пользу. Это связано с тем, что серьёзный конкурент, понимающий принцип ботов, создаёт «набеги» при помощи динамического IP или же с использованием VPN. Поэтому ppcprotect и clickguard практически не спасают в таких ситуациях.

    Контекстологи могут вручную анализировать посещения при помощи вебвизора, отделять часть посетителей и блокировать их. Такой подход может помочь, но только в том случае, если «враг» не меняет IP адрес. Также следует учитывать потраченное на мониторинг заходов время и эффективность его использования. А если представить, что в месяц на это тратится более 50000 рублей, возможность выполнять подобную работу очень сомнительна. Существуют и такие конкуренты, которые при помощи ТОРа раз за разом посещают ваш ресурс и оставляют заявку. В результате реклама становится неэффективной, а служба поддержки и приёма заявок становятся буквально парализоваными.

    Что не так с этими способами?


    Данные инструменты имеют ряд недостатков. Главный их которых то, что они обнаруживают далеко не весь поток «мусорного трафика».
    Читать дальше →
  • Какие отрасли и технологии начнут стремительно развиваться после решения проблемы COVID-19

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

    Всё громче слышны голоса экспертов о том, что наш мир уже не будет прежним. Что даже когда все волнения улягутся, мы будем жить в новых условиях — более обособленных, мобильных и технологичных. Я хочу порассуждать именно про технологии. Сделать прогноз нашей ИТ-жизни в недалёком будущем, если можно так выразиться.

    Итак, что и кто будут «на коне».
    Читать дальше →
  • Идеи по использованию дополненной реальности в сфере Культуры и Искусства

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

    В данном посте я подготовил обзор проектов с дополненной реальностью, которые могут быть применены для музеев, галерей и других культурных мест. Надеюсь, эта статья поможет придумать новые веяния для сферы Культуры и искусства и сделает дополненную реальность еще ближе для обычных пользователей.
    Читать дальше →
  • Параллельное кеширование

    Пару лет назад занимался разработкой (PHP/Laravel) электронной библиотеки. Маркетинг работал, количество активных пользователей росло, функционал расширялся. Вследствие чего бэк стал более загружен, количество запросов, которые инициализируют большие выборки и отъедают ресурсы, росло. Время ответа увеличивается, пользователи ждут и нервничают, что не позволительно.


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

    Читать дальше →
  • Ядерная защита в Astra Linux SE 1.6 и как ее включить. Ядро Hardened

    Как защититься от ядерных эксплоитов эксплуатирующих уязвимости ядра Linux? Рассмотрим как это реализовано в отечественной ОС Astra Linux SE 1.6.

    Читать дальше →
  • Работа с DynamoDB SDK для Unity

    Предисловие


    В определённый момент при разработке игр и крупных приложений придётся столкнуться с такой частью как сеть. В моём случае, при разработке онлайн шутера, это было очевидно в самом начале. И естественно, во время любой разработки подобных проектов, у многих возникают проблемы. У меня они возникли не сразу, а только после того, как я занялся базой данных. О том что за проблемы и как их решить — далее…
    Читать дальше →
  • Моя первая работа для портфолио 3d Artist

    Приветствую всех, кто заинтересовался данной статьей!


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

    В этом посте я расскажу о пайплайне создания своего проекта Bunker phone, смоделированного в Blender и текстурированного в Substance Painter. Приятного всем чтения!

    1.Идея

    Читать дальше →
  • Тонкое искусство управления IT командой

    Урок поимки духа. Успех гарантируется


    «объясню почему ты здесь… ты все время чувствовал, что мир не в порядке.
    Ты не можешь выразить это, но ощущаешь» из к/ф Матрица

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

    Читать дальше →
  • Простой-сложный kNN

    Введение


    Большинство исследователей данных знакомо с алгоритмом k ближайших соседей и легко могут применить его, импортировав соответствующий класс из scikit-learn:

    from sklearn.neighbors import KNeighborsClassifier, KNeighborsRegressor

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

    from sklearn.preprocessing import StandardScaler, MinMaxScaler
    
    ss = StandardScaler()
    X_scale = ss.fit_transform(X)

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

    Капитан Очевидность – персонаж, олицетворяющий человека, который говорит банальные вещи, которые все кроме новичков давно знают и без него

    Читать дальше →
  • Настоящий динамический массив на Turbo Pascal

    Доброго времени суток!


    Если вы студент и вам надо срочно скатать — листайте вниз к программе

    Данная тема не имеет ничего общего с реальностью, ведь язык Pascal никем не воспринимается всерьез, тем более Turbo Pascal. Однако он еще используется в обучающих целях в ВУЗах. И сегодня после написания лабораторки я обнаружил, что про динамический массив в интернете информации очень мало — не нашел ничего. (а надо было очень сильно)

    Читать дальше →
  • Почему бы не сделать свой Lisp для веба?

    Вот есть JavaScript — прекрасная вещь. И прекрасная она по большей части потому, что дебаггер и отладочные инструменты встроены в каждый Браузер. Без дебаггера и инспектора DOM-дерева было гораздо тяжелее что-либо разрабатывать на JavaScript.


    Вот я и решил запилить свой Lisp, но с хорошим дебаггером. Взял маленький, простенький littlelisp и отрефакторил его на 99%. Заточил под пошаговое выполнение и создал свою IDE, простую но работающую.


    В итоге получилось следующее.


    image
    Читать дальше →
  • RE: Пользователю все это не нужно! Хватит пропагандировать Линукс

    Разбор статьи Пользователю все это не нужно! Хватит пропагандировать Линукс


    Автор начинает со слов:


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

    И вот тут сразу возникает ложная предпосылка — искусственное деление на обычных и продвинутых пользователей.


    По какому признаку можно различить обычных пользователей от продвинутых среди следующих групп?:


    • Студенты пед института
    • До / Школьники
    • Студенты мат-меха / физ-теха
    • Журналисты
    • Кибер дружинники
    • Дизайнеры
    • Тетя "Валя", пенсионерка
    • Прапорщик Петров
    • Программисты
    • Бухгалтер Маша, которая подрабатывает php программистом
    • и т.д

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


    Давайте разбираться, что не так

    Читать дальше →
  • Эпопея начинающего web разработчика в мире мобильных приложений

    Исходные условия


    Начну с того, что я «начинающий web разработчик». Изучил html, css около полу года назад и как-то не слишком стремился изучать JS. Работаю в компании где моих скудных знаний хватает. Но как-то пришел момент, когда мне позвонил мой научный руководитель с предложением сделать мобильное приложение, в котором будет его книга и несколько видео к ней. Я согласился, еще не зная, что мне предстоит пройти.


    Проблема использование онлайн сервисов


    Начал я с поиска быстрых способов сделать приложение. Наткнулся на сервис AppsGeyser, в нём есть графический интерфейс, в котором я быстро набросал приложение. Сервис далёк од идеала, много чего реализовать не удалось, но зато я быстро получил apk файл и был готов к публикации его в play макете. Но меня постигла неудача – тонны ошибок посыпались при попытке загрузить apk. Исправить их я не мог, так что откинул эту затею и начал искать иные варианты реализации моей задачи.


    Одностраничное приложение на JavaScript в apk

    Читать дальше →
  • Именованные кортежи. Почему не стоит их использовать

    Про пользу применения именованных кортежей ранее уже писалось.

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

    Наука начинается там, где начинаются измерения.

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