Как стать автором
Обновить
20
0
Valentyn Ponomarenko @BOOTLOADER

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

Отправить сообщение

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

Время на прочтение12 мин
Количество просмотров61K
Продолжая тему устройства в FAANG, которую уже мы поднимали в нашем блоге, и специально к старту нового потока нашего курса по алгоритмам сегодня делюсь описанием пути Эско Обонга, старшего инженера-программиста Uber.

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


Приятного чтения!
Всего голосов 61: ↑55 и ↓6+49
Комментарии71

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

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


Читать дальше →
Всего голосов 65: ↑38 и ↓27+11
Комментарии76

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

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

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


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

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

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


Читать дальше →
Всего голосов 236: ↑235 и ↓1+234
Комментарии585

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

Время на прочтение15 мин
Количество просмотров125K

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


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

Хакнуть свой мозг
Всего голосов 210: ↑188 и ↓22+166
Комментарии638

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

Время на прочтение6 мин
Количество просмотров14K
В преддверии старта курса «Разработчик Golang» подготовили перевод интересного материала. А каким было ваше первое впечатление от Go?




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

Я подумал, что вам может быть интересно услышать о моих впечатлениях. Я постараюсь не зацикливаться на сравнениях с Rust, но так как это мой основной язык, их не избежать. Я должен заранее вас предупредить о сильном уклоне в сторону Rust, но я сделаю все возможное, чтобы быть объективным.
Читать дальше →
Всего голосов 33: ↑25 и ↓8+17
Комментарии39

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

Время на прочтение5 мин
Количество просмотров12K
Оригинал статьи написан живущим на вашингтонщине Иваном Сагалаевым, мужем небезызвестной Алёны C++.

Сама статья.

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

Система владения/заимствования языка Rust сложна и она создает совершенно новый класс побочных эффектов.
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии11

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

Время на прочтение5 мин
Количество просмотров66K

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


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


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


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


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


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

Читать дальше →
Всего голосов 124: ↑115 и ↓9+106
Комментарии182

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

Время на прочтение6 мин
Количество просмотров10K


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


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

Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии5

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

Время на прочтение7 мин
Количество просмотров31K


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

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

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

Время на прочтение3 мин
Количество просмотров17K


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

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

Портал Investopedia проанализировал бизнес Apple и выделил пять самых направлений для компании из Купертино. Вот, что приносит ей наибольшую прибыль.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии12

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

Время на прочтение9 мин
Количество просмотров21K


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


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


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

Читать дальше →
Всего голосов 73: ↑72 и ↓1+71
Комментарии8

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

Время на прочтение5 мин
Количество просмотров52K
Перевод статьи подготовлен специально для студентов курса «Разработчик Golang», занятия по которому начинаются уже сегодня!




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

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

Мы обратимся к примерам, чтобы вы могли принимать более взвешенное решение о том, где их применять.
Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии7

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

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



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

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

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

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

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



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

Читать дальше →
Всего голосов 37: ↑24 и ↓13+11
Комментарии26

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

Время на прочтение8 мин
Количество просмотров17K


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

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

Размышляя о принципах разработки контейнеризированных микросервисов, работающих под контролем Kubernetes, мы пришли к следующему выводу: вышеуказанные 12 факторов совершенно справедливы, однако для организации production-среды крайне важны и другие, а в частности:
Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии11

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

Время на прочтение6 мин
Количество просмотров21K

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

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

Время на прочтение11 мин
Количество просмотров119K

image


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


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


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

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии5

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

Время на прочтение4 мин
Количество просмотров47K
Привет, Хабр! представляю вашему вниманию перевод статьи «Go, gRPC and Docker» автора Mat Evans.

Существует множество статей о совместном использовании Go и Docker. Создавать контейнеры, способные взаимодействовать с клиентами и между собой, очень легко. Далее следует небольшой пример того, как это делается на базовом уровне.
Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии7

ISPsystem, прости и прощай! Почему и как мы написали свою панель управления серверами

Время на прочтение6 мин
Количество просмотров16K
image

Привет! Мы «Хостинг технологии» и 5 лет назад запустили VDSina — первый vds хостинг, созданный специально для разработчиков. Мы стремимся сделать его удобным, как DigitalOcean, но с русской поддержкой, способами оплаты и серверами в России. Но DigitalOcean это не только надежность и цена, это еще и сервис.

Софт от ISPsystem оказался веревкой, которая связывала нам руки на пути к крутому сервису. Три года назад мы использовали биллинг Billmanager и панель управления серверами VMmanager и быстро поняли, что оказывать хороший сервис без своей панели практически нереально.
И вот почему
Всего голосов 50: ↑46 и ↓4+42
Комментарии21

Что на самом деле случилось с исчезнувшим малайзийским Боингом (часть 3/3)

Время на прочтение11 мин
Количество просмотров72K
Не претендую на лавры товарища five, но мне кажется, что цикл статей прервался на самом интересном месте, и позволю себе восполнить этот пробел.

  1. Исчезновение
  2. Прибрежный бродяга
  3. Золотая жила
  4. Заговоры
  5. Возможный сценарий
  6. Капитан
  7. Истина
Читать дальше →
Всего голосов 88: ↑85 и ↓3+82
Комментарии108
1

Информация

В рейтинге
Не участвует
Откуда
Seattle, Washington, США
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer
Lead
Golang