Search
Write a publication
Pull to refresh
5
0
Андрей @cdmnk

User

Send message

Как вращается камера в 3D играх или что такое матрица поворота

Reading time11 min
Views124K
В этой статье я кратко расскажу, как именно преобразуются координаты точек при повороте камеры в 3D играх, css-преобразованиях и вообще везде, где есть какие-то вращения камеры или предметов в пространстве. По совместительству это будет кратким введением в линейную алгебру: читатель узнает, что такое (на самом деле) вектор, скалярное произведение и, наконец, матрица поворота.
Читать дальше →

A/B тест — это просто

Reading time6 min
Views536K


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

Мне часто приходится сталкиваться с задачами организации A/B тестирования в различных интернет-проектах. В этой статье хочу поделиться необходимыми базовыми знаниями для проведения тестов и анализа результатов.
Читать дальше →

Опубликованы записи докладов конференции DevCon 2014

Reading time7 min
Views7.6K
Уважаемые друзья! Мы рады вам сообщить о публикации записей докладов конференции Microsoft DevCon 2014. Для вашего удобства они размещены на трех ресурсах, и вы можете посмотреть интересующие вас доклады.
TechDays – http://www.techdays.ru/series/devcon_14
Channel9 – http://channel9.msdn.com/Events/DevCon/Russia-2014
Youtube – http://www.youtube.com/playlist?list=PLVDsxiCH_PqTpoEAwIRquA9W4ODnMfc2Z

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

Улучшаем производительность: полезные советы и приёмы в .NET

Reading time8 min
Views32K
Эта статья входит в серию статей по улучшению производительности в .NET. Первую статью можно найти здесь.

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

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

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

Я ни в коем случае не призываю вас бежать и исправлять весь код в ваших проектах. Более того, я призываю вас не делать этого, потому что это простые хаки, и скорее всего они будут вноситься бездумно в большое количество кода, а это может повлечь за собой появление новых ошибок. Это не те хаки, которые скинут бабу с воза вашего приложения и заставят кобылу-сервак бежать в десять раз быстрее. В лучшем случае удастся выжать процентов десять. Но с миру по нитке — голому рубашка.
Читать дальше →

О формуле Байеса, прогнозах и доверительных интервалах

Reading time9 min
Views69K
На Хабре много статей по этой теме, но они не рассматривают практических задач. Я попытаюсь исправить это досадное недоразумение. Формула Байеса применяется для фильтрации спама, в рекомендательных сервисах и в рейтингах. Без нее значительное число алгоритмов нечеткого поиска было бы невозможно. Кроме того, это формула явилась причиной холивара среди математиков.

image

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

Usb web notifier в подсветку

Reading time3 min
Views19K


К сожалению, довелось мне простудиться, застрять дома на три дня, и от безудержного веселья начать перебирать «долгий ящик». В оном ящике я обнаружил «usb уведомитель» от фирмы CBR. Девайс предназначен, для оповещения о входящих сообщений на email, посредством изменения цветовой гаммы.
Читать дальше →

24 способа наконец-то найти хорошего специалиста

Reading time16 min
Views39K


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

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

Как заставить себя работать?

Reading time6 min
Views420K
В понедельник утром за неделю до Нового Года этот вопрос, думаю, актуален для многих.

Есть куча статей на эту тему. Вот основные советы:
  • Начинайте с самой сложной задачи
  • Сделайте первый шаг — продолжать будет уже легче
  • Составьте план и неукоснительно ему следуйте
  • Занимайтесь любимым делом
  • Не отвлекайтесь

Всё просто. Закройте Хабр и приступайте к работе!

Только почему-то на меня все эти советы не действуют. Вроде правильные вещи люди говорят, но — не работает. Кстати, на тему «Почему не получается заставить себя работать?» тоже есть статьи. В них проблема описывается с точки зрения психологии и предлагаются решения вроде «избавьтесь от внутренних противоречий и страха перед неудачей». Наверное, если это сделать, то всё получится, но где найти эту волшебную кнопку «Избавиться от...»?
Читать дальше →

Unity vs Adobe Air, или Как я писал первую мобильную игру

Reading time4 min
Views26K
Всем привет!

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

Начало

С чего всё началось? Правильно, как и многие интересные и не очень истории, с увольнения с работы. Время освободилось, а занять себя было просто необходимо. Так как Flash в последнее время не сильно блистает востребованностью, было решено попробовать Adobe Air и его кроссплатформенность.

Идея

Как не парадоксально, я не большой любитель играть в игры, за исключением «гоночек» и «чего-то простого и забавного». Естественно, первой идеей было что-то типа «захватывающей гонки-путешествия на внедорожнике». Затем, вдохновившись такой игрой, как Color Zen, захотелось чего-то «интересного, красивого и успокаивающего».

Но, как говорится, 8-битное прошлое взяло вверх и было решено сделать пародию на только что удалённую и ненавистную многими Flappy Bird. Не банальную пародию, нет, было решено дать пользователям выпустить пар — создать нового персонажа, который взорвёт всё к чертовой бабушке. Название нашлось быстро — Rocket Toads, а главных персонажей стало двое (чтобы сделать название игры созвучным знаменитой 8-битной игре). Выбрана цель игры — разрушить как можно больше труб, точно бросая динамит, и при этом остаться в живых, уворачиваясь от осколков и взрывов.
Читать дальше

Code Coverage по мотивам NUnit тестов в Visual Studio

Reading time3 min
Views8.4K
Без лишних проволочек, предположим, что вы попали в следующую ситуацию:
  • у вас есть некоторый .NET проект;
  • для этого проекта вы написали NUnit-тесты (либо они уже написаны);
  • вам торжественно вручили Visual Studio 2008 Team System (или выше) или Visual Studio 2010 Premium (или выше) и поручили провести анализ покрытия кода тестами (aka code coverage).
Путь вам преграждает только одно маленькое «но»: Test Runner, интегрированный в Visual Studio, видит только собственные MSTest'ы, а вашему любимому NUnit'у уделяет ноль внимания и преподносит фунт презрения. Что делать?

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

Введение в Continuous Integration

Reading time5 min
Views178K
Недавно я попал на новый проект, с задачей создать небольшое приложение с нуля. Разговариваю с тестером:
— А как тебе новые версии поставлять?
— Можешь как все остальные на проекте, через SVN.
— То-есть ты сама билдить будешь?
— Да нет… Бинарники оттуда беру.


Оказывается, очень много программистов, даже имеющих в подписях слова вроде Senior или Superior никогда в жизни не стыкались с понятием CI, или слабо себе представляют что это такое. Не найдя отдельных публикаций на Хабре на эту тему, решил восполнить пробел, а заодно и по возможности заработать желанный инвайт.
Читать дальше →

Запрет хранения данных россиян на зарубежных серверах: что будет после 1 сентября 2016 года?

Reading time3 min
Views248K


Сегодня состоялось событие которого все так долго ждали, теперь не будет никаких полумер, с 1 сентября 2016 запрещено хранение любых персональных данных за пределами РФ.

Что произошло?
Что попадает под запрет?
Что будет с интернетом?
Что всё это значит?
Что делать?


На эти вопросы я постараюсь ответить внутри поста.
Читать дальше →

Наследование грамматик в Sprache (или еще один настраиваемый калькулятор выражений для .NET)

Reading time13 min
Views13K
Статья демонстрирует технику создания парсеров с использованием наследования грамматик. Наследование позволяет описывать новые грамматики на основе уже существующих путем добавления новых правил или переопределения унаследованных, что существенно упрощает реализацию новых парсеров. Изменения в базовой грамматике автоматически становятся доступными во всех порожденных грамматиках. Основная область применения такой техники — поддержка нескольких диалектов или версий языков.
Читать дальше →

Вы можете развить свой интеллект: 5 способов максимально улучшить свои когнитивные способности

Reading time17 min
Views516K
Не стоит преследовать цели, которые легко достичь. Стоит нацеливаться на то, что удается сделать с трудом, приложив немалые усилия — Альберт Эйнштейн

Несмотря на то, что Эйнштейн не был нейробиологом, он точно знал все, когда говорил о способности человека добиваться чего-либо. Он интуитивно догадывался о том, что лишь сегодня нам удалось подтвердить с помощью данных, а именно: что заставляет когнитивные способности работать на максимально высоком уровне. По существу: То, что тебя не убивает, делает тебя умнее.
Читать дальше →

10 главных выводов, которые я сделал за Год Изучения Продуктивности

Reading time9 min
Views194K
Предисловие переводчика: В мире написано столько книг по личной эффективности и тайм-менеджменту, что берясь за этот перевод я безусловно задавал себе вопрос: «А есть ли здесь вообще что-то новое, ради чего эту статью стоит переводить, и главное читать»? Сначала мне казалось, что я ответил на этот вопрос «да», однако реальность оказалась несколько сложнее. 

Сейчас я думаю, что сказать что-то новое человеку, который прочитал хотя бы 2-3 книги по тайм-менеджменту и личной эффективности практически невозможно. Однако существует огромная пропасть между тему, что люди знают, и тем, что люди делают. Поэтому если у вас уже есть какой-то багаж знаний по личной эффективности, я советую вместо вопроса «это что-то, чего я не знаю?» задавать другие вопросы:

1. Согласен ли я с написанным?
2. Если да, поступаю ли я так?
3. Если нет, почему и что я могу сделать чтобы начать поступать правильно? 

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

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

Также хотел бы сделать замечание для любителей красивого русского языка. Я довольно долго думал, менять ли «продуктивность»  на более близкие родному уху «производительность» и «личную эффективность», но в итоге решил оставить всё как есть – главным образом из-за невозможности использования одного и того же слова в разных контекстах.

В качестве последнего пожелания – это довольно длинная статья, поэтому читайте продуктивно: не переключайтесь между задачами в процессе чтения; делайте перерывы если ощущаете усталость и потерю концентрации; записывайте полезные мысли, не надеясь на память.

Приятного чтения!
Читать дальше →

Облачная копипаста – открытые исходники

Reading time2 min
Views13K
В один прекрасный день меня достала необходимости периодически набирать на экранной клавиатуре телефона тексты вроде логинов и паролей. При этом, как оказалось, своё состояние я описал вслух: “Вот бы было клёво нажать на Ctrl+C на компьютере, а потом в телефоне Ctrl+V”.
“Ну тыж программист” – напомнила одна из наших тестровщиц. “Не хватает программы, так напиши!”.

И программа для копирования содержимого буфера обмена с компьютера была написана. Несколько знакомых начали пользоваться ей с удовольствием, нашли баги, были советы… но большинство более дальних знакомых (и незнакомых) выразили недоверие. Мол, “я скопипастю пароль, а ты его к себе утащишь. Или сервак твой взломают…” Не доверяют люди. И правильно делают, наверное, доверие ещё надо заслужить. Поэтому с сегодняшнего дня исходники программы открыты всем и каждому!
Скриншоты, технические подробности, ссылка на гитхаб.

Как начать программировать с использованием WPF или Silverlight: Путь обучения для новичков

Reading time4 min
Views47K
Итак, вы новичок в WPF или Silverlight и желаете знать с чего вам начать? Здесь описан мой путь изучения “Как начать с WPF и Silverlight”. Я предполагаю, что вы знаете что из себя представляют эти технологии (на высоком уровне), но не знаете как использовать их.
Читать дальше →

Профайлер для Entity Framework

Reading time22 min
Views25K


Приветствую!

Продолжу серию статей про программирование. На этот раз, я хочу рассказать о написанном мной бесплатном профайлере для Entity Framework-а ( далее EF) c 4-й по 6-ю версию, а также о некоторых примененных мной решениях, таких как декомпилирование .NET кода на лету, форма для обработки исключений и прочее.
Nuget пакет для EF6: https://www.nuget.org/packages/EFlogger-For6/
Nuget пакет для EF4 — 5: https://www.nuget.org/packages/EFlogger-For4/

Подробности под катом.
Читать дальше →

Доступен новый JIT: теперь с поддержкой SIMD

Reading time10 min
Views15K

От переводчика


Лично я просто невероятно обрадовался новой возможности. Как раз не так давно одолел Pro .Net Perfomance, в которой одна из глав была посвящена параллельности, и векторизации в частности. Вывод, сделанный авторами: «К сожалению, использование векторизации возможно исключительно на С++, выполнение кода на видеокарте — возможно и средствами .Net, однако C++ AMP оставляет любые управляемые библиотеки GPGPU далеко позади, поэтому, к сожалению, в данных задачах рекомендуем использовать подключаемые C++ сборки.» Поэтому рад сообщить, что по крайней мере одна проблема решена. Что ж, приступим!

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

ASP.NET MVC Урок 1. Начало

Reading time8 min
Views390K
Цель урока: Изучить Global.asax и поведение запуска веб-приложения, обработки веб-запроса. Изучение Nuget и Подключение протоколирования.

Начало

Создадим приложение ASP.NET MVC 4 Web Application «Lesson1» (рис 1.):



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

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity