Архивы по Категориям: Work

Кто будет смотреть в дверной глазок, пока Вас нет дома?

Дисклеймер — этот пост содержит наглый, вызывающий, ничем не прикрытый ПЕАР!

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

А я задумался. Как бы так за полчаса, из говна и палок, соорудить нечто, что будет меня автоматически уведомлять о всякой подозрительной активности перед моей дверью? Покопавшись в ящике стола, я нашел там сотовый телефон Sony Xperia ST25. Нашел его и задумался. Камера 5 мегапикселей, больше, чем у телескопа Хаббл при запуске в 1993. Два ядра. Олимп гигабайт оперативки. Да блин, на Марс летали и летают с меньшей вычислительной мощностью, это ж просто суперкомпьютер по меркам 80-х! Неужели его нельзя применить как-нибудь с пользой?

Походил я вокруг этого телефона и вот что задумал.

IMG_9685

Читать далее »

Пользуясь случаем, хочу пожелать ынженерам HP щасливаго Рождества

Попробуйте угадать, какая связь между следующими фотографиями. Этой:

и вот этой:

Читать далее »

Проклятье C++ программиста

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

Опять подставили подножку. Опять сделали то, чего делать нельзя было, и в результате четыре версии и пять релизов спустя в полнолуние были отстрелены ноги всем соседним модулям. Чудом не задело оператора. Что характерно, все в принципе работает, но треш и угар начинаются в самые неподходящие моменты. Труп (собрать дамп сходу даже не получилось) мне передали дрожащим руками, вссхлиывая «мы ничего, а оно вот и потом бум».

Запомните, дети — даже если создавать тред из DllMain в принципе можно, хотя и не рекомендуется, причем не рекомендуется совершенно по делу, ждать его завершения там же по DLL_PROCESS_DETACH нельзя ни при каких условиях. Даже если вам показалось, что оно работает. Ловить зомби будете всей конторой.

Время кидаться пальцами

Вышла новая версия буста. Теперь могу обоснованно заявлять, что в бусте присутствует и мой contribution в том числе.

 

Докатился…

Отправил баг-репорт в boost.

Будут молчать, придется пойти на совсем немыслимое — отправить им патч.

Однако, первый блин..

Нарисовал тут аппликуху для ондроида.


Get it on Google Play

Включает хотспот адным кнопом, да.

Программерское

Вчера скачал 2012 студию. Официально, с MSDN. Уже 10 минут жду первого запуска.

А ещё сегодня гугол заявил, что ридер закрывают. Пичалько. И ведь ясно, что бизнес оппортьюнити и все такое, да подъем аналога, который не будет являться очередным УГ, под силу разве что компании с сопоставимым количеством дензнаков.

Шаблонная магия

Нечаянно немножко шаблонно наметопрограммировал в текущем проекте. Чтоп компилятор за меня мою работу делал, да.

Теперь главное — не оставить домашнего адреса, когда увольняться буду.

Это они серьезно?

На фоне якобы запуска якобы Самсунгом новой версии Tizen, на КЫВТе состоялось обсуждение API. Я тоже побыл соучаснегом.

All two-phase construction classes have the Construct() method, which must be called once right after the class is instantiated.

Two-phase construction is used to let the caller know about an exception raised in class constructors. Because Tizen does not use the standard C++ exception mechanism in the platform layer, it is impossible to let the caller know about exceptions raised in the class constructors

Это пипец.

Error handling in Tizen works differently compared to standard C++. Tizen uses error results instead of C++ exceptions, due to historical reasons.

All exceptions in Tizen are caught as the result return type. The E_SUCCESS result indicates a method succeeded, while all other result values indicate an error.

А это треш и угар. Due to historical reasons, ага. В 2013 году. Они ее во времена первых версий DOS разрабатывать начали, что ли?

Весь хелп здесь. Примеры использования доставляют до состояния «дайте мне ЭТО развидеть».

Зато авторы ЭТОГО, надеюсь, в сортировках разбираются и гномиков в боингах взвешивать умеют.

Warning C4103 in Visual Studio 2010 is broken?

В продолжение поста.

Есть такой хедер

// dummyHeader.h
#pragma  pack(push, 1)
			struct Dummy
			{
				int a;
				char b;
				short c;
			};
// oops, #pragma pack(pop) is missing..

И есть такой cpp файл, его включающий

#include "DummyHeader.h"

#include "SomeOtherHeader.h"

При компиляции такого исходника студия честно жалуется

warning C4103: ‘test.cpp’ : alignment changed after including header, may be due to missing #pragma pack(pop)

Теперь следим за руками:

#include "SomeOtherHeader.h"
#include "DummyHeader.h"

Поменяли хедеры местами.

Компилирует — аж фуфайка заворачивается. Никаких ворнингов.

Опытным путем выяснил, что предупреждение выдается только в одном случае — когда «плохой» заголовок стоит в самом верху списка.

Это ж лютый песец, йащетаю.

ЗЫ:
Microsoft Visual Studio 2010
Version 10.0.30319.1 RTMRel

ЗЫЫ:
Проблема не наблюдается в SP1Rel. Там предупреждение выдается в любом случае

6 посетителей онлайн
1 гостей, 5 bots, 0 зарегистрированных
Максимум сегодня:: 6 в 12:51 am UTC
В этом месяце: 41 в 08-05-2015 01:40 pm UTC
В этом году: 104 в 02-15-2015 05:03 am UTC
За все время: 130 в 10-22-2014 11:16 pm UTC