• OpenVPN, о котором вы так мало знали

    • Tutorial

    OpenVPN, как много в этом слове. Мультиплатформенный, гибко настраиваемый, бесплатный VPN сервер с открытым исходным кодом, являющийся фактически стандартом "defacto" для организации доступа к внутренним корпоративным сетям. Большинство администраторов используют его с настройками по умолчанию или с типовыми конфигурациями широко описанными в разных HOW-TO. Но так ли прост OpenVPN, как он кажется на первый взгляд? В данной статье мы рассмотрим скрытые от глаз внутренние механизмы OpenVPN, которые кардинально меняют представление о его возможностях.

    Читать дальше →
  • Быстрый анализ транзитного трафика

    Перед любым системным администратором рано или поздно возникает задача количественного анализа трафика (откуда / куда, по каким протоколам / портам, в каких объемах и т. п.), проходящего по его сети. Особенно неприятно, когда эта задача возникает спонтанно, как побочный результат DDoS-а, а денег на серьезные решения от Cisco или Arbor, как обычно, нет. И хорошо еще, если шлюзом для сети выступает сервер, на котором можно запустить tcpdump или wireshark, но что делать если:

    • шлюзом выступает устройство провайдера, а в сети есть только файл-сервер;
    • данные о трафике нужны не постоянно, а от времени к времени;
    • устройство не поддерживает возможность запуска на нем сторонних программ;
    • трафика столько, что сервер после запуска tcpdump-а «клеит ласты»;
    • или наоборот, настолько мало, что его уровень сравним с долей (хотя и значительной) обычного трафика?
    Читать дальше →
  • Как написать хорошее резюме для удаленной работы в зарубежной компании



      В предыдущей статье, раскрывающей общие тенденции развития рынка удаленной работы, мы слегка затронули тему составления грамотного резюме. Нами были перечислены основные пункты и важные моменты, на которых работодатели акцентируют пристальное внимание. Сегодня мне бы хотелось осветить данную тему подробнее, тем более что большинство вопросов, получаемых нашей службой поддержки, связано именно с необходимостью корректного составления резюме.
      Читать дальше →
      • +11
      • 17.2k
      • 2
    • Шпаргалка Java программиста 1: JPA и Hibernate в вопросах и ответах

      • Tutorial
      image

      Знаете ли вы JPA? А Hibernate? А если проверить?

      В чем смысл серии статей 'Шпаргалки Java программиста'
      За время работы Java программистом я заметил, что как правило программисты постоянно и планомерно используют от силы 10-20% от возможностей той или иной технологии, при этом остальные возможности быстро забываются и при появлении новых требований, переходе на новую работу или подготовке к техническому интервью приходится перечитывать все документации и спецификации с нуля. Зато наличие краткого конспекта особенностей тех или иных технологий (шпаргалок) позволяет быстро освежить в памяти особенности той или иной технологии.




      Данная статья будет полезна и для тех кто только собирается изучать JPA и Hibernate (В этом случае рекомендую сразу открывать ответы), и для тех кто уже хорошо знает JPA и Hibernate (В этом случае статья позволит проверить свои знания и освежить особенности технологий). Особенно статья будет полезна тем кто собирается пройти техническое интервью, где возможно будут задавать вопросы по JPA и Hibernate (или сам собирается провести техническое интервью).

      Поехали...
    • Самообучение английскому — оптимальная организация времени. Практика занятий по методу Умин для компьютера и смартфона

      • Tutorial
      Метод Умин является одной из наиболее популярных альтернативных методик изучения иностранного языка, он известен уже более 20 лет и имеет многие сотни отзывов в прессе и интернете. Метод был опубликован в 1993 году в книге Умин Е. А. “Иностранный легко и с удовольствием” (50 стр., доступно в интернете). Автор метода, член-корреспондент РАМН Евгений Алексеевич Умрюхин, в интервью рассказывает о его возможностях так:
      — Я видел много примеров, когда после полугода изучения языка моим методом человек получал возможность общаться на нем, может несовершенно, допуская отдельные ошибки или испытывая иногда трудности в выражении сложных мыслей. Но в общении, восприятии речи и чтении книг на иностранном языке эти трудности быстро преодолевались. Предложенный метод эффективен, потому что он существенно отличается от многих стандартных.

      Сам метод основан на научных исследованиях Е. А. Умрюхина по функционированию мозга, изложенных, например, в книгах “Механизмы мозга: информационная модель и оптимизация обучения” (1999 г.), “Медико-биологические аспекты интеллектуальной деятельности” (2004 г.), а также в преподаваемых им учебных курсах, в том числе и в МГТУ им. Баумана, где я и познакомился с ним самим и с его исследованиями.
      Читать дальше →
      • +10
      • 51.9k
      • 7
    • Минимальный почтовый сервер на основе Postfix и Dovecot. Часть 1: Dovecot

      • Tutorial
      Цель: получить минимально работающий почтовый сервер, используя только Postfix и Dovecot, с минимальным изменением настроек по умолчанию. Получить каркас системы, на основе которого можно, в дальнейшем, настраивать спам фильтры, работу с базами данных, LDAP…
      Почтовая система должна:
      1. Поддерживать любое количество доменов и пользователей.
      2. Обслуживать пользователей, не привязанных к локальным учетным записям.
      3. Обеспечивать доступ к почтовым ящикам по протоколам POP3, IMAP с поддержкой TLS.
      4. Обеспечивать отправку и прием писем по протоколу SMTP с поддержкой TLS.

      Настройка проводилась в CentOS 6. Postfix 2.6.6, Dovecot 2.0.9. Никакие особенности ОС не применялись.
      Читать дальше →
      • +16
      • 105k
      • 3
    • Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

      Содержание курса



      Улучшение кода






      Official translation (with a bit of polishing) is available here.




      Постановка задачи


      Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

      Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



      Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
      Читать дальше →
    • Сохранение данных Google Reader

        Чем ближе дата закрытия Google Reader тем более насущным становится вопрос не только переноса подписок в аналогичный сервис, но и сохранения всех текущих записей.

        Найденные решения, в том числе и на хабре(здесь и здесь), не подошли в основном по двум причинам: нет возможности сохранения в БД и медленная скорость работы. Пришлось собрать свой велосипед — grbackup, который
        grbackup -e fake@gmail.com -p password -ba -o mongodb://localhost:27017 -w 20
        

        за 20 минут сохранил 328250 записей из 102 подписок в локальную БД MongoDB.

        Основные возможности:
        • сохранение всех записей, которые можно получить при помощи Google Reader API
        • сохранение записей в различные хранилища
        • использование формата идентичного тому, что отдает Google Reader через API
        • параллельное получение/сохранение записей
        • расширяемость: возможность добавить новый вид хранилища


        Доступные виды хранилищ определяются расширениями(плагинами) и задаются при помощи опции (-o, --output) вида type:uri.
        На момент написания статьи доступны следующие расширения:
        • simple: вывод в терминал (используется только в режиме просмотра)
        • json: запись в json-файл (json:/path/to/file.json)
        • mongodb: запись в MongoDB (mongodb://[username:password@]hostN[:portN]]][/[db][?opts]])
        • redis: запись в Redis (redis://username:password@host[:port]/dbindex)

        Работоспособность проверена на Ubuntu(64) и Win7(64).
        Книгу предложений и замечаний можно найти здесь.
        Ниже находится подробное описание утилиты.
        Читать дальше →
      • Эти незаменимые регистрационные карточки

          image

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


            Для всех, кто просил описать как искать работу программистом в Германии, а так же для тех, кто в комментариях бездоказательно писал, что Германия далеко не лучшее место для работы, ну и для всех интересующихся написан этот пост.
            Читать дальше →
          • Каково быть ИП? Выводы после года работы

              Снова, привет!

              Всю свою жизнь мы проводим в поисках лучшего для себя. Работа не исключение. Поиском хорошей/лучшей работы, уверен, занимается даже тот, кто уже ее имеет.

              Год назад я уволился из хорошей it-компании, проработав там 5 лет. Причины приводить не буду, чтобы не отвлекаться от темы. И оформив ИП, стал индивидуальным разработчиком (специально не говорю «фрилансер», т.к. не люблю это слово). За этот год я успел сделать некоторые выводы и сейчас делюсь ими с тобой (уточню, что буду вести речь исключительно об удаленной работе):
              Читать дальше →
            • Как построить VDI для сложной графики

                Централизация рабочих столов и клиентских ПК в центре обработки данных сегодня все чаще становится предметом обсуждения в IT-сообществе, особенно интересен такой подход для крупных организаций. Одной из наиболее «горячих» технологий в этом отношении является VDI. VDI позволяет централизовать обслуживание клиентских окружений, упростить развертывание приложений, их настройку и конфигурирование, а также обновление и контроль соответствия требованиям безопасности.



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

                Для системного администратора это очень удобно — управляемость, безопасность, надежность на высоте, обновлять приложения можно в едином центре, а не на каждом ПК. Офисные пакеты, интерфейсы к базам данных, интернет-браузеры и прочие нетребовательные к графике приложения могут работать на любом сервере (всем известные терминальные клиенты 1С).

                Но что делать, если хочется виртуализовать более серьезную графическую станцию?
                Читать дальше →
                • +13
                • 15.7k
                • 3
              • Видео-курс по Swift на русском языке

                  Здравствуй, Хабр!

                  Мы сделали видео-уроки по языку Swift на основе бесплатной книги The Swift Programming Language от Эппл.



                  Все 32 урока доступны на нашем сайте. Несколько уроков – под катом.
                  Читать дальше →
                • Неочевидные особенности работы СХД

                  image

                  Коллеги, возникло желание поделиться практическим опытом эксплуатации сред виртуализации и связанных с ними систем.

                  В данной статье речь пойдет об особенностях работы систем хранения данных. В принципе, данная информация относится и к физическим серверам, использующим системы хранения, но в основном речь пойдет все же про виртуализацию, и про VMWare в частности.

                  Почему VMWare? Все просто, я являюсь специалистом по данной среде виртуализации, имею статус VCP5. Продолжительное время работал с крупными заказчиками и имел доступ к их системам.

                  Итак, начнем с истоков. Я постараюсь не напрягать читателей заумными словами и сложными выкладками. Не все являются специалистами в области, а материал может пригодиться многим.
                  Читать дальше →
                • Как сделать рабочий стол, или аутсорсинг решает

                    Хабраюзер любит темы про домашние рабочие места, поэтому покажу и я свое, свежеиспеченное.



                    Топик отношу к DIY – потому как все здесь сделано для меня, благодаря мне и для меня. БОльшая часть «работ» была отдана профессионалам, и это не потому что я «такой уж рукожопый» (хотя и это присутствует), а потому что я хочу пользоваться вещами, удовлетворяющими моим требованиям. А сделать такие самостоятельно – будет очень долго, нервно, муторно => дорого (да и не факт, что получится).

                    Собственно говоря, руководствуясь этим правилом в последнем ремонте ничего мною лично и не делалось.☺
                    Читать дальше →
                  • Метод быстрого вычисления адреса IPv4 сети по маске

                    • Tutorial
                    В процессе вычисления сетей, при подготовке к CCNA, я выявил интересную закономерность, на основе которой можно быстро вычислять адрес сети, а так же ее широковещательный адрес без особых усилий. Этот метод я ранее в литературе не встречал.
                    Читать дальше →
                  • Интеграция дизайна мобильных приложений. Часть 2: iOS, Windows Phone



                      Это вторая часть доклада, который я прочитал на Dribbble Meetup 2013 в Москве. В первой части я подробно описал свой процесс интеграции дизайна под платформу Android. Эта часть — про интеграцию дизайна под iOS и Windows Phone, а также я вскользь упомяну про Samsung Bada 2.0. Дальше — много картинок.

                      Читать дальше →
                    • TCP(syn-flood)-netmap-generator производительностью 1,5 mpps

                      Дано:
                      # pciconf -lv | grep -i device | grep -i network
                          device     = I350 Gigabit Network Connection
                      # dmesg | grep CPU:
                          CPU: Intel(R) Core(TM)2 Duo CPU     E7300  @ 2.66GHz (2666.69-MHz K8-class CPU)
                      # uname -orp
                          FreeBSD 9.1-RELEASE amd64
                      

                      Задача:
                      Необходимо на данном оборудовании и ОС создать нагрузочную вилку в виде tcp(syn)-генератора трафика производительностью не менее 500kpps.

                      Решение:
                      Читать дальше →
                    • Сетевое кеширование в iOS. NSURLCache

                      • Translation
                      Данная тема важна при разработке любого приложения, взаимодействующего с сетью. Здесь грамотное использование возможностей системы может значительно улучшить взаимодействие пользователя с программой.

                      NSURLCache — это комплексное решение для кеширования сетевых запросов в оперативной памяти или на диске. В соответствии с документацией Apple, любой запрос с использованием NSURLConnection будет «пропущен» через NSURLCache.

                      Кеширование уменьшает количество необходимых обращений к сети, улучшает впечатление от работы с программой во время полного отсутствия интернета или проблем с сетевым соединением.
                      Читать дальше →
                      • +11
                      • 17.7k
                      • 3
                    • Разработка мобильных приложений: с чего начать



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

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