Search
Write a publication
Pull to refresh
20
0
Valentyn Ponomarenko @BOOTLOADER

Да я тут просто мимо проходил…

Send message

Книги по Linux для начинающих и профессионалов: выбираем лучшее

Reading time4 min
Views67K

В этой подборке — книги по Linux. В большинстве своём они предназначены для специалистов, но есть что почитать и новичку. Мы постарались собрать самые разные книги — для системных администраторов, разработчиков и обычных пользователей. Всё самое интересное — под катом.

Читать далее

Волшебное решето Эратосфена

Reading time4 min
Views75K
image
Наверняка все, кто читает этот пост не раз использовали, или хотя бы слышали о решете Эратосфена — методе отыскания простых чисел. Сама проблема получения простых чисел занимает ключевое место в математике, на ней основаны некоторые криптографические алгоритмы, например RSA. Есть довольно много подходов к данной задаче, но в этой статье я остановлюсь на некоторых модификациях самого простого из них — решета Эратосфена.
Читать дальше →

Как я изучал структуры данных и алгоритмы для собеседования в FAANG

Reading time12 min
Views68K
Продолжая тему устройства в FAANG, которую уже мы поднимали в нашем блоге, и специально к старту нового потока нашего курса по алгоритмам сегодня делюсь описанием пути Эско Обонга, старшего инженера-программиста Uber.

Эта история началась в 2015 году, когда стартап, к которому я присоединился как «сотрудник-основатель», закрылся через шесть месяцев после первого раунда инвестиций, и я искал новую работу. Первое моё собеседование было с  Codecademy, где на этапе телефонного разговора меня заверили: «Не волнуйтесь, мы не задаём сумасшедших вопросов об алгоритмах или что-то в этом роде». И я им поверил…


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

Raspberry Pi в роли сервера для хостинга сайтов

Reading time8 min
Views94K
Raspberry Pi — это недорогой одноплатный компьютер, отличающийся крайней экономичностью в плане потребления электроэнергии. Он хорошо подходит на роль платформы, на базе которой создают устройства, которые постоянно должны быть включены. Среди множества способов применения Raspberry Pi можно выделить использование этого компьютера в качестве веб-сервера. И, на самом деле, хостить сайты на Raspberry Pi очень просто. Если посчитать стоимость услуг обычного хостинг-провайдера, то окажется, что они не так уж и дёшевы. Альтернативой таким услугам может стать собственный хостинг на Raspberry Pi, обслуживание которого не стоит практически ничего. Кроме того, платформа Raspberry Pi постоянно развивается, поэтому тому, кто решает ей пользоваться, можно не беспокоиться о том, что в будущем ему придётся работать с устаревшим аппаратным и программным обеспечением.


Читать дальше →

Линукс-порт Far Manager: прогресс за 4 года

Reading time5 min
Views70K
Первая публикация исходников far2l, порта Far Manager под Линукс — штуки, которая когда-то считалась принципиально невозможной — состоялась 10 августа 2016го. Поскольку главный разработчик поговаривает о переходе проекта в статус беты, решил написать обзорный пост, как там идут дела и чего удалось добиться за прошедшие четыре года.

Консольная версия


Первый же вопрос, который все задавали и здесь, и на опеннете, и на лоре — а чего не в консоли? Изначально far2l действительно работал только в графическом режиме, через wxWidgets. Это оказалось самым простым способом быстро получить работающий порт со всеми пользовательскими удобствами: иксовым буфером обмена и всеми сочетаниями клавиш, причем с поддержкой событий не только KeyDown, но и KeyUp.

Сейчас это ограничение в прошлом: far2l прекрасно себя чувствует в консоли. Более того, там появились так называемые расширения терминала far2l, поэтому если запускать консольный far2l внутри графического (например, зайдя куда-нибудь по ssh), они «сконнектятся» между собой, и внутренний far2l тоже будет видеть и буфер обмена (с разрешения пользователя, конечно), и все возможные горячие клавиши. Более того, сделана даже специальная сборка putty, позволяющая наслаждаться всеми этими фишками из Windows.

Вот, смотрите, это far2l в GNOME Terminal


Читать дальше →

«Просто похудеть» — непросто

Reading time15 min
Views128K

Интернет наводнен статьями о том, как похудеть "просто съедая меньше чем потратил" и отчетами об успешном опыте некоторых везунчиков. Чего нету (ну или очень мало) в интернете — это отчетов о том, как миллионы людей безрезультатно пытаются просто "съесть меньше", садясь на все новомодные диеты и неизменно возвращаясь к тому, с чего начинали, а иногда и скатываясь по шкале индекса массы тела в еще более красную зону.


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

Хакнуть свой мозг

Go глазами Rust-программиста: первые впечатления

Reading time6 min
Views14K
В преддверии старта курса «Разработчик Golang» подготовили перевод интересного материала. А каким было ваше первое впечатление от Go?




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

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

Почему владение/заимствование в Rust такое сложное?

Reading time5 min
Views12K
Оригинал статьи написан живущим на вашингтонщине Иваном Сагалаевым, мужем небезызвестной Алёны C++.

Сама статья.

Работать с чистыми функциями просто: вы передаете аргументы и получаете результат, при этом нет никаких побочных эффектов. С другой стороны, если функция производит побочные эффекты, такие, как изменение собственных аргументов или же глобальных объектов, то найти причины этого трудно. Мы привыкли также, что если видим что-то вроде player.set_speed(5), то можно быть уверенным, что тут собираются изменить объект player предсказуемым способом (и, возможно, посылают некоторые сигналы куда-нибудь).

Система владения/заимствования языка Rust сложна и она создает совершенно новый класс побочных эффектов.
Читать дальше →

Шизофрения: взгляд после

Reading time5 min
Views67K

Грани безумия


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


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


Тема для сайта довольно необычная:
Шизофрения: взгляд изнутри. Алекс давно пропал и я не знаю хватило ли у него сил получить профессию, на которую учился. Да и вообще способен ли он теперь писать статьи.


И более того, я давно уже ничего не писал и не знаю, способен ли писать статьи я. Для меня-то все выглядит ясно и четко — но это, скорее всего, только в моем воображении.


Попробую написать вначале о том, чего безумие коснулось меньше всего ( но это только на мой взгляд ).

Читать дальше →

ELFийские трюки в Go

Reading time6 min
Views11K


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


Предупреждение: ничему полезному эта мини-статья вас не научит.

Читать дальше →

Мегаструктуры будущего: сфера Дайсона, звёздный двигатель и «бомба из чёрной дыры»

Reading time7 min
Views31K


Некоторые футурологи и фантасты, далёкие от физиологии, любят помечтать о том, что в будущем у людей будет вооооот такой большой мозг. Но есть одна проблемка: человеческий мозг — главный потребитель энергии в организме. И при его сегодняшнем размере он уже требует ого-го сколько. Так что у наших потомков не будет большущих мозгов, они их просто не прокормят. Аналогичная проблема встаёт и перед любой цивилизацией, достигшей определённого уровня технического развития. Дальнейший прогресс требует всё больше энергии, а имеющиеся источники либо с трудом покрывают потребности, либо вообще не в состоянии дать нужное количество ватт — даже атомная энергетика, а в перспективе и термоядерная. К тому же принято считать, что всем цивилизациям свойственно расширять своё жизненное пространство, а значит и энергия им понадобится не только на домашней планете.

Какие источники энергии могут быть у цивилизаций, стоящих на гораздо более высокой ступени развития, чем мы? Под катом — описание трёх интересных концепций: сфера Дайсона, звёздный двигатель и «бомба из чёрной дыры».
Читать дальше →

Как зарабатывает Apple: 5 самых прибыльных направлений деятельности компании, и сколько они ей приносят

Reading time3 min
Views18K


Изображение: Pexels

Корпорация Apple была основана в 1976 году. Позднее она стала первой американской компанией, чья капитализация превысила $1 трлн. С тех пор компания как немного дешевела, так и снова дорожала, но всегда оставалась одной из самых успешных публичных компаний в мире.

Портал Investopedia проанализировал бизнес Apple и выделил пять самых направлений для компании из Купертино. Вот, что приносит ей наибольшую прибыль.
Читать дальше →

Внутренности Go: оборачиваем переменные цикла в замыкании

Reading time9 min
Views25K


Сегодня я решил перевести для вас небольшую статью о внутренностях реализации так называемых замыканий или closures. В дополнение вы узнаете о том, как Go пытается автоматически определить, нужно ли использовать указатель/ссылку или значение в разных случаях. Понимание этих вещей позволит избежать ошибок. Да и просто все эти внутренности чертовски интересны, как мне кажется!


А еще я хотел бы пригласить вас на Golang Conf 2019, которая пройдет 7 октября в Москве. Я член программного комитета конференции, и мы с коллегами выбрали много не менее хардкорных и очень, очень интересных докладов. То, что я люблю!


Под катом передаю слово автору.

Читать дальше →

Полное руководство по массивам и срезам в Golang

Reading time5 min
Views66K
Перевод статьи подготовлен специально для студентов курса «Разработчик Golang», занятия по которому начинаются уже сегодня!




Поначалу легко воспринимать массивы и срезы как одно и то же, но с разными названиями: и то и другое является структурой данных для представления коллекций. Однако на самом деле они сильно отличаются друг от друга.

В этой статье мы рассмотрим их различия и реализации в Go.

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

Что есть и чего нет в Go. Часть 1

Reading time4 min
Views9.4K
Всем привет, в преддверии старта нового потока по курсу «Разработчик Golang» хотим поделиться с вами переводом интересной статьи, в первой части которой разбираются элементы, которые есть в Go. Поехали.



Go создавался с оглядкой назад, и его базовая комплектация действительно хорошо составлена: у него есть сборка мусора, пакеты, функции первого класса, лексическая область видимости, интерфейс системных вызовов и неизменяемые строки, текст которых обычно кодируется в UTF-8. Но он имеет сравнительно мало фич и вряд ли будет увеличивать их количество. Например, у него нет неявных числовых преобразований, нет конструкторов или деструкторов, нет перегрузки операторов, нет значений параметров по умолчанию, нет наследования, нет дженериков, нет исключений, нет макросов, нет аннотаций функций и нет локального хранилища потока.

Перед прочтением: Выше приведен отрывок из книги Алан А. А. Донована и Брайана В. Кернигана «Язык программирования Go». страница XIV. Пункты, упомянутые ниже, являются кратким и несколько неполным объяснением терминов, используемых при проектировании языка программирования. Я попытался объяснить все концепции с точки зрения программирования на Go. Все пункты, упомянутые ниже, не моего авторства, они взяты из других выдержек. Я никоим образом не защищаю Go или любой другой язык.
Читать дальше →

Что есть и чего нет в Go. Часть 2

Reading time5 min
Views11K
Всем привет! Cегодня делимся заключительной частью перевода статьи «Что есть и чего нет в Go». Напоминаем, в первой части речь шла о элементах, которые есть в Go, сегодня же поговорим о том, чего в Go нет.

Перевод данного материала подготовлен в преддверии старта нового потока по курсу «Разработчик Golang».



Go создавался с оглядкой назад, и его базовая комплектация действительно хорошо составлена: у него есть сборка мусора, пакеты, функции первого класса, лексическая область видимости, интерфейс системных вызовов и неизменяемые строки, текст которых обычно кодируется в UTF-8. Но он имеет сравнительно мало фич и вряд ли будет увеличивать их количество. Например, у него нет неявных числовых преобразований, нет конструкторов или деструкторов, нет перегрузки операторов, нет значений параметров по умолчанию, нет наследования, нет дженериков, нет исключений, нет макросов, нет аннотаций функций и нет локального хранилища потока.

Читать дальше →

7 недостающих факторов в подходе 12 Factor App

Reading time8 min
Views18K


Прим. перев.: Тот восторг, что испытали наши тимлиды, увидев в блоге IBM Cloud этот материал — своеобразное «расширение» легендарного Twelve-Factor App, — говорит сам за себя. Поднятые автором вопросы не просто на слуху, а по-настоящему жизненны, т.е. актуальны в повседневной жизни. Их понимание полезно не только для DevOps-инженеров, но и разработчиков, создающих современные приложения, запускаемые в Kubernetes.

Известная методология «12 factor application» представляет собой свод четко определенных правил для разработки микросервисов. Они широко используются для запуска, масштабирования и деплоя приложений. В облачной платформе IBM Cloud Private мы следуем тем же 12 принципам при разработке контейнеризированных приложений. В статье «Kubernetes & 12-factor apps» обсуждается специфика применения этих 12 факторов (они поддерживаются моделью оркестровки контейнеров Kubernetes).

Размышляя о принципах разработки контейнеризированных микросервисов, работающих под контролем Kubernetes, мы пришли к следующему выводу: вышеуказанные 12 факторов совершенно справедливы, однако для организации production-среды крайне важны и другие, а в частности:
Читать дальше →

Преобразование черно-белых изображений в ASCII-графику при помощи неотрицательного матричного разложения

Reading time6 min
Views23K

В общем случае преобразование изображения в ASCII-графику представляет собой довольно трудоемкую задачу, однако существуют алгоритмы, позволяющие автоматизировать данный процесс. В данной статье рассматривается подход, предложенный исследователями Paul D. O’Grady и Scott T. Rickard в работе «Automatic ASCII Art Conversion of Binary Images Using Non-Negative Constraints». Описанный ими метод предполагает представление процесса преобразования изображения как задачи оптимизации и решение этой задачи при помощи неотрицательного матричного разложения. Ниже приведены описание рассматриваемого алгоритма, а также его реализация:
Читать дальше →

Разбираемся с пакетом Context в Golang

Reading time11 min
Views159K

image


Пакет context в Go полезен при взаимодействиях с API и медленными процессами, особенно в production-grade системах, которые занимаются веб-запросами. С его помощью можно уведомить горутины о необходимости завершить свою работу.


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


(Прим. пер.: Контекст используется во многих пакетах, например, в работе с Docker).

Читать дальше →

Как создать простой микросервис на Golang и gRPC и выполнить его контейнеризацию с помощью Docker

Reading time4 min
Views52K
Привет, Хабр! представляю вашему вниманию перевод статьи «Go, gRPC and Docker» автора Mat Evans.

Существует множество статей о совместном использовании Go и Docker. Создавать контейнеры, способные взаимодействовать с клиентами и между собой, очень легко. Далее следует небольшой пример того, как это делается на базовом уровне.
Читать дальше →
1

Information

Rating
Does not participate
Location
Seattle, Washington, США
Date of birth
Registered
Activity

Specialization

Backend Developer
Lead
Golang