Pull to refresh
27
0
Михаил Мельник @mike114

User

Send message

Do-Ra. Дозиметр в мобильном телефоне

Reading time2 min
Views52K
1 сентября 2011 мне позвонил совершенно незнакомый человек.
-Владимир Елин, — представился он. — Я только что вернулся из Крыма и у меня есть патент.

Патент устройства дозиметра-радиометра «ДО-РА» для мобильных телефонов, смартфонов.
— Вадим, Вы не напишете программу для iPhone?
image
Я ухмыльнулся и полез в appStore с запросом dosimetry.

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

Эмуляция интерфейса iPhone с помощью CSS

Reading time1 min
Views3K
UiUiKit Некоторое время назад мне потребовалось «красиво» оформить логи бесед в жаббире. Поскольку рисовать я не умею вовсе, я обратился за подмогой к мирозданию. Поиск по готовым решениям открыл для меня малоизвестную, но, безусловно, заслуживающую внимания библиотечку. Строго говоря, это не библиотека. Это тщательно написанная и выверенная каскадная таблица стилей, позволяющая имитировать iPhone-интерфейс в браузерах.
Координатные данные проекта UiUiKit (Universal iPhone UI Kit):

Оригинально библиотека заточена под web-приложения именно для iPhone, поэтому всякий CSS3+ ограничивается указанием свойств только для webkit'а. Я пропатчил CSS директивами для остальных и развернул демонстрационную страничку, чтобы можно было сразу потыкать в элементы интерфейса.
Выглядит симпатично (на картинке в начале топика — скриншот моего браузера). Приятного использования!

Почему Agile вам не подходит

Reading time4 min
Views16K
Ни об одной теме я не слышал столько негативных отзывов, как об Аджайл. Дескать, он и неэффективный, и не работает, и подходит для ленивых, и придуман для зарабатывания бабла на консультациях, и вообще, нам аджайл не подходит.



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

Почему Agile вам не подходит

Управление разработкой в стиле BDSM

Reading time5 min
Views9.7K
Управление разработкой — очень интересная штука, она вроде бы как есть, а, с другой стороны, ее как бы и нет. При этом на этой зыбкой грани между явью и фикцией многие люди довольно недурно зарабатывают, и ваш покорный слуга в том числе.

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

И, расставив все точки над i, нужно либо кидаться с головой в бездну страстей, либо окончательно размежеваться. Итак, немного о том, почему бывают факапы и чем их нельзя исправить.
Часть первая: Bondage

Имена людей и интерфейс

Reading time13 min
Views50K
Пространство рассуждения статьи затрагивает вопросы различия имен людей во всем мире, и то, как это влияет на дизайн форм ввода, баз данных, онтологий информатики и др. в контексте Всемирной Паутины.

image

Заинтересованная аудитория: авторы HTML-контента, разработчики скриптов серверных приложений (PHP, JSP и т.д.), менеджеры веб-проектов и любые другие люди, так или иначе связанные с дизайном форм ввода данных, дизайна баз данных и онтологий, которые затрагивают личные имена людей.

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

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

Барьеры памяти и неблокирующая синхронизация в .NET

Reading time7 min
Views62K

Введение


В этой статье я хочу рассказать об использовании некоторых конструкций, применяющихся для осуществления неблокирующей синхронизации. Речь пойдёт о ключевом слове volatile, функциях VolatileRead, VolatileWrite и MemoryBarrier. Мы рассмотрим, какие проблемы вынуждают нас воспользоваться этими языковыми конструкциями и варианты их решения. При обсуждении барьеров памяти вкратце рассмотрим модель памяти .NET.
Читать дальше →

Наиболее впечатляющие приложения HTML5 для демонстрации WebGL

Reading time1 min
Views21K
Что такое WebGL? Это новая современная библиотека, которая расширяет язык JavaScript, которая позволяет генерировать 3D графику прямо в браузере. WebGL, поддерживается многими современными веб-браузерами, такими как Google Chrome, Mozilla Firefox начиная с v4.0), Safari. Под катом несколько интересных приложений HTML5, сделанных с WebGL.
Читать дальше →

История одного «очень китайского» телефона

Reading time6 min
Views13K


Путь от “несвяти с сетей” и “спаритьБлютуф” до человеческого телефона

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

Скупой платит дважды...

Так было и со мной, когда примерно два года назад я увидел на очередном китайском сайте смартфон с gps, usb-host’ом, двумя камерами и прочими плюшками за смешные деньги. В тот момент, само словосочетание “китайский телефон” должно было остановить меня, но я уже вписывал пароль от PayPal и скоро эта “прелесть” попала мне в руки…
Читать дальше →

Нововведения F# 3.0

Reading time4 min
Views3.1K
На прошедшей недавно конференции Build кроме уже широко освещенной и обсужденной презентации Windows 8, Metro UI и WinRT было еще немало интересного. В том числе, Дон Сайм и его команда представили developer preview новой, третьей по счету, версии языка программирования F#, который является частью developer preview Visual Studio 11 (и, кстати, уже может быть опробована вами по ссылке).

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

Удаление неиспользуемых сборок из .NET проекта

Reading time6 min
Views13K
Когда-то во время учебы в университете, преподаватель, проверяя лабораторную работу по C++, вдруг неожиданно для меня задал вопрос: “А зачем вам здесь #include “%имя_библиотеки%”? Вы можете пояснить, для каких частей кода нужна каждая директива include?” Та директива, что «бросилась ему в глаза», была добавлена при попытке использовать какой-то класс. Класс, видимо, не прижился в лабораторной и его использование было благополучно удалено, а include остался…

Программируя в С#, с использованием Visual Studio, мы так же сталкиваемся с неиспользуемыми директивами using. Но Visual Studio может помочь справиться с проблемой, достаточно для .cs файла вызвать команду “Remove Unused Usings”. Правда есть еще одно место, которое так же не мешало бы время от времени чистить. Это ссылки (References) проекта. Как ни печально, но для C# проекта такой команды нет. В MS Connect даже баг создали по этому поводу. А вот для VB.NET проектов такая функция есть (найти её можно в свойствах проекта), но по злой иронии судьбы для VB.NET проектов нет команды для удаления неиспользуемых Imports (usings в C#) :)

Подогреваемые жаждой сделать полезное коллегам, независимые разработчики решили написать небольшие расширения для Visual Studio. А тут еще и Extension Manager из Visual Studio 2010 так упростил процесс распространения расширений. Пример таких расширений можно найти здесь и здесь. Невозможно судить об алгоритмах, используемых в этих расширениях. Хотя не буду скрывать, что после того как первое расширение бессовестно удалило из проекта приличную часть реально нужных для компиляции сборок, мы все таки посмотрели его рефлектором… Разбираться со вторым уже не стали. В общем-то, проблема одинакова, а ключевое словосочетание можно найти в пред-предыдущем предложении: нужных для компиляции.

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

Фильтруем людей или как заблюрить одного человека на видео

Reading time5 min
Views2.7K
Добрый день. Хочу предложить вам небольшую статью о своей работе с кинектом.

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

Проблемы обработки исключений в WCF под Mono

Reading time13 min
Views3.6K
По служебной необходимости мне пришлось столкнуться с задачей создания клиента WCF-службы под Mono 2.6.7.
Всё вроде бы шло хорошо – клиент работал как под .NET, так и под Mono – до тех пор, пока я не занялся обработкой исключений, которые могут возникнуть в методах WCF-службы.
Проблемы начались тогда, когда мне понадобилось обработать моё собственное исключение, содержащее не только сообщение исключения, но и некоторую дополнительную информацию.
Я решил, что организую обработку исключительных ситуаций так, как это описано в статье «Exceptions through WCF» (http://habrahabr.ru/blogs/net/41638/) уважаемого Романа RomanNikitin.
В .NET клиент работал так, как надо, а вот при запуске под Mono возникла следующая ошибка:
image
Читать дальше →

Учимся считать в hex, или реверс-инженеринг будильника

Reading time13 min
Views55K

Введение


Недавно у меня появилась мысль научиться считать в шестнадцатеричной системе счисления. Так как я человек ленивый, такие способы, как выучить таблицу умножения меня не устраивали. Немного поразмыслив, я вспомнил, что каждое утро решаю (иногда несколько раз) несложный пример, чтобы отключить будильник. Помогает слабо, со временем я начал решать почти не просыпаясь. Так почему бы не совместить полезное с полезным?
Осталось выбрать способ реализации. Так как я не имею не малейшего представления о разработке под андроид (да и вообще с Java не сильно знаком), да и писать свое приложение ради такой мелочи — это стрельба из пушки по воробьям, было решено модифицировать уже имеющийся будильник.

Под катом вы найдете описание инструментов, процесса и результата перевода примера в hex. А также объяснение синтаксиса smali кода (язык опкодов для виртуальной машины dalvik). Картинок почти нет, буков много.
Читать дальше →

Борьба с наследованием и вложенностью ViewModel-ей при разработке lolstore.info

Reading time4 min
Views1.2K
Приветствую, хабрачитатель.
Хочу поделиться велосипедом реализацией, к которой пришел в процессе изучения Asp.Net Mvc и разработки бугагашеньки lolstore.info. Мне оная удобна, не исключено что такой станет и для Вас.

Для начала сформулируем проблему/цель:

Сделать всё зашибись. Найти лаконичный и прозрачный способ передачи нескольких(!) типизированных ViewModel-ей из контроллера во View и их рендер с проверкой типов на этапе компиляции.

Ситуация становиться особенно острой, когда для masterpage-а нужна одна ViewModel (html title, доступное меню и т.п), странице — другая (к примеру, список анекдотов), а для pagelet-ов вообще третья (список тегов). Плюс чешется сохранить легкую переносимость тех же pagelet-ов на другие страницы.
Кому интересны тонкости - прошу под кат

Достала избыточность С++

Reading time3 min
Views21K
imageПривет Хабр,
Меня вводит в ступор С++. Вот просто, зависаю над монитором, смотрю в окно, попиваю чай… И начинаю жалеть за бесценно проведенные годы за изучением стандарта С++, попытками написать свой фронт-энд компилер. Эти мудреные книжки С++ In Depth. Как же я негодовал, когда не понимал кода из книги Александреску. Как записывал все постулаты Страуструпа и иже с ними. Зачем? Вот спрашиваю себя, зачем я теперь все это знаю. Более, я хочу сказать, что этот язык нещаден для гуру, не с медицинской, не с экономической точки зрения! Он не оправдывает усилий, вложенных в его изучение — раз. На практике, он экономически не выгоден — два. И нервные клетки подтвердят, что сопровождать чужой плюснутый код — бывает опасно для здоровья -три. Пусть тут будут рандомно разбросаны метафоры, пишу как есть, из опыта.
Читать дальше →

Бесплатная централизованная библиотека кода: Microsoft All-In-One Code Framework

Reading time1 min
Views20K


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

О синглтонах и статических конструкторах

Reading time8 min
Views29K
Изначально автор хотел назвать эту статью следующим образом: «О синглтонах, статических конструкторах и инициализаторах статических полей, о флаге beforeFieldInit и о его влиянии на deadlock-и статических конструкторов при старте сервисов релизных билдов в .Net Framework 3.5», однако в связи с тем, что многострочные названия по неведомой автору причине так и не прижились в современном компьютерном сообществе, он (автор) решил сократить это название, чудовищным образом исказив его исходный смысл.

-------------------------

Любая реализация паттерна Синглтон в общем случае преследует две цели: во-первых, реализация должна быть потокобезопасной, чтобы предотвратить создание более одного экземпляра в многопоточном мире .Net; а во-вторых, эта реализация должна быть «отложенной» (lazy), чтобы не создавать экземпляр (потенциально) дорого объекта раньше времени или в тех случаях, когда он вообще может не понадобиться. Но поскольку основное внимание при прочтении любой статьи про реализацию Синглтона отводится многопоточности, то на «ленивость» зачастую не хватает ни времени не желания.

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

О вреде изменяемых значимых типов

Reading time8 min
Views22K
Большинство программистов, которых нелегкая судьба свела с платформной.Net знают о существовании значимых типов (value types) и ссылочных типов (reference types). И довольно многие из них прекрасно знают, что помимо названия, эти типы имеют и другие различия, такие как расположение объектов оных типов в памяти, а также в семантике.

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

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

Платное и бесплатное приложения: два в одном

Reading time3 min
Views12K


О том, как непросто создать приложение с поддержкой In-App Purchase на хабре уже рассказывали (здесь и здесь), — слишком много кода для такой простой функциональности.

Даже поддержка оплаты через PayPal внедряется намного проще.

Но благодаря Robot Media SL и open-source библиотеки Android Billing Library, наша жизнь упрощается. Намного упрощается.
Читать дальше →

Portable Areas как вариант модульности в MVC

Reading time3 min
Views3.7K
Один из первых вопросов, которым я задался после знакомства с азами технологии MVC3, это способ выделения и повторного использования функционала в нескольких веб-проектах.
В WPF или WinForms все просто и понятно — обособленный функционал изолируется в модуль, модуль компилируется в библиотеку, библиотека — подключается к проекту и повторно используется. Нужно лишь грамотно изолировать модули и всё будет хорошо.

В MVC, если «обособленный функционал» — это набор контроллеров и вьюшек, реализующих, допустим, гостевую книгу, их можно обособить в виде «области» — area. Однако просто так вынести эту область в отдельный модуль нельзя — MVC просто не найдет ваши контроллеры/вьюшки в соседних библиотеках.

Однако решение, конечно, есть, и его нам предлагает небезызвестная библиотека MvcContrib — open-source проект, неаффилированный Майкрософтом.
Читать дальше →

Information

Rating
Does not participate
Location
New South Wales, Австралия
Date of birth
Registered
Activity