Pull to refresh
19
0
Владимир Сухинин @SVlad

User

Send message

Синтаксис объявления указателей на функции в С++

Reading time1 min
Views32K
Когда я только начинал использовать С++, то всё время забывал синтаксис определения указателей на функции и особенно указателей на функции члены.

Позже узнал об одном небольшом lifehack'e, который помог мне избавиться от того что-бы держать в голове синтаксис определения указателей на ф-ции. Правда чуть позже этот всё само как-то осело у меня в голове и даже стало очевидно.

На днях показывал этот lifehack одному программисту и решил поделиться им здесь.
Читать дальше →

Несколько слов о размере структур в С/С++ и о том, почему так получилось

Reading time3 min
Views34K
Ниже по тексту термином «платформа» будем называть любой заданный набор из процессора, компилятора и операционной системы, под которой скомпилированный код будет запускаться.

Исторически язык C создавался таким, что среди главных целей, положенных в его основу есть такие:
  • быть максимально независимым от какой-то конкретной платформы,
  • быть максимально эффективным на всех платформах. В идеале — на всех.

Немножко о разнообразии платформ. Их (платформ) существует огромное количество — среди процессоров есть и 16-битные, и 32-битные, и 64-битные. Есть такие, которые умеют выполнять операции с плавающей точкой на аппаратном уровне, какие-то поддерживают операции с двойной точностью, а в каких-то процессорах FPU отсутствует полностью. Процессоры отличаются также внутренним порядком следования байт в слове (big/little endian), как именно процессор работает с внешней памятью, и т.д. и т.п.

И на весь этот зоопарк существует один-единственный Стандарт языка C. Как же это удалось? Вот тут и начинается самое интересное.

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

Небольшой лайфхак для uTorrent, помогающий разгрести мусор в папке закачек

Reading time2 min
Views63K
Наверняка у многих из нас на компе есть папочка «Downloads» (или «Unsorted», или какая-нибудь еще), куда мы сохраняем скачанные торрентом файлы. Обычно в этой папке у меня творится сущий ад и бардак, ибо что-то я еще не послушал, что-то не посмотрел, а что-то попросту забыл удалить или оставил раздаваться, ибо перехешировать лень. В этом небольшом топике я предлагаю простой способ (для Windows) использования меток в uTorrent, чтобы автоматизировать процесс раскидывания файлов по категориям.
Читать дальше →

Как учат в США

Reading time4 min
Views14K

Вводная часть


Раз уж пошла такая канитель с образованием за границей, то мне обязательно нужно внести свои 5 копеек. Я живу в Штатах с 18 лет, но только к 27-ми сумел найти время, деньги и мотивацию, чтоб пойти опять учиться. А 2 года незаконченного обучения в МГИУ (Московский Государственный Индустриальный Университет) позволят мне провести некоторые аналогии с постсоветским высшим образованием.
Читать дальше →

Как учат информатике в Европе (и в Чехии в частности)

Reading time8 min
Views67K
Введение

Прочитав топик про образовательный процесс в МГТУ им. Баумана, я решила, что мне тоже есть что рассказать на эту тему. Я училась (собственно, еще формально учусь) в Карловом университете в Праге на физико-математическом факультете (на отделении информатики) и, думаю, многим, не только тем, кто подумывает об обучении за рубежом, будет интересно узнать, как же выглядит зарубежное образование для будущих программистов.

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

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

Университетские туры — Россия и Украина

Reading time2 min
Views9.8K
image

В Opera Software много хороших традиций, и одна из них — университетские туры. Осенью прошлого года они не состоялись по причине карантинов в ВУЗах (какой-то там грипп «свирепствовал») и прочих накладок. Но вот пришла весна, и пока вредоносные вирусы и бациллы неспешно выходят из спячки — мы организуем очередные университетские туры, которые пройдут в России и Украине. Итак, расписание следующее:
Читать дальше →

EeePad своими руками

Reading time4 min
Views14K
После покупки Acer 1410 как основного ноута для использования дома/в командировках старый добрый EeePC 900 остался не у дел и пролежал в ящике стола полгода. В очередной раз наткнувшись на него, я понял, что нужно его либо продать, либо сделать из него что-нибудь полезное. Чем-нибудь полезным оказалось применение в быту в качестве:
— Торренто-качалки/раздавалки
— Устройства для постоянного отображения Яндекс.Пробок и прогноза погоды (Удобно когда перед выходом из дома можно оперативно посмотреть обстановку на улице и спланировать маршрут)
— Принт-сервер для старенького, но экономичного и бесперебойно работающего win-принтера Canon LBP-810
— Часов

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

SunCalc — солнечный калькулятор

Reading time3 min
Views239K
Хочу поделиться с вами небольшим, но полезным проектиком, разработанным мной на досуге — солнечным калькулятором SunCalc.



SunCalc показывает на карте для выбранного места и даты траекторию движения солнца и фазы освещённости в течении суток (и еще пару приятных мелочей).
Читать дальше →

Электронные книги в ICQ/Jabber, возможно ли?

Reading time4 min
Views851
Сейчас, даже когда есть много разных ридеров и тонны программ для чтения электронных книг на мобильных устройствах, не у всех есть возможность купить/установить это все.

Вот и было решено сделать то, о чем я хочу вам поведать.
Читать дальше →

Google Annotations Gallery

Reading time4 min
Views1.7K
The Google Annotations Gallery — новая open-source библиотека, которая предоставляет широкие возможности программистам для самовыражения. Вы не находите, что стандартные Java аннотации суховаты и безжизненны? Вам не хотелось поставить аннотацию LOL или Facepalm (?) Тогда, эта галерея для вас.

Исходный код: code.google.com/p/gag

Описание аннотаций


@AnimalsHarmedDuringTheMaking

Аннотация @AnimalsHarmedDuringTheMaking позволяет раскрыть факты о жестоком обращении с животными.
Copy Source | Copy HTML
  1. @AnimalsHarmedDuringTheMaking(
  2.     number = 1,
  3.     animal = "хомяк",
  4.     disclosure = "не кормил Fermie 2 дня чтобы закончить вовремя")
  5. public class ConstantTimePrimalityTest {

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

Насколько опасна DRM-защита, или Видео-вирус часть 2

Reading time6 min
Views16K
image

   Вспоминания

После того, как я прочитал пост о том, как TipTop не смог посмотреть кино, я сразу же вспомнил аналогичный случай. Как-то открыв обычный mp3 файл, вместо того, чтобы началось воспроизведение, к моему удивлению, открылась неизвестная веб-страница. Самое интересное, что страница была открыта в Internet Explorer'е (несмотря на то, что по умолчанию был установлен другой браузер), а ведь на той странице, автор файла мог бы добавить и какой-нибудь специальный эксплоит для IE.

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

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

Обязательные поля при регистрации

Reading time2 min
Views7K
Разрабатывая интерфейс для очередного сайта, основной аудиторией которого будут люди не очень продвинутые технически, я задумался над вопросом об обязательных для регистрации полях и минимизации их количества.

В голову пришли следующие варианты:

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

1 поле: email
Пользователь оставляет email, id создается автоматически, на email он получает пароль, авторизация либо по ID либо по email, username задается пользователем уже в профиле

+ Черт, это все таки одно поле! По умолчанию может быть сгенерен устойчивый к перебору пароль.
± username свободно меняются, и могут оставаться пустыми. Учитывать пользователей по айдишникам мне не хочется
— ЧПУ приобретают вид ufosite.nl/users/18567, скорее всего пользователь захочет сменить свой пароль. При ЧПУ вида ufosite.nl/users/customusername наступает ад для поисковиков. Строить ЧПУ на основе email, который, к тому же, далеко не все захотят публиковать — это подарок спамерам и ЧПУ становятся не совсем ЧПУ.

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

Паттерн проектирования «Заместитель» / «Proxy»

Reading time7 min
Views53K
Почитать описание других паттернов.

Проблема


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

Описание


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

Foxit Reader — уязвимость с запуском внедренного в PDF исполняемого файла без предупреждений

Reading time1 min
Views5.1K
Didier Stevens сообщает, что встроенный механизм запуска команд в PDF формате (/Launch /Action) небезопасно обрабатывается в Foxit Reader, и позволяет запускать внедренный в PDF исполняемый файл без всяких запросов и эксплуатирования какой-либо уязвимости.



Это может повлечь волну спама с внедренными в PDF вредоностными программами, при открытии которых в Foxit Reader будет происходить запуск без предупреждения.

Скачанный с сайта Foxit Reader без всяких предупреждений запустил cmd.exe в предоставленном PoC.

Рекомендуется не использовать Foxit Reader до выхода патча.

Напомню, что по отчету F-Secure в 2009 году почти половину целевых атак составили атаки с использованием PDF файлов.

Как сделать хорошую фотографию глянцевого телефона

Reading time2 min
Views19K
Каждый день на сайте выходит несколько хороших обзоров новых и интересных гаджетов. И если все особенности устройства обычно описаны «на отлично», то вот фотографии гаджета зачастую не выдерживают никакой критики. Часто приходится видеть подобное:
вспышка в лоб
А ведь для получения качественного фото даже глянцевого телефона не потребуется никаких особых приспособлений, даже затраты времени на получение качественных фото будут минимальны. Все нужное есть практически в каждом доме, а фотографировать можно и на телефон, хотя даже самая простая цифромыльница даст более качественный результат.
Читать дальше →

Социальная инженерия: «Дорожное яблоко»

Reading time4 min
Views24K
image
2 года назад сделал следующую публикацию:
<----------------->
Провел интереснейший эксперимент, хочу поделиться опытом, что бы люди учились на чужих ошибках. Эксперимент из области легендарной «Социальной Инженерии», метод под названием «Дорожное яблоко».

Этот метод атаки представляет собой адаптацию троянского коня, и состоит в использовании
физических носителей. Злоумышленник может подбросить инфицированный CD, или флэш, в месте, где носитель может быть легко найден (туалет, лифт, парковка). Носитель подделывается под официальный, и сопровождается подписью, призванной вызвать любопытство.
Пример: Злоумышленник может подбросить CD, снабжённый корпоративным логотипом, и ссылкой на официальный сайт компании цели, и снабдить его надписью "Заработная плата руководящего состава Q1 2007". Диск может быть оставлен на полу лифта, или в вестибюле. Сотрудник по незнанию может подобрать диск, и вставить его в компьютер, чтобы удовлетворить своё любопытство, или просто добрый самаритянин отнесёт диск в компанию.


Источник цитаты: www.wiki.inattack.ru/wiki/Социальная_инженерия
Читать дальше →

Логорама (лучший короткометражный анимационный фильм)

Reading time1 min
Views5.7K
Недавно прошла 82-я церемония вручения всем известной премии «Оскар». Все удостоившиеся наград фильмы вы, скорее всего, уже видели. А короткометражный мультфильм «Логорама» говорит вам о чем-нибудь? Мне ни о чем не говорил, пока не рассказал друг.

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

Еще раз о времени, деньгах, свободе, здоровье и других ресурсах личности, а также о двух ее половинках

Reading time11 min
Views11K
В продолжение темы: раз, два, три, четыре.

Сразу скажу, что подход к разгорающемуся холивару «время vs. деньги» (а точнее к вопросу управления личными ресурсами), которого я придерживаюсь, позаимствован мной из вебинара, выложенного в записи на сайте datnews.ru, а автор этого сайта скорее всего позаимствовал его у Тима Ферриса или еще какого-нибудь гуру лайф-менеджмента, и в принципе является самоочевидной истиной, которую, однако, почему-то мало кто способен правильно усвоить и использовать.

Вкратце, подход состоит в следующем: у каждого из нас есть набор уникальных ресурсов, которые в процессе нашей жизнедеятельности могут конвертироваться друг в друга (или расходоваться впустую), но возможности этой конвертации ограничены самими имеющимися ресурсами. То есть они конвертируются не прямо пропорционально и даже не с фиксированным процентом затрат (как валюты в обменнике), а в зависимости от доступного в данное время их количества. Правило первое и последнее: если нам остро не хватает какого-нибудь ресурса, мы вынуждены компенсировать его, расходуя непропорционально большие объемы других ресурсов. Следовательно, стратегия оптимального развития заключается в поддержании долгосрочного баланса между разными типами ресурсов, дабы не было необходимости «топить ассигнациями». В краткосрочном периоде наоборот — локальная концентрация выгоднее, чем соблюдение баланса ради баланса, ибо самые актуальные проекты и проблемы не признают никаких расписаний.

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

Подсчёт времени выполнения метода через аннотацию

Reading time8 min
Views20K
Во многих проектах требуется посчитать время, которое затратил тот или иной метод. Для этого можно вручную сохранять значение System.currentTimeMillis() и после метода вычислять затраченное время. Когда методов много это становится не очень удобным.
Поэтому я решил написать простенькую аннотацию, которая бы считала время выполнения метода. Попытавшись найти информацию в интернете, понял, что её по данной теме очень мало. Придётся как-то выкручиваться, собирая информацию по крупицам.
Читать дальше →

Не стоит прогибаться под изменчивый мир или создаем свою атмосферу

Reading time4 min
Views4.1K
Очередное эссе из разряда «нечеткой логики».

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

Вообще, это интуитивное понятие — атмосфера — и поэтому описать его строго сложно. Это скорее ощущение. Атмосферы бывают сильные и слабые, доброжелательные, враждебные, тоскливые и т.д. Это что-то вроде внутреннего настроя и состояния нескольких человек. Чем больше народу в одной атмосфере, тем она сильнее. Яркий пример: похороны. Все находятся в состоянии подавленности и грусти, даже если не очень этого хотят!

Есть несколько важных моментов:
1. Атмосферу можно создать в-одиночку
2. Атмосферу можно «сломать»
3. Деструктивные атмосферы имеют свойство самоусиливаться (например, агрессивная толпа)

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

Разберем несколько примеров.

ГАИшник. (Мой любимый пример.)
Ситуация первая: вас тормозит на посту работник ГАИ. Ваши эмоции? Если вы торопитесь часто возникает мысль «Какого фига! Я же ничего...», она перерастает в раздражение, которое трудно скрыть и это чувствует ГАИшник. Теперь поставьте себя на его место: было бы вам приятно если бы вас на работе ни за что ни про что поливали эмоциональной грязью (раздражение я считаю именно такой субстанцией)?
Читать дальше →

Information

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