Pull to refresh
53
0
Илья Тихонов @t13s

C#-разработчик

Send message

Шаблоны, или что общего у приходного кассового ордера и метода ToString()

Reading time12 min
Views1.9K

Задачу генерации текстовых строк по шаблону никак нельзя назвать новой, даже с натяжкой. Сюда можно отнести и заполнение стандартных форм наподобие приходных кассовых ордеров, и экспорт XML/JSON во внешние системы, когда состав данных меняется реже формы их представления. Если основательно задуматься в момент натягивания совы на глобус, то в ту же категорию можно отнести и задачу формирования отчетов, и настраиваемые реализации метода ToString(), и… да много еще чего.

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

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

Действительно, что?
Total votes 2: ↑2 and ↓0+2
Comments0

GetHashCode() и философский камень, или краткий очерк о граблях

Reading time5 min
Views9.6K

Казалось бы, что тема словарей, хэш-таблиц и всяческих хэш-кодов расписана вдоль и поперек, а каждый второй разработчик, будучи разбужен от ранней вечерней дремы примерно в 01:28am, быстренько набросает на листочке алгоритм балансировки Hashtable, попутно доказав все свойства в big-O нотации.

Возможно, такая хорошая осведомленность о предмете нашей беседы, может сослужить и плохую службу, вселяя ложное чувство уверенности: "Это ж так просто! Что тут может пойти не так?"

Как оказалось, может! Что именно может - в программистских пятничных байках, сразу после краткого ликбеза о том, что же такое хэш-таблица.

Не переключайтесь
Total votes 18: ↑17 and ↓1+16
Comments17

Жизнь разработчика на Кипре

Reading time11 min
Views38K
Если вы, как и я когда-то, планировали вырваться из нежных и цепких объятий родины в цивилизованный мир, то наверняка сталкивались с персонажами, не вынесшими такого счастья и вернувшимися из иммиграции на территорию отечества. Наверняка можете вспомнить и полный недоуменного негодования вопрос «Почему?», обращенный к тем самым сумасшедшим. Вопрос этот зачастую оставался риторическим, ибо абстрактные ответы о непреодолимых культурных различиях и страстном желании обнять березки ответами де-факто не являются.



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

Итак, знакомьтесь, Кипр. Солнечный остров в составе Евросоюза, обладающий рекордным количеством чистейших пляжей на квадратный метр площади. Остров, где практически всегда лето, где буквально на каждой улице растут апельсиновые, гранатовые, абрикосовые и оливковые деревья. Остров, где местные жители беззаботны, открыты и дружелюбны. Где компания, в которой я тружусь, предоставляет бесплатное жилье в 10 минутах пешком от офиса плюс своевременно выплачивает денежку.
Что, спрашивается, может пойти не так?
Total votes 79: ↑70 and ↓9+61
Comments135

Как программисты на маркетинговую конференцию ездили, или о VeeamON 2015 от первого лица

Reading time10 min
Views4.2K
Давным-давно – месяца четыре назад – по корпоративной почте пришло «письмо счастья», предлагающее всем желающим попробовать свои силы и принять участие в VeeamON – глобальной конференции нашей фирмы. Как правило, на подобных мероприятиях выступают руководители департаментов, ведущие аналитики и маркетологи, но на сей раз решено было пригласить в качестве эксперимента и непосредственно программистов. Критериев для участия было, собственно, всего два: наличие уникальных знаний о продукте, которыми хочется поделиться с миром, и умение выразить эти знания в виде не слишком корявых фраз на английском языке. Поскольку местом проведения конференции был выбран Лас Вегас, заранее отказываться от соревнования за место на трансатлантический рейс с моей стороны было бы несколько опрометчиво. Итак, решение было принято. Под катом – рассказ о том, что за этим последовало.


Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments9

Обеспечение обратной совместимости .NET-приложений при использовании WinRT

Reading time3 min
Views6.9K
Создание Windows Runtime (WinRT) в качестве API, с одной стороны, можно только приветствовать, так как предыдущий — WinAPI — особой простотой и человеколюбием не отличался. С другой стороны, в полный рост при этом всплывает проблема обратной совместимости. Что делать, если нужно заиспользовать какую-то приятную мелочь, появившуюся в Win8, но при этом не терять совместимости с Win7, все еще бодро шагающей в строю?

Официальный MSDN к этому относится весьма однозначно: если нужен WinRT, то забываем про версии Windows, старше восьмерки; если нужно поддерживать всякое старье, то собираем приложение отдельно без упоминания об WinRT. Такие вот простые и незатейливые парни работают в Microsoft. Тем не менее, решение проблемы, причем достаточно простое, удалось отыскать.
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments3

Парсинг почтовых адресов из строки на C#

Reading time5 min
Views32K
imageНе так давно передо мной встала задача выгрузки данных одного моего заказчика в очередной около-государственный формат. Помимо прочего, в выгрузке требовалось структурированно предоставлять почтовые адреса клиентов-физлиц, включая индекс, область, район и так далее до номера квартиры.

Все бы хорошо, только засада в том, что исходные адреса клиентов были забиты в виде простой строки типа «Китежград, ул.Волшебная 22 дом кв.15». То есть, с одной стороны, о почтовых индексах никто слыхом не слыхивал, с другой же, текстовое поле ввода предлагает широкий простор для самовыражения и народно-прикладного творчества.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments49

VISA / MasterCard — личный прогноз в рамках «национальной платежной системы»

Reading time3 min
Views20K
image

Не так давно на Хабре освещался законопроект о национальной платежной системе. И как-то так получилось, что сообщество больше фантазировало на тему «как это реализовать технически», чем задавалось вопросом «а к чему это все может привести в такой чудесатой стране, как РФ». А привести это может вот к чему (немного грустных первомайских мыслей)…
Читать дальше →
Total votes 112: ↑52 and ↓60-8
Comments106

Кофе DIY

Reading time6 min
Views4.2K

Стоит ли публиковать на Хабре обзор девайса, не имеющего, если судить поверхностно, никакого отношения к информационным технологиям? Наверное, лучше этого не делать. По крайней мере, так советует здравый смысл. Однако я все же отправлю его временно в отставку и рискну. Ведь речь у меня сегодня пойдет про программерское топливо (см. habrahabr.ru/blogs/habraquotes/111432). Точнее – про кофе. А ещё точнее – про тернистый путь к недосягаемому идеалу вкуса и аромата этого напитка.

Читать дальше →
Total votes 87: ↑75 and ↓12+63
Comments46

Хитрим со Squid в корпоративной сети

Reading time4 min
Views18K
Недавно наткнулся на одну достаточно занятную статью (http://habrahabr.ru/blogs/sysadm/28063/), в которой описывалась возможность создания кластера proxy-серверов для увеличения суммарной пропускной способности. Изначально показалось, что место данного интересного решения – в музее устаревших технологий, однако, поразмыслив, пришел к более интересным выводам.
Дело в том, что наша контора, как и я, географически находимся в зоне с достаточно дорогим интернетом и не особо толковым в плане IT генеральным руководством. Как результат – на 500 с гаком человек приходится канал мегабита в два максимум; так что счастливым считается тот час, в который личная скорость поднимается выше отметки в 128 кбит/сек. А это более чем печально.
Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments47

3D-кинотеатр дома

Reading time15 min
Views23K
После просмотра всяческих Аватаров, Алис и прочей загадочной трехмерности, которая начала сыпаться на нас в последнее время, захотелось получить у себя дома хоть маленький, зато свой, персональный 3D кинотеатр. Как именно я действовал в достижении данной цели, что из этого получилось, и какие шишки набил по пути – об этом я и хочу рассказать в данной статье.

Для начала несколько существенных для меня предупреждений. Во-первых, статья выражает моё собственное ИМХО, которое может не совпадать с вашим; наверное, это даже хорошо, но чревато холиварами. Во-вторых, я считаю нецелесообразным скрывать названия производителей и фирм, товарами и услугами которых я пользовался при воплощении в жизнь моей мечты: стоит рассматривать бренды и ссылки не как product placement, а как необходимую составляющую часть моего обзора, ибо «сферические проекторы в вакууме» хоть и политкорректны, но не позволяют в полной мере описать полученный опыт.

Итак, приступим.
Total votes 88: ↑82 and ↓6+76
Comments64

Распределенные вычисления на платформе .NET

Reading time18 min
Views21K
Широкое распространение параллельных архитектур вычислительных систем вызывает повышение интереса к средствам разработки программного обеспечения, способного максимально полно использовать аппаратные ресурсы данного типа.

Однако к текущему моменту имеется определенный разрыв между имеющимися на потребительском рынке технологиями аппаратной реализации параллелизма и программными средствами их поддержки. Так, если многоядерные компьютеры общего назначения стали нормой в середине текущего десятилетия, то появление OpenMP — популярного стандарта разработки программ для подобных систем — отмечено почти десятью годами ранее [1]. Практически в то же время возник и стандарт MPI, описывающий способы передачи сообщений между процессами в распределенной среде [2].

Развитие обоих данных стандартов, выражающееся только в расширении функциональности без адаптации парадигм к объектно-ориентированному подходу, приводит к тому, что они оказываются несовместимы с современными платформами программирования, такими как Microsoft .NET Framework. Поэтому разработчикам этих платформ приходится прилагать дополнительные усилия по внедрению средств параллелизма в свои продукты.

В [3] автором была рассмотрена одна из таких технологий, Microsoft Parallel Extensions, позволяющая достаточно простым способом внедрять параллелизм в изначально последовательный управляемый код для компьютеров с общей памятью. Там же была показана возможность и целесообразность использования платформы .NET Framework для проведения научных расчетов. Тем не менее, остается открытым вопрос о применимости данной платформы для разработки программ, используемых для проведения сложных расчетов на системах с распределенной памятью, например, вычислительных кластеров. Данные системы базируются на совокупности соединенных между собой вычислительных узлов, каждый из которых является полноценным компьютером со своим процессором, памятью, подсистемой ввода/вывода, операционной системой, причем каждый узел работает в собственном адресном пространстве.
Читать дальше →
Total votes 57: ↑44 and ↓13+31
Comments28

Разработка .NET-приложений для AutoCAD в рамках архитектуры MVC

Reading time7 min
Views3.7K
Не секрет, что на сегодняшний день AutoCAD — наиболее популярная САПР, которая используется во многих отраслях человеческой деятельности. В базовой поставке она позволяет выполнять чертежные работы любого назначения с использованием только штатных средств.

Однако чистый AutoCAD – как графическое ядро в базовой комплектации – постепенно теряет свою актуальность. Происходит это потому, что сегодня пользователю важно проектировать взаимосвязанные объекты предметной области (стены, профили железной дороги, колеса…), а не графические примитивы на чертеже (точки, линии, окружности…); причем проектировать быстро, качественно и в соответствие со стандартами, действующими в той или иной стране и отрасли.

Естественно, все, что требуется конечным пользователям во всех странах, фирма Autodesk включить в состав системы AutoCAD, не могла, поэтому в AutoCAD были внедрены средства программирования, позволяющие пользователям самостоятельно адаптировать его к собственным нуждам [1].
Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments5

Information

Rating
5,081-st
Location
München, Bayern, Германия
Date of birth
Registered
Activity