You are viewing [info]altyn's journal

Eugene Altyn [entries|archive|friends|userinfo]
Eugene Altyn

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Goodbye To Romance-Lisa Loeb [Apr. 5th, 2011|12:27 pm]
[Tags|]

http://www.youtube.com/watch?v=g0EqE9xp_2o&feature=player_detailpage
Link4 comments|Leave a comment

C#: Зачем нужна Explicit Interface Implementation? Хорошая иллюстрация. [Nov. 18th, 2010|02:58 pm]
Если коротко, Explicit Interface Implementation - это синтаксическая конструкция C#, которая позволяет разрешить конфликт имен методов при наследовании от разных интерфейсов, в которых есть методы с одинаковой сигнатурой. К имени метода просто добавляется префикс с именем интерфейса. Например:

interface IOne{ void Foo(int count); }

interface ITwo {void Foo(int count);}

class A : IOne, ITwo
{
public void Foo(int count){}
void ITwo.Foo(int count){} //Explicit Interface Implementation
}

Модификатор доступа у метода с Explicit Interface Implementation опускается, вызов такого метода возможен только через переменную имеющую тип данного интерфейса.

Разумеется, если все интерфейсы и классы могут быть изменены в процессе разработки лучше избегать конфликта имен. Однако даже в FCL(она же BCL) есть примеры когда имена методов пересекаются. Рассмотрим тип IEnumerable<T>: поскольку IEnumerable<T> наследуется от IEnumerable мы имеем два экземпляра метода GetEnumerator():

1) IEnumerator GetEnumerator()
2) IEnumerator <T> GetEnumerator().

GetEnumerator() - супер важный метод, именно он вызывается в начале цикла foreach. А теперь, внимание, вопрос - какой из 2-х GetEnumerator() будет вызван из foreach?
Ответ лучше всего получить экспериментальным путем - создать наследника IEnumerable<T>. Для простоты эксперимента лучше всего агрегировать и обернуть какой-нибудь стандартный класс-коллекцию и обратиться к экземпляру нашего класса из forech. В результате выясняется, что будет вызван метод, который не использует Explicit Interface Implementation. Отсюда следует, что следующий код не очень хорошая идея:

IEnumerator<T> IEnumerable<T>.GetEnumerator(){...}

public IEnumerator GetEnumerator(){...}

В данном случае будет вызван не generic метод - в следствии имеем все прелести boxing/unboxing.
Если оба GetEnumerator() сделать с Explicit Interface Implementation будет вызван generic метод.
Этот факт нужно учитывать при написании собственных коллекций.
Link13 comments|Leave a comment

More Than A Feeling [Jul. 5th, 2010|11:22 pm]
Посмотрел The Men Who Stare at Goats(в переводе "Безумный спецназ") понравилось, еще понравилась песня More Than A Feeling испоняемая ВИА "Boston"

Link2 comments|Leave a comment

Free XML editor with XPath support, ORM(извините наболело) [Feb. 26th, 2010|02:01 pm]
[Tags|, ]

Exchanger XML Lite V3.2 (с незамысловатым адресом  http://www.freexmleditor.com/)
Не понимаю, почему MSFT до сих пор не встроил поддержку XPath в Visual Studio при поиске/навигации.

Да, кстати, LINQ to XML сосет, XPAth - рулит. Тo что на XPath пишется в одну строку на LINQ выгдяит каким-то громоздким чудовищем.
LINQ to SQL тоже сосет, а SQL cоответственно рулит. Никакое удобство не компенсирует потерю производительности в 2 порядка. Возможно я не умею готовить кошек, тогда где же удобство и простота использования?
Выкручивание рук ORM-у сопостовимо с затратами по кодированию без ORM, только во втором случае процесс более детерминированный. Для средних и крупных систем с интентсивным обменом данных ORM не годится. Да, N-Hibernate гораздо круче - тормозит всего лишь в 2-3 раза. Мы тут у себя используем автогенерацию Table gates/Entities(Code Smith) + доморощенную библиотеку data access(возможно [info]dewfy захочет рассказать больше) - тоже маппинг на Table gates/Entities через атрибуты. Почти не тормозит, самое слабое место многократное чтение единичных записей(типичный сценарий для web) - дает себя знать доступ к полям SqlDataReader по имени, а не поиндексу.

LINQ to Objects рулит, да.
LinkLeave a comment

Download in Chrome after crash [Feb. 26th, 2010|11:56 am]
[Tags|, ]

Разбалованный хорошим инетом я уже и забыл о таком пережитке как даунлоад-менеджер. Тупо качаю Хромом, он иногда падает, так вот, после того как он запускается после креша - даунлоады отваливаются, более того, повторная закачка скачивает файл не полностью. Таким образом я наконец-то узнал что Free Download Manager поддерживает Хром(Options->Settings->Downloads->Monitoring->Google Chrome check box)

ЗЫ: криво интегрированно, с файлообменников ссылки не подхватывает(пошел ставить оперу)
Link2 comments|Leave a comment

Бесплатный aудио конвертер [Feb. 25th, 2010|02:11 pm]
[Tags|]

После непродолжительных поисков остановил пока свой выбор на Bonk Enc. "Пока" потому как BonkEnc не открывает некоторые FLAC файлы. Использовал до недавнего времени Jet Audio(3х летней давности), мало того что он платный, так еще иногда осыпается при конвертации FLAC.
LinkLeave a comment

consumerism: notebook [Feb. 25th, 2010|02:08 pm]
[Tags|]

Best price/value
Samsung R580 (NP-R580-JS04UA) Red
Цена: 8112 грн. (1009 $)
15.6", 1366x768 / Intel Core i5-430M (2.26 ГГц) / RAM 3 ГБ / HDD 500 ГБ / NVIDIA GeForce GT 330M, 1024 МБ / DVD SuperMulti / LAN / Wi-Fi / Bluetooth / веб-камера / Windows 7 Home Premium / 2.5 кг


Better
HP Pavilion dv6-2090er (VT917EA)
Цена: 10567 грн. (1316 $)
15,6”, (1366 x 768), HD LED / Intel Core i7-720QM (1,6 ГГц) / 4 ГБ / 250 ГБ / NVIDIA GeForce GT 230M 1 ГБ / DVD SuperMulti / Wi-Fi / Bluetooth / веб-камера / Windows 7 Home Premium / 3,14 кг


Acer Aspire 5940G-724G50Mi (LX.PFQ02.116)
Цена: 14406 грн. (1794 $)
15.6" (1366 x 768) HD LED / Intel Core i7-720QM (1.6 ГГц) / 4 ГБ / 500 ГБ / ATI Radeon HD 4650 1024 МБ / DVD SuperMulti / Wi-Fi / Buletooth / веб-камера / Windows 7 Home Premium / 3 кг



mobile CPU benckmark list

mobile grapics benchmark list
Link6 comments|Leave a comment

Посмотреть: "9" (produced by Tim Burton) [Feb. 25th, 2010|02:07 pm]
[Tags|, ]

http://www.imdb.com/title/tt0472033/
LinkLeave a comment

Тормоза при записи DVD [Feb. 25th, 2010|01:50 pm]
[Tags|]

Почему тормозит система(Windows XP SP3) при записи DVD(CD не пробовал), особенно в начале и в конце записи?Использую бесплатные AstroBurn(плавные тормоза все время записи с пиками в начале и в конце) и СВ Burner XP(резкие тормоза вначале и в конце). Или может дело в приводе(LG hl-dt-dvdram gh22ns50)? Так совпало что я начал пользоваться бесплатными писалками на новом компе на работе.
Вопрос не совсем праздный - собираюсь поменять дома комп, соответственно нужно выбрать не тормозящий привод.
Link1 comment|Leave a comment

Information is beautiful [Dec. 24th, 2009|12:17 pm]
Открыл для себя Information is beautiful, блог с инересными инфо-визуализациями.

The Billion Dollar Gram
Reality Checking Device
A visual map of the arguments for and against human-caused global climate change.

Картинка для привлечения внимания )
Link3 comments|Leave a comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]