Pull to refresh
12
0
Valentin Kononov @pinckrow

Full Stack Software Developer

Send message

Стрекозы Титана или мир-танкер, пришвартованный к Сатурну

Reading time10 min
Views25K

В новеллизации Алана Дина Фостера по сюжету «Чужих» звездолёт «Ностромо», на котором разворачиваются события первой части фильма — это, фактически, нефтеналивной танкер. По словам автора, к моменту описываемых событий все запасы углеводородов на Земле давно исчерпаны, а энергетика на основе сжигаемого топлива морально устарела. Но высокотехнологичная цивилизация абсолютно не в состоянии обойтись без пластика и полимеров, а значит – и без нефтепродуктов. Поэтому сегодня я решил расконсервировать давно занимавшую меня тему о самом богатом резервуаре углеводородов в Солнечной системе. Это Титан, крупнейший спутник Сатурна (диаметр – 5152 км, площадь поверхности – 83 млн кв. км. Для сравнения: диаметр Земли – 12 742 км, площадь Евразии – 54,8 млн кв. км).   

Титан – единственный в нашей системе спутник с плотной атмосферой, в которой наблюдаются погодные явления, а также единственный спутник с «реками» и «озёрами» на поверхности. Атмосфера Титана, более чем на 98% состоящая из азота, содержит разнообразные углеводородные примеси, преимущественно - метан. В состав «гидрокарбоносферы» (выдумал сейчас этот термин – положим, это «углеводородный аналог гидросферы»), раскинувшейся на поверхности спутника, входят самые разные углеводороды и углеродно-азотистые соединения.

Читать далее
Total votes 116: ↑114 and ↓2+112
Comments75

NestJS + GraphQL + Lambda

Reading time8 min
Views7.7K

Цель данной статьи - создать GraphQL приложение, построенное на фреймворке NestJS. А также загрузить его в Лямбда-функцию при помощи Terraform. Надеюсь данный пример поможет многим сэкономить много времени.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments4

Slack Ruby App. Часть 1. Написания приложения локально через Sinatra и ngrok

Reading time12 min
Views2.2K

Slack Ruby App. Часть 1. Написания приложения локально через Sinatra и ngrock

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

Сам я прошёл путь создания приложения по англоязычным бредням, вырваным кускам из Stack Overflow, и очень многих проб, ошибок, и исследований. Не имея понимания о том что можно сделать, как то сложно хотеть что-то делать.

Было бы круто если бы каждый умелый разраб (или не разраб) мог сделать приятно для коллектива или для себя любимого и добавить автоматизацию в свой один или несколько Slack Workspace

Так что я опишу этапы создания своего Slack бота для многих Workspace!

Скорее изучить как это сделать!
Total votes 3: ↑3 and ↓0+3
Comments2

Почему твоя мама всё ещё не прогает?

Reading time11 min
Views122K

Случай с бомжом

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

Обычно вместо денег я даю попрошайкам-мужчинам телефон отдела кадров одной курьерской компании, которая постоянно нуждается в сотрудниках. Но у него не было ног… Тогда я подумал: «Чувак, у тебя полным полно времени. Работа за компом — лучшее, что может случиться в твоей жизни. Купон со скидкой на курс по PHP — вот, что должны были положить тебе на койку туда, где раньше были ноги, когда ты очнулся после ампутации».

Я решил предложить ему изучить программирование. В его положении он должен был быть чертовски мотивирован. Но получится ли у него?

Читать далее
Total votes 304: ↑276 and ↓28+248
Comments468

Программирование — это скучная магия

Reading time4 min
Views42K

Есть один карточный трюк, который запомнился мне навсегда. Вот его краткое описание: доброволец выбирает карту и запечатывает её в конверт. Затем фокусник предлагает добровольцу выбрать чай. У него есть десятки коробок чая, и все они упакованы в пластик. Доброволец выбирает одну из коробок, срывает обёртку и выбирает один из упакованных пакетиков с чаем. Потом он вскрывает упаковку, и… внутри оказывается его карта.

Если вы не хотите знать, в чём хитрость этого трюка, то дальше не читайте.

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

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

«Фокусом» это является именно потому, что такая подготовка выглядит настолько скучной, настолько невозможно монотонной, что когда мы видим трюк, то не можем представить, что кто-то проделал бы столь скучную работу, чтобы добиться такого простого эффекта.
Читать дальше →
Total votes 153: ↑149 and ↓4+145
Comments119

Как проходит собеседование начинающего разработчика на С++: что нужно знать и как подготовиться

Reading time6 min
Views33K

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

В этом посте я собрал подборку понятий, которые у вас могут спросить на собеседовании на вакансию Junior С++ разработчика, и описал, к чему в принципе вам стоит готовиться. Предупрежден — значит вооружен. Вкратце о себе: меня зовут Турмец, я работаю в Яндексе, параллельно учусь в Школе Анализа Данных и занимаюсь ревью кода на курсе «Разработчик С++» в Практикуме. 

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

Поехали.

Читать далее
Total votes 46: ↑38 and ↓8+30
Comments39

Фантастика 2020 года, которую стоит почитать

Reading time6 min
Views109K


Под конец года принято подводить итоги и кажется стоит вспомнить, что же было в этом непростом году хорошего. Например, я читал много отличных книг (что еще делать дома?). Вот немного про самые примечательные из них или, по крайней мере, те, которые сильнее всего запомнились мне.
Читать дальше →
Total votes 57: ↑55 and ↓2+53
Comments112

В TypeScript 4.0 наконец появилось то, чего я очень ждал

Reading time3 min
Views22K
6 августа сего года Microsoft объявила о выходе релиз-кандидата TypeScript 4.0. Там появилась поддержка кортежей с маркированными элементами (Labeled Tuple Elements). А это — именно то, появления чего я ждал в TypeScript.


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

Почему я этого ждал? Объясню это на примере разработки функции.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments41

Докеризация приложения, построенного на базе React, Express и MongoDB

Reading time6 min
Views54K
Автор статьи, перевод которой мы публикуем сегодня, хочет рассказать о том, как упаковывать в контейнеры Docker веб-приложения, основанные на React, Express и MongoDB. Здесь будут рассмотрены особенности формирования структуры файлов и папок таких проектов, создание файлов Dockerfile и использование технологии Docker Compose.


Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments17

Эмиграция в Польшу как студент либо как фрилансер

Reading time11 min
Views195K
Прокомментировав хорошую статью IT-эмиграция в самое сердце Европы, в Словакию я получил сразу же много писем по внутренней почте хабра с вопросами по этому поводу, и с просьбами рассказать подробнее. Увидев такой ажиотаж, решил что не будет лишним попробовать расписать подробно для широкой аудитории.
Так как я переезжал вместе с девушкой, которая ехала сюда учиться на магистратуру, то у меня есть возможность описать оба способа переезда, вместе с подводными камнями с которыми мы сталкивались. Таким образом статья разделена на 2 части — переезд фрилансера, и переезд на учебу.
Читать их полностью
Total votes 100: ↑82 and ↓18+64
Comments150

Почему Flutter побеждает?

Reading time14 min
Views46K
Последний год я так или иначе пишу приложения на Flutter для iOS и Android. До этого у меня был и есть 5 летний опыт работы с Xamarin. Это были замечательные 5 лет. Благодаря Xamarin и моей любви к этому фреймворку я, в принципе, перешел в стан разработчиков, этот инструмент помог заработать мне немалых денег, знаний и найти замечательных коллег. Так почему же сейчас я пишу на Flutter? Короткий ответ, потому что Flutter покрывает все потребности кросс-платформенной разработки.


Немного истории


Поправьте меня если я не прав, но 2009 год был во многом ключевым для мобильной разработки в целом и кроссплатформенной разработки в частности. В 2009 вышел iPhone 3gs, который позволял запускать сторонние приложения из AppStore. Впервые эта возможность появилась в годом ранее в iPhone 3g, но по настоящему массовым, «народным» айфоном стал 3gs. Опять же, годом ранее, в сентябре 2008 Android был представлен публике и в 2009 многие производители телефонов стали пробовать Android для своих новый моделей телефонов. Весной 2009 компания Nitobi представила PhoneGap — новый фреймворк для создания кроссплатформенных приложений на основе HTML5, CSS и JS. В том же году, в сентябре компания Ximian выпустила MonoTouch, который позволял писать iOS приложения с использованием Mono и C#. В том же 2009, в декабре, компания Rovio Entertainment выпустила игру для iOS и, на минуточку, Maemo, которая во многом положила начало индустрии мобильных игр — Angry Birds. Последний пример здесь не случайно.
Читать дальше →
Total votes 67: ↑61 and ↓6+55
Comments141

Тридцать лет С++. Интервью с Бьерном Страуструпом

Reading time10 min
Views17K

Ранее мы делали материал про использование C и C++ в Data Science. А сегодня мы хотим поделиться с вами интервью с автором C++ Бьерном Страуструпом. Далее в посте вас ждет рассказ о профессиональном пути Бьерна, деталях создания собственного языка программирования и извлеченные им из этого уроки.
Приятного чтения!
Total votes 33: ↑33 and ↓0+33
Comments6

Выгорание может настигнуть на работе, вне работы, без работы

Reading time7 min
Views15K

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


Как это происходит и что с этим делать?


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

Читать дальше →
Total votes 43: ↑34 and ↓9+25
Comments55

Почему мы выбрали MobX, а не Redux, и как его использовать эффективнее

Reading time8 min
Views44K

Меня зовут Назим Гафаров, я разработчик интерфейсов в Mail.ru Cloud Solutions. На дворе 2020 год, а мы продолжаем обсуждать «нововведения» ES6-синтаксиса и преимущества MobX над Redux. Существует много причин использовать Redux в своем проекте, но так как я не знаю ни одной, расскажу о том, почему мы выбрали MobX.

Почему?
Total votes 79: ↑75 and ↓4+71
Comments242

Prettier, ESLint, Husky, Lint-Staged и EditorConfig: инструменты для написания аккуратного кода

Reading time16 min
Views123K
Вы стремитесь к тому, чтобы писать аккуратный код, но не знаете с чего начать… Вы вчитываетесь в руководства по стилю, вроде этого от Airbnb, стараетесь следовать практическим рекомендациям ведущих специалистов… Вам приходится удалять неиспользуемый код? Приходится искать ненужные переменные? Вы пытаетесь выявлять неудачные паттерны, применённые в ваших программах? Например — хотите понять, читая хитросплетения кода некоей функции, возвратит ли она что-нибудь или нет. Звучит знакомо? Проблема заключается в том, что программисту очень тяжело и многое успевать, и многому учиться.

Может быть вы — тимлид, под началом которого трудится команда разработчиков разного уровня? В вашей команде есть новые люди? Беспокоит ли вас то, что код, который они напишут, не будет соответствовать вашим стандартам? Проходят ли ваши дни в проверках чужого кода, когда эти проверки, в основном, касаются соблюдения стандартов, а не программной логики?



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

А именно, здесь пойдёт речь о таких средствах как Prettier, ESLint, Husky, Lint-Staged, EditorConfig, об автоматизации форматирования и линтинга кода. Этот материал ориентирован, в основном, на React-разработку, но рассмотренные здесь принципы можно применить в любом веб-проекте. Вот репозиторий, где, кроме прочего, собрано то, о чём тут пойдёт речь.
Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments15

Переезд в Иннополис

Reading time18 min
Views194K


В 2017 году мы с семьёй переехали в Иннополис.

За 3 года жизни эйфория прошла и сформировалось какое-то устойчивое мнение об этом городе.

Я уверен, что статью будут читать в том числе и жители этого города, поэтому давайте сразу договоримся, что это мой личный взгляд и опыт — он может отличаться от вашего в любую сторону.

Меня никто не просил писать эту статью и тем более не платил за неё. В общем, это не заказная «приезжайте к нам, у нас тут классно». Пишу всё так, как вижу своими глазами.
Читать дальше →
Total votes 212: ↑206 and ↓6+200
Comments480

Теория игр и её применение в жизни

Reading time18 min
Views114K
Привет, читатель!

Некоторые из вас видели набор букв“qwerty”. Qwerty — это раскладка клавиатуры. Посмотрите на вашу клавиатуру. Вы увидите в верхнем ряду буквы «q»«w»«e»«r»«t»«y». А по какой причине нам интересна раскладка клавиатуры?

Ещё давно, когда люди пользовались печатными машинками, печатали они довольно быстро. Это создавало проблемы: головки печатной машинки, бьющие по бумаге и печатающие на ней буквы, цеплялись друг за друга, что приводило к поломке. Была создана раскладка qwerty, в которой рядом стоящие в словах буквы были размещены на максимально большом расстоянии друг от друга. Таким образом была решена проблема.

Печатными машинками давно никто не пользуется, и проблема соприкосновения печатающих головок исчезла. Факт того, что мы перестали пользоваться неудобной раскладкой клавиатуры логичен. Но, есть загвоздка – такого факта не существует, люди привыкли печатать на раскладке «qwerty» и не хотят переучиваться.

Сейчас, зайдя в настройки, вы можете переключить раскладку клавиатуры на «dvorak». Печать ускорится в разы, в то время как обучение займёт лишь неделю. К сожалению, никому не выгодно быть единственным переучившимся, потому что за любым компьютером, кроме личного, работать будет неудобно. А также, к сожалению или к счастью, людям лень переучиваться. Хотя вместе, приложив усилия и переучившись, мы могли бы увеличить пропускную способность набора текста в разы.

Подводя итоги: при массовом использовании «qwerty», переход отдельного игрока на «dvorak» не эффективен, хотя переход общества на «dvorak» эффективен.
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments40

Основные linux-команды для новичка

Reading time14 min
Views779K
Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!

Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.

Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
Читать дальше →
Total votes 80: ↑65 and ↓15+50
Comments170

«Чтобы лучше тебя слышать, спикер мой»: как качественнее вещать из дома

Reading time9 min
Views15K


Мы тестируем оборудование


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


Мы видим всё это со своего ракурса, поскольку переводим наши конференции в онлайн. На них суммарно будет около 200 спикеров: часть выступит из наших студий, а часть из дома. И нам понадобилось удостовериться, что всех «удалёнщиков» будет хорошо видно и слышно.


Здесь есть много интересных нюансов. Например, при словах «улучшить качество» в голову может приходить дорогая камера, но вообще-то она тут дело не первое и даже не третье. Почему так? И что важнее неё? Мы расписали вопросы, которые прорабатываем сейчас сами и которые могут помочь другим.

Читать дальше →
Total votes 58: ↑57 and ↓1+56
Comments76

Фреймворк Silicon — WebAPI на C++

Reading time3 min
Views13K
Прим. переводчика: в синтаксисе C++ напрочь отсутствуют несколько ограниченны средства построения предметно-ориентированных языков. В итоге их мало кто на С++ пытается использовать, а попытки всё же это сделать вызывают интерес, тем более, когда в итоге получается нечто стройно выглядящее и практически полезное. Одним из таких открытий для меня стал фреймворк Silicon, пытающаяся средствами современного С++ дать возможность быстро и гибко реализовать WebAPI в своём проекте. Давайте посмотрим, насколько просто это выглядит.

Hello World на Silicon — программа, которая на HTTP-запрос к
http://host/hello/world
ответит кодом 200 с текстом «hello world»:
auto my_api = http_api(GET / _hello / _world  = [] () { return "hello world";});
mhd_json_serve(my_api, 80);


Неплохо, правда? my_api здесь это описание нашего API, а mhd_json_serve — это бекэнд фреймворка Silicon, реализующий данный API с использованием встроенного вебсервера (на выбор microhttpd или LWAN).

Давайте посмотрим, что ещё умеет Silicon.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments35
1

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity