Рубрика «Программирование» - 437

Как-то я сказал своему коллеге, что в Rust имеются макросы, ему показалось, что это плохо. Раньше у меня была такая же реакция, но Rust показал мне, что макросы не обязательно плохи.

Где и как их уместно применять? Смотрите под катом.

Читать полностью »

От переводчика

Всем привет! Я продолжаю серию переводов, в которой мы по косточкам разбираем, что такое Dependency Injection.

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

В сегодняшнем переводе речь пойдет о том, что собой представляет DI-контейнер, его функциях, преимуществах использования и отличии от фабрик.

Контейнеры внедрения зависимостей и выгоды от их использования - 1
Читать полностью »

Всем привет! Мы не успели оглянуться, как закончились все оффлайн-места на Moscow JS 40, который прошёл в нашем офисе 1 марта. Записаться успели не все желающие. Хорошие новости: уже появились видео и презентации от докладчиков. Под катом — видеозаписи, презентации, ссылки на фотоотчёт и отзывы слушателей.

Участники встречи говорили про мотивацию и трудности создания сервиса скриншотов веб-страниц, обсуждали developer experience и flow, разбирались с AST-парсерами и проводили экскурс в компьютерную лингвистику.

Moscow JS 40 — отчёт, отзывы гостей и видеозаписи - 1

Читать полностью »

С 8 марта, хабрадевчонки! Выдающиеся женщины в мире компьютерных технологий - 1

Мир информационных технологий очень часто называют миром мужчин. Но это далеко не так. Женщины привнесли в его становление и развитие немало усилий. К сожалению, заслуги многих из них не получали должного общественного внимания и признания в виду социальных «норм» тех времен, когда они творили поистине чудеса. Сейчас же общество изменилось. Конечно, предвзятое отношение к человеку с оглядкой на его национальность, религиозные убеждения, ориентацию и пол все еще встречается. Возможно даже чаще, чем хотелось бы. Однако каких-то 50 лет назад все обстояло еще сложнее. «Не женское это дело — компьютеры собирать» — такую фразу можно было услышать сплошь и рядом. Сегодня я хотел бы познакомить вас с женщинами, для которых не было трудно создавать что-то в мире ИТ, а трудно было об этом рассказывать, ибо мало кто готов был слушать. Поехали.Читать полностью »

Картинка для привлечения внимания: > Replay bug-10492; going back in time

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

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

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

Хотите узнать как это сделать? Прошу под кат.

Читать полностью »

Привет, читатели! Какой бы заезженной не была тема создания телеграм бота на python3, я не нашёл инструкций, где показан путь от первой строчки кода до деплоинга бота (по крайней мере все методы, что я видел, немного устарели). В этой статье я хочу показать процесс создания бота от написания BotFather-у до деплоинга бота на Heroku.

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

P.S. Пишите если нужна статья по созданию более сложного бота, т.е. с вебхуками, БД с настройками юзеров и т.д.

Содержание

  1. BotFather.
  2. Установка и настройка pipenv. Первый запуск.
  3. Хэндлеры. Отвечаем на команды и сообщения.
    • Основы взаимодействия. Ответ на команды.
    • Основы взаимодействия. Ответ на текстовые сообщения.
    • Основы взаимодействия. Ответ на картинки, документы, аудио и прочие.
    • Строим цепочку ответов.
    • Добавляем парсер в цепочку.
    • Теория. Методы взаимодействия с ботом.
  4. Маркапы. Добавляем клавиатуры для быстрого ответа.
  5. Деплоим бота на Heroku.
  6. Ссылки.
  7. Дополнительная информация.

 

Для начала стоит определиться, что же будет делать наш бот. Я решил написать банального простого бота, кторый будет парсить и выдавать нам заголовки с Хабра.
И так, начнём же.
Читать полностью »

Привет!

13 апреля в Екатеринбурге в восьмой раз пройдёт конференция DUMP. Доклады будут идти в 8 секциях: FrontTalks, Serverside, Mobile, DevOps, Science, Тестирование, Менеджмент, Дизайн.

Программа получается отличной: Григорий Бакунов (Яндекс), Алексей Акулович (ВКонтакте), Сергей Абдульманов (Мосигра), Алексей Савватеев (ЦЭМИ РАН), Александр Бурт, Зарема Халилова (Uploadcare), Алексей Мигутский (Microsoft), Серёжа Попов (HTML Academy), Олег Анастасьев (Одноклассники), Арсений Батыров (Badoo) — и это не всё. Под катом — подробности программы.

Предварительная программа DUMP-2018 готова. Выступят докладчики из Microsoft, ВКонтакте, Rambler, Tinkoff, HTML Academy - 1
Если вы не знаете, что такое DUMP, вот маленький ролик о том, как прошла прошлогодняя конференция

Читать полностью »

Мы писали код вместе за одним компьютером пять месяцев. Вот что я узнал - 1

Тот, кто придумал термин mob programming, явно не спец в маркетинге. Кто захочет вступить в банду? Слово mob вызывает образы разбитого стекла и разграбленных магазинов — население Спрингфилда выстроилось в ряд с вилами и факелами.

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

Lightning network это децентрализованная оф-чейн технология, позволяющая проводить десятки тысяч транзакий в секунду, как это позволяет делать, к примеру, Visa. На данный момент Биткоин — самая популярная в мире криптовалюта, не приспособлена для отправки более чем ~7 транзакций в секунду, а высокие комисси и долгое время подтверждения сводят на нет возможность отправки микротранзакций. Lightning network решает обе эти проблемы.

Lightning network in depth, part 1: payment channels - 1

Читать полностью »

Трансляция один-ко-многим: нужен ли медиасервер? - 1

TL;DR – ДА.

Очередная статья нашего израильского коллеги по WebRTC и звонкам между браузерами переведена для Хабра. Мы в Voximplant разрабатываем собственное решение для организации видеоконференций через сервер и можем сказать что да, все именно так. Peer-to-Peer штука хорошая, но работает не во всех случаях. А сделать хорошую видеоконференцию через сервер не так просто, когда к серверу подключается множество разных веб-браузеров и мобильных устройств, каждый со своим подключением к интернет и своей реализацией видеостека. Через некоторое время мы расскажем о внутренностях нашего решения, а сейчас слово передается Цахи Левент-Леви, создателю широко популярного в узких кругах bloggeek.me
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js