• Dingoo A320 за $49.50

      Такое себе маленькое уведомление — сейчас можно купить известную хабра-людям портативную игровую консоль Dingoo A320 (wikipedia) всего за $49.50 (это уже с почтовым трекинговым номером). Почитать хабра-статьи про нее можно тут и тут.



      Как это сделать?
    • Архитектор Интернета Пол Бэран умер в возрасте 84 лет

        imageВозможно Пол Бэран и не был изобретателем Интернета, как такового, но его работа над ARPANET была по истине уникальна. Всемирная сеть в том виде, в каком мы знаем ее сегодня, обязана своим появлением именно этому человеку. Полу было 84, вчера он умер в своем доме в Пало-Альто от осложнения рака легких, пишет New York Times.

        Работая в корпорации RAND в начале 60-х годов, когда холодная война между США и СССР набирала новые обороты, Бэран описал метод разделения информации на «блоки сообщений», которые быстро передвигаются по сетям, собираясь в конечной точке. Позже, англичанин Дональд Дэвис, который параллельно работал над подобной архитектурой, дал название этому явлению — «packet switching» или пакетная коммутация.

        Читать дальше →
      • IBM отмечает 100 лет своего участия в техническом прогрессе



          Наша цивилизация обязана своими успехами в области науки и техники не только гениям-одиночкам, но и крупным компаниям, которые смогли развить достижения прошлого, и привнести множество новинок, которые вряд ли бы появились без существования тех самых компаний. IBM — одна из них, и сейчас компания отмечает 100 лет своего участия в техническом прогрессе. За это время было сделано множество открытий, разработано огромное количество новинок, включая штрих-коды, система бронирования авиабилетов, персональный компьютер.

          Читать дальше →
        • Основы фотографии: выдержка, диафрагма, ГРИП, светочувствительность

            Введение


            Часто люди приобретают цифровые зеркальные камеры в погоне за качеством снимков, но при этом не имеют представления о технических моментах съемки. В основном это касается тех, кто до зеркалки держал в руках исключительно компактные фотоаппараты и пользовался автоматическими режимами (которые, к слову, весьма продвинутые в современных камерах).

            В результате у кого-то возникает разочарование в камере и фотографии в целом, а другие проявляют терпение и пытаются освоить премудрости фотографии, чтобы раскрыть весь потенциал камеры с полноценным (или почти полноценным) сенсором.

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

              Привет, хабрадруг!

              Многие периодически думают о работе в крупной международной компании и я не исключение. Именно поэтому меня привлекла книга Инны Кузнецовой «Вверх». В ней она дает советы по построению карьеры в корпорации. Инна — единственный русский вице-президент IBM. Она отвечает за маркетинг и поддержку продаж системного программного обеспечения, а также руководит подразделениями, отвечающими за бизнес IBM в Linux и технологии виртуализации во всем мире.
              Кузнецова начала работу в IBM в России в 1993 году после окончания ВМК МГУ. В 1996 перехала с мужем в США и с 1997 года работает там в «голубом гиганте». С 2006 года занимает позиции в ранге executive. Также она получила MBA в Колумбийском университете.
              image
              Читать дальше →
            • Знакомство с системой деплоя и сопровождения серверов xCAT

                В продолжение темы нашей предыдущей статьи, сегодня поговорим об инструменте, который мы используем изо дня в день.

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

                Любому инженеру, управляющему парком серверов Badoo – самой популярной сети знакомств в интернете, не хочется даже вспоминать о том, что когда-то приходилось править вручную конфигурации DHCP-сервера, собирать образы для сетевой PXE-загрузки… Мы хотим рассказать вам, где и как в нашей компании успешно используется программное решение xCAT.
                Читать дальше →
                • +39
                • 16.5k
                • 9
              • Бекап в Xen4

                  Данный способ работает и в остальных версиях Xen и даже подпиливается к венценосному CitrixXen.

                  что имеем — файловая система XEN DomU на LVM
                  сервер стоечный с двумя Xeon® E5520 (например)
                  и необходимость бекапа средствами хотя бы отдаленно похожими на автоматические.

                  Поскольку никто кроме компании phdvirtual.com так ничего не выпустил для автоматизированного бекапа XEN, все бекапят в силу своей изощренности и глубины знаний.
                  В основном все варианты из гугла сводятся с получению snapshot указанного LVM и сохранение его на диск.
                  Вообщем-то это практически единственный и самый продуктивный вариант, поcкольку слепок получается без остановки виртуальной машины.
                  Парк виртуальных машин на моих серверах подбирается к 20 (на небольшой компании), бекап необходим почти для всех, поэтому данные я архивирую. Использую для этого 7zip в мультипроцессорном режиме.
                  Так же стоит отметить что машины с db и др. требовательными к потере информации сервисами стоит подготовить перед запуском lvm snapshot. Разный взгляд на эту проблему можно найти в каментариях к этой статье ниже :)

                  Читать дальше →
                • Облако: Клонирование дисков VS установка

                    Один из вопросов, возникающих при создании сервиса (в данном случае не важно, облака или VDS) — это то, как создавать клиентские машины.

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


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

                    Как всё начиналось...

                    Когда облако только-только обретало первые черты, возникла задача автоматизации создания виртуальных машин. Разумеется, первым решением, лежащим на поверхности, было «взять и склонировать». Благо, все делов там — одна команда (xe vm-clone). Дальше была необходимость поправить настройки сети, имя хоста и пароль рута. Всей работы — на пол-дня. Ладно, два дня вместе с ловлей блох.

                    Сделали? Сделали. К счастью, эту версию не увидели даже бета-тестеры.

                    Читать дальше →
                  • История одного бага

                      Буквально вчера мне пришлось разбираться с одним очень тонким и специфичным багом. Баг оказался фичей, которая спотыкалась о другой баг. В ходе изучения проблемы я был вынужден изучить несколько особенностей Debian, угробить 4 часа времени и получить массу опыта.

                      В слегка прилизанном виде привожу хронологию событий, надеюсь, кому-то будет интересно посмотреть, как работают системные администраторы.

                      Предыстория

                      В ходе разворачивания стенда для экспериментов из нескольких идентичных серверов захотелось иметь возможность запускать нужные версии приложения без ручной работы по обновлению кода на куче хостов. Было решено запускать нужные программы с NFS-шары. Приложения были internal use only, одноразовые, причём написанные под конкретную задачу. Шара монтировалась в каталог /opt при загрузке и приложения оттуда запускались с помощью скрипта rc.local. Поскольку речь шла про экспериментальный стенд с очень частым изменением кода, играть в честного разработчика (пакеты, репозиторий, обновления, init.d скрипты) было лениво. Всё происходило под Debian Squeeze.

                      Шара была прописана в /etc/fstab, запуск нужных тестов — в rc.local. Казалось бы, всё сделано.

                      … И тут я наткнулся на Мистику. Приложения стартовали раз из пяти, причём версия «кривое приложение» была отметена почти сразу — ровно так же иногда не запускались любые другие исполняемые файлы. Причём, с /opt. Из других каталогов отрабатывали нормально. При этом руками rc.local запускаешь — 100% всё хорошо. При загрузке — успешный запуск раз из пяти, или даже реже.

                      В начале я не воспринимал эту проблему как серьёзную, и пытался её решить нахрапом. Поскольку проблема проявлялась только для /opt я дописал в rc.local команду ls -a1 /opt >/var/log/ls. Как и предполагалось, в /opt на момент выполнения rc.local было только два файла — точка и две точки. Другими словами, NFS-шара не подмонтировалась. Иногда. А иногда подмонтировалась.

                      Читать дальше →
                    • Забавляемся с хешами

                        Привет. Я хочу показать вам небольшой фокус. Для начала вам потребуется скачать архив с двумя файлами. Оба имеют одинаковый размер и одну и ту же md5 сумму. Проверьте никакого обмана нет. Md5 хеш обоих равен ecea96a6fea9a1744adcc9802ab7590d. Теперь запустите программу good.exe и вы увидите на экране следующее.
                        Попробуйте запустить программу evil.exe.
                        Что-то пошло не так? Хотите попробовать сами?
                        Тогда добро пожаловать под кат.
                      • DDoS-атаки превысили 100 Гбит/с



                          Специалисты по сетевой инфраструктуре из компании Arbor Networks опубликовали шестой ежегодный отчёт Worldwide Infrastructure Security Report. В этом документе очень много интересной информации (64 стр.), но особо подчёркивается один из главных итогов 2010 года — впервые в истории подобных замеров мощность одной DDoS-атаки достигла 100 Гбит/с, что более чем в два раза превышает показатели 2009 года и вдесятеро превышает показатели 2005 года.
                          Читать дальше →
                        • Простейший способ создать окружение virtualenv

                            В этой статье я хочу вам рассказать про это уникальный способ создания изолированных окружений Python для удобной и комфортной разработки даже в самых дремучих условиях.

                            $ python -murllib http://tiny.cc/ve-setup | python
                            

                            Так это выглядит, а под катом находится пара рецептов использования.
                            Читать дальше →
                            • +21
                            • 15.4k
                            • 6
                          • Как устроен AES

                            О чём эта статья



                            Долгое время я считал, что криптографические алгоритмы шифрования и хеширования, вроде AES и MD5, устроены очень сложно и написать их совсем не просто, даже имея под рукой полную документацию. Запутанные реализации этих алгоритмов на разных языках программирования только укрепляли это мнение. Но недавно у меня появилось много свободного времени и я решил разобраться в этих алгоритмах и написать их. Оказалось, что они очень просто устроены и для их реализации нужно совсем немного времени.

                            В этой статье я напишу как устроен алгоритм шифрования AES (которого иногда называют Rijndael) и напишу его на JavaScript. Почему на JavaScript? Чтобы запустить программу на этом языке, нужен только браузер в котором вы читаете эту статью. Чтобы запустить программу, скажем, на C, нужен компилятор и найдётся совсем мало желающих, готовых потратить время на компиляцию кода из какой то статьи. В конце есть ссылка по которой можно скачать архив с html страницей и несколькими js файлами — это пример реализации AES на JavaScript.

                            Читать дальше →
                          • Будни разработки облака, часть первая

                              Серию официальных постов в блоге компании про то, как работать с облаком я ещё продолжу, но параллельно мне хочется рассказать про те проблемы, с которыми мы столкнулись во время адаптации Xen Cloud Platform под нашу модель работы облака. Эти посты будут чуток сложнее и предполагают, что читатель хотя бы в общих чертах знает, как работает Xen.

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

                              Действительно, у нас есть xencontrol (библиотека управления гипервизором Xen), которая может точно сказать про каждый домен (запущенную виртуальную машину), сколько у неё есть памяти, сколько наносекунд времени было потрачено. Эта библиотека запрашивает информацию напрямую (через xenbus) у гипервизора и подвергает её минимальной обработке.

                              Выглядит эта информация примерно так (вывод биндинга xencontrol для питона):
                              {
                                  'paused': 0, 
                                  'cpu_time': 1038829778010L, 
                                  'ssidref': 0, 
                                  'hvm': 0, 
                                  'shutdown_reason': 0, 
                                  'dying': 0, 
                                  'mem_kb': 262144L, 
                                  'domid': 3, 
                                  'max_vcpu_id': 7, 
                                  'crashed': 0, 
                                  'running': 0, 
                                  'maxmem_kb': 943684L, 
                                  'shutdown': 0, 
                                  'online_vcpus': 8, 
                                  'handle': [148, 37, 12, 110, 141, 24, 149, 226, 8, 104, 198, 5, 239, 16, 20, 25], 
                                  'blocked': 1
                              }
                              


                              Как мы видим, есть поле mem_kb, соответствующее выделенной памяти для виртуальной машины и есть поле cpu_time, содержащее какое-то умопомрачительное число (хотя на самом деле это всего лишь 17 минут). cpu_time считает с точностью до наносекунд (точнее, величина, которая тут хранится считается в наносекундах, реальная точность около микросекунды). Память, как понятно, в килобайтах (хотя внутренней единицей учёта, что гипервизора, что ядра линукс является страница — её размер по-умолчанию 4 килобайта).

                              Казалось бы «бери и считай», однако, дьявол кроется в деталях…

                              Извините за жёлтый заголовок ниже, но именно так звучал вопрос в полемике в ходе обсуждения одной из проблем:

                              Hyper-threading + Xen = воровство денег у клиентов


                              Читать дальше →
                            • Структуры данных: двоичная куча (binary heap)

                              Двоичная куча (binary heap) – просто реализуемая структура данных, позволяющая быстро (за логарифмическое время) добавлять элементы и извлекать элемент с максимальным приоритетом (например, максимальный по значению).

                              Для дальнейшего чтения необходимо иметь представление о деревьях, а также желательно знать об оценке сложности алгоритмов. Алгоритмы в этой статье будут сопровождаться кодом на C#.

                              Введение


                              Двоичная куча представляет собой полное бинарное дерево, для которого выполняется основное свойство кучи: приоритет каждой вершины больше приоритетов её потомков. В простейшем случае приоритет каждой вершины можно считать равным её значению. В таком случае структура называется max-heap, поскольку корень поддерева является максимумом из значений элементов поддерева. В этой статье для простоты используется именно такое представление. Напомню также, что дерево называется полным бинарным, если у каждой вершины есть не более двух потомков, а заполнение уровней вершин идет сверху вниз (в пределах одного уровня – слева направо).



                              Читать дальше →
                            • Тёмная материя интернета

                                Иногда я открываю окно торрент-клиента и просто смотрю, как он раздает файлы… Это завораживает даже больше, чем дефрагментация или гейзеры и вулканы в трехлитровой банке с домашним квасом. Ведь я помогаю множеству незнакомых мне людей качать нужные им файлы. Мой домашний компьютер — маленький сервер, ресурсами которого я делюсь со всем интернетом. Наверное, похожие чувства побуждают тысячи добровольцев по всему миру участвовать в проектах вроде folding@home.

                                Ни один файловый сервер не справился бы с тем объемом раздачи, который обеспечивают миллионы маленьких компьютеров по всему миру, используя лишь небольшую часть своих ресурсов. Вот если бы я мог так же легко поделиться ресурсами с любым понравившимся мне сайтом! Если бы затраты на хостинг при росте аудитории росли не линейно, а логарифмически, за счет «добровольного ботнета» из компьютеров посетителей. Насколько меньше рекламы я бы увидел? Сколько интересных стартапов избавились бы от головной боли по поводу масштабирования? Сколько некоммерческих проектов могли бы перестать зависеть от благосклонности меценатов? И насколько труднее было бы кибергопникам или спецслужбам DDoS-ить такой сайт!
                                Читать дальше →
                              • Определение местоположения отключенного телефона: миф?

                                  Читая недавно опубликованный топик «Как Facebook защищал тунисские аккаунты», в самом конце статьи обратил внимание на случай с Минском. Читая комментарии по ссылке, наткнулся на утверждение, что можно прослушать отключенный телефон и разные советы, в том числе вынимание аккумулятора.

                                  По поводу отслеживания включенного аппарата, — сомнений нету, — есть LBS, и его не стоит путать с A-GPS. Да и сам МТС в 2009-м году анонсировал услугу определения местонахождения.
                                  Читать дальше →