Обновить
4
0
Андрей@UncleAndy

Пользователь

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

Как я хакнул Ethereum кошелек друга за 26 минут на MacBook M1 Pro

Время на прочтение5 мин
Охват и читатели43K

Привет, Хабр!

Слышали про уязвимость найденую в Profanity, инструменте для генерации Ethereum кошельков?

В этой статье я рассказываю, как реализовал взлом и подобрал приватный ключ к кошельку моего друга на MacBook M1 Pro (16 Гб) за 26 минут.

Ого. Как это?

Как запускать SQL в Go с максимальным комфортом

Время на прочтение5 мин
Охват и читатели24K

Писать SQL руками или использовать ORM — тема очень спорная, и я опишу, как использовать первый подход максимально эффективно. А какой из подходов выбрать, думаю, каждый сам для себя уже решил.

Читать далее

Как структурировать проект на Golang: гайд от backend-разработчика

Время на прочтение4 мин
Охват и читатели91K

Всем привет, меня зовут Авксентий, я backend-разработчик в inDriver. Думаю, каждый начинающий разработчик сталкивался с проблемой, как правильно выстроить архитектуру и структуру проекта. Ведь организация кода проекта — постоянно развивающаяся проблема, а следование стандартной структуре сохраняет чистоту кода и повышает производительность команды. 

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

Читать далее

Как хранить сеть дорог в БД для построения маршрута?

Уровень сложностиСложный
Время на прочтение21 мин
Охват и читатели23K

Японцы уже в 2018 году научили немецкий GraphHopper строить маршруты по дорогам хранящимся в PostgreSQL.

Как кастомизировать источник данных, и сохранять новые дороги в таблицу правильно?

Надо всего лишь...

Мир глазами аутиста. Почему нам так трудно работать в «этом» мире

Время на прочтение6 мин
Охват и читатели15K

Здравствуйте, я Миша и я алкого... аутист.

Расстройства аутистического спектра часто связывают с ИТ-шниками, учеными и людьми творческих профессий. Хотя считается, что эти расстройства с возрастом могут исчезнуть в процессе социализации взрослеющего организма и диагноз "аутист" ставится в основном детям, это на всю жизнь. Нет, мы не психи, у нас высокий уровень интеллекта (чаще всего выше среднего), мы можем делать работу лучше, чем "обычные" люди, но при этом люди "с проявлениями" испытывают больше проблем с работодателями и коллегами. Я не буду больше использовать это именование, поэтому далее речь пойдет об "особенных" людях.

Читать далее

5 типичных ошибок при использовании Apache Kafka

Время на прочтение10 мин
Охват и читатели38K

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

Читать далее

Типы таблиц в PostgreSQL: logged, unlogged и temporary tables

Время на прочтение11 мин
Охват и читатели55K

В PostgreSQL существует большое количество разных типов таблиц. Каждая из них предназначена для решения конкретных задач. Самая распространённая и известная — heap table или стандартная таблица. Про её структуру я рассказывал в прошлой статье. Стандартная таблица позволяет хранить строки, обновлять данные, делать OLAP и OLTP-запросы.  

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

Читать далее

i18n в Go: работа с переводами — Часть 1

Время на прочтение14 мин
Охват и читатели11K

Недавно мне впервые довелось создавать полностью интернационализированное (i18n) и локализированное (L10n) веб-приложение, в котором я задействоал набор пакетов Go golang.org/x/text. Я обнаружил, что пакеты и инструменты, собранные в golang.org/x/text, невероятно полезны и очень хорошо спроектированы. Однако мне было довольно сложно понять, как объединить все это вместе в реальном приложении.

В этом руководстве я постараюсь объяснить, как вы можете использовать golang.org/x/text для работы с переводами в вашем приложении.

Читать далее

Избавляемся от паролей в репе с кодом с помощью HashiCorp Vault Dynamic Secrets

Время на прочтение11 мин
Охват и читатели26K

Привет, Хабр! Меня зовут Сергей, я работаю IT Head в компании Quadcode. Сегодня хотел бы рассказать о том, как я решил проблему с хранением паролей в открытом виде в коде одного из моих pet-проектов. Думаю, это знакомая для многих ситуация. Знакомая — и неприятная.

Сразу скажу, что когда я начинал работу над проектом, ничего страшного в этом не видел, меня все устраивало. Но когда настало время подключать к разработке проекта кого-то извне, стало понятно, что хранить пароли в открытом виде небезопасно (да и перед контрибьюторами будет немного стыдно за такие банальные вещи) — это проблема. Вариантов решения было несколько. Под катом — рассказ о том, какое решение я выбрал и что получилось в итоге.

Читать далее

Магия ssh

Время на прочтение12 мин
Охват и читатели86K

Разве что ленивый не писал про ssh и несмотря на это, данный протокол и его возможности не перестают меня восхищать. Здесь я хочу поделиться исключительно своим опытом использования сего замечательного инструмента в своих задачах (При этом активно применяю его даже при разработке на Windows).

Поскольку я программист, то инструментарий ssh часто нужен мне в разработке и для личных нужд. Самые частые задачи, которые я выполняю с его помощью (по частоте использования):

  • Удалённый доступ — логично, ведь для этого он и предназначался.
  • Монтирование папок по сети — очень удобно для работы с кодом на удалённой машине.
  • Удалённое выполнение команд — нечастая, но используемая мной операция. Удобно получать выхлоп команды в канал другой команды на текущей машине.
  • Запуск графических приложений на удалённой машине.
  • Проксирование трафика — способ перенаправления трафика. Этакий быстрый и простой аналог VPN.
  • Обратный ssh — использую для проброса портов к системам, находящимися за NAT, когда лень настраивать firewall.

Далее вкратце разберу каждый пункт, и особенно пути эффективного и простого использования под Windows.
Читать дальше →

Веб-фреймворки для Golang в 2022 году: оптимальные варианты для разработчика

Время на прочтение3 мин
Охват и читатели50K

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

Читать далее

Понимание брокеров сообщений. Изучение механики обмена сообщениями посредством ActiveMQ и Kafka. Глава 2. ActiveMQ

Время на прочтение27 мин
Охват и читатели161K
Продолжение перевода небольшой книги:
«Understanding Message Brokers»,
автор: Jakub Korab, издательство: O'Reilly Media, Inc., дата издания: June 2017, ISBN: 9781492049296.

Предыдущая часть: Понимание брокеров сообщений. Изучение механики обмена сообщениями посредством ActiveMQ и Kafka. Глава 1. Введение
Читать дальше →

Понимание брокеров сообщений. Изучение механики обмена сообщениями посредством ActiveMQ и Kafka. Глава 1

Время на прочтение7 мин
Охват и читатели122K
Всем привет!

Начал перевод небольшой книги:
"Understanding Message Brokers",
автор: Jakub Korab, издательство: O'Reilly Media, Inc., дата издания: June 2017, ISBN: 9781492049296.

Из введения к книге:
"… Эта книга научит вас рассуждать о системах обмена сообщениями на брокерах, сравнивая и противопоставляя две популярные технологии брокеров: Apache ActiveMQ и Apache Kafka. Здесь будут изложены примеры использования и стимулы разработки, которые привели к тому, что их разработчики использовали совершенно разные подходы к одной и той же области — обмену сообщениями между системами с промежуточным брокером. Мы рассмотрим эти технологии с нуля и выделим влияние различных вариантов дизайна на этом пути. Вы получите глубокое понимание обоих продуктов, понимание того, как их следует и не следует использовать, и понимание того, на что следует обращать внимание при рассмотрении других технологий обмена сообщениями в будущем ..."

Переведенные к настоящему моменту части:
Глава 1. Введение
Глава 2. ActiveMQ
Глава 3. Kafka

Перевод выполнен: t.me/middle_java

Буду выкладывать законченные главы по мере перевода.
Читать дальше →

Мягкий способ релокации в Европу, или Поиск тихой гавани в неспокойные времена

Время на прочтение11 мин
Охват и читатели84K

Если 20-21 года можно назвать «годами удалёнки», то 2022 можно назвать годом релокации. Если раньше мысль о переезде посещала меня в формате «ну когда-нибудь потом, перееду в тепло ближе к пенсии», то после февраля этого года, когда зарубежные компании начали сворачивать бизнес в России, заказчики — сокращать бюджеты, а деньги со счёта в банке можно ждать неделями — вопрос о переезде в другую страну встал ребром. Причём не с целью «переждать», а как минимум для небольшой адаптации за рубежом, для возможного переезда уже на ПМЖ.

В качестве такой первой остановки выбрал Сербию (почему именно её расскажу дальше). Если вас тоже посещали/посещают мысли уехать — переходите под кат, там я делюсь своими критериями выбора страны,  деталями переезда и сведениями, которые удалось узнать у уже переехавших.

Читать далее

Неубиваемый P2P-интернет

Время на прочтение7 мин
Охват и читатели53K


Из-за трудностей с доступом к некоторым сайтам и сервисам есть смысл оценить инструменты, которые помогают обеспечить подключение. Сейчас это вообще самая бурно развивающаяся отрасль программной разработки. Новые сервисы и приложения выходят почти каждый день, количество скачиваний выросло в десятки раз за последние месяцы. Самые эффективные из этих инструментов устойчивы к DPI и построены по принципу одноранговой пиринговой сети. О них и поговорим, потому что в случае полного отключения они могут помочь.

Например, в апреле 2022 года запустилась пиринговая сеть Lantern. Также недавно разработана децентрализованная платформа Locutus для запуска любых P2P-приложений (от создателя легендарной пиринговой сети Freenet). Это далеко не полный список новых пиринговых проектов, созданных в последнее время для помощи людям, испытывающим затруднения в работе интернета.
Читать дальше →

NNHelper – пакет на языке Go для создания и использования нейронной сети

Время на прочтение4 мин
Охват и читатели8.2K

Данная статья описывает работу пакета nnhelper, предназначенного для создания и использования нейронных сетей в программах на языке Go.

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

Go пакет nnhelper разработан для быстрого создания нейронной сети и использовании ее в приложениях, написанных на языке Go. Для использования nnhelper не потребуется ничего дополнительного, кроме Go. Пакет nnhelper является надстройкой над пакетом gonn. И это единственная внешняя зависимость.

Читать далее

Go: справляемся с конфликтами при блокировках с помощью пакета Atomic

Время на прочтение3 мин
Охват и читатели13K

Эта статья берет за основу Go 1.14.

Go предоставляет механизмы синхронизации памяти, такие как канал (channel) или мьютекс (mutex ), которые помогают решать различные проблемы. Касательно разделяемой памяти, мьютекс защищает память от гонки данных. Однако, несмотря на существование двух типов мьютексов, в целях повышения производительности Go также предоставляет атомарные примитивы памяти в пакете atomic. Но давайте сначала вернемся к гонкам данных, прежде чем углубляться в решения.

Читать далее

Go для самых маленьких. Разрабатываем для Arduino и других микроконтроллеров

Время на прочтение8 мин
Охват и читатели20K

Язык Go благодаря своей простоте, возможности компиляции в выполняемый образ и встроенной поддержке многозадачности стал, в некотором смысле, "серебряной пулей" для создания высокопроизводительных инструментов и, совместно с Rust, сформировал современный технологический ландшафт для DevOps. Но в действительности, благодаря поддержке набора инструментов LLVM, стало возможным использовать Go и для встраиваемых систем, например при создании мобильных приложений для Android/iOS (например, проекты android-go или gomobile) или микроконтроллеров. В этой статье мы поговорим о возможностях проекта TinyGo, его преимуществах по сравнению с C++ для Arduino и других микроконтроллеров, рассмотрим несколько примеров по работе с оборудованием (на примере реализации драйвера шины SPI для светодиодной ленты WS2812).

Читать далее

Влияние медитации на негативные симптомы шизофрении и побочки нейролептиков

Время на прочтение15 мин
Охват и читатели11K

Симптомы шизофрении делятся на негативные, позитивные и когнитивные. С позитивными все просто, хоть они и наиболее красочны и в первую очередь бросаются в глаза простому человеку, но они легче всего подавляются нейролептиками и являются наиболее выражены только в момент психоза. С когнитивными, как  правило, ни то, ни се: с одной стороны они особо не причиняют страданий, крайне редко вызывают инвалидность, с другой стороны появляются исследования о применении препаратов off-label снижающих эти симптомы (хоть в аннотации препаратов и не стоит показание шизофрения). Дальше я постараюсь пояснить почему в основу статьи легли негативные.

Читать далее

Инструменты выполнения фоновых задач в Go

Время на прочтение11 мин
Охват и читатели27K

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

Go →

Информация

В рейтинге
Не участвует
Откуда
Подгорица, Подгорица, Черногория
Дата рождения
Зарегистрирован
Активность

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

Бэкенд разработчик, Разработчик баз данных
От 500 000 ₽
Golang
Docker
PostgreSQL
Git
Nginx
Высоконагруженные системы
Kubernetes
Linux
MySQL
Redis