Pull to refresh
1
0
mvs3d @mvs3d

User

Send message

Памятка пользователям ssh

Reading time13 min
Views1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Total votes 360: ↑352 and ↓8+344
Comments148

Локальный сервер для разработки (dns, nginx & git)

Reading time5 min
Views23K

В итоге мы получим домашний сервер с фейковым доменом, на поддомене которого мы развернём GitLab и настроим работу gitlab-runner'а для деплоя наших веб-проектов.

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

Читать далее
Total votes 15: ↑14 and ↓1+13
Comments14

PHP-Дайджест № 182 (1 – 22 июня 2020)

Reading time5 min
Views14K

Свежая подборка со ссылками на новости и материалы. В выпуске: 3 принятых и 6 новых RFC-предложений из PHP Internals, включая голосование за новый синтаксис для атрибутов — @@ и почему #[] был бы лучше, переименования black/whitelist в PHP-мире, как отлаживают PHP-разработчики, аналог ngrok на PHP, видео, подкасты и многое другое.

Приятного чтения!


Total votes 48: ↑47 and ↓1+46
Comments58

Четыре типажа программистов

Reading time17 min
Views214K

Привет.


Я впервые пишу в поток об управлении и найме персонала. Речь пойдет об одном из способов классифицировать ваших будущих или действующих программистов. Мой основной тезис: все разработчики, грубо говоря, делятся на 4 больших типажа и каждому из этих типажей есть своя область применения. Попытка направить неправильный типаж на решение неподходящих для него задач ведет к провалу (неэффективная работа, или сотрудник покидает команду). Хотите знать почему так — добро пожаловать под кат. Приготовьтесь, текста много.

Читать дальше →
Total votes 258: ↑237 and ↓21+216
Comments548

Jii: конфигурация и масштабирование

Reading time4 min
Views9.1K
Привет всем хабровчанам, любителям Yii и Node.js. Давно небыло статей про Jii, но работа не стояла на месте и мне есть что рассказать!
В этой статье мы рассмотрим способы конфигурирования приложения и запуск приложений как несколько процессов.

Читать дальше →
Total votes 20: ↑14 and ↓6+8
Comments2

М-м-м-м… Маршмэллоу: что нового в Android 6 и Android SDK

Reading time6 min
Views211K
Всем привет! Как вы все уже, наверное, знаете, шестая версия нашей ОС Android наконец получила официальное название: Android 6.0 Marshmallow. Предположений о том, как именно будет называться новая версия было много: и Milkshake, и Merengue, и M&M’s с MilkyWay. Кроме того, вышла финальная версия Android SDK, поддерживающая все новые возможности OS Android. О названии, инструментах для разработчиков, самых важных улучшениях и о том, что нас ждёт с приходом Android 6.0, сегодня и поговорим.


Читать дальше →
Total votes 59: ↑53 and ↓6+47
Comments84

Полная энергетическая автономия или как выжить с солнечными батареями в глубинке (часть 1. теоретическая)

Reading time5 min
Views325K


Все начиналось с того, что я приобрел участок земли в деревне, мимо которого не проходили электрические провода. «Ничего страшного, — подумал я. — Ведь по закону меня должны подключить к электросетям за 6 месяцев с момента заключения договора». Если бы я тогда знал, что мне придется освоить автономное энергоснабжение и окунуться в мир солнечной энергетики…

image
Как все начиналось
Total votes 145: ↑143 and ↓2+141
Comments244

PHP-Дайджест № 55 – интересные новости, материалы и инструменты (11 – 25 января 2015)

Reading time4 min
Views23K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Total votes 57: ↑53 and ↓4+49
Comments3

Делаем backup Google или паранойя по поводу санкций. Owncloud и другие открытые решения

Reading time4 min
Views109K


В свете последних топиков, в том числе «Autodesk не будет продавать ПО попавшим под санкции компаниям», появляется ощущение, что маховик абсурда все сильнее раскручивается. Мы не будем осуждать в этом топике политические причины всего этого безобразия, а подумаем немного о том, что произойдет, если внезапно «выключат Google», причем неважно с какой стороны. Также предлагаю рассмотреть один из вариантов забрать себе накопленный контент, используя открытое ПО.

Для начала давайте подумаем, что является наиболее ценным для большинства пользователей сервисов Google? В первую очередь, это личный контент, который хранится в облаке, почта и другие материалы. Во вторую очередь, это сервисы, которым нужно найти замену в кратчайшие сроки. Мы не будем рассматривать нужды профессиональных разработчиков под Android и корпоративные нужды.
Создаем резервную копию
Total votes 126: ↑111 and ↓15+96
Comments165

Как я попал в Топ AppStore с простым приложением курса валют

Reading time10 min
Views126K

Резюме


Я хочу рассказать о том, как создал вполне заурядное и совсем не инновационное приложение, которое объективно стало лучшим в своём роде и даже некоторое время пребывало на самой вершине топа. Это не история успеха и не руководство к действию. Я просто хочу рассказать, как у меня получилось сделать самое популярное приложение в своём сегменте.
Читать дальше →
Total votes 126: ↑118 and ↓8+110
Comments69

Вещи

Reading time5 min
Views809
Навеяно генеральной уборкой в доме. Жена хотела все повыкидывать, а я отчаянно сопротивлялся. Вопросы так и сыпались: «Ну зачем тебе старый, разобранный сидиром?», «Зачем тебе старые распечатки phrack, каких-то дизасмов и пр.?», «Зачем тебе старые джинсы и кросовки с дыркой?», «Зачем тебе коробки от ноутбука/телефона?». В итоге мы выкинули несколько огромных мешков хлама.

А сегодня читал рсс ленту и наткнулся на эссе Пола Грэма. И решил перевести эссе умного человека. Наверняка мой перевод содержит множество опечаток, ошибок и неточностей. С удовольствием приму ваши замечания.
Оригинал: www.paulgraham.com/stuff.html
Paul Graham «Stuff»
Читать дальше →
Total votes 40: ↑36 and ↓4+32
Comments51

Универсальный web-GUI для произвольных RESTful сервисов

Reading time4 min
Views20K
Во многих компаниях, как и моей, есть много проектов и продуктов. И у продуктов бывают веб-интерфейсы, чтобы этими продуктами как-то манипулировать. В нашем случае это простенькие RESTful веб-сервисы, а поверх них ещё более простенькие веб-странички с формочками и кнопочками. Все эти веб-странички до того похожи друг на друга, что возникла мысль написать унифицированный продукт, который бы спрашивал сервер о поддерживаемых сервисах, и получал бы полное описание параметров к этим сервисам, так чтобы можно было нарисовать те самые простенькие формочки. То есть, веб-сервисы должны описывать себя, достаточно исчерпывающе, чтобы наш клиент мог построить GUI для них, и ничего не надо было бы делать руками. Как раз такая картинка гуглится по запросу «REST»:


Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments10

Exponential Backoff или как «не завалить сервер»

Reading time7 min
Views32K
При любом взаимодействии клиента и сервера мы сталкиваемся с необходимостью повторять запросы. Сетевое соединение может быть ненадежно, могут быть проблемы на сервере или любые другие причины, из-за которых необходимо повторить запрос. То же самое касается и взаимодействия backend-сервера с базой данных или любым другим хранилищем данных (другим сервисом).

Мы сегодня поговорим об интервале повторов запроса. Через какой период времени после неудачного запроса можно его повторить? Давайте рассмотрим две стратегии: повтор через фиксированный интервал времени и экспоненциальное откладывание (exponential backoff). Мы увидим на симуляции, что при условии наличия большого числа клиентов повтор через фиксированный интервал может не дать серверу «подняться», а использование exponential backoff позволяет избежать этой проблемы.

Вопрос интервала повторов становится важным при проблемах на сервере. Очень часто сервер способен выдержать нагрузку от клиентов, которые отправляют запросы в некотором «текущем» режиме, распределяя свои запросы во времени случайным образом. Если на сервере происходит отказ, все клиенты обнаруживают его и начинают повторять запросы через некоторый интервал. Может оказаться, что частота таких запросов превышает тот предел, который сервер может обрабатывать.

Еще одним важным моментом является то, что клиент часто не может отличить проблемы на сервере от проблем с сетевым соединением на стороне клиента: если ответ на запрос не приходит в заданный интервал времени, клиент не может сделать заключение о том, в чем именно проблема. И поведение клиента (повтор запроса, интервал повтора) будут одинаковыми в обоих ситуациях.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments0

Работаем асинхронно в PHP или история ещё одного чата

Reading time8 min
Views37K
Меня очень радует, как бурно развивается PHP последние несколько лет. Наверное и вас тоже. Появляются постоянно новые возможности, удерживающие энтузиастов оставаться на данной платформе. Чего только стоит недавняя новость о релизе Hack.

Наверняка кто-то прочитав даже заголовок этой статьи ухмыльнется и подумает: «Мсье знает толк в извращениях!». Споры о крутости того или иного языка никогда не утихают, но как бы там ни было, лично я для себя вижу не так уж и много условий смены языка, поскольку люблю выжимать все возможности, прежде чем радикально сменить весь стек. Недавно была публикация о создании чата на Tornado и мне захотелось рассказать о том, как похожую задачу я решал при помощи PHP.

Предыстория

В один прекрасный день решил я познакомиться с WebSockets. Меня заинтриговала технология, хотя не сказать бы, что она появилась только вчера, и это совпало с запуском одного чат-сервиса соционической тематики, который страдал массой недостатков. Это придало мне азарт принять участие в конкурентной гонке. Использование веб-сокетов выглядело принципиально новым и многообещающим решением.
Читать дальше →
Total votes 45: ↑32 and ↓13+19
Comments19

Дайджест интересных новостей и материалов из мира PHP № 39 (24 марта — 14 апреля 2014)

Reading time6 min
Views22K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Total votes 65: ↑62 and ↓3+59
Comments26

Начинаем работать с графовой базой данных Neo4j

Reading time12 min
Views84K
В нашем проекте возникла следующая задача — есть база с большим количеством товаров, на уровне сотен тысяч. У каждого товара есть сотни динамически создаваемых характеристик. Необходимо обеспечить быструю фильтрацию по товарам по набору различных характеристик. Время формирования ответа должно быть не более 0.3 секунды, нужно поддерживать сложную логику в стиле.

(характеристика1 = true AND (характеристика2 < 100)) OR (характеристика1 = false AND (характеристика3 > 17)) ... далее обычно мешанина из AND\OR


Типичный пример подобного функционала — hotline.ua/computer/myshi-klaviatury

Пример функционала

У нас все реализовано в рамках MySQL + Symfony2/Doctrine, скорость неудовлетворительная — ответы формируются в течении 1-10 секунд. Мои попытки оптимизировать все это хозяйство — под катом.
Читать дальше →
Total votes 36: ↑30 and ↓6+24
Comments45

Вы мне Javascript сломали

Reading time5 min
Views63K
Давным-давно

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

Самое крутое, классное и волшебное, что было в JS — это то, что никто в больших организациях не хотел с ним иметь дела, оставаясь в своём спокойном мире прекрасно организованных слоёв абстракций из фабрик и волшебных фреймворков инъекций XML.

И это было отлично для тех, кто, как я, хотел получать зарплату больших организаций, не залезая в слои отвратительных «лучших практик» и проблем с производительностью, возникающих из-за неконтролируемого страха давать доступ к базе данных хоть кому-нибудь, кроме DBA.

Мало того, когда все эти проблемы с производительностью возникали, мы могли всех спасти, написав на JS фронтэнд, который делал вид, что никаких проблем не существует и всё это прекрасно работало, несмотря на тоскливое качество бэкэнда.

Мы достигли расцвета JS

С приходом jQuery наша жизнь стала ещё лучше, и мир вокруг стал собираться из маленьких переиспользуемых плагинов к jQuery. Наконец, мы достигли расцвета, когда пришёл NPM, и мы начали использовать более-менее работоспособную систему модулей для работы с автономными виджетами.

Я представлял себе будущее, где я мог работать с отличными командами над отличным кодом из маленьких модулей и автономных функций и виджетов. Я даже думал, что нам удастся отвоевать контроль над кодом у корпоративных маньяков с их библиотеками, ОРМами, паттернами и практиками, и основанными на них фабриками фабрик сервисов.

Мы следовали вменяемому процессу и делали отличные вещи из отличного кода, освободившись от оков мерзких корпоративных фреймворков.
А потом вы всё сломали
Total votes 239: ↑176 and ↓63+113
Comments122

Ещё +2Гб для вашего DropBox аккаунта. На сей раз, промо-акция DropBox и Three.com.hk

Reading time2 min
Views15K


Привет всем. И вновь я продолжаю описывать серию промо акций для обожаемого сервиса DropBox.

Сегодня я вам расскажу, как получить ещё +2Гб. На сей раз, не надо будет ходить по разным сайтам, генерировать коды и писать левые данные. Сегодня будет всё проще.

В прошлой статье +2Гб для вашего DropBox аккаунта. Промо-акция Samsung Бразилия, в самом конце, я писал, что есть ещё одна акция, которая проходит в Гонконге от оператора Three.com.hk. Так же, там было написано, что поучаствовать в данной акции не получится, так как там необходимо зарегистрироваться и жить в стране далёкой. Но как это устроить? Эту проблему мы обсуждали большой группой людей в конференции, но все наши попытки были тщетны, было понятно, что ничего не выйдет. Но как, же мы все ошибались!!!

Итак (барабанная дробь), я представляю вам акцию от Three.com.hk
Читать дальше →
Total votes 339: ↑285 and ↓54+231
Comments1729

Курс для тех, кто не боится UNIX и С

Reading time1 min
Views38K
image
О том, что российские вузы выпускают специалистов, невостребованных рынком труда, говорят многие. Обычно, разговорами все и заканчивается. Очень мало компаний в России идут на контакт с высшими учебными заведениями. Но такие всё же есть.

В прошлом году специалисты SkyDNS и Айдеко подготовили и прочитали в Уральском федеральном университете (УрФУ) курс «Сетевое программирование в UNIX». Спецкурс предназначался для студентов математико-механического факультета УрФУ. «Мы анонсировали его как курс для тех, кто не боится UNIX и С», — рассказал Александр Патраков, ведущий разработчик компании SkyDNS.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments18

GTD. Мифы, ошибки, заблуждения

Reading time5 min
Views16K
GTD — заморское слово, чуждое русскому языку и мировоззрению. Нам сложно понять, зачем русской душе, привыкшей к широте и свободе, понадобилась эта заморская метода «для дрессировки офисного планктона». Почему нельзя просто делать дела без всех этих новомодных методик? Ведь очевидно, что время, которое мы будем тратить на приведение дел в порядок, организуя их в некую систему — это время потраченное зря. За то время, пока мы разбирали и раскладывали бумажки с надписями «сделать то-то к такому числу», можно было взять и сделать много чего. Надо просто взять себя в руки и начать делать дела, вместо разговоров о них!
Читать дальше →
Total votes 48: ↑42 and ↓6+36
Comments25
1

Information

Rating
Does not participate
Location
Ижевск, Удмуртия, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer
Senior
Linux
PHP
MongoDB