Search
Write a publication
Pull to refresh
0
0
Иван Кошелев @Koshelew

User

Send message

Как выполнять методы предков в реализации прототипного наследования

Reading time8 min
Views12K
При работе с наследованием иногда возникает желание иметь функцию доступа к методу предка (методу родительского класса) — в конструкторе (аналоге класса для Javascript) или в методе-потомке, потому что, бывает, что новый класс переопределяет его. Не просто какую-нибудь функцию (метод), а с совершенно понятной записью, чтобы название говорило само за себя, и имеющую доступ к указанному поколению предков (не «пра-пра-пра-», а «пра- 3 раза»).

Возьмём за основу метод прототипного наследования, который максимально эффективен тем, что производит минимум действий при описании цепочек наследуемых классов и при этом максимально поддерживает базовые операции и свойства наследования: instanceof, constructor. Для доступа к предку он создаёт свойство .superclass.
Читать дальше →

Аппликация Expressions

Reading time4 min
Views4.7K
Добрый день.

Просматривая недавно чужой код, наткнулся на довольно интересную задачу о IQueryable и Expession trees. Надеюсь, решение будет кому-нибудь полезно.

Задача заключается в том, чтобы повторно использовать некоторый Expression внутри другого Expression, например, у нас есть некий f:

Expression<Func<int, int, int>> f = (a, b) => a + b;


И мы бы хотели использовать этот f внтури другого expression, например так:

Expression<Func<int, int, int, int>> g = (a, b, c) => f(a+b,b)*c;


Причем необходимо, чтобы результирующий expression был «чистым», т.е. пригодным для использования внутри IQueryable (без скомпилированных функций и т.п.)

Решение

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

Reading time7 min
Views62K

Введение


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

Десять гребаных лет на разработку ERP

Reading time3 min
Views13K
Этот пост я пишу после того, как в очередной раз увидел плоды самостоятельной разработки ERP-системы.

Меня пригласили на встречу в компанию, которая десять (!!!) лет своими силами разрабатывала программный продукт для управления бизнес процессами (язык не поворачивается этот продукт назвать erp системой).
И вот по истечении десяти лет руководство компании понимает, что… ничего не понимает. В буквальном смысле слова. Программный продукт прекрасно решает вопросы, связанные с логистикой. Иными словами все вопросы, от момента получения заказа до момент вручения груза клиенту, решены весьма и весьма неплохо. Действительно неплохо. И все. Больше ничего.

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

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

Снова используем Unmanaged С++ код в .NET программах

Reading time7 min
Views4.9K
.NET C++

Около года назад я писал статью о том, как можно вызывать методы классов написанных на чистом Си++ из любой .NET программы не прибегая к регистрации COM библиотек, C++/CLI и т.п.

Сегодня я расскажу об еще одном оригинальном и весьма удобном подходе, а, кроме того, этот топик будет интересен всем хаброчитателям которые хотят побольше узнать о замечательном инструменте Reflection.Emit (на мой взгляд эта тема на хабре недостаточно хорошо освещена).

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

Исследование: 20% разработчиков игр для App Store получают 97% всех денег

Reading time7 min
Views13K


19 сентября я запустил опрос среди разработчиков игр для iOS с целью получить статистику по доходам как можно большего числа из них. Стояла задача сформировать реалистичную картину сегодняшнего состояния рынка и поделится этой информацией с сообществом. Меня к этому подвигло обилие статей, описывающих ситуацию в крайностях: “Разработчик сколотил миллионы на iOS играх!” или же “Игра заработала $0 в App Store”.

С мыслью получить объективное состояние дел, 19 сентября 2011 года я запустил семидневный опрос, в котором приняло участие 252 разработчика.
Читать дальше →

Каталог брендов по $250 (с доменами .com)

Reading time1 min
Views2.6K
Наглядный пример для домейнеров, как нужно строить модель бизнеса: новый сервис Stylate. Здесь начинающий стартап может подобрать красивое имя для сайта — и сразу купить выбранный домен .com вместе с логотипом в векторном формате. Логотип идёт как бонус. Самое главное, что пакеты «домен+логотип» продаются по единой цене $250. Это настоящий демпинг на рынке красивых доменов, где сделки часто проходят в районе $10 тыс.



Пока что каталог Stylate весьма скромный: на продажу предлагается всего 33 бренда, но уже готов рубрикатор на 31 отрасль. Очевидно, они будут пополнять ассортимент.

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

Кроссбраузерный вызов методов Flash из JavaScript

Reading time3 min
Views4.8K
Неделю назад в одном из моих проектов возникла задача заменить существующее слайд-шоу, реализованное на JavaScript более красивым, сделанным на Flash. При минимальном изменении кода требовалось вставить флеш-ролик и наладить передачу данных и обработку событий на страничке так, чтобы она и дальше продолжала работать корректно.

Русскоязычные статьи на тему передачи данных в связке JavaScript—Flash дают общее представление о процессе, но не учитывают одну важную деталь: в разных браузерах следует использовать различные объекты для выбора флеш-ролика. Наиболее часто предлагаемое решение работает в Chrome, но отказывается работать в Firefox, и уж тем более в IE.

Ввиду неполноты большинства статей на тему передачи данных между JavaScript и Flash, я считаю целесообразным подробнее рассмотреть этот вопрос.

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

Портирование приложений на Windows Phone 7

Reading time1 min
Views917
Microsoft старается упростить программистам портирование приложений с других платформ.

На сайте WindowsPhone.interoperabilitybridges.com опубликована таблица соответствий функций API для различных платформ (деревянное меню слева) функциям из Windows Phone 7 (тело страницы):

image

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

Разработка игры с использованием Box2D на ActionScript 3

Reading time6 min
Views9.1K
Доброго времени суток, дорогой читатель!
Недавно была опубликована статья, где описывалась работа с движком Box2D.
Однако, движок на сайте был версии 2.1a работа с которым, к сожалению, отличалась от работы предоставленной в статье. К сожалению скудная иностранная документация по этой версии движка заставила во многом разбираться самому. Частью своих изысканий я бы хотел поделиться с тобой, дорогой читатель.
Читать дальше →

20 бесплатных дополнений для Visual Studio

Reading time4 min
Views39K
Для Visual Studio 2010 создано уже около 900 дополнений. Многие из них позволяют облегчить решение рутинных задач, добавить удобства. Ниже представлено двадцать популярных дополнений, которые вы возможно найдете полезными для вашей работы.
Читать дальше →

Real-life unit tests

Reading time1 min
Views6.7K
Часто мне приходилось слышать, что кто-то послушал лекцию или прочитал статью про юнит-тесты, вроде как всё понял; решил сам попробовать — и ничего не получилось.

Почему так получается?

По-видимому, причина в том, что юнит-тесты обычно демонстрируют на простых примерах. А в жизни код сложнее. В реальных проектах код использует базы данных, веб-сервисы, код, написанный другими компандами и т.д.

В этом видео на живом примере показано, как писать юнит-тесты для кода с внешними зависимостями.

www.devclub.eu/2011/06/06/asolntsev-real-life-unit-tests

Слайды и пояснения:

Бот для Flash-игры / Внедряемся в Flash

Reading time5 min
Views58K

В рамках недели ботов для браузерных игр.

Эта неделя богата на статьи о ботах для бразуерных игр.
Во всех статьях для управления ботом использовался AutoIT. Это простой и хороший способ чтобы начать делать бота «в лоб», он не требует никаких знаний об игре, кроме как знания правил и графического интерфейса. Для серверной части игры такой бот вообще будет выглядеть как обычный пользователь, если не брать во внимание невероятную усидчивость и производительность такого игрока.

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

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

Создаём шрифт, имитирующий ваш рукописный почерк

Reading time3 min
Views1.1M
Учащимся старших классов и студентам ВУЗов, зачастую, делая домашнюю работу, приходится выполнять большое количество письменных упражнений. Например, наш преподаватель по обществознанию каждый урок задает нам ДЗ, заключающееся в том, чтобы мы нашли материал в библиотеке или Интернете, и написали его от руки (только за это можно получить оценку «отлично»), даже если найденный материал будет верным, но распечатанный на компьютере, выше четвёрки не жди…

Исходя из всего вышесказанного, я пришёл к выводу: нужно сделать шрифт для компьютера, дублирующий мой почерк. На мой взгляд, сделал я его успешно. Родная мать не отличит, где я писал от руки, а где напечатал компьютер. Многим моим знакомым понравилась эта затея, и они стали расспрашивать меня, как я это всё сделал. И чтобы каждому по сто раз не объяснять, я решил написать эту статью – план выполнения работы с подробными комментариями.

Итак, в этой статье я расскажу вам, как сделать шрифт, имитирующий ваш почерк.
Читать дальше →

Дистанционное образование в LSE

Reading time2 min
Views10K
— Sir Humphrey gets very upset. He doesn't regard Chief Scientific Advisor as one of us.
— I thought he won the DSO at Arnhem!
— That doesn't make up for speaking with an Austrian accent. And he certainly didn't go to Oxford or Cambridge. He didn't even go to the LSE.


Yes, Prime Minister


На фоне именитых британских Оксфорда и Кембриджа London School of Economics and Political Science известна куда менее, но именно об этом вузе можно сказать «широко известен в узких кругах». За более чем сто лет существования школы – семнадцать нобелевских лауреатов, четвертое место в списке лучших экономических школ мира и одна из наиболее развитых сетей дистанционного образования.
Читать дальше →

Нестандартное использование Get и Set в Javascript

Reading time2 min
Views5.1K
Многие в курсе, что в Javascript есть так называемые Getter'ы и Setter'ы. Это конструкции для отслеживания изменения значений свойств объекта, а так же возвращения этих значений. «С изнанки» объекта они выглядят как обычные функции:

var obj = {
   get value() {
     return 0;
   },
   set value(s) {
     alert ("Go screw yourself!")
   }
}


* This source code was highlighted with Source Code Highlighter.


Но раз это функции, их можно использовать как душе угодно!

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

Почему вы должны использовать XMLHttpRequest асинхронно

Reading time6 min
Views18K
*Пер.: Мысль этого топика тривиальная и должна быть известна каждому: используйте асинхронные запросы. Но статистика — штука суровая, и, видимо, это знают не все. А последствия, на самом деле, имеют место во всех браузерах.*

8.4% всех зависаний страниц в IE9 за прошедший месяц являются следствием того, что XMLHttpRequest объекты блокируют поток UI синхронным запросом. Это огромное число! С помощью нескольких доступных изменений в коде эти зависания можно легко избежать — и разработчики могут обеспечить своим пользователям намного лучшие впечатления от работы с их сайтами. Мы рассмотрим, что происходит при зависании, что вы можете с этим сделать, и мы также попробуем сделать небольшую демонстрацию, чтобы воочую посмотреть, что происходит, когда синхронный запрос подвешивает браузер.
Читать дальше →

13 бесплатных курсов Стэнфордского университета

Reading time2 min
Views72K
Недавно анонсированный бесплатный онлайн-курс Стэнфорда по основам искусственного интеллекта вызвал настоящий ажиотаж у публики. Заявки на регистрацию подали уже 81 966 человек. Оно и понятно: курс ведут Питер Норвиг и Себастьян Тран — настоящие звёзды. Первый раньше работал в НАСА и написал учебник по ИИ, а второй разрабатывает лучшие в мире роботизированные автомобили (для Google).

Очевидно, что качественное образование через интернет нужно людям и становится всё популярнее. Поэтому перед началом учебного года есть смысл напомнить список 13-ти бесплатных учебных курсов Stanford Engineering. В отличие от лекций Норвига и Трана, это не онлайновые, а старые курсы. В свободный доступ уже выложены видеозаписи всех лекций от первой до последней, PDF'ы с заданиями и другие материалы, но здесь нельзя задать вопрос преподавателю.
Читать дальше →

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

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

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity