Pull to refresh
0
0
Светлов Александр @Mehalich

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

Send message

Разумное АОП для поклонников IOC-контейнеров

Reading time8 min
Views19K
Я очень не люблю boilerplate. Такой код скучно писать, уныло сопровождать и модифицировать. Совсем мне не нравится, когда тот самый bolierplate перемешан с бизнес-логикой приложения. Очень хорошо проблему описал krestjaninoff еще 5 лет назад. Если вы не знакомы с парадигмой AOP, прочитайте материал по ссылке, он раскрывает тему.

Как на момент прочтения этой статьи, так и сейчас меня не устраивают ни PostSharp ни Spring. Зато за прошедшее время в .NET появились другие инструменты, позволяющие вытащить «левый» код из бизнес-логики, оформить его отдельными переиспользуемыми модулями и описать декларативно, не скатываясь при этом в переписывание результирующего IL и прочую содомию.

Речь пойдет о проекте Castle.DynamicProxy и его применении в разработке корпоративных приложений.
Следуй за белым кроликом

Знакомство с АОП

Reading time10 min
Views131K

Парадигмы программирования


В современном мире IT-разработки существует довольно большое множество различных подходов к написанию программ. Так, например, кому-то нравиться представлять программу в виде последовательности действий, а кто-то считает, что программа должна представлять собой множество объектов, общающихся друг с другом. Совокупности этих идей и понятий образуют своего рода стиль написания программы, который принято назвать – парадигма программирования.

У каждой парадигмы есть свои особенности, однако, главным фактором, различающим их, является понятие основной единицы программы. Вот самые популярные из них:
  • инструкция (императивное программирование, FORTRAN/C/PHP),
  • функция (функциональное программирование, Haskell/Lisp/F#/Scala),
  • прототип (прототипное программирование, JavaScript),
  • объект (объектно-ориентированное программирование, С++/Java),
  • факт (логическое программирование, PROLOG).

Стоит заметить, что в общем случае язык программирования однозначно не определяет используемую парадигму: на том же PHP можно писать как императивные, так и объектно-ориентированные программы.

В этой статье я хочу рассказать о сравнительно молодой, но крайне, на мой взгляд, полезной парадигме программирования – аспектно-ориентированном программировании.

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

Accord.Net: ищем ошибку в коде, из-за которой машины поработят человечество

Reading time16 min
Views13K

Статьи о проверке проектов с открытым исходным кодом — вещь полезная. Кто-то, в том числе и разработчики, узнает об ошибках, содержащихся в проекте, кто-то узнает о методологии статического анализа и начнет применять её для повышения качества своего кода. Для нас же это прекрасный способ популяризации анализатора PVS-Studio, а заодно возможность его дополнительного тестирования. На этот раз я проверил платформу Accord.Net и нашёл в коде много интересных фрагментов.
Читать дальше →

Основы геймдизайна: 20 настольных игр. Часть третья: Пенте, Колонизаторы, Пуэрто-Рико

Reading time16 min
Views18K
В статье Джона Харриса из серии «Основы геймдизайна» представлен подробный обзор самых популярных настольных игр, включая традиционные вроде шахмат и го, ролевые вроде «Зова Ктулху», европейские вроде «Колонизаторов» и многие другие, у которых есть чему поучиться.


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

UX-дизайн кнопки: советы по созданию, типы и состояния

Reading time6 min
Views174K
Ник Бабич разработчик, UX/UI специалист написал заметку в блоге UX Planet про UX-дизайн кнопки: советы по созданию, типы и состояния. Наша команда выполнила перевод данной статьи

image

Кнопки – это самый обычный, «повседневный» элемент дизайна взаимодействия. Именно поэтому на них нужно обратить особое внимание, ведь кнопки являются важнейшим элементом, обеспечивающим беспрепятственное взаимодействие в сети и приложениях. Мы обсудим типы и состояния кнопок — эту информацию нужно знать, чтобы создавать эффективные кнопки и совершенствовать опыт пользователя.

Советы по созданию кнопок


Кнопки должны выглядеть как кнопки

Давайте на минуту представим, как с помощью дизайна донести возможность выбора. Как пользователь поймет, что данный элемент и есть кнопка? Он ориентируется на цвет и форму.

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

Unity: как мы создавали генератор домов для AssetStore или возвращение к хрущёвкам

Reading time18 min
Views16K


Поводом для написания данной статьи послужила эта публикация про "хрущёвки", в которой была поднята интересная для меня тема программной генерации мешей в Unity.

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

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

Драм-машина на нейронной сети

Reading time2 min
Views13K
В данной статье мне хочется рассказать о своем алгоритме драм-машины на базе нейронной сети.
Драм-машина предназначена для создания и редактирования повторяющихся музыкальных ударных фрагментов.
Классическим примером драм машины является драм-машины от кампании Roland (TR-808 и TR-909).

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

Создание миникарты на Unity

Reading time3 min
Views38K
Всем привет. Представляю вашему вниманию перевод статьи из блога, посвященному разработке на Unity — The Knights of Unity. В ней пойдет речь о создании миникарты. Я также реализовал описанное в статье и выложил это на Битбакете.


Что требуется для создания миникарты в игре на Unity? Наверно вы будете удивлены, но это проще, чем вы думаете и даже не требует навыков программирования! Далее я постараюсь шаг за шагом объяснить, как это сделать.
Читать дальше →

Методы модификации машинного кода: «селекция» vs. «генная инженерия»

Reading time7 min
Views15K


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

«Мутации» машинного кода


В качестве примера возьмём приставку NES (известную у нас как Dendy), в которой используется процессор 6502. Система команд у него очень проста — опкод представлен всегда одним байтом, и каждый из 256 хоть что-то, да делает. Никаких «защит» от дурака не предусмотрено, и почти любой случайный набор байт будет выполняться без сопротивления со стороны процессора. Таким образом, мы можем взять ROM какой-нибудь игры, исправить в нём случайные биты (будем называть это «мутациями») — и после запуска наблюдать забавные глюки в разных неожиданных местах, но при этом в целом игра скорее всего будет работоспособной. Похоже, что на YouTube имеется целый жанр подобного видео. Полученный таким образом машинный код наверняка не очень корректен, но в большинстве случаев процессор сможет его выполнить и что-то сделать.

Как оказалось, такую методику используют не только для веселья (а играть в знакомые игры с неожиданными глюками весьма забавно), но и для полученя вполне себе конкретных модификаций: делают большое количество «мутантов» и ищут тот, в котором проявился нужный эффект. Точь-в-точь как в современных методах селекции, когда зародыши организмов подвергаются воздействию мутагенов (что приводит к случайным изменениям в генетическом коде), а потом из того что смогло вырасти отбираются те, у которых есть нужный признак. Полученные таким образом организмы получают в довесок массу других нежелательных мутаций. Избавляются от них путем постепенного скрещивания c нормальным видом, добиваясь получения более-менее вменяемого организма с нужным признаком и минимумом других мутаций, которые оказались заметны. То же самое можно сделать и с машинным кодом.
Читать дальше →

Мысль — материальна: Алан Тьюринг как «универсальный вычислитель»

Reading time11 min
Views47K
image
Источник: geektimes.ru

В первой половине XX века, когда были изобретены первые вычислительные машины. Однако наряду с физически осязаемыми машинами появлялись и машины-концепции. Одной из них была «машина Тьюринга» — абстрактное вычислительное устройство, придуманное в 1936 году Аланом Тьюрингом — учёным, которого считают одним из основоположников информатики.

Его кругозор распространялся от квантовой теории и принципа относительности до психологии и неврологии. А в качестве способа познания и передачи своих знаний Тьюринг использовал аппарат математики и логики. Он находил решения, казалось бы, нерешаемых задач, но был сильнее всего увлечен идеей «Универсальной машины», способной вычислить всё, что в принципе вычислимо.
Читать дальше →

Игра Престолов. Поиск авторов диалогов в книгах

Reading time29 min
Views14K


Привет Хабрахабр,

На основании результата голосования в статье Теория Графов в Игре Престолов, я перевожу обучающий материал Эрика Германи (Erik Germani), который получил социальный граф связей из 5 первых книг серии «Песнь льда и пламени», лёгший в основу вышеупомянутой статьи. Статья не содержит подробного описания методов машинного обучения, а скорее рассказывает как на практике можно использовать существующие инструменты для поиска авторов диалогов в тексте. Осторожно, много букв! Поехали.
Читать дальше →

Центральная симметрия сетки

Reading time4 min
Views5.5K
Исследуя одну задачу оптимизации, столкнулся с проблемой симметричности конфигураций при прямом переборе вариантов. Схожая проблема возникает в некоторых решениях задачи о восьми ферзях. Исследуя центральную симметрию прямоугольной сетки, я обнаружил революционный довольно интересный метод определения и проверки симметричных конфигураций с использованием чисел-«перевертышей».
Читать дальше →

Единственный способ вытащить человечество из лап интернета — #СпортСПервымВстречным

Reading time5 min
Views11K


Добрый день! В этой статье мы хотели бы рассказать вам о проекте, который помогает людям находить компанию для занятий спортом, хобби или просто отдыха.

Прошло уже восемь месяцев с момента выхода нашей первой статьи в корпоративном блоге на Мегамозге. И сейчас, когда Мозг вернулся домой на Хабр, мы пишем новую «вводную» статью и расскажем о нашем сервисе, который за время существования претерпел множество изменений. Расскажем немного о нашем проекте, а также факапах, с коими нам пришлось столкнуться.
Узнать о проекте

Лазерная резка: как избежать неудачи при работе с резаком?

Reading time5 min
Views50K
Несколько советов для начинающих



Cтанки лазерной резки c ЧПУ нельзя назвать дешевыми, но средней руки предприниматель уже может себе позволить такую систему. Некоторые модели из Китая стоят около $4000. Лазером можно делать все — вырезать корпуса приборов, отдельные элементы конструкции, наносить изображения на металл, дерево, кожу и пластик.

Но наличие компьютерного управления вовсе не значит, что оператор может отдыхать на кушетке с любимой книжкой в одной руке и бутылкой пива — в другой. Для того, чтобы результат работы удовлетворял всем критериям успеха, оператору нужно приложить немалые усилия. На каких этапах резки сфокусировать внимание? Об этом рассказывает мастер, который довольно продолжительное время работал с системами лазерной резки разного типа.
Читать дальше →

Куда идет DIY: самое интересное с фестиваля Maker Faire Bay Area 2016

Reading time5 min
Views12K


Maker Faire — это фестиваль творческих людей, любящих создавать своими руками что-то интересное. Мейкеры собираются вместе, чтобы узнать о новых тенденциях в DIY и сделать праздник технологий, изобретательности и креативности. Предлагаем вашему вниманию репортаж о самых интересных проектах фестиваля, прошедшего недавно на западном побережье США.
Читать дальше →

Intel приглашает вас на Moscow Maker Faire

Reading time2 min
Views6.7K
9-10 июля в Москве пройдет настоящий праздник для всех, кто любит создавать интересные, интеллектуальные вещи своими руками или давно мечтал этим заняться. Maker Faire — это фестиваль науки и современных технологий для изобретателей, инженеров и гиков всех возрастов. Это и научная ярмарка, и выставка современных технологий, и галерея интерактивного искусства, но, прежде всего, место для общения мейкеров и энтузиастов DIY. Лучшие представители сообщества в течении двух дней будут рассказывать о настоящем и будущем, DIY и open source, учить вас новым навыками и показывать свои разработки во всех областях, где можно приложить руки и голову.


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

Новое объяснение принципа работы «невозможного» двигателя EmDrive: это все фотоны

Reading time4 min
Views43K
Финские ученые считают, что EmDrive не нарушает закон сохранения импульса



Эпопея с так называемым «невозможным» двигателем EmDrive на электромагнитных волнах продолжается. На данный момент ряд известных ученых и научных организаций подтвердили работоспособность EmDrive. Двигатель представляет собой систему, состоящую из резонатора (металлический усеченный конус) и магнетрона. Двигатель работает, это факт. Каким образом? Такая система каким-то образом создает тягу под влиянием электромагнитного излучения. Существует несколько гипотез, объясняющих появление тяги. Пока что ни одна гипотеза не была доказана. Собственное объяснение принципа работы EmDrive в этом месяце предложили финские ученые.

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

Open Bionics, Eidos Montreal и Razer создают линейку киберконечностей в стиле Deus EX

Reading time5 min
Views10K
Многогранность, проработанность и увлекательность сюжетной линии и мельчайших деталей игрового мира и действующих персонажей — все это способствуют тому, что аудитория поклонников популярных компьютерных игр исчисляется сегодня цифрами со множеством нулей. Но, оказывается, в некоторых аспектах идеи разработчиков компьютерных персонажей и их экипировки вполне могут выйти за рамки игрового сценария и даже лечь в основу разработки, которая будет служить людям в их трехмерной реальности. Подтверждение сказанному — новая линейка протезов рук от Open Bionics, выполненных в стиле героев культовой Deus Ex.


Подробнее

Парень разрабатывает игру с 1997 года и регулярно отчитывается о прогрессе

Reading time5 min
Views60K

Проект длиною в жизнь




Как показал недавний пример Voxel Quest, создание некоторых компьютерных игр может затянуться надолго. Какой ни установить дедлайн — он обязательно будет просрочен. Особенно если проектом занимается единственный разработчик, очень увлечённый своим делом. Фанатичный автор хочет довести игру до идеала, уделяет внимание каждой мелочи. Такие игры или становятся шедеврами, или не выходят никогда. Обычно второе.

Австралийский разработчик по имени Фил уже 18 с лишним лет тратит свободное время на любимое хобби: создание Самой Лучшей Игры всех времён и народов под названием Pegwars (Political Economic and Galactic Warfare) — политический, экономический и галактический боевой симулятор.

Игроки со стажем должны помнить космический симулятор с элементами космической стратегии под названием Elite. Та игра вышла в 1984 году и стала родоначальником нового игрового жанра, где космические битвы сочетаются с торговыми отношениями.
Читать дальше →

Как всё починить

Reading time16 min
Views53K
image

Это случилось внезапно, как большинство таких историй. У меня сработал будильник. Я дёрнул ногой, внезапно проснувшись, и она вошла в тесный контакт с новым ноутбуком, невинно лежавшим у ноги на гостиничной постели. Он приземлился на ножку стула – звук удара был громким. На алюминии рядом с логотипом Apple появилась явная вмятина. Я раскрыл его и увидел огромную кляксу из битых пикселей.

Вариантов у меня было немного. $600 за замену экрана в Apple store. $500 у независимого ремонтника. Я пошуршал eBay'ем и выяснил, что новый экран можно купить за $50, если только я был не против узнать, как выглядит MacBook Pro изнутри. Я нажал «купить». А затем я увидел винтики.

***

Если вы когда-нибудь пытались открыть iУстройство — iPad, iPhone, iMac, что угодно – сделанное в последние четыре года, вы встречались с эпловскими крохотными пятиконечными знаками "Не входить". Это явное заявление о том, что ваш телефон, компьютер, планшет, на самом деле не ваш, и вам нельзя в нём ковыряться. Это публичное утверждение того, что вы недостаточно квалифицированы, чтобы чинить свои собственные вещи.

Если вы читаете это с айфона, или он у вас рядом – посмотрите на порт зарядки, и рядом вы увидите эти две крохотных головки пятилепестковых винтов [pentalobe], которые в дикой природе не встречаются.
Читать дальше →

Information

Rating
Does not participate
Location
Таллин, Эстония, Эстония
Date of birth
Registered
Activity