Search
Write a publication
Pull to refresh
0
0
Vasiliy @JMS

Пользователь

Send message

WPF: Несколько параметров для конвертера

Reading time4 min
Views17K
В первой своей статье, посвящённой конвертерам, я описал способ использование конвертеров в качестве расширения разметки. Продолжая тему конвертеров, хотелось бы рассказать о параметрах конвертера.
Читать дальше →

Сравнение строк в C# (по умолчанию)

Reading time10 min
Views56K
Часто бывает, что мы соединяем 2 коллекции или группируем коллекцию при помощи LINQ to Objects. При этом происходит сравнение ключей, выбранных для группировки или связывания.
К счастью, стоимость этих операций равна O(n). Но в случае больших коллекций нам важна эффективность самого сравнения. Если в качестве ключей выбраны строки, то какая из реализаций сравнения будет использована по умолчанию, подходит ли эта реализация для ваших строк и можно ли, указав IEqualityComparer<string> явно, сделать эту операцию быстрее?
clients.Join(orders, 
                   c => c.Name, 
                   o => o.ClientName, 
                   (c, o) => CreateOrederDto(c, o));

Как же выбирается реализация компаратора, если пользователь не указал её явно?
Пороемся в исходном коде coreclr

Анализ хостеров и их тарифов на виртуальные серверы

Reading time4 min
Views25K
Привет, меня зовут Сергей, я редактор Хостинг Кафе. Каждый день я с утра до ночи пишу хостерам и задаю им много вопросов о них самих и их тарифах. Совсем недавно количество хостеров, которые представлены в каталоге HOSTING.cafe превысило 250, поэтому я решил сделать исследование о хостерах и их тарифах на виртуальные серверы, систематизировав информацию по различным параметрам. Если представленный материал окажется интересным, можно провести аналогичные исследования для виртуального хостинга, SSL сертификатов, лицензий и места для резервных копий.


Читать дальше →

Как продать приложение, которое не приносит прибыль? И сколько оно стоит?

Reading time5 min
Views52K
Давайте посмотрим правде в глаза — заработать на инди-приложении становится все сложнее. Под катом я расскажу, как можно продать ваше приложение, если оно перестало приносить прибыль, и сколько можно получить. В долларах :)
Читать дальше →

Как я написал игру за 3 года

Reading time3 min
Views55K
На днях я закончил создание своей небольшой игры и хочу описать вам путь, по которому я прошел. Хочу сразу оговориться, что моей главной целью было получение знаний и опыта в создании 3D игр для Android, и этого я успешно добился. По этой же причине я не использовал готовые движки.

image

Я начинал с создания карт для Counter-Strike: сделал карту с автобусной остановкой из своего города, пытался сделать школу. Круто же постреляться в родной школе? Это дало мне базовое понимание из чего состоит виртуальный мир.

Несколько позже я начал проходить туториалы по OpenGL на Android. Радовался как ребенок, когда впервые на экране телефона появился заветный треугольник!

image
*Картинка взята отсюда

Затем получился кубик с наложенной текстурой камня и появились мысли о создании своей простейшей игры. Перенос игры Portal на Android казался вполне достижимой задачей для новичка. Я сильно недооценивал предстоящий объем работ. Хорошо, что на то время уже существовал Portal в Google Play, и я успел создать только одну комнату.

Тогда я решил сделать что-то попроще и, увидев в Футураме бильярд без гравитации, решил его по-быстрому воплотить (пока другие не успели). Оказалось, что я по-прежнему недооценивал объем работ. И, кстати, бильярд без гравитации таки успели сделать раньше меня.
Читать дальше →

Real-Time игры и кроссдоменное соединение

Reading time4 min
Views11K
В прошлом месяце на главной странице Google красовалась ссылка на игру Lightsaber Escape. К сожалению, поиграть мне в нее не удалось, но создать нечто похожее захотелось.

Об идее


Немного истории. Мне в детстве очень нравилась приставка Nintendo Will, именно тем, что ты управляешь движениями и благодаря этому можно сильнее погрузится в атмосферу игры. Для своей игры я тоже хотел использовать данную идею. Контроллером должен был стать телефон с гироскопом (сейчас он есть во многих), а в качестве экрана любое устройство с браузером, поддерживающим Web Socket. В качестве прототипа для игры был выбран «Paint».
Читать дальше →

STM32F4: GNU AS: Мигаем светодиодом (Оживление) (Часть 2)

Reading time14 min
Views31K
Это вторая публикация на тему программирования микроконтроллеров STM32 на языке ассемблера, первая часть находится Здесь.

Если у вас возникли вопросы или пожелания, но вы не можете здесь писать то переходите в VK: vk.com/topic-200545792_46641967

Дополнительно, обращаю внимание что сейчас (2021 год) написан небольшой редактор для программирования на ассемблере, в котором так же был написан код аналогичной функциональности, но с использованием «плюшек и удобных подушек» редактора, посмотреть конкретно про написание мигалки в нем можно в статье Assembler Editor Plus: Использование модулей (возможно в процессе прочтения нужно будет пройти еще по нескольким ссылкам где будет описано про функциональность редактора в общем, и как выполняется создание проекта, компиляция, прошивка, отладка)

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

Читать дальше →

Пишем правильный манифест для сайта

Reading time3 min
Views98K
Думаю, многие знают о возможности добавления иконки сайта на рабочий стол мобильного устройства. Это удобно и причины могут быть разные (нету мобильного приложения, предоставляющего туже информацию, либо вы хотите сразу открыть определенную страницу сайта и т.д.). За некоторые свойства того, как будет отображаться сайт и как будет выглядеть иконка после добавления и отвечает файл манифеста.

Манифест для сайта – это простой JSON-файл, который позволяет вам настроить следующие вещи:
1. Какая будет иконка у пользователя, после того как он добавит ваш сайт на рабочий стол
2. Как будет запускаться ваш сайт (с адресной строкой, без нее или в полноэкранном режиме)
3. Splash screen
4. Цветовую тему
5. Ориентацию экрана
6. Начальный url
и многое другое
Читать дальше →

STM32F4: GNU AS: Прерывания, Системный таймер (SysTick) (Часть 6)

Reading time10 min
Views14K


обсуждение этой и других статей цикла: vk.com/topic-200545792_46642273

В первых публикациях — мы тактировали микроконтроллер от внутреннего тактового генератора (HSI)… ну если быть совсем точным, то мы вообще не настраивали тактирование микроконтроллера, и пользовались тем состоянием которое было у микроконтроллера при старте (включении питания, сбросе). Для первых программ это вполне допустимо, но для будущих проектов этого не достаточно, поэтому в пятой части публикации я предложил модуль настройки тактирования микроконтроллера (sysclk) на его «родную» (определенную производителем) частоту в 168 МГц.
Теперь организуем задержку на заданное количество миллисекунд при помощи системного таймера (SYSTICK).
Читать дальше →

Миссия невыполнима: геолокация на Android без сжирания батарейки

Reading time10 min
Views80K
Пользователь: это невозможно, GPS съест батарейку
Джуниор: это возможно, используй Geofences
Сеньор: есть варианты и получше

image
На картинке сначала в одну, а потом в другую сторону одновременно с одним человеком «прогулялись» 6 одинаковых телефонов. Но какой разный результат!
Читать дальше →

Система плагинов и модулей в Unreal Engine 4

Reading time5 min
Views43K


Здравствуйте, меня зовут Дмитрий. Я занимаюсь созданием компьютерных игр на Unreal Engine в качестве хобби. Сегодня я расскажу, как создать свой модуль, а потом, как создать плагин в Unreal Engine 4.
Читать дальше →

Добавляем в игру мультиплеер с помощью Node.JS и Frida. Часть 1

Reading time6 min
Views19K


На Хабре уже есть пару упоминаний об инструменте Frida («Frida-node или немножко странного кода», «Точки соприкосновения JavaScript и Reverse Engineering»). В одной статье уже упоминается использование Frida на практике, однако почти везде инструмент используют как фреймворк для реверс-инжиниринга и исследования функционала программ (может даже взлом).
 
Я же хочу рассказать о процессе превращения одной любимой для меня однопользовательской игрушки в полноценную, многопользовательскую.
 
Читать дальше →

Фишинговые приложения для Вконтакте на Google Play

Reading time2 min
Views17K
Пару месяцев назад лаборатория Каспеского опубликовала статью о фишинге аккаунтов ВК в Google Play, но не рассказали как это реализовано и почему такие приложения задерживаются в маркете. В их статье говорилось о том, что около 1 миллиона пользователей могли стать жертвами фишинга.

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

Общая схема построения алгоритмов на примере кубика Рубика

Reading time3 min
Views22K
Возможно, многие из читателей пытались собрать кубик Рубика 3×3 самостоятельно, но после множества неудачных попыток либо бросали это занятие, либо искали готовое решение. Целью этой статьи является показать на примере кубика Рубика что найти решение любой (из класса решаемых) задачи самостоятельно, есть вполне выполнимая задача для каждого, если при этом руководствоваться определенным набором правил. Данное решение получено мною за 10 часов, плюс этого алгоритма что он не требует запоминать сложные комбинации и длительное время тренироваться — достаточно собрать данным способом всего несколько раз.
Читать дальше →

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

Reading time14 min
Views59K
Современные сети и дата-центры бодро шагают к полной и тотальной программно-определяемой схеме, когда фактически неважно, какое железо вы напихаете внутрь, всё будет на софте. У сотовых операторов это началось с того, что им не хотелось ставить по 20 антенн на дом (у них узлы переконфигурируются, меняют частоты и параметры просто обновлением конфига), а в дата-центрах сначала с виртуализации серверов, которая теперь мастхэв, а потом продолжилось и виртуализацией хранилищ.

Но вернёмся в Россию 2015 года. Ниже я покажу, как «из подручных средств» (x86 машин и любых «хранилок») сэкономить денег, повысить надёжность и решить ещё ряд типовых для сисадминов среднего и крупного бизнеса задач.


На этой схеме видны обе архитектуры, о которых пойдет речь. SDS — два красных контроллера в центре с любым бекэндом, от внутренних дисков до FC полок и облаков. И виртуальный SAN, на схеме Hyper-converged storage.

Самое главное:
  • Вам плевать, что за железо стоит: диски, SSD, зоопарк производителей, старые и новые модели… — всё это отдаётся оркестирующему софту, и он приводит это к той виртуальной архитектуре, которая вам нужна в итоге. Грубо говоря, объединяет в один том или позволяет нарезать как вам удобно.
  • Вам плевать, какие интерфейсы у этих систем. SDS построится сверху.
  • Вам плевать, какие функции ваши хранилки могли, а какие не могли (опять же, теперь они могут то, что надо: решает софт сверху).

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

Важнейшее из искусств: как мы реализовали проигрывание видео в Облаке Mail.Ru

Reading time9 min
Views19K


Некоторое время назад в Облаке Mail.Ru появилась возможность проигрывания видеофайлов. Уже в самом начале работы над этим функционалом мы решили, что будем разрабатывать этакий швейцарский нож: требовалась возможность проигрывать любые видеоформаты и функционирование на всех устройствах, где доступно Облако. Загруженные в Облако видеофайлы можно условно разделить на две категории: «фильмы/сериалы» и «видеоролики пользователей», которые люди снимают на телефоны и видеокамеры — для этого случая особенно характерно разнообразие форматов и кодеков. Без предварительной обработки просмотреть все это на любом устройстве невозможно, например, из-за отсутствия нужного кодека или же размер файла окажется слишком большим.

В этой статье я расскажу о том, как устроено проигрывание видеофайлов в Облаке Mail.Ru и каким путем мы шли, чтобы сделать воспроизведение в Облаке «всеядным» на вход и поддержать максимальное число устройств на выходе.
Читать дальше →

Видео докладов Badoo с конференции Highload 2015

Reading time1 min
Views13K
Наконец-то у нас появились видео выступления наших спикеров на Highload 2015, которые мы с удовольствием выкладываем.

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

1. «Near-realtime аналитика событий в высоконагруженном проекте», доклад Александра Крашенинникова



Еще 3 отличных доклада

Специалисты FireEye обнаружили новый буткит

Reading time2 min
Views7.5K
Специалисты компании FireEye опубликовали данные о бутките под названием BOOTRASH, который используется кибергруппой с названием FIN1. FIN1 прибегает к использованию различного вредоносного ПО под общим названием Nemesis для компрометации банков и платежных терминалов. FireEye указывает, что кибергруппа использует механизм заражения системы на уровне секторов жесткого диска, компрометируя известную структуру Volume Boot Record (VBR), в которой расположены структуры данных файловой системы и код загрузчика.



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

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity