С чего начать изучение новой библиотеки или фрейморка? Сразу же найти статью на Хабре и с головой погрузиться в пучину практических примеров? Или сначала тщательно изучить официальную и неофициальную документацию, прежде чем перейти к практике? Именно между этими вопросами будет метаться ваше сознание, когда вы решите узнать, что же такое ReactJS. Чтобы желание учиться не умерло, как знаменитый ослик, обязательно загляните под капот.
Бойков Юрий @Neiro
User
VPN везде и всюду: IPsec без L2TP со strongSwan
10 min
321Kдостаточно сильный лебедь
Если вы когда-либо искали VPN, который будет работать на десктопах, мобильных устройствах и роутерах без установки дополнительного ПО и перепрошивки роутера, вы, вероятно, выбирали между PPTP и L2TP+IPsec. У протокола PPTP имеются проблемы с безопасностью и прохождением через брандмауеры и NAT, так что в 2015 году его уже использовать не стоит, а использование L2TP излишне, т.к. L2 VPN, по моему мнению, для обычного удаленного доступа не нужен практически никогда.
Удивительно, что в интернете не так-то просто можно найти информацию о настройке чего-то помимо L2TP+IPsec в транспортном режиме, учитывая, что это обширный стек протоколов, который можно конфигурировать буквально как душе угодно, поэтому я попытаюсь устранить такое несовершенство мира.
Небольшое введение в мир IPsec
Вообще говоря, не совсем правильно называть IPsec VPN. IPsec не предназначен для построения «виртуальных частных сетей», а создан для шифрования или защиты от подмены передаваемых по IP данных. Это специальный слой поверх IP, который, в зависимости от режима и настроек, работает по-разному. В отличие от привычного VPN, который создает новый интерфейс в системе, на который вы, как это чаще всего бывает, назначаете IP-подсеть из диапазона частных адресов (т.е. создаете новый сетевой сегмент), и через который маршрутизируется трафик в зашифрованном виде, IPsec просто шифрует трафик магическим образом между «внешними» интерфейсами сервера и клиента.+48
Взлом пароля на Mac с Arduino и OpenCV
6 min
78KО том, как взламывали запароленный мак с помощью Arduino и OpenCV. По мотивам статьи Брутфорсим EFI с Arduino.
+105
Мониторинг сетевого оборудования Cisco в системе Observium
3 min
39KObservium — это система, ориентированная на сбор и анализ информации, позволяющая выявлять глубинные проблемы в работе сети. Если перед вами стоит задача провести аудит сетевого оборудования, составить схему и IP план незнакомой сети — Observium один из лучших бесплатных инструментов для этого. В статье содержится обзор основных возможностей системы — в первую очередь применительно к оборудованию Cisco, а также несколько реальных примеров выявления проблем с сетью заказчика при помощи Observium (много картинок).
+12
Основы программирования графики на Apple Metal: Начало
18 min
26KTutorial
Привет, Хабр! Мой сегодняшний пост — это руководство для начинающих программировать графику на Apple Metal API. Когда я начал разбираться с этой темой, то обнаружилось, что помимо документации от Apple и примеров от них же и смотреть особо нечего. Сегодня я расскажу о том, как создать простое приложение на Metal, которое отображает трехмерный куб с освещением. Затем мы нарисуем несколько кубов с использованием одной из главных фишек Metal — рендеринга в нескольких потоках. Заинтересовавшихся прошу под кат.
+15
Выразительный JavaScript: Document Object Model (объектная модель документа)
21 min
114KTranslation
Содержание
- Введение
- Величины, типы и операторы
- Структура программ
- Функции
- Структуры данных: объекты и массивы
- Функции высшего порядка
- Тайная жизнь объектов
- Проект: электронная жизнь
- Поиск и обработка ошибок
- Регулярные выражения
- Модули
- Проект: язык программирования
- JavaScript и браузер
- Document Object Model
- Обработка событий
- Проект: игра-платформер
- Рисование на холсте
- HTTP
- Формы и поля форм
- Проект: Paint
- Node.js
- Проект: веб-сайт по обмену опытом
- Песочница для кода
Когда вы открываете веб-страницу в браузере, он получает исходный текст HTML и разбирает (парсит) его примерно так, как наш парсер из главы 11 разбирал программу. Браузер строит модель структуры документа и использует её, чтобы нарисовать страницу на экране.
Это представление документа и есть одна из игрушек, доступных в песочнице JavaScript. Вы можете читать её и изменять. Она изменяется в реальном времени – как только вы её подправляете, страница на экране обновляется, отражая изменения.
+23
Мультиварка — умная кастрюля или «не доведенный до ума» гаджет
12 min
636KЭтот пост будет полезен всем, кто хотя бы иногда что-то готовит сам, а также помогает или мешает это делать другим.
Из него можно узнать, что это за гаджет — мультиварка, какие у нее технические возможности и невозможности, внутренность, наружность, достоинства (много) и недостатки (тоже много). Расскажу кое-что и о маленьких мультиварочных хитростях, а также позволю себе общее лирическое отступление о программировании на кухне.
Цель поста — рассказать про мультиварки, как класс объектов, не выделяя особо его представителей, но, чтобы не вести разговор о сферической мультиварке в вакууме, сделаю основным примером разбора мою модель — Panasonic SR-TMJ181.
Те, у кого нет мультиварки узнают, нужна ли она им, но и те, у кого она есть, надеюсь, без новых знаний не останутся.
+223
Анонсирован Xiaomi MI2
1 min
104KКомпания Xiaomi анонсировала свой новый смартфон все так же работающий под прошивкой MIUI.
Краткие технические характеристики под катом
Краткие технические характеристики под катом
+38
Мини-компьютеры: MK802, CuBox, Raspberry PI
2 min
99KТема микрокомпьютеров однозначно пошла на взлет. Про сборку Maximite я уже писал.
За последнее время удалось пощупать еще несколько мини машин, правда несколько иного класса, чем Maximite, построенных на ARMах.
За последнее время удалось пощупать еще несколько мини машин, правда несколько иного класса, чем Maximite, построенных на ARMах.
+40
Интернет-серфинг с Nook Simple Touch без root
2 min
36KСравнительно недавно я стал обладателем замечательной читалки Nook Simple Touch от Barnes&Noble. Эта читалка на базе Android наделена сенсорным дисплеем e-ink, однако без получения root прав употребляет всего два формата: epub и pdf. Возиться с получением root прав у меня нет ни малейшего желания: этих форматов для чтения на данный момент более, чем хватает, а вот возможность иногда при необходимости обозревать интернет-страницы не помешала бы.
Копаясь в настройках читалки, я сам для себя случайным образом обнаружил эту возможность. Способ неудобный, но в условиях некоторой нужды вполне себе пригоден.
Копаясь в настройках читалки, я сам для себя случайным образом обнаружил эту возможность. Способ неудобный, но в условиях некоторой нужды вполне себе пригоден.
+6
NodeSchool, Node.js и один урок для самых маленьких
4 min
25KСегодня я вам расскажу про одно очень интересное сообщество под названием NodeSchool. Данное сообщество продвигает обучение по платформе node.js
+17
Кроссплатформенное приложение на Qt: Распространение
6 min
34KTutorial
Сборка дистрибутива — завершающий этап подготовки программы к выходу в свет. К сожалению, ни о какой стандартизации в этой области речи не идет, более того, на некоторых ОС (не будем показывать пальцем), так вообще целый зоопарк форматов.
Итак, в идеале нам нужны дистрибутивы:
Итак, в идеале нам нужны дистрибутивы:
- Windows
- OS X (.dmg)
- OS X (.pkg — App Store)
- Linux (.deb)
- Linux (.rpm)
- Linux (.tar.gz — universal)
+32
Zabbix + Iostat: мониторинг дисковой подсистемы
4 min
94KZabbix + Iostat: мониторинг дисковой подсистемы.
Зачем?
Дисковая подсистема одна из важных подсистем сервера и от уровня нагрузки на дисковую подсистему зачастую зависит очень многое, например скорость отдачи контента или то как быстро будет отвечать база данных. Это в большей степени относится к почтовым или файловым серверам, серверам БД. Вобщем, показатели дисковой производительности отслеживать нужно. На основании графиков производительности дисковой подсистемы мы можем принять решение о необходимости наращивания мощностей задолго до того как петух клюнет. Да и вобще полезно поглядывать от релиза к релизу как работа разработчиков сказывается на уровне нагрузки.
Под катом, о мониторинге и о том как настроить.
Зачем?
Дисковая подсистема одна из важных подсистем сервера и от уровня нагрузки на дисковую подсистему зачастую зависит очень многое, например скорость отдачи контента или то как быстро будет отвечать база данных. Это в большей степени относится к почтовым или файловым серверам, серверам БД. Вобщем, показатели дисковой производительности отслеживать нужно. На основании графиков производительности дисковой подсистемы мы можем принять решение о необходимости наращивания мощностей задолго до того как петух клюнет. Да и вобще полезно поглядывать от релиза к релизу как работа разработчиков сказывается на уровне нагрузки.
Под катом, о мониторинге и о том как настроить.
+29
Язык Go для начинающих
9 min
483KЦель этой статьи — рассказать о языке программирования Go (Golang) тем разработчикам, которые смотрят в сторону этого языка, но еще не решились взяться за его изучение. Рассказ будет вестись на примере реального приложения, которое представляет из себя RESTful API веб-сервис.
+61
TYPO3 CMS кластер в облаке Jelastic
5 min
6.4KTYPO3 — отличное решение для веб-сайтов любых размеров, от небольших до корпоративных. Эта CMS позволяет с легкостью создавать и управлять многоязычными корпоративными сайтами для больших организаций. Такие веб-сайты могут масштабироваться и адаптироваться к любым возникающим потребностям.
Jelastic дает возможность сделать ваш сайт на TYPO3 не только очень гибким и доступным, но также стабильным и высокопроизводительным. Для достижения такого результата необходимо настроить высокодоступный кластера с двумя серверами приложений Apache, балансером NGINX, нодой Memcached и двумя реплицированными базами данных MySQL.
Jelastic дает возможность сделать ваш сайт на TYPO3 не только очень гибким и доступным, но также стабильным и высокопроизводительным. Для достижения такого результата необходимо настроить высокодоступный кластера с двумя серверами приложений Apache, балансером NGINX, нодой Memcached и двумя реплицированными базами данных MySQL.
+13
Как сделать самый крутой сайт, чтобы все конкуренты завидовали
3 min
32KКонечно, без страницы в интернете жить в наше время просто немыслимо. Когда свой сайт есть даже у круглосуточного ларька возле дома, а в каждую собачью конуру проведен десятимегабитный безлимит, любая мало-мальски уважающая себя контора должна заявить о себе в онлайне. В этой статье мы дадим вам несколько практических советов о том, как заполучить сайт мечты, которому позавидуют все.
+12
Еще раз про Oracle standby
13 min
162KПредставим себе ситуацию, когда наш проект, использующий в качестве СУБД Oracle, неожиданно (или с надеждой ожидаемо) стал критически важным для бизнеса (соответственно, появилась готовность выделять средства на обеспечение надежности системы).
До этого момента мы вполне обходились ежедневным или даже еженедельным бэкапом («горячим» или «холодным» копированием, а может и просто экспортом данных) и нас устраивало время восстановления системы порядка суток (будем считать, что данных у нас на пару терабайт).
И вот оказалось, что на восстановление системы нам отводится не более часа, и никакие данные нам терять нельзя.
Итак, все указывает на то, что нам придется поднимать standby сервер.
В принципе, большая часть из того, о чем говорится в этой статье, описано в «Oracle Data Guard Concepts and Administartion», а также в куче мест на просторах Сети, но, по большей части, это инструкции, содержащие последовательность команд, без особого описания их смысла и, главное, без рекомендаций, что делать, если что-то идет не так.
Я постараюсь описать процесс развертывания физической standby базы максимально подробно с указанием тех грабель на которые когда-либо натыкался.
Указание на случайно не обнаруженные мной проблемы, а также любые уточнения и дополнения всячески приветствуются.
До этого момента мы вполне обходились ежедневным или даже еженедельным бэкапом («горячим» или «холодным» копированием, а может и просто экспортом данных) и нас устраивало время восстановления системы порядка суток (будем считать, что данных у нас на пару терабайт).
И вот оказалось, что на восстановление системы нам отводится не более часа, и никакие данные нам терять нельзя.
Итак, все указывает на то, что нам придется поднимать standby сервер.
В принципе, большая часть из того, о чем говорится в этой статье, описано в «Oracle Data Guard Concepts and Administartion», а также в куче мест на просторах Сети, но, по большей части, это инструкции, содержащие последовательность команд, без особого описания их смысла и, главное, без рекомендаций, что делать, если что-то идет не так.
Я постараюсь описать процесс развертывания физической standby базы максимально подробно с указанием тех грабель на которые когда-либо натыкался.
Указание на случайно не обнаруженные мной проблемы, а также любые уточнения и дополнения всячески приветствуются.
+26
Как сверстать веб-страницу. Часть 2 — Bootstrap
19 min
694KTutorial
Введение
Уважаемый читатель, эта статья является второй частью цикла статей, посвященных вёрстке.
В первой части мы верстали шаблон Corporate Blue от студии Pcklaboratory с помощью стандартных средств на чистом HTML и CSS. В данной статье мы попробуем сверстать этот же шаблон, но с помощью CSS фреймворка Bootstrap 3.
+68
Как вынудить процесс использовать новый адрес DNS-сервера из обновлённого resolv.conf без перезапуска самого процесса
4 min
12KЯ работаю системным администратором Unix. Однажды к нам в отдел эксплуатации сервисов упал тикет от программиста с выдержой из лога application-сервера в заголовке: "pgbouncer cannot connect to server". Посмотрев логи pgbouncer'ов, я увидел, что периодически возникают lookup fail'ы при обращении к нашим DNS. Было установленно, что это связано не с работой наших DNS-серверов, а с ненадёжностью самого протокола UDP: иногда возникают потери пакетов по разным причинам.
В результате, было решено установить на каждом сервере с pgbouncer'ами по кэширующему BIND. И тут возникла интересная проблема: pgbouncer не перечитывал по сигналу HUP файл /etc/resolv.conf и продолжал обращаться к старым DNS-серверам. А перезагружать баунсеры категорически нельзя: есть проблемные проекты, которые очень болезненно относятся к разрывом сессий с базой.
В данной статье я расскажу как можно pgbouncer или любую другую программу, использующую библиотечный вызов getaddrinfo(), заставить перечитать resolv.conf и начать использовать новый DNS-сервер совершенно безболезненно для клиентов (без даунтайма).
В результате, было решено установить на каждом сервере с pgbouncer'ами по кэширующему BIND. И тут возникла интересная проблема: pgbouncer не перечитывал по сигналу HUP файл /etc/resolv.conf и продолжал обращаться к старым DNS-серверам. А перезагружать баунсеры категорически нельзя: есть проблемные проекты, которые очень болезненно относятся к разрывом сессий с базой.
В данной статье я расскажу как можно pgbouncer или любую другую программу, использующую библиотечный вызов getaddrinfo(), заставить перечитать resolv.conf и начать использовать новый DNS-сервер совершенно безболезненно для клиентов (без даунтайма).
+34
VMware: «To quiesce or not to quiesce?», бэкапим вирутальные машины правильно
8 min
40KПро моментальные снимки (снапшоты) виртуальных машин было написано великое множество статей, где
Так зачем нужны «quiesced»* снапшоты, с чем их едят, и какие типичные проблемы с ними возникают? Взгляд на снапшоты будет представлен в первую очередь с точки зрения резервного копирования, но постараюсь в какой-то мере раскрыть и другие аспекты использования.
* Если кто готов подсказать подходящий русскоязычный термин — милости прошу в комментарии, будет хороший вариант — заменю в тексте англицизм.
+11
Information
- Rating
- Does not participate
- Location
- Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity