Search
Write a publication
Pull to refresh
11
0
Станислав @Diaver

User

Send message

Валидация форм в декларативном стиле (C#)

Reading time5 min
Views27K
Я думаю, что многие из вас сталкивались с задачей валидации данных в формах. Это долго, утомительно и часто требует значительных усилий. Порой мне кажется, что ребята из Редмонта издеваются над нами, предлагая проводить валидацию так. Шучу, конечно, но этот метод мы использовать не будем.

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


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

Фантастические сериалы

Reading time5 min
Views122K
Любите ли вы сериалы? Точнее, любите ли вы хорошие сериалы? Конечно, понятие «хорошо/плохо» в искусстве полностью субъективно, поэтому ещё больше уточню свой вопрос: любите ли вы хорошие фантастические сериалы? Полагаю, что подавляющее большинство хабражителей ответят утвердительно. Сегодня я хотел бы рассказать вам о нескольких сериалах, которые стоит посмотреть каждому любителю фантастики.

Светлячок





Если вы ещё не смотрели классику приключенческих фантастических сериалов, «Светлячок», то самое время это сделать. На протяжении 14 (формально — 15) серий мы наслаждались приключениями команды космических наёмников-авантюристов во главе с обаятельным капитаном Рейнольдсом, роль которого исполнил Натан Филлион.
Читать дальше →

Windows Runtime. Система типов и взаимодействие с CLR

Reading time9 min
Views16K
С выходом Windows 8 разработчикам стала доступна новая библиотека классов — Windows Runtime. Компоненты WinRT могут использоваться в приложениях Windows Store и настольных приложениях; в неуправляемом коде C/C++, в JavaScript, а также в C# и Visual Basic.

Метаданные Windows Runtime

На внутреннем уровне компоненты WinRT представляют собой компоненты COM (Component Object Model), для описания API которых теперь используются метаданные. Эти метаданные хранятся в файлах с расширением *.winmd и представляют собой обновленную версию метаданных .NET, которые кодируются в соответствие с правилами раздела №2 (Metadata Definition and Semantics) стандарта ECMA-335. Поскольку обычные сборки .NET Framework кодируются с помощью этого же стандарта, это говорит о том, что вы можете использовать знакомые средства (такие как ildasm.exe, Object Browser) для просмотра содержимого этих файлов.
По большей части, просмотр WinMD файла с помощью утилиты ildasm.exe очень похож на просмотр стандартной управляемой сборки. Есть несколько различий, которые могут быть видны — в первую очередь то, что WinMD файлы, в общем, не содержат никаких Intermediate Language (IL) инструкций. Вместо этого, эти файлы описывают API, предоставляемые Windows Runtime. Реализация этих интерфейсов может быть полностью отделена от их определения, и по сути, может быть записана в машинном коде. Тем не менее, для разработчиков управляемых приложений, детали реализации WinRT API не имеют значения, потому что управляемый код должен видеть только определения API, которые он вызывает. За кулисами, Common Language Runtime (CLR) и операционная система Windows соединяют для вас определения API и их реализации.
Читать дальше

Безграмотная мотивация — хуже отсутствия какой-либо мотивации

Reading time3 min
Views34K
Часто бывает, что какие-то бизнес-принципы одни компании копируют у других — просто потому, что директор компании когда-то где-то уже видел, как что-то было сделано в других компаниях, и, в силу отсутствия каких-либо знаний в соответствующей области, ему проще всего сделать у себя точно так же: вроде же как-то работает.

На самом деле в некоторых случаях это будет ошибкой. Один из довольно ярких примеров — мотивация персонала. Именно в разговорах о мотивации многие руководители проявляют вопиющую биологическую безграмотность.
Читать дальше →

Кроссплатформенный GUI на C# и веб-технологии

Reading time7 min
Views47K
Самая первая спецификация продукта, частично устная, содержала требование – наличие кроссплатформенного(Windows, Linux, Mac) клиента под десктоп и облегченную версию мобильного(Windows, Android, iPhone). По возможности интерфейс должен быть максимально похожим на разных ОС.
Благодаря Mono мы можем писать кроссплатформенные приложения, но вопрос с GUI остается открытым. Имеющиеся технологии под .Net(Windows Forms, WPF) хорошо работают только под Windows, и у нас уже был печальный опыт портирования Windows Forms. Под Linux мы можем использовать GtkSharp, но идея ставить Mono на Windows при наличии .Net мне не нравится. В итоге приходится писать и поддерживать отдельный интерфейс под каждую ОС.
Что в этой ситуации могла придумать команда .Net(с уклоном под веб)? Решили встраивать Webkit и писать GUI на связке html-js-css.
На сегодняшний день мы 2 года успешно используем такой подход для Windows и год – под Linux и Mac. До мобильной платформы пока руки не дошли.
Зачем и Как?

Как умирают софтовые компании, или Как правильно выращивать программистов

Reading time3 min
Views66K
imageОкружение, которое выращивает творческих программистов, убивает менеджмент и маркетинг. И обратное тоже верно.

Программирование — это великая Игра. Она поглощает тебя целиком, тело и душу. Когда ты весь погружён в него — для тебя более ничего не существует. Когда ты выныриваешь на свет, ты можешь с удивлением обнаружить, что прибавил 50 кг, возраст твоего исподнего приближается к возрасту первоклашки, и судя по количеству коробок из-под пиццы, уже пришла весна.
Но тебе всё равно, потому что программа работает, код красив, изящен и быстр.
Читать дальше →

Можно ли стать программистом после 30-ти?

Reading time4 min
Views256K


Тема, вынесенная в заголовок, недавно обсуждалась в одном белорусском IT-онлайн-издании. Правда, там стоял вопрос, можно ли стать программистом после 40-ка. Автор статьи, состоящей из нескольких частей, начал было описывать свой путь из журналистов в программисты, затем свел все к урокам PHP «для самых маленьких» и далеко отступил от темы. Но в материалах прослеживалась мысль, что бросить журналистику и заняться программированием ему так и не удалось. Из этого следует, что после 40 лет стать программистом если и возможно, то весьма непросто. Попробуем снизить возрастную планку на 5 – 10 лет.

Мне близка эта тема, поскольку я сам зарабатываю на хлеб журналистским трудом и тоже мечтаю стать профессиональным программистом. Невзирая на возраст. А в свете последних тенденций в IT (дефицита кадров) все громче звучат идеи о переучивании в программистов специалистов из других отраслей. Так что, не побоюсь сказать, что тема эта имеет государственную важность. Желающих вместе со мной разобраться с этим вопросом прошу под кат.
Читать дальше →

Управленческие инструменты: 5 вопросов для прояснения целей или для чего нужен BMW X5?

Reading time7 min
Views114K
Давным давно в одной из компаний, лидере мирового производства микропроцессоров, меня однажды поразила менеджерская напасть. Решил, знаете ли, заняться развитием сотрудников. (Периодически, такое с менеджерами случается, да.)

Подхожу к своему сотруднику — назовем его Серега:

— Серега, — говорю, — ты в какую сторону вообще хочешь развиваться: в техническую или в менеджерскую?

— Сань, ну голова варит уже не очень, возраст… (Серега старше меня на 3 года) Поэтому, наверное, в менеджерскую.


Ну, в менеджерскую — так в менеджерскую. Я ж на тот момент был менеджер опытный, уже 4 года опыта! Энергии много, желания помочь людям — через край!

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

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

Заодно поговорим, что делать, если вы обнаружили себя и/или своих сотрудников в квадрате C в статье:

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

В C# с типами все в порядке

Reading time3 min
Views25K
Прочитав статью «Усиливаем контроль типов: где в типичном C#-проекте присутствует непрошеный элемент слабой типизации?» был порядком удивлен, как ошибочностью данного подхода, так и тем, что никто не обратил на это внимание.

Автор поста приводит идею того, что метод, возвращающий ссылочный тип, объект которого создается из некоего репозитория, должен, тем или иным образом, гарантировать, что возвращаемый объект не будет null. При этом в одном из примеров он использует контракты, что противоречит их принципам. Я хочу разобрать ошибочность этого подхода.
Читать дальше →

Поливаем цветы – просто и быстро

Reading time6 min
Views101K
image

Привет, уважаемые Хаброжители!
Недавно мне позвонил отец, рассказал, что у него есть цветок, который он постоянно забывает поливать или наливает чрезмерно много воды, в итоге тот, то засыхает, то наоборот страдает переизбытком влаги.

Будем решать эту проблему с помощью микроконтроллера и C#.
Читать дальше →

Интересные моменты, которые вы, возможно, не знали о C# (Array)

Reading time1 min
Views54K
В продолжении статьи «8 фактов, которые вы, возможно, не знали о C#» описывающей интересные моменты языка C#, представляю крохотный очерк. Очень жаль, что некоторые воспринимают такие статьи как “капитанство” отбивая всякое желание к написанию, но несмотря на это, в комментариях, порой, всплывает много полезной информации.

Итак, что возвращают функции поиска индекса в массивах, если элемент не найден?
Читать дальше →

Работа над авторским озвучанием World of Tanks

Reading time4 min
Views65K
Доброго дня.

Я работаю в студии, которая занимается озвучанием компьютерных игр. Хочу рассказать о том, как мы работали над озвучанием World of Tanks.

World-of-Tanks

Конечно, многие любят рубать в WoT, я и сам потратил там немало времени и денег покупая новые танки и премиум снаряды. Игра классная, спору нет.

Но гоняя на своих танках, самоходках и САУ я всегда задавался одним вопросом.

И наверняка многие из вас задавали себе такой же вопрос:  "Неужели правда озвучку в World of Tanks записывали вот так?"


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

Как мы строили авиатренажер: бесценный опыт

Reading time10 min
Views132K
Привет всем!

Чуть менее года назад я включился в процесс строительства устройства, которое находится где-то между авиасимулятором и профессиональным авиатренажером. Это был не первый опыт — в 2009 году мы уже решали такую задачу, поэтому приступая к реализации весьма амбициозной мечты мы постарались не наступить на все возможные грабли. Тут я опишу предысторию с «первым блином», и как она повлияла на второй. Если будет интересно, напишу подробно про наш второй тренажер.

Пост в «DIY» потому, что ни у кого из нас раньше не было опыта строительства самолётов или профессиональных тренажеров. Более того, как выяснилось позднее, подходы при конструировании низкобюджетного авиатренажера кардинально отличаются от подходов в профессиональной области. В общем, и первый и второй тренажер был построен любителями, правда, с техническим бэкграундом.

Осторожно, много картинок, вызывающих нервный тик у любителей авиации и инженеров.
Итак…

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

Стоит ли идти в менеджмент и зона

Reading time4 min
Views37K
Пишу под впечатлением недавней статьи о построении карьеры в IT, которая мне очень понравилась и глубоко задела. Я считаю, что все, написанное там — непогрешимая истина, и экстраполируется на абсолютное большинство отечественных аутсорсинговых компаний.


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

История одного android-приложения

Reading time5 min
Views41K

Вот уже почти два года я занимаюсь разработкой небольшого android-приложения. Сразу скажу: никаких чудес и секретов разработки (продвижения) здесь вы не узнаете. Просто хочу поделиться интересными, на мой взгляд, моментами в развитии публичного приложения с открытым исходным кодом.
Кому интересно, как это было и к чему я пришел в итоге, прошу под кат.
Читать дальше →

Эволюция школьной программы по информатике

Reading time6 min
Views87K

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

Исходный код Second Reality передан в общественное достояние

Reading time1 min
Views17K
Пару дней назад Mika Tuomi, известный как Trug, передал исходный код Second Reality в общественное достояние.



Second Reality — это демо, занявшее первое место на демопати Assembly '93. Оно было создано командой Future Crew, которая на тот момент состояла из 12-ти человек. Впоследствии ее члены основали такие компании как Futuremark и Remedy Entertainment. Считается, что это демо оказало огромное влияние на развитие демосцены.

Статья о Future Crew в Википедии (англ.)
Статья о Second Reality в Википедии
Бинарники
Исходный код на Гитхабе

Что можно узнать о кандидате по тестовому заданию

Reading time9 min
Views87K
Какое-то время назад по Хабру прокатилась волна статей о поиске работы и прохождению собеседований. Многократно высказались и работодатели и соискатели. Но, к сожалению, не была в достаточной степени затронута тема тестовых заданий.

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

Предлагаю вашему вниманию тестовое задание, которое я уже довольно давно даю кандидатам в компании, где я работаю:

На экране есть сетка M на N из цветных квадратиков. Нужно реализовать на этой сетке следующий эффект — по клику слева направо со скоростью V пробегает волна, меняя цвет квадратиков на другой (единый для всей волны). Эффект должен работать при любых значениях M, N, V. Волна начинается всегда у левой стенки. Одновременно может идти несколько волн разного цвета.
Анимационный пример: http://dl.dropbox.com/u/3601116/wave.swf (покликать по флэшке).


Я не сомневаюсь, что это задание с легкостью сделают все программисты посетители Хабра.

А у меня получилась следующая статистика:

  1. В итоге, задание взяли чуть больше 20 человек.
  2. Пара человек ничего не сделали.
  3. Половина из оставшихся (по моим критериям) с ним не справились.
  4. Кандидаты четко разделились на весьма интересные группы.

Подумайте немного, как бы вы выполнили это задание, и заходите под кат, где я расскажу обо всем подробнее.
Читать дальше →

Новое издание CLR via C# уже в продаже

Level of difficultyEasy
Reading time2 min
Views15K
Мы рады сообщить, что только что поступил из типографии тираж нового издания книги «CLR via C» Джеффри Рихтера!
Четвертое издание книги охватывает версии .NET Framework 4.5, а также Visual Studio 2012 и C# 5.0.

image

Читать дальше - Доступна электронная версия книги!

Техподдержка Google или её отсутствие. Алгоритмы поиска помощи

Reading time7 min
Views112K
Недавно столкнулся с проблемой, когда мне понадобилась оперативная поддержка хотя бы информационная.

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

Видимо нет.

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

Дело в том, что я нахожусь в Украине, прямого номера по поддержке продуктов Google здесь нет, есть возможность только обратиться в саппорт. Или звонить в близлежащие или не очень страны. В последствии я все таки позвонил в Российское представительство, но об этом позже.

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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity