Subscribe Twitter

понедельник, 19 сентября 2011 г.

Утечка памяти в BlockingCollection

В .NET 4.0 появился класс BlockingCollection. С его помошью, к примеру, очень элегантно реализуется паттерн Producer-consumer.

Однако, как оказывается, в нем есть утечка памяти....

В тикете описан workaround, с реализацией обвертки над объектом, который использоется в коллекции, и последующим сбросом поля содержащего ссылку на реальный объект в null.
Как я понимаю это решает проблему только частично, так как в таком случае очишается ссылка на реальный объект, но ссылка на обвертку остается.

С помощью данного класса я в многопоточном режиме парсил csv файлы объемом в несколько гигабайт, с последующей записью в БД. Два дня убил на дебаг... После реализации workaround'a, у меня получилось загрузить файл объемом в 1GB, но на 13GB, я снова поймал Out of memory:(

понедельник, 12 сентября 2011 г.

OFF: О футболе

Рейтинг ФИФА:

40 Burkina Faso 646 -1 Down -15
41 Belarus 645 1 Up 9
42 Czech Republic 635 -4 Down -35
43 Jamaica 623 1 Up -9
44 Venezuela 615 -4 Down -33
45 Hungary 613 2 Up 10
46 Algeria 612 6 Up 37
47 South Africa 602 2 Up 5
48 Ukraine 598 -3 Down -22
49 Senegal 591 -3 Down -28
50 Honduras 589 1 Up -3

Дожились... Нас обошла Белоруссия и Буркина-Фасо, а в спину дышит Гондурас. ЕВРО будет нашим:)

понедельник, 4 июля 2011 г.

Книга Inside Microsoft® SQL Server® 2008: T-SQL Querying

Закончил читать книгу inside microsoft sql server 2008: t sql querying. Процесс тюнинга очень хорошо и подробно расписан. Много качественных примеров.
Нужно будет еще как-нибудь прочитать книгу этих же авторов Inside Microsoft® SQL Server® 2008: T-SQL Programming

пятница, 1 июля 2011 г.

Мой переход в Люксофт и его причины

Я очень люблю свою нынешнюю работу, однако потребность в покупке недвижимости подстегивает нужду в американский президентах. Так уж получилось, что руководство нашей компании считает, что очень круто нанимать людей с небольшим опытом 1-2 года(совсем нулячих студентов брать слишком не выгодно). Как только человек немного взрослеет - он уходит куда то на зп в два раза больше. Статистика узнавалась при распитии алкогольных напитков с бывшими коллегами. В результате, раз примерно в 1.5 - 2 года меняется команда программистов.

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

Обратная сторона медали, что в результате такой бурной деятельности создаются мега "архитектуры".
Мое поколение в свое время очень проклинало предыдущих разработчиков.
Если человек до этого вообще ничего по-человечески сделаного не видел - "архитектура" будет еще ядренее.

Мне очень хочеться верить, что в свое время я прошел очень хорошую школу, когда били по рукам за некрасиво названный метод, и работа в украинском филиале одной крупной французкой финансовой компании только развила мои лучшие профессиональные качества. Я очень пытался повлиять со своей маленькой позиции разработчика на то, чтобы то, что мы делали хотя бы немного поднялось выше уровня "клепания на коленке". Надеюсь, что нас Сашей проклинать будут немного меньше, чем мы проклинали наших предшественников:)

Как показывают последние события - желание нашего бизнеса заработать денег, и при этом не инвестировать в IT принимает реально неадекватные размеры. Мне очень жалко ребят из ISES, которые вынуждены вытворять с одним банковским приложением просто не вероятные вещи, только из-за того, что наш бизнес жлобится докупить специальный модуль, который данную бизнес задачу решает.

Французы вообще боятся Украины как огня. И то, что в IT явно не хватает персонала и сильного квалифицированного менеджмента, который мог бы иногда сказать бизнесу "нет" - факт на лицо. Я вот только не понимаю - неужто им так наплевать на собственный имидж, и их абсолютно не волнует, что ПО, которое обслуживает их бизнес такого низкого качества?

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

Сегодня подписывал документы в Люксофте. Не ожидал, что прийдется подписать столько бумажек:) Столько еще до выхода нужно подучить. Буду теперь работать на UBS.
Я уже не в том возрасте, чтобы носить розовые очки, но все же хочеться верить, что там нету такого бардака, который есть у нас. Что получиться вырости в профессиональном плане. Что получиться, наконец-то, перестать бомжевать:). И что коллектив на проекте будет хотя-бы чуть-чуть таким же классным, как у нас сейчас.

четверг, 30 июня 2011 г.

DBFExporter

Задача: Сохранить файл с данными в формате dbf.

Есть разные способы решения данной задачи. Очень часто люди используют пакет MS Office. Excel или Access умеют работать с данным форматом.
Это несколько суровый способ:
1) требует наличия онных на машине у пользователя.
2) COM - со всем вытекающим гемором.

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

Так как мы в своем приложении используем Excel для определенных целей, идея использовать Excel для экспорта в dbf показалась мне заманчивой, тем более, что он поддерживает все версии формата.

Какого же было мое разочарование, когда выяснилось, что по причинам судовой тягомотины Майкрософт удалила возможность сохранять файлы dbf в MS Excel 2007. Читать он умеет, а вот сохранять фиг. Учитывая, что у доброй половины пользователей именно Excel 2007 - делать под 2003, а потом доказывать, что он должен обязательно быть у пользователя, как то не хочеться.

И тут на помощь приходит гугл. Утилит и библиотек, которые бы могли конвертировать csv в dbf не меряно, но большинство из них стоит примерно по 20$.

Единственное бесплатное и вроде бы работающее решение было найдено на соурсфордже

Экспорт осуществляется в dbf 3. По умолчанию файл сохраняется в кодировке ASCII. Имея исходники, нужно поменять код в двух местах, чтобы экспортировать в любой кодировке.

P.S. Если сгенерированный мной сегодня файл, завтра не получиться загрузить в банковскую АБС - будет не хорошо. Верим в лучшее

вторник, 31 мая 2011 г.

Впечатления от чтения спецификации языка C#

Тоска жуткая. Как в справочник заглядывать можно, как книгу читать очень тяжело. Куда приятнее читать MSDN.

понедельник, 7 марта 2011 г.

OFF: Отпуск в Праге

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

Приехал в аеропорт Борисполь. Было ощущение, что это какой-то автовокзал регионального масштаба - куча народу стоит прямо во входе на терминал B с сумками. Прошел регистрацию, сдал багаж, побродил по дьюти фри. Может мне так повезло, но в зале ожидания была целая куча товарищей из Индии, в национальной одежде, чалме и т.д. Некоторые из них, раззулись и босиком развалились на лавочках. Если бы не знал, что они до этого прошли контроль, и ждут свой самолет - решил бы что это бомжи (не дай бог прийдется когда-то поехать в Индию). На выходе из терминала, ожидал автобус, который довез до самолета, так и хотел выкрикнуть: "Пасажиры, передаем за проезд". Далее трап, небольшая толкучка, -13 градусов. В общем не приятно.

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

Далее трансфер в отель. 3-х звездночный ABE, на Легерова 22. Минут 5 пешком от метро И.П. Павлова. Там в округе куча отелей. В целом небольшой отельчик, наверное от 3-х звезд ожидать большего не стоит. Типа евро ремонт, вроде не очень грязно, вода горячая есть, тапочек и холодильника нету (в Украине в "нормальных" - с евро ремонтом отелях мне всегда попадались тапочки). Шведский стол на завтрак с неочень большим выбором блюд (колбаса, сыр, мясная нарезка, орехи, хлопья, чай, кофе, молоко). Ресторанчик при отеле начинал работать в 8 утра. Что не очень удобно, если тебе к примеру в 7:00 уже нужно ехать смотреть другой город. Для тахих случаев заранее нужно просить сухпаек, который с утра можно забрать на ресепшене. В сухпаек входило пару бутербродов, кусочек плавленого сыра, помидор и сок. В общем желательно перед таким днем затарится в ближайшем магазине.

Практически весь персонал (с которым приходилось общаться на ресепшене) знает русский. Была девушка лет 25-30 (судя по всему носитель), тетка лет 45-50 (заметно что не носитель, но говорит не плохо), мужик лет 40 (говорит с трудом, но понимает нормально), и парень лет 20-25 (сказал что по-русски не говорит и мы общались на английском).
Вообще как у меня сложилось впечатление, то люди работающие в местах скопления туристов практически все владеют русским. Если не владеют русским, то вполне сносно владеют английским.
Если поприставать к прохожим на улице (а Вы не подскажете как пройти в библиотеку?), то в местах где туристов не видно (специально заезжал, чтобы посмотреть на обыденую жизнь города), то молодежь говорит по-английски (я уж совсем быдловатых не спрашивал, хотя особо таких и не видел). Спрашивал двоих человек лет 50-60, они не по-русски не по-английски не говорили. После чего я решил, что лучше прямо влоб без "Sorry, do you speak English?" подходить к молодеже, и мне ни разу не попадались такие, которые бы не разговаривали на сносном по моим меркам английском.

Ну а так, что поразило, что люди работающие с туристами, сразу определяют людей из бывшего СССР.
Я зашел в бар, ни слова не успел сказать ни по-русски, ни по-английски, как мне принесли меню на русском. На улице, где куча туристов со всего мира подошел араб, и по-русски предложил поменять у него деньги. Не я один такой. Много народу удивляется как они это делают. Вроде ведем себя нормально, а пожалуй и лучше буржуйских туристов (так как более зашуганные). Одеты точно в такой же въетнамо-корейский шарпотреп как и другие. Как мне объяснили, у нас более угрюмые выражения лиц. Да понаблюдал, так оно и есть. Наши даже если и улыбаются, то как-то более сдержано, как будто совком (Союз нерушимый республик свободных) по роже получили.
Естественно если уйти с туристических троп, то мы от чехов вообще не отличаемся (братья славяне). Со мной несколько раз на улице несколько раз пытались заговорить по чешски.

Чешский язык это нечто :) Я почему то думал, что смогу понимать говорящих между собой чехов, так как понимал польский, когда смотрел польский канал (почти все понимаешь, но через полчаса начинает с непривычки ехать крыша). Оказалось не так просто. Некоторые слова улавливаешь, но они могут означать вовсе не то, что ты думаешь. Например слово "Pozor", перевонится не как "позор", а как "внимание". Если говорить медлено, и они говорят медлено, то впринципе зная русский, украинский и используя язык жестов можно объясниться на уровне совершения покупки в магазине:). Некоторые ихние слова для нас могут быть интуитивно понятными, например "возидла" - машина, "летадла" - самолет :) "дікую" - спасибо, почти как украинское "дякую".

Если сравнивать цены, то цены на продукты питания в магазинах примерно соответсвуют нашим украинским. Одежда, наверное тоже, по крайней мере я заходил в некий Sportisimo, который и по ценам, и по асортимену мало чем отличается от Спортмастера.
Цены в ресторанах, примерно такие же как в Киеве. Стейк обходится примерно в 150-200 крон (делим на два получаем гривны), бокал пива (я пил только местное чешское) 30-50 крон, если не заводское, а из собственной пивоварни, то немного дороже. Порции большие:) Я например, заказал свинное колено весом 1800 грамм (большая часть пожалуй кость, но и мяса тоже много) и осилил его с огромным трудом. Пиво, в целом, как пиво. Бутылочное чешское в Чехии ни чем не отличается от бутылочного чешского в Украине. Стоит пробовать пиво в маленьких пивоварнях, например в Страговском монастыре или в пивоварне в Дитинице. Даже не по тому, что оно какое-то особенное по вкусовым качествам, а потому, что варится в ограниченных количествах, может хранится лишь несколько дней, и его больше нигде не попробуешь. Козел и Старопрамен, который делают в Чехии, по вкусу мало чем отличается от тех, которые делают у нас. В общем пиво - это дело вкуса. Моим любимым пивом как было, так и осталось темное Крушовице. Еще нормальное Крушовице Мушкетер (у нас не встречал). Не понравился Златопрамен и Пилснер Уркуел, реклама которого на каждом шагу.

В среднем на хорошо покушать выходило 10-15 евро с человека. До этого ездил в Прагу коллега, и расказывал о 30-и евро. Мне аж интересно, это что такого можно съесть за такие деньги? Найти бюджетный вариант типа Пузатой Хаты у меня не вышло (правде не особо искал). Есть куча Макдональдстов, но это для гурманов :) Проезд дороговат. Билетик на полчаса или 5-станций метро - 18 крон. На 75-минут - 26 крон. На день - 100 крон. Годовой проездной на год что-то в районе 4600 крон.

Качество общественного транспотра на порядок выше чем в Киеве, на половине станций в метро есть лифты для инвалидов. И люди на инвалидных калясках ездят в метро. Нету этих долбанных маршруток (я не видел). Покупаешь билетик, компосируй и едь на метро, пересаживайся на трамвайчик, автобус. Никаких: "Пасажиры, передаем за проезд. Одной рукой курит, другой считает деньги, ногой рулит и подрезает другого такого же. Так, я бл#дь не понял кто не передал ...". Турникеты чисто символические. Просто стоят аппараты, в которые вставляешь билет и тебе на нем отпечатывается время и станция на которой ты сел. Если билет уже пробит, и еще действует спокойно проходи не останавливаясь и не прикрывая ничего в страхе рукой, чтобы не прищимило. Контролеров не видел. Местные расказывали, что они есть, и штрафы очень не хилые. Дороги не идеальные, но гораздо лучше чем у нас. Ездил в метро в часпик. Такой давки как в Киеве вроде нету. Может повезло, а может пражская инфраструктура больше соответсвует реальному количеству жителей. Официально в Праге живет 1 200 000 человек. Понаехавших, вроде меня ведь тоже хватает (?) + толпы туристов в центре (это был еще не сезон).

В первый день было полдня свободного времени.
Поменял деньги. С одной стороны пожалел, что в Украине купил евро, а затем менял на кроны. Во многих обмениках в центре принимают гривны. Единтсвенное что нужно быть внимательным, так как в обменике могут взять комиссию. Нужно менять у арабов, или там где написано комиссия 0%.

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

Второй день была поездка в Вену. Выездные экскурсии на день - отстой. Час-два едешь. Три часа тебя водят по историческому центру города, потом есть два-три часа свободного времени. Которого хватает на то, чтобы покущать, сходить в какой-нибудь музей и зайти в пару магазинов. В отличии от Чехии, в Австрии и Германии по-русски не особо говорят (и слава богу). Чтобы заказать покушать или что-то купить английский знать желательно. Можно, конечно, как многие наши мычать и тыкать пальцами, но это довольно тяжело как по мне. В Вене красивый императорский дворец, куча статуй мужика на коне (император Вацлав). По сравнению с Прагой - лучше дороги и куча велосипедных дорожек для велосипедистов. На велосипедах ездят девушки в юбках. Так и представил гламурных фиф, типа Маши Ефросининой (а хто це?), на таком вот велосипеде, с корзинкой для продуктов:) Ничего против данной дамы не имею (мне вообще по барабану на украинский шоубизнес), просто привел как собирательный образ для примера.

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

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

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

Много бродил по Праге сам. Куча музеев. К примеру, возле Карлового моста есть музей Франца Кафки. Говорят, что очень хороший. Жалею, что не попал. В полностью свободный день съездил в зоопарк и кукольный театр на Дон Жуана (понравилось, рекомендую, хотя дороже чем в Киеве - я заплатил 450 крон). Если сравнивать, к примеру с Киевом, то как мне показалось - все немного удобнее, чище и человечние. К примеру, у входа в парк есть специальные пакетики для собачек. Собачка покакала, хозяин собирает это дело специальным совком, ложит в пакетик, и выкидывает в урну. Полиция (а ее там довольно много), наверное также продажная, местные расказывают, что с ними впринципе за 200 крон можно договориться. После 10 вечера, между станциями метро Музеум и Мустек буквально через каждые 20-30 метров стоит по негру (простите, по афрочеху). Незнаю, наверное, они проводят экскурсии по ночной Праге :) и делятся за это с полицией, раз я турист на них обратил внимание, а полицейские на экскурсию сходить не хотят (или уже были?)

Ничего такого сверхестетвенного в Чехии я не увидел. Уровень жизни, как я понимаю, там не очень высокий. Естественно выше чем в Украине:( Пенсия 500 евро против 100 - это все же разница. Если двигаться в нужном направлении, догнать чехов было бы более чем реально. Но только не в том направлении движемся.

Гуляя с группой по Страгоместкому монастырю, наблюдали картину, как к монастырю подъехали три черные ауди. Из одной вышел президент чешской республики, они с делигацией пошли возлагать венок (умер какой-то чешский писатель). Я стоял от президента Чехии метрах в 20 (есть его фотка). Кто может подобное представить в Украине? У нас бы омон оцепил все в радиусе километра, президент прилетел на вертолете, а меня если бы я попытался приблизится, с крыши бы пристрелил снайпер. На обратной дороге, мы опять встретили мышину с президентом (уже одну). За рулем водитель, на заднем сиденье президент, и аж один охраник. Никаких тебе кортежей, мигалок, перекрываний дороги, машин скорой помощи, которые на скорости за 100 км в час по городу создают ДТП. Ведь если сократить чрезмерные затраты на охрану нашего уважаемого президента и служебные авто для депутатов, можно ведь закупить пакетики для собачьих какашек? Причем большинство людей ведь у нас абсолютно нормальные, и если показать как это делается и поставить побольше урн, многие люди ведь будут убирать за своими питомцами.

В предпоследний день поехал в Нюрнберг. В городе сохранилась городская стена (довольно толстая), которая окружает всю историческую часть города. Куча средневековых башен. В общем с точки зрения туриста, очень круто. Далее я получил настоящий шок. Это известно, что в Германии очень высокий уровень жизни, но пока я этого не видел, я не представлял как это, когда пенсия в стране порядка 2000-3000 евро. В центре города ресторанчики, все желающие не помещаются в середине. На улицу выставлены столы, просто в огромных количествах. Льется море пива, официанты носят горы еды. Сидят немцы различных возрастов. Те что помоложе, одеты кто во что. Многие из тех, кто постарше в пальто и шляпах. Сложно представить, чтобы украинский пенсионер пошел попить пивка в центр города, да? На центральных улицах дорогие модные магазины (Gucci, Marc&Spencer и т.д.). В них, как в продуктовый магазин заходит куча старушек. Стоит припаркованный Порше Кайен, в него садится дедушка. В Украине, конечно, тоже есть дедушки на порше, но их еще нужно поискать. А там это все в таких количествах, что психически неподготовленому человеку вроде меня бросается в глаза. Еще бросается в глаза куча арабов или турков, но это другая история :)
Обедали мы в большом баре, не помню названия.Он немного отдален от центра, и цены там пониже. За порцию из 6 Нюрнберских сосисок с гарниром из капусты 6 евро (вполне сносно). Неплохое свое пиво. Кругом куча болельщиков футбольного клуба Нюрнберг. Не знаю, выиграл ли Нюрнберг, проиграл, или они просто собрались попить пива, но поющие песни немцы это очень калоритно:) Все спокойно и мирно. Никаких беспорядков и кучи этих гребанных семечек, как на наших стадионах. Было бы время, обязательно бы сходил в Германии на футбол.

В целом скажу, что поездкой остался доволен. Конечно, у них тоже не все идеально. На улицах чище чем у нас, но чистота не идеальная, в общественном туалете может быть сломано сиденье и плохо пахнуть, но в целом лучше чем у нас.
Если есть кто-то такой же темный как я - нужно обязательно съездить в Европу. По деньгам у меня вышло за неделю 300 евро самолет + 300 евро проживание в отеле + дополнительные экскурсии (в среднем 50 евро) и питание в ресторанах (в среднем 10-15 евро с человека за раз) + сувениры 400 евро. Итого на все про все около 1000 евро. Могу сказать, что для первого раза в качестве просвящения оно того стоит. Хотелось бы еще побольше посмотреть Германию, чехи нас может и не на много опережают в плане экономики, но ощущение в целом, что у них гораздо больше людей пытаются быть людьми. По крайней мере, власти стараются, чтобы люди себя людьми чувствовали, а не быдлом как у нас. Ведь реально, не так много нужно сделать, чтобы хотя бы попытаться сделать улицы чище, чтобы запретить маршрутчикам ездить без кондукторов, чтобы повесить в центре города указатели, на разных языках, чтобы турист мог сам без гида найти Михайловскую площадь, к примеру.

P.S. Вернулся в Украину. Не хочу выходить на улицу, чтобы не видеть все то быдло с семечками и пивом Десант.