Как стать автором
Обновить
53
0
Илья Тихонов @t13s

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

Отправить сообщение

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

Время на прочтение12 мин
Количество просмотров1.9K

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

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

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

Действительно, что?
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

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

Время на прочтение5 мин
Количество просмотров9.7K

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

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

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

Не переключайтесь
Всего голосов 18: ↑17 и ↓1+16
Комментарии17

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

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



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

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

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

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


Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии9

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

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

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

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

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

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

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

Время на прочтение3 мин
Количество просмотров20K
image

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

Кофе DIY

Время на прочтение6 мин
Количество просмотров4.2K

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

Читать дальше →
Всего голосов 87: ↑75 и ↓12+63
Комментарии46

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

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

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

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

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

Итак, приступим.
Всего голосов 88: ↑82 и ↓6+76
Комментарии64

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

Время на прочтение18 мин
Количество просмотров21K
Широкое распространение параллельных архитектур вычислительных систем вызывает повышение интереса к средствам разработки программного обеспечения, способного максимально полно использовать аппаратные ресурсы данного типа.

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

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

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

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

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

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

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

Информация

В рейтинге
5 078-й
Откуда
München, Bayern, Германия
Дата рождения
Зарегистрирован
Активность