Архив Февраль 7, Воскресенье, 2010

Cisco / ASA: заморочки трансляции сетевых адресов. Часть 1. Динамические трансляции

Нет комментариев »

Трансляция сетевых адресов (Network Address Translation, NAT) — это подмена какого-либо адреса или порта в пакете. Она, как правило, требуется на границе между сетью компании и провайдером Интернет. Однако, это далеко не единственная задача. Рассмотрим несколько типичных задач и способы решения при помощи межсетевого экрана ASA.



Для начала определимся с терминами. Как вы уже знаете, на ASA при помощи сравнения уровней безопасности интерфейса-источника и интерфейса-назначения легко определяется направление «наружу» и «внутрь» межсетевого экрана (ситуацию с одинаковыми уровнями безопасности рассмотрим отдельно).

Обычно разделяют внутреннюю (inside) и внешнюю (outside) трансляции. Внутренняя трансляция подменяет адрес источника при выходе «наружу» межсетевого экрана, а внешняя трансляция подменяет адрес источника при проходе «внутрь» МЭ.


Коллективный разум / Головоломки на развитие нестандартного мышления

Нет комментариев »

Много лет назад, в школе, учитель загадал нам загадку на нестандартное мышление, разгадали всем классом за 30 минут. Мне такой тип загадок очень понравился, но новые, попадались очень редко. А тут наткнуля на замечательную книгу Пола Слоуна: «Головоломки с секретом на развитие нестандартного мышления» (Tricky Lateral Thinking Puzzles) на Озоне. Situation puzzles или просто данетки («yes/no» puzzles), эти загадки хорошо разгадывать коллективно.



Предлагаю вам отгадать одну из таких загадок!



Научно-популярное / [Ссылка] Наша вселенная в одном флешролике

Нет комментариев »

От самого маленького до самого большого.


Язык программирования Python / iPod и Python: сортируем альбомы в хронологическом порядке

Нет комментариев »

Проблема



Иногда мне кажется, что Apple изо всех сил старается упростить свою продукцию. С одной стороны это замечательно, а с другой — весьма прискорбно. Ведь дополнительные настройки хоть и усложняют нашу жизнь в первые пару недель использования продукта (пока привыкнешь, разберешься), но зато в последствии позволяют подогнать его под себя и получить гаджет (или программу) своей мечты.



Album by YearЕсли Вы являетесь счастливым обладателем iPod-a, то наверно заметили, что все альбомы на нем (именно на плеере) сортируются строго в алфавитном порядке. И никак иначе. И никаких Вам настроек и expert-модов. Сказали «в алфавитном», значит в алфавитном. Что примечательно — в iTunes такая кнопочка (Album by Year) есть. Но там она мне была меньше всего нужна.



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



Учебный процесс / А ты готов сдать ЕГЭ по информатике?

Нет комментариев »

Год назад я уже писал о заданиях ЕГЭ по информатике. Они были сложные, местами не-айтишные, вызвали неоднозначную реакцию и довольно интересные дискуссии.



Информатика преподается в объеме 1 урок в неделю, на задание отводится 7,5 минут. Основная масса школьников имеет очень поверхностные знания, а об алгоритмическом мышлении, it-кругозоре и практическом опыте применения информационных технологий говорить вообще сложно.



Новый год, новые задания, новые вопросы к ним.


IT в Японии / Учите японские азбуки

Нет комментариев »

Если вам необходимо или интересно учить японский язык, то, вы вероятно, начнете с изучения слоговых азбук, хираганы и катаканы. Для этого я с удовольствием пользовался программой iKana, но многие мои знакомые не могут сделать того же, потому что разработчик пишет софт только для Mac OS X (да ещё и берет за это 12 €).



Я всегда считал, что изучение слов незнакомого языка «по карточкам», да ещё в виде интерактивного теста — самый эффективный и гиковский способ.



Поэтому я набросал небольшой сайтик, http://tr.im/learnkana, где можно потренироваться в изучении символов каны. Поначалу вы не будете иметь ни малейшего понятия, какой знак перед вами. Просто выбирайте тот вариант, который вам кажется верным, а через некоторое время вы начнете запоминать их, и правильных ответов станет больше. Когда вы сможете легко проходить первый тест, переходите ко второму, а потом к третьему, и так далее.


Спортивное программирование / Неофициальная трансляция ACM ICPC 2010 — как это было

Нет комментариев »

Пост по мотивам прошедшего в пятницу финала ACM ICPC 2010, о том, как в буквальном смысле слова «на коленке» поднять зеркало умирающей под нагрузкой странички, прикрутить к нему чат с ее обсуждением, и не загнуться от нагрузки самому :)



Пост будет интересен скорее веб-программистам, нежели олимпиадникам.



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



Windows / Вход в систему по подключению определенной флешки

Нет комментариев »

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



С помощью знакомого я узнал что сие называется Credential Provider(по крайней мере начиная с Vista, до неё – был другой механизм). И тут-то я вспомнил что давно хотел сделать чтобы система разблокировалась при подключении одной определенной флешки. Поэтому я захотел быстренько наваять такой проект.


Ruby / Заполнение БД тестовыми данными при помощи Populator и Faker

Нет комментариев »

Часто возникает необходимость протестировать приложение на предмет работы с реальными данными. Причём, данные должны быть максимально приближены к реальным как с качественной стороны, так и с количественной. Работу по наполнению базы такими данными значительно упрощают гемы Populator и Faker.


Qt Software / Сериализация в Qt через использование MetaObject

Нет комментариев »

Предыстория



Собственно для чего такое могло бы понадобиться? Ведь C++ и так предоставляет достаточно гибкие возможности при сериализации в поток. Однако у меня стояла задача максимально универсализировать процесс сериализации/десериализации для многократного использования в проектах.



Итак, было надо организовать как можно более гибкую систему (де)сериалиации в Qt, так чтобы можно было

  1. либо отнаследовавшись от базового класса и расширив его
  2. либо имея отдельный класс-сериализатор

иметь возможность одной командой отправить поток данные из объекта.



При этом каким-либо образом должна была быть обеспечена возможность указывать какие данные в объекте подлежат сериализации, а какие можно (и нужно) «проскипать». Аналогично должна была быть выполнена возможность при десериализации правильно установить данные и связанные с ними зависимые величины внутри объекта.