Блог

Будущее XNA

Если Microsoft придумала новую технологию, не торопись на нее переходить, потому что Microsoft ее скоро закроет. Я решился сегодня начать изучать XNA, и с удивлением узнал, что Visual Studio для Desktop 2012 не поддерживает XNA Framework 4.0. 

Правильно я сделал в свое время, что не стал сразу изучать этот Framework и не тратил время на написание кода под него. Вот что я прочитал в википедии: 

According to an email sent on 31 January 2013, XNA is no longer actively being developed, and it is not supported under the new "Metro interface" layers of Windows 8 nor on the Windows RT platform

HTML помощники MVC

 

А ты пользуешься HTML помощниками? Теоретически они действительно полезны, например, вот так может выглядеть на MVC код создания тяга <form>: 

@using (Html.BeginForm("Search", "Home", FormMethod.Get)) 

{

 <input type="text" name="q" /> 

 <input type="submit" value="Search" />

}

Помощник Html.BeginForm создаст за нас сам тег, обратиться к таблице route приложения, чтобы узнать, каким должен быть URL для атрибута action, чтобы попасть в контролер Home и метод Search и заполнит все сам. 

 

Стоит ли испольозвать MVC 4?

Читаю сейчас книжку по MVC 4 и мне нравится, как все сделали. Наконец хороший движок Razor (я уже писал год назад, что он мне понравился). Microsoft наделала столько вкусняшек для Web программистов и так много хелперов, что возникает вопрос, а как хорошо это поддается масштабированию и как быстро работает. Кто работал с MVC 4 на крупных сайтах, расскажите, какой сервер и сколько пользователей смог выдержать сайт? 

Обновил библиотеку .NET компонентов

Наконец-то. Сегодня я закачал обновленную версию компонентов Heapar Essential Library .NET. Это просто небольшой набор .NET компонентов, которые могут пригодиться при построении интерфейсов при каждодневной работе. 

Изменения – немного изменений в Grid, в основном косметических и одно изменения в компоненте палитры. Уже давно хотел добавить возможность изменения цвета по движению мышки при перемещении курсора. Это очень маленькое улучшение, но все времени не было. Вот собрался с силами, и сделал. 

Качайте, пользуйтесь, компоненты бесплатные, никаких лицензий и все исходники включены. 

P.S. В компоненте сетки один раз вылетело исключение, но повторить потом не смог. Если у кого удастся повторить, то просьба написать, что делали. Можно подсказать строчку кода, где нужно исправить. Эти компоненты я написал когда-то давно и на них я когда-то учил C#. Потом немного улучшил, но основа осталась старой. 

SQL сервер перестал реплицировать одну таблицу

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

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

Пошел разбираться с репликацией и выяснилось, что репликация всех таблиц идет прекрасно, сервер просто перестал обновлять всего одну таблицу 16-го января. Просто эта таблица в отчетности не участвует (не имеем права использовать кредитные карты в отчетности), поэтому никто и ничего не заметил. 

Что делать, если найден баг в коде?

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

На ошибках учиться и на программных ошибках учиться просто необходимо, особенно на ошибках безопасности. Если игнорировать это, то ошибки будут постоянно повторяться. 

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

Досадные ошибки

Пятница и я что-то сегодня глючу. Написал код:

10: else (

11:  ClassName cl = new ClassName("параметр");

12: )

А компилятор ругается на строку одинадцать: ) expected. Смотрю на строку и не могу понять, с какого перепуга компилятору нужна закрывающаяся круглая скобка в этой строке. Пять минут не верил своим глазам, и случайно увидел, что в строке 10 и 12 вместо фигурных скобок стоят круглые. Скорей бы 5 часов, работать что-то вообще не тянет сегодня. 

Можно ли на HTML написать программу?

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

Мне кажется, что людей путает выражение "HTML код". Ведь на самом деле это не код, а специальные теги форматирования. HTML в чистом виде не является языком программирования, это стандарт разметки документов. А за логику отвечают совершенно другие языки, например JS, PHP и другие. 

Вот интересно, почему стали говорить HTML код? Хотя как можно скзать по другому, чтобы звучало и отражало реальную суть языка. А можно ли называть HTML языком? Столько вопросов в голове пролетело. Это вопросы так, чисто потрындеть. У меня есть свое мнение, но оно мое. Правильно ли говорить "писать программу на HTML", ведь ее пишут на JS? JS является ли частью HTML? Мне кажется в HTML5 он стал частью.

Facebook показывает некорректно количество Like

На сайте у клиента есть widget фейсбука, который позволяет любить и обожать любую страницу сайта. На лканой странице лайков миллионы и точное значение в районе от 5 миллионов до 10. Интеречно, что если загрузить страницу, и при этом у тебя нет активной сессии на facebook, то widget показывает всего 5 миллионов, а если ты одновременно имеешь сессию на facebook, то это значение практически удваивается. 

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

Пример такого косяка можно увидеть например на странице Rachel McAdams. Кто знает, может есть какой-то у fb:like параметр, который заставит возвращать одинаковые значения вне зависимости - имееть пользователь активную сессию на сайте или нет. 

.NET компоненты

На сайте Heapar я выкладываю свои компоненты. Давно не было времени обновить, но вот нашел пару часиков и немного изменил компонент Grid и добавил его исходник к Heapar Essential Library .NET. Качайте, используйте, изменяйте. Полные исходные коды в архиве. Постараюсь найти время и обновить и подправить остальные компоненты. 

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне