Linux (в отличии, к примеру, от FreeBSD) позволяет использовать сырые сокеты не только для отправки, но и для получения данных. В этом месте существуют интересные грабли, на которые я наступил. Теперь спешу показать их тем, кто еще на знает, чтобы каждый, используя свой любимый язык программирования, будь то C++ или Python, мог опробовать их в деле.
Суть граблей изображена на рисунке, чтобы те, кто уже в курсе, не тратили свое время.
Продолжая водную тематику, хотел бы поделиться… Очень люблю читать в ванной. С появлением первой читалки (тогда это был LOOX 410) пришлось придумать способ безопасно использовать его в условиях повышенной влажности. Решение очень примитивное. Под катом несколько фото для тех, кто ещё не догадался.
Когда вставал вопрос о тестировании кода, я не задумываясь использовал boost::test. Для расширения кругозора попробовал Google Test Framework. Помимо всяких имеющихся в нем плюшек, в отличии от boost::test проект бурно развивается. Хотел бы поделиться приобретенными знаниями. Всем кому интересно прошу
Казалось бы — что может быть проще, чем работа с файлами в C++. Но отдельные личности поражают своей находчивостью в поиске наихудшего подхода. Не стоит делать так:
В сети можно найти много описаний сборки mingw и GNU утилит под ним. Я тоже решил написать свой вариант, так как во-первых он на русском. Во-вторых используются последние стабильные исходники (по состоянию на 27.01.2011). В третьих добавлена оптимизация циклов (graphite loop optimizations). В четвертых я описываю причины выбора тех или иных опций конфигурации исходников. В пятых, чтобы не забыть.
Всем рано или поздно приходится работать с различными кодировками. Заметив в коде своей команды различные, порой странные, подходы к решению этих проблем, пришлось провести разъяснительную беседу. Ниже поделюсь своим видением правильной работы с не-ASCII символами в коде. Буду рад конструктивной критике.
Рано или поздно все сталкиваются с проблемами связанными с языковым и культурным разнообразием при написании программ. Я был сильно удивлен узнав, что часть моих знакомых, пишущих на C++, решают эти проблемы своими велосипедами. Для тех, кто еще не знает что такое std::locale я хотел бы кратко на примере показать как c ним работать и что бывает, если о нем забыть…
Во сколько Вы просыпаетесь? Я не говорю о том моменте, когда звонит надоевший будильник и Вам приходится вылезать из под теплого одеяла, я спрашиваю о том часе, когда в каждом уголочке тела ощущается бодрость, мысли становятся ясными, глаза живыми, а движения четкими и ловкими. До некоторых перемен в моей жизни бывали дни, когда я так и не проснувшись за весь день, снова ложился в кровать.
Вы когда-нибудь замеряли артериальное давление? Я уверен, что многие даже не знают каким оно должно быть. Не ловили себя на мысли, что у вас постоянно мерзнут руки или ноги? Если хотя бы над одним вопросом вы задумались и у вас нет проблем с сердечно-сосудистой системой, гипертонии, нарушения кровообращения мозга, тромбофлебита, злокачественных опухолей или заболеваний крови, вам должен быть интересен мой личный опыт внедрения в свою жизнь такой банальной вещи как контрастный душ. Именно о своем опыте я и хочу поделится с вами и буду рад, если кто-то дополнит мои наблюдения фактами или личными достижениями.
Мне, как и многим, приходится работать под разными операционными системами.
Для хранения данных я выбрал файловую систему ext3. Под Windows доступ к разделам осуществлялся с помощью драйвера Ext2IFS. С такой конфигурацией я замечательно существовал и не знал никаких проблем под WindowsXP. Но тут на моем жестком поселилась Windows 7 (x64)…
Расскажу об одном из портативных, кроссплатформенных методов хранения секретов на накопителях, в основе которого лежит только открытое, свободно распространяемое ПО.
Никогда не мог запомнить все логины, пароли и прочие коды доступа ко всем моим учетным записям. Порой регистрационное имя и заветный код необходимы в самый неподходящий момент, поэтому я таскаю их на флэшке. Для того, чтобы не рвать на себе волосы при потере заветного накопителя информации я и написал скриптики, речь о которых пойдет ниже.