Как стать автором
Обновить
11
Карма
0
Рейтинг

Программист

  • Подписчики 3
  • Подписки 3
  • Публикации
  • Комментарии

Почему ip-адреса — новый биткоин телекома?

IT-инфраструктураIPv6История ITКриптовалюты
Все мы используем ip-адреса в повседневной жизни. Маршрутизаторы для подачи интернета, работа принтеров в офисе, функционирование smart-техники, системы умный дом — все это было бы невозможно без ip-адресов.

Однако что скрывается за понятием ip-адреса? Кто именно регистрирует и выдает их? Почему спрос на них продолжает расти в геометрической прогрессии и что произойдет, когда используют последнюю IPv4 (четвертую версию IP-протокола) — ответы на эти вопросы рассмотрим в нашей статье.

Что такое IP-адрес и кто имеет право его выдавать?


Іp-адрес (internet protocol address) — это уникальный набор цифр, который позволяет идентифицировать конкретное устройство или пользователя в сети. То есть, простыми словами, ip — это адрес проживания определенного пользователя или устройства в интернет-сети.

Право выделять и регистрировать ip-адреса в мире закреплено за некоммерческой организацией Regional Internet Registry (RIR). На сегодня существует 5 интернет-регистраторов, за каждым из которых закреплен определенный регион мира: RIPE NCC, APNIC, AFRINIС, LACNIC и ARIN.
image

Читать дальше →
Всего голосов 10: ↑3 и ↓7-4
Просмотры3.7K
Комментарии 9

Пошаговое руководство по написанию сервиса для Kubernetes

Go
Перевод
Tutorial

От автора. Уже пятый декабрь подряд в блоге GopherAcademy самые разные представители Go-сообщества делятся своим опытом в рамках специальной предрождественской серии постов. В этом году я тоже решила предложить свою статью, написанную по мотивам первой части нашего с Игорем Должиковым мастер-класса по микросервисам. На Хабре небольшую часть этого руководства мы уже рассматривали ранее.


Если вы когда-либо пробовали Go, вы знаете, что писать сервисы на Go очень просто. Нам нужно буквально несколько строк кода для того, чтобы можно было запустить http-сервис. Но что нужно добавить, если мы хотим приготовить такое приложение в продакшн? Давайте рассмотрим это на примере сервиса, который готов к запуску в Kubernetes.


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

Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Просмотры17K
Комментарии 6

gogrep: структурный поиск и замена Go кода

Open sourceПроектирование и рефакторингGoСофт

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


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


Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Просмотры4.4K
Комментарии 2

Как выбрать редактор, и почему нужно выбрать NeoVim?

ПрограммированиеVIMРазработка под Linux
Из песочницы


Часто мы тратим время на включение редакторов больше, чем тратим на исправление или написание какого-то однострочного скрипта. Я считаю что эту проблему можно быстро решить, ведь для этого и существуют консольные редакторы

Читать дальше →
Всего голосов 39: ↑21 и ↓18+3
Просмотры27K
Комментарии 106

Гадкий пингвиненок

*nix
Recovery mode
Чисто ради интереса, решил в феврале 2019 года покопаться в Linux From Scratch с мыслью о том, что настало время свой дистрибутив сваять, мало ли вдруг действительно Интернет отключат, а имеющиеся дистрибутивы GNU/Linux без Интернета не смогут пакеты устанавливать.

image
Читать дальше →
Всего голосов 45: ↑11 и ↓34-23
Просмотры12K
Комментарии 24

История Vim и руководство по его эффективному использованию

Блог компании Дата-центр «Миран»VIMGit*nixИстория IT
Перевод
Tutorial
Примечание от переводчика: это первая часть монументальной (на самом деле монументальной) статьи о Vim и его возможностях от разработчика из Миннеаполиса и автора проекта PostgREST Джо begriffs Нельсона.

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




Эта статья основана на исследовании истории Vim и прочтении его руководства пользователя от корки до корки. Надеюсь, эти заметки помогут вам открыть (или переоткрыть?) для себя основные функциональные возможности этого редактора, а также позволят отказаться от использования предупакованных файлов vimrc и более вдумчиво использовать плагины.



Список литературы


Чтобы выйти за границы привычных тем, я бы порекомендовал обзавестись бумажной копией этого руководства и емким карманным справочником. Я не смог найти печатную копию руководства пользователя для Vim, так что в итоге просто распечатал идущий вместе с редактором PDF-файл с помощью printme1.com. Он идет вместе с софтом в $VIMRUNTIME/doc/usr_??. В качестве удобного списка команд могу посоветовать справочник «Vi and Vim Editors Pocket».

Содержание

  • История
  • Иерархия конфигурации
  • Сторонние плагины
  • Бекапы и откаты
  • Include и path
  • Редактирование и компиляция цикла
  • Диффы и патчи
  • Буфер ввода / вывода
  • Типы файлов
  • Не забывайте про мышь
  • Разное

История


Рождение vi


Команды и функции Vi существуют уже более пятидесяти лет, начиная с редактора QED. Вот его таймлайн:
Читать дальше →
Всего голосов 46: ↑42 и ↓4+38
Просмотры31K
Комментарии 14

Архитектура ассемблера Go

Блог компании BadooПрограммированиеКомпиляторыCGo
Перевод
image Привет, Хабр! Меня зовут Марко Кевац, я системный программист Badoo в команде «Платформа», и я очень люблю Go. Если сложить эти две вещи, то вы поймёте, насколько я люблю ассемблер в Go.

Совсем недавно мы рассказывали на Хабре о том, на каких конференциях побывали. Одной из них была GopherCon 2016, где практически всем запомнился доклад Роба «Командира» Пайка про Go-шный ассемблер. Представляю вам перевод его доклада, оформленный в виде статьи. Я постарался дать в тексте как можно больше ссылок на релевантные статьи в «Википедии».
Читать дальше →
Всего голосов 82: ↑79 и ↓3+76
Просмотры25K
Комментарии 35

Как не ошибиться с конкурентностью в Go

Блог компании АвитоВысокая производительностьАнализ и проектирование системGoПараллельное программирование

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


Мы берём Go, начинаем писать конкурентный код. Конечно, ожидаем, что легко сможем обуздать мощь каждого ядра нашего процессора. Так ли это?


Меня зовут Артемий. Этот пост — вольная расшифровка моего доклада с GopherCon Russia. Он появился как попытка дать толчок людям, которые хотят разобраться, как писать хороший, конкурентный код.



Видео с конференции GopherCon Russia

Читать дальше →
Всего голосов 62: ↑58 и ↓4+54
Просмотры18K
Комментарии 16

Чему я научился на своём горьком опыте (за 30 лет в разработке ПО)

Блог компании Mail.ru GroupПрограммированиеСовершенный кодУправление разработкой
Перевод
Tutorial
image

Это циничная, клиническая коллекция того, чему я научился за 30 лет работы в разработке программного обеспечения. Повторюсь, некоторые вещи весьма циничны, а остальное — результат долгих наблюдений на разных местах работы.
Читать дальше →
Всего голосов 187: ↑178 и ↓9+169
Просмотры113K
Комментарии 128

Рефакторинг программы на Go: ускорение в 23 раза

Блог компании BadooВысокая производительностьПрограммированиеПроектирование и рефакторингGo
Перевод


Привет! Меня зовут Марко, я работаю в Badoo в отделе «Платформы». У нас довольно много всего написано на Go, и зачастую это критичные к производительности системы. Именно поэтому сегодня я предлагаю вашему вниманию перевод статьи, которая мне очень понравилась и, я уверен, будет вам очень полезна. Автор пошагово показывает, как он подходил к проблемам производительности и как их решал. В том числе вы познакомитесь с богатым инструментарием, доступным в Go для такой работы. Приятного чтения!

Несколько недель назад я прочитал статью «Хороший код против плохого кода в Go», где автор шаг за шагом демонстрирует рефакторинг реального приложения, решающего реальные бизнес-задачи. Она сфокусирована на превращении «плохого кода» в «хороший код»: более идиоматичный, более понятный, полноценно использующий специфику языка Go. Но автор также заявлял о важности производительности рассматриваемого приложения. Во мне взыграло любопытство: давайте попробуем её ускорить!
Читать дальше →
Всего голосов 94: ↑93 и ↓1+92
Просмотры30K
Комментарии 26

Распространение программ на Go. Часть 1

Go
Из песочницы
Недавно прочел достаточно неплохую статью о инсталяции программ на Go. Где был показан простой пример того как можно реализовать установку бинарника под «любую» (unix friendly) операционную систему. Решил написать более подробный цикл статей на эту тему.

image

Читать дальше →
Всего голосов 18: ↑14 и ↓4+10
Просмотры10K
Комментарии 3

Выделение подпроекта в отдельный репозиторий на github

GitСистемы управления версиямиGitHub

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


Итак, что дано:


  • Есть большой репозиторий, содержащий множество папок. Каждая папка – это отдельный проект.

Что необходимо сделать:


  • Одну из папок перенести в отдельный репозиторий с сохранением ее истории коммитов.

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


Я использовал стандартный гитовый filter-branch. За основу я взял следующие статьи:



В этом посте я хочу немного адаптировать процесс для лучшего восприятия.

Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Просмотры13K
Комментарии 23

Как работает баг с миром −1 в Super Mario Bros

Старое железоИгры и игровые приставки
Перевод


Мир −1 в оригинальной Super Mario Bros. — один из самых известных багов на NES. Если в зону перехода (Warp Zone) зайти специальным образом, игра глючит, и при входе в трубу вы попадаете в странный мир.

Попасть в мир −1 можно, почти пройдя уровень 1-2 и встав на трубу, ведущую на поверхность земли, к флагштоку и концу уровня. Затем нужно передвинуться к левому краю трубы, пригнуться и подпрыгнуть вправо, чтобы опускаясь Марио находился почти под потолком. Может потребоваться несколько попыток, но в результате он попадёт в нужную точку и автоматически пройдёт сквозь трубу, а затем через стену в комнату с зоной перехода. Если не будет виден хотя бы один пиксель трубы, Марио окажется в ловушке и игроку придётся ждать, пока не закончится время.

Ещё один способ попадания в мир −1: разбить два кирпичных блока на потолке, оставив самый правый. Потом нужно подойти к левому концу трубы и подпрыгнуть вправо. Пригибаться в этом случае не обязательно, потому что Марио может попытаться ударить (на самом деле не разрушая его). При этом в игре произойдёт сбой, и Марио сможет пройти сквозь трубу и стену. Но этот способ более сложен и долог. Если всё сделано правильно, игрок увидит перед собой три трубы зоны перехода. Если залезть в левую или правую трубу, Марио попадёт в мир −1. Если же опуститься в среднюю трубу, он перейдёт на уровень 5-1. В случае, если правая стена зоны перехода становится видимой, баг перестаёт действовать.

Но это не вся история о том, почему работает этот баг. Некоторые говорят, что так происходит, потому что на экране зоны перехода над трубой не отображается номер мира, когда вы заходите в неё. Но это неправда, и те, кто обладает пониманием механики игры, никогда не поверит в такое объяснение. Прочитав эту статью, вы сможете рассказать фантазёрам, что же происходит на самом деле. В этой статье мы подробно разберём и раскроем тайны возникновения бага «мира минус один».
Читать дальше →
Всего голосов 108: ↑103 и ↓5+98
Просмотры55K
Комментарии 75

Как красиво оформить публикацию на Хабре

Блог компании ХабрHabr
Tutorial
Публикация – основная единица связи автора с читателем. Практика показывает, что на Хабре можно разместить почти любой формат: небольшой анонс и лонгрид-обзор, интервью, фотоотчёт, трансляцию события, урок и многое-многое другое. Нередко успех публикации зависит и от её оформления – приятно оформленный материал читать одно удовольствие. В этой статье мы постараемся предоставить вам много полезных советов по хорошему оформлению материала.

И первый лайфхак – кликабельная картинка до ката, которая ведёт сразу внутрь публикации:


Читать дальше →
Всего голосов 140: ↑121 и ↓19+102
Просмотры41K
Комментарии 112

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность