Search
Write a publication
Pull to refresh
-11
0
spanasik @spanasik

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

Send message

Унифицируй это: как Lamoda делает единообразными свои Go сервисы

Reading time14 min
Views19K

Мы широко используем микросервисную архитектуру, хоть и не считаем ее панацеей, и чуть больше 2 лет назад начали переходить на язык Go. Он сравнительно прост и, на мой взгляд, очень хорошо подходит для создания простых, небольших и быстрых микросервисов. Эта простота имеет и обратную сторону: из-за неё возникает множество способов решить одну и ту же задачу.


Казалось бы, насколько сильно может отличаться один микросервис, который ходит в базу данных, от другого микросервиса, который ходит в соседнюю базу данных? Например, одна команда использует Go 1.9, glide, стандартный database/sql и одну структуру проекта, а в это же время другая команда использует Go 1.13, modules, sqlx и, конечно же, другую структуру проекта.


Когда один микросервис в компании отличается от другого, а он, в свою очередь, отличается от третьего — это замедляет разработку. А медленная разработка — это убытки повод для оптимизации.


Меня зовут Алексей Партилов, я техлид команды web-разработки в компании Lamoda. В этой статье я расскажу, как мы справляемся с разношерстностью около 40 наших микросервисов на Go. Статья будет полезна разработчикам, которые только вливаются в Go и не знают, с чего начать более сложный проект, чем “helloworld”.


image

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

Простой Telegram-бот на Flask с информированием о погоде

Reading time5 min
Views48K

Всем привет, в этой статье я расскажу как сделать простейшего телеграмм бота на Python для отправки текущей погоды в Москве.


Статья расчитана на новичков в Python, которые бы хотели узнать больше о том, как взаимодействовать с внешними сервисами по API.


Технологии и API:


  • Python — язык программирования,
  • Flask — фреймворк для создания веб-приложений,
  • Telegram Bot API,
  • Weatherstack API,
  • Ngrok — сервис для создания туннеля к localhost.

Как все будет работать?


  1. Пользователь пишет сообщение телеграмм боту.
  2. Telegram пересылает сообщение пользователя на сервер.
  3. Сервер запрашивает информацию о погоде у Weatherstack.
  4. Сервер отсылает информацию о погоде в Telegram.
  5. Пользователь получает информацию о погоде.
Читать дальше →

Обзор: Варшава и мать её Польша

Reading time17 min
Views49K




Привет, меня зовут Паша и я разработчик ПО!


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

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

Парсинг сайта кинотеатра на Golang

Reading time3 min
Views29K
Всем привет, в этой статье мы рассмотрим небольшой пример кода, написанный для сбора данных с сайта на популярном сегодня языке программирования Go.

Эта статья будет особенно интересна тем, кто много слышал о Go, но пока еще не попробовал его самостоятельно.

Для одного из внутренних проектов, нам нужно было собрать данные о фильмах, которые идут в прокате и расписании показов, сейчас рассмотрим первую (простейшую) версию парсера, с которой все и началось.
Читать дальше →

Как использовать консоль JavaScript: выход за пределы console.log ()

Reading time3 min
Views13K
Привет, Хабр! Представляю вашему вниманию перевод статьи «How to use the JavaScript console: going beyond console.log()» автора Yash Agrawal.

Один из самых простых способов отладки чего-либо в JavaScript — вывод материала с помощью console.log. Но есть много других методов, предоставляемых консолью, которые могут помочь улучшить отладку.

Давайте начнем.

Самым базовым вариантом использования является вывод строки или группы объектов JavaScript. Довольно просто,

console.log('Is this working?'); 

Теперь представьте сценарий, когда у вас есть куча объектов, которые вам нужно вывести в консоль.

const foo = { id: 1, verified: true, color: 'green};
const bar = { id: 2, verified: false, color: 'red' };

Самый интуитивно понятный способ вывода просто console.log (variable) несколько раз. Проблема становится более очевидной, когда мы видим, как оно отображается в консоли.

image

Как видите, имена переменных не видны, что не очень удобно. Это можно решить объединив все переменные в единый console.log ({foo, bar}). Это также уменьшает количество строк console.log в нашем коде.
Читать дальше →

Почему стоит делать совещания во время прогулок? Доказано наукой, подтверждено мафией

Reading time4 min
Views17K

Когда мы гуляем, с нашим мозгом случается какая-то магия. И ученые из Стэнфорда объяснили, почему.


Дж. К. Роулинг говорила: «Нет ничего лучше, чем ночная прогулка, которая дает вам новые идеи». Чарльз Диккенс напряженно работал 5 часов, а потом совершал свой 10-12 мильный моцион. «Я не мог сохранить свое здоровье иначе», — настаивал он.


Но, возможно, философ Сёрен Кьеркегор лучше всех сформулировал тезис: «Лучшие мысли посещали меня на прогулке, и я не знаю ни одной настолько обременительной мысли, от которой бы не спасала прогулка».



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

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

Буфера на стеке горутины

Reading time7 min
Views4.4K

Задался вопросом размещением массивов и слайсов на стеке, подобно std::array в C++ и массивам в Си. Про стек хорошо написал Vincent Blanchon в статье Go: How Does the Goroutine Stack Size Evolve?. Винсент рассказывает про изменения стека в горутинах. Резюмируя:


  • минимальный размер стека 2 KB;
  • максимальный размер зависит от архитектуры, на 64 битной архитектуре 1 GB;
  • каждый раз размер стека увеличивается вдвое;
  • стек как увеличивается, так и уменьшается.

Выясню сколько можно положить на стек и какой оверхед может с собой принести.

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

Форма обратной связи в React Native при помощи AWS + Telegram

Reading time5 min
Views5.2K
image

Перед тем как я начал интеграцию формы обратной связи в одном из моих последний проектов, я пытался найти нестандартный подход для решения задачи. Электронная почта нуждается в некого рода сервера SMTP, да и это просто скучно, особенно для старт-апа при низком потоке сообщений.

Мессенджеры, это отличная альтернатива, и это путь, который я выбрал. Telegram предоставляет один самых простых способов создания ботов (если не самый простой). На его месте может быть что угодно — другие мессенджеры, телефонные звонки (Amazon Connect) или Яндекс Диалоги.

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

Go: Должен ли я использовать указатель вместо копии моей структуры?

Reading time4 min
Views18K
image
Иллюстрация, созданная для «A Journey With Go», из оригинального гофера, созданного Рене Френч.

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

У отростков нейронов человека обнаружились неожиданные способности к вычислениям

Reading time8 min
Views15K

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



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

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

Самое новое из этих многочисленных свидетельств связано с открытием учёными нового типа электрического сигнала, проходящего по верхним уровням коры мозга человека. В лабораторных исследованиях и на моделях уже было показано, что крохотные отсеки дендритов, отростков нейронов коры мозга, сами по себе способны выполнять сложные операции из области математической логики. Однако теперь, судя по всему, оказывается, что отдельные отсеки дендритов могут также выполнять особую операцию – "исключающее ИЛИ" (XOR) – которая, как считалась ранее, недоступна для отдельных нейронов.
Читать дальше →

Простой, но гибкий калькулятор для расчёта общей стоимости ипотеки

Reading time3 min
Views48K

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


Хотите посчитать, во что на самом деле обойдётся вам квартира именно с вашим сложным графиком оплаты страховки, ремонтом и тем, что вы планируете платить коммуналку лишь несколько месяцев пока не сдадите квартиру жильцу?


Здесь можно скачать файл excel с калькулятором, здесь — посмотреть в Google Sheets (скопируйте себе для модифицирования).


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

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

Сказ о том, как я автоматизировал квартиру с помощью Node-RED. Часть II

Reading time9 min
Views27K
Долгожданное продолжение поста про автоматизацию квартиры. В этой части я расскажу об освещении, мультимедиа-системе и датчиках безопасности.


Делаем клон сервиса по доставке еды, используя Nuxt.js, GraphQL, Strapi и Stripe. Часть 1/7

Reading time5 min
Views18K
image

Приготовьтесь написать клон сервиса по доставке еды deliveroo.co.uk используя современные технологии: Nuxt.js, GraphQL, Strapi и Stripe!

От входа до оформления заказа, мы дадим пользователям возможность открывать для себя новые рестораны, блюда и выбирать свою любимую еду.
Читать дальше →

Математика восхождения по лестнице богатства

Reading time5 min
Views57K

(с)

С точки зрения программиста среднемесячная зарплата в России составляет 44 тыс. руб. — ниже всяческих ожиданий богатства и успеха. Но откуда вообще берутся представления об успехе, финансовом достатке и о методах их достижения?

Как изменится ваша жизнь, если дать вам 10 тыс. руб.? А как насчет 1 млн руб.? Или 100 млн руб.? Ответ на этот вопрос не так прост, как кажется, и зависит от вашего возраста, семейного положения и текущих накоплений. Еще более важно, что изменения, которые произойдут с вашим поведением после того, как у вас появится такая сумма, могут многое рассказать о текущем финансовом положении.

Стюарт Баттерфилд, создатель Flickr и Slack, развил эту мысль до самобытной концепции «пирамиды богатства», которая помогает прийти к парадоксальному выводу: даже большие деньги не обязательно улучшат вашу жизнь каким-либо заметным образом.
Читать дальше →

Go vs Python. Виталий Левченко

Reading time15 min
Views60K

Предлагаю ознакомиться с расшифровкой доклада Виталия Левченко Go vs Python


Go — волшебное слово, решение всех проблем продакшна разом и одновременно негодная технология без эксепшнов. Истина посередине, поэтому поговорим о конкретных примерах:


  • asyncio vs горутины;
  • производительность узких мест;
  • лаконичность vs простота кода;
  • порог входа;
  • тулинг и паттерны поиска проблем и оптимизации производительности;
  • обслуживание в продакшне.

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

Сказ о том, как я автоматизировал квартиру с помощью Node-RED. Часть I

Reading time10 min
Views57K
За прошлый год я собрал и настроил автоматизацию для небольшой квартиры около оживленной дороги. В этой статье я расскажу об использованных решениях в климатической системе, освещении, мультимедиа и в программном обеспечении.


Задержать COVID-19. Все про фильтрацию воздуха на случай пандемии

Reading time44 min
Views373K
По материалам из телеграм-канала LAB66 и присоединенного к нему чата.

Это время для фактов, а не для страха. Это время для науки, а не слухов. Это время солидарности, а не охоты на ведьм…
директор ВОЗ Tedros Adhanom Ghebreyesus про эпидемию COVID-19
Прошло немного времени с момента публикации моей статьи про респираторную защиту во время эпидемии. За это время, отчасти благодаря активному обсуждению в «приканальном» чате выработалась некоторая система, которой бы я хотел поделится и с читателями хабра. Вынудило меня написать эту статью то, что из-за коронавируса поднялся нездоровый хайп, на волне которого на поверхность начала всплывать совсем не та информация, которая всплывать должна была бы (равно как и внезапно подскочили до х40 раз цены на респираторы, притом все без разбора). Так что нужно расставить точки над i. Под катом читаем про подбор правильного респиратора, про сборку кастомных фильтров и стерилизацию зараженных средств защиты. Ответы на вопросы.

Грантовая поддержка исследования
Фактически, в роли «научного грантодателя» для этой статьи выступают мои «меценаты» с Patreon. Благодаря им все и пишется. Поэтому и ответ они могут получить раньше всех других, и черновики увидеть, и даже предложить свою тему статьи. Так что, если интересно то, о чем я пишу и/или есть что сказать — поспешите стать моим «патроном» (картинка кликабельна):



Статью же настоятельно рекомендую «в закладки». Буду рад любому посильному распространению статьи. Краткий итоговый FAQ — в конце статьи.


Собираем полумаску под себя!

8 важных веб-приложений для разработчиков

Reading time3 min
Views21K
Предлагаем вам познакомиться с переводом статьи Jamie Bullock, опубликованной на сайте medium.com. Автор рассказывает, какие веб-приложения он обычно использует в работе.

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

Аналитика для Telegram-ботов, написанных на Python

Reading time4 min
Views35K
На данный момент бум на создание телеграмм-ботов начал сходить, но тема их создания не теряет актуальности. Написано множество библиотек для облегчение взаимодействия с Telegram Bot API, но после создания бота я так и не нашёл скрипта(библиотеки) для получения статистики бота. Поэтому решил написать скрипт для всех ботов на Python. Статистику будем получать, логируя действия пользователей и обрабатывая логи в удобный вид.
Читать дальше →

Про Володю и озонатор

Reading time16 min
Views101K
Писал я недавно в свой канал заметку насчет комнатных растений, по мнению NASA очищающих воздух от формальдегида/аммиака/паров растворителей (бензола, трихлорэтилена, ксилола и толуола). И сразу от подписчиков получил вопрос по поводу озона в воздухе. Набросал черновик ответа, но за пару дней он внезапно «растолстел» и попросился на хабр. Тем более антропогенный озон — это в определенной степени и лазерные принтеры и копиры, коих в офисах и компаниях тысячи…

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

От автора: надеюсь, статью прочитают те, кто среди зимы занимается «кронированием» городских деревьев, срезая две трети ствола и, хоть о чем-то задумается…


Проозонироваться!

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity