Pull to refresh
0
0

Программист-любитель

Send message

Лабораторная работа «Обучаемся настраивать сети в GNU/Linux»

Reading time9 min
Views46K
Никто не любит длинные вступления, поэтому сразу к сути.
В данной импровизированной лаборатории я хотел бы осветить работу с сетями в GNU/Linux
и рассмотреть следующие темы:

  1. Изучаем vlan. Строим сеть между vm1, vm2 в одном vlan. Пингуем, ловим пакеты, изучаем заголовки.
  2. Разбиваем vm1 vm2 на разные vlan. Настраиваем intervlan routing с помощью R1.
  3. Iptables. Настраиваем маскарад. Имитируем выход во внешние сети.
  4. Iptables. Настраиваем port forwarding для сервисов на vm1 и v2, которые находятся за NAT.
  5. Iptables. Настраиваем security zones. Изучаем tcp сессии.


З.Ы. все люди ошибаются, я открыт для ваших комментариев, если я написал какую-то глупость, готов ее исправить!
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments24

Разница между nginx и apache с примерами

Reading time26 min
Views108K

Во время собеседований на роль linux/unix администратора во многих IT-компаниях спрашивают, что такое load average, чем nginx отличается от apache httpd и что такое fork. В этой статье я постараюсь объяснить, что рассчитывают услышать в ответ на эти вопросы, и почему.


Здесь важно очень хорошо понимать основы администрирования. В идеальной ситуации при постановке задачи системному администратору выставляют ряд требований. Если же ситуация не идеальная, то, по сути, требование к администратору одно: «Хочу, чтобы всё работало». Иными словами, сервис должен быть доступен 24/7 и, если какое-то решение не удовлетворяет этим требованиям (масштабирование и отказоустойчивость относятся к доступности), то можно сказать, что администратор плохо сделал свою работу. Но если разные решения двух администраторов работают 24/7, как понять, какое из них лучше?


Хороший системный администратор при выборе решения при заданных требованиях ориентируется на два условия: минимальное потребление ресурсов и их сбалансированное распределение.


Вариант, когда одному специалисту нужно 10 серверов для выполнения задания, а второму всего 2, мы рассматривать не будем, что тут лучше – очевидно. Далее под ресурсами я буду понимать ЦПУ (cpu), ОЗУ (ram) и диск (hdd).


Давайте рассмотрим ситуацию: один администратор создал решение, которое требует 10% cpu, 5% ram и 10% hdd от всего вашего оборудования, а второй использовал для этого 1% cpu, 40% ram и 20% hdd. Какое из этих решений лучше? Тут все становится уже не так очевидно. Поэтому хороший администратор всегда должен уметь грамотно подобрать решение, исходя из имеющихся ресурсов.


Читать дальше →
Total votes 72: ↑69 and ↓3+66
Comments73

Создание сеток шестиугольников

Reading time25 min
Views97K
image

Сетки из шестиугольников (гексагональные сетки) используются в некоторых играх, но они не так просты и распространены, как сетки прямоугольников. Я коллекционирую ресурсы о сетках шестиугольников уже почти 20 лет, и написал это руководство по самым элегантным подходам, реализуемым в простейшем коде. В статье часто используются руководства Чарльза Фу (Charles Fu) и Кларка Вербрюгге (Clark Verbrugge). Я опишу различные способы создания сеток шестиугольников, их взаимосвязь, а также самые общие алгоритмы. Многие части этой статьи интерактивны: выбор типа сетки изменяет соответствующие схемы, код и тексты. (Прим. пер.: это относится только к оригиналу, советую его изучить. В переводе вся информация оригинала сохранена, но без интерактивности.).
Читать дальше →
Total votes 92: ↑91 and ↓1+90
Comments25

Ломаем Android. Как глубока кроличья нора?

Reading time22 min
Views110K

image


Мой первый Android телефон Galaxy Note N7000 был приобретен сразу после анонса в октябре 2011 года. Благодаря одному немецкому умельцу под ником bauner, у меня была возможность использовать последнюю версию CyanogenMod (ныне LineageOS). До тех пор, пока полтора года назад телефон не умер от китайской автомобильной зарядки.


Замену искал долго и остановился на Kyocera (да, они и телефоны выпускают) KC-S701. Он отличается брутальным внешним видом и отсутствием сенсорных кнопок. О root доступе к телефону я тогда даже и не задумывался, полагая, что нынче каждый телефон тем или иным способом имеет возможность получения root. И найдется умелец, который сможет под него портировать CyanogenMod. Я ошибался.


За полтора года было выпущено всего одно обновление — фикс падения ядра от специально сформированного ping пакета. А Android KitKat уже год назад был не первой свежести. Root доступ на этот телефон так никто и не получил, и никакой информации о нем не было. Отмечу, что тоже самое железо используется в американской версии телефона Kyocera Brigadier E6782, в котором по-умолчанию активизирован режим fastboot и нет ограничения на запуск неподписанных ядер (именно запуск, а не прошивку, и только при использовании непропатченного bootloader'а, CVE-2014-4325) и присутствует возможность загружаться в эти режимы путём зажатия кнопок телефона. Стараниями Verizon (а может Kyocera?) версия Android на Brigadier была обновлена до Lollipop.


Итак, я решил разобраться с процессом получения root на Android самостоятельно.

Читать дальше →
Total votes 113: ↑110 and ↓3+107
Comments46

Немного о типах DDoS-атак и методах защиты

Reading time5 min
Views36K
Согласно проведенным исследованиям, масштабы DDoS-атак выросли примерно в 50 раз за последние несколько лет. При этом злоумышленники «метят» как в локальные инфраструктуры, так и публичные облачные площадки, на которых сосредотачиваются решения клиентов.

«Успешно реализованные атаки имеют непосредственное влияние на бизнес клиентов и носят деструктивные последствия», – комментирует Даррен Ансти (Darren Anstee), представитель компании Arbor Networks, поставляющей решения для обеспечения безопасности в сетях.

При этом частота атак также увеличивается. В конце 2014 года их число составляло 83 тыс., а в первом квартале 2015 года цифра увеличилась до 126 тыс. Поэтому в нашем сегодняшнем материале мы бы хотели рассмотреть различные виды DDoS-атак, а также способы защиты от них.


/ Flickr / Kenny Louie / CC
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments2

Приключения в математическом лесу фрактальных деревьев

Reading time8 min
Views36K


Перевод поста Bernat Espigulé Pons, «Adventures into the Mathematical Forest of Fractal Trees».
Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь.


Без сомнения, золотое сечение и в наше время представляется одним из самых таинственных, волшебных и поразительных чисел, которые известны людям: Prikljuchenija-v-matematicheskom-lesu-fraktalnyh-derevev_1.png. (в языке Wolfram Language и системе Mathematica ему соответствует символ GoldenRatio). Как вы увидите из этого поста, это число действительно имеет множество интересных свойств, которые можно исследовать, причём некоторые из них рассматривались ещё в работах учёных Древней Греции, таких как Пифагор и Евклид, другие в работах итальянского математика Леонардо Пизанского, более известного под прозвищем Фибоначчи, или Иоганном Кеплером — астрономом эпохи Возрождения. Хотя это может прозвучать странно, в этом посте я расскажу вам о новых геометрических объектах, связанных с золотым сечением, которые осветили мне путь, когда я пытался отобразить неизвестную ранее область Математического Леса.
Читать дальше →
Total votes 61: ↑58 and ↓3+55
Comments6

SSH вместо VPN

Reading time3 min
Views62K
image

Наверняка многие системные администраторы сталкивались с ситуацией когда количество удалённых пользователей в компании становилось больше одного столько, что мысли о нормальном VPN вместо nat-а на скорую руку не давали покоя и становились навязчивой идеей. И уверен каждый морщился, когда понимал, что предстоит объяснять пользователям, что и где нажимать. А в моём, персональном случае ещё и позиция в отношении подопечных: «они не должны даже задумываться как это работает».
Читать дальше →
Total votes 47: ↑38 and ↓9+29
Comments54

Структуры данных: двоичная куча (binary heap)

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

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

Введение


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



Читать дальше →
Total votes 72: ↑58 and ↓14+44
Comments58

Как можно упростить себе жизнь с помощью Telegram-бота

Reading time13 min
Views73K

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


Эта статья — краткий рассказ о том, как с помощью подручных средств (Firefox) и Python можно осуществить успешную интеграцию Telegram-бота и внешнего сервиса.

Материал будет интересен тем, кто наслышан о Telegram'ных ботах, но не знает, как к ним подступиться и какие задачи с их помощью можно решать. Предполагается знание Python.

Картинка для привлечения внимания:

writing a twitter bot
(ссылка на оригинал)

TL;DR


Из статьи вы узнаете:

1. Как с помощью браузера узнать, какой запрос отправляется на сервер при клике по кнопке?

Ответ
Используя web tool вашего любимого браузера можно увидеть все запросы, которые отправляются из открытой страницы на сервер.


2. Как легко отправить запрос на сервер с помощью Python?

Ответ
Удобной обёрткой над стандартным модулем urllib2 является библиотека requests. Подробнее на Хабре: "Библиотека для упрощения HTTP-запросов".


3. Как написать бота на Python?

Ответ
Полнофункциональная обёртка реализована в библиотеке python-telegram-bot. Пока на Хабре эта библиотека не упоминалась.

Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments8

Библиотека для упрощения HTTP-запросов

Reading time1 min
Views149K
Requests — библиотека Python, которая элегантно и просто выполняет HTTP-запросы. Теперь не нужно осваивать urllib2 с излишне сложными программными интерфейсами.

Вот как выглядит HTTP-запрос с авторизацией с помощью requests:

>>> r = requests.get('https://api.github.com', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json'
Читать дальше →
Total votes 133: ↑117 and ↓16+101
Comments32

Плагины в кармане или перочинный ножик в программе

Reading time5 min
Views15K

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


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

Читать дальше →
Total votes 26: ↑16 and ↓10+6
Comments23

Программирование на Python — курс для желающих узнать о нём больше или изучить ещё один язык программирования

Reading time3 min
Views126K
"The joy of coding Python should be in seeing short, concise, readable classes that express a lot of action in a small amount of clear code — not in reams of trivial code that bores the reader to death."
Guido van Rossum

Python — язык программирования, на котором приятно писать и который приятно читать. Мы предлагаем тринадцать лекций осеннего курса CS центра, чтобы посмотреть вглубь языка и попробовать понять, как пользоваться всеми его возможностями. Лекции читает Сергей Лебедев, разработчик в компании JetBrains и преподаватель в Computer Science Center.

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

Фотография сделана осенью 2014 года в Страсбурге, за две недели до начала первого прочтения этого курса.
Открыть лекции курса
Total votes 45: ↑42 and ↓3+39
Comments32

О ценности карт в игре «Пьяница»

Reading time4 min
Views40K
В последнее время я много играю со своим 5-летним сыном в карточную игру «Пьяница». И он, и я радуемся, когда побеждаем, и огорчаемся, когда проигрываем.

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

Я решил подвести математическую модель под анализ ценности карт в «Пьянице». Результаты получились самые неожиданные.
Читать дальше →
Total votes 41: ↑38 and ↓3+35
Comments36

Из-за мутации в X-хромосоме некоторые женщины различают в 100 раз больше цветов, чем обычные люди

Reading time2 min
Views64K
Несколько лет назад художница Кончетта Антико (Concetta Antico) осознала, что богатство красок, которое она видит в окружающем мире, недоступно для зрения остальных людей, а является результатом генетической мутации. Оказалось.что это симптом тетрахроматии — восприятия видимого диапазона спектра электромагнитного излучения комбинациями четырёх основных цветов, а не трёх цветов, как у нормальных людей.
Читать дальше →
Total votes 44: ↑38 and ↓6+32
Comments254

Домашняя археология или забытые артефакты

Reading time4 min
Views32K
Недавно, разбирая антресоли (хотя этот процесс как по действию, так и по эмоциональному накалу скорее схож с тем, что испытывал доктор Джонс трогая мраморную грудь статуи в присутствии красивой женщины) я обнаружил среди различных артефактов нечто.



Те, кто сразу не догадался что это, добро пожаловать под кат (картинки большие. трафик, если кому важно).
Подробности
Total votes 40: ↑35 and ↓5+30
Comments50

DIY: Робот-подводная лодка для исследования акватории Москвы-реки. Часть 1

Reading time8 min
Views38K
Это краткая история создания подводного автономного робота менеджером очень среднего звена. Текущей целью является создание актуальной карты фарватера Москвы-реки. При поиске нет проблем найти такую карту, но вызывает вопрос ее актуальность. Русло реки постоянно меняется. Происходит эрозия берегов реки и меняется карта фарватера. Эти процессы особенно заметны, учитывая питание Москвы-реки снеговое (61 %), грунтовое (27 %) и дождевое (12 %). Конечной целью является создание многофункционального подводного робота для исследование морских глубин. Мировой океан, покрывающий 2/3 поверхности Земли, изучен всего на 5%. Для создания автономного робота нужен простой «автопилот».

Как сделать доступный и простой автопилот для DIY-проектов и проплыть на нем по Москве-реке?




Читать дальше →
Total votes 33: ↑28 and ↓5+23
Comments132

Телефон в основе спутника

Reading time1 min
Views8.2K
Принято считать, что космические технологии это дорого и очень сложно.
Оказывается, что спутник можно построить менее чем за $1000.
Мэтью Райес (Matthew Reyes), Крис Бошайзен (Chris Boshuizen) и Уилл Маршал (Will Marshall) запустили спутник SmallSat, который в качестве сенсоров и бортового компьютера использует коммуникатор Nexus One и Arduino.
Запуск спутника был произведен с помощью двухступенчатой ракеты Intimidator-5 Джеймса Дагерти (James Dougherty).
Для управления использован SL4A — Scripting Layer for Android.
Второй телефон был использован в качестве черного ящика на ракете. Он использовал свои GPS и акселерометры, а также камеру, для записи запуска с борта ракеты:


Читать дальше →
Total votes 54: ↑39 and ↓15+24
Comments92

Введение в Tkinter

Reading time4 min
Views432K
image

Всем доброго времени суток!

Tkinter – это кроссплатформенная библиотека для разработки графического интерфейса на языке Python (начиная с Python 3.0 переименована в tkinter). Tkinter расшифровывается как Tk interface, и является интерфейсом к Tcl/Tk.
Tkinter входит в стандартный дистрибутив Python.
Читать дальше →
Total votes 70: ↑66 and ↓4+62
Comments45

Планета в плену у Земли. Прошлое, настоящее и будущее Луны

Reading time7 min
Views31K

Славянское имя нашего естественного спутника – Луна, имеет те же праиндоевропейские корни, что и латинское Luna. «Louksna», «светлая» царица ночи, издревле оказывала сильное влияние на сознание человека. Фазы естественного спутника нашей планеты стали основой календаря землян, а сама Луна основным объектом изучения человеком космической среды в начале космической эры. Два десятка экспедиций на Лунную поверхность, 6 из которых были пилотируемыми, сильно обогатили наши познания об этой невольнице Земли. Под катом относительно краткое содержание наших знаний о Луне, накопленных за последние полвека.
Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments38

Невероятные произведения искусства, созданные роботами

Reading time3 min
Views7.6K
image

Немногие ассоциируют роботов с произведениями искусства. Но конкурс, организованный Эндрю Конру (Andrew Conru), основателем FriendFinder Networks, проливает свет на способность роботов к творчеству.
 
Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments9

Information

Rating
Does not participate
Registered
Activity