Как стать автором
Обновить
105
0.3
Александр Борисович @Alexufo

IT анахорет

Развертывание Spring Boot приложения с помощью Nginx, Let's Encrypt и Docker Compose

Время на прочтение 7 мин
Количество просмотров 12K
Разработка веб-сайтов *Java *Nginx *Серверное администрирование *DevOps *
Из песочницы

Привет, Хабр! В своей первой статье я бы хотел поделиться опытом в развертывании Spring Boot приложения. Но для начала небольшое отступление, которое должно ответить на вопросы зачем и почему.

Недавно я столкнулся с задачей разработать Telegram бота. Казалось бы, что тут сложного? Ну раз надо, то разрабатывай, где тут могут быть сложности? Но вот беда, ранее я не сталкивался с задачей развертывания проекта, тем более было много вопросов касаемо получения SSL сертификата так как Telegram API работает только с HTTPS протоколом. Увы после долгих поисков я так и не нашел статьи, которая ответила бы на все вопросы, поэтому процесс деплоя затянулся из-за того, что пришлось собирать весь материал по кусочкам. Теперь, когда у меня получилось разобраться с этой проблемой, я бы хотел вам рассказать как это сделать, чтобы сэкономить вам время и бонусом 2000 рублей за SSL сертификат.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 10

Python для детей

Время на прочтение 4 мин
Количество просмотров 7.4K
Python *Программирование *Учебный процесс в IT

До того, как стать преподавателем в университете, я вёл программирование в детском технопарке Кванториум. Это такой центр дополнительного школьного образования куда дети приходили после уроков и изучали программирование, робототехнику, биологию и т.д. Конкретно я вёл занятия по Python, C++ и Arduino.

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

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

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

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 15

«Почему я не могу нормально зарабатывать?» 5 особенностей мышления, которые мешают это делать

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 69K
Карьера в IT-индустрии Финансы в IT Лайфхаки для гиков

Думаю, как и я, очень многие задавались вопросом: «Почему несмотря на хорошее образование, любознательность, способности и трудолюбие, они зарабатывают меньше, чем им хочется. Где баг, который мешает зарабатывать больше?»

Читать далее
Всего голосов 133: ↑113 и ↓20 +93
Комментарии 145

Как победить настрой удаленщика — вредные советы по организации рабочего места

Время на прочтение 6 мин
Количество просмотров 8.3K
Блог компании Maxilect Фриланс Лайфхаки для гиков Здоровье Удалённая работа
Туториал

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

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

Читать далее
Всего голосов 21: ↑16 и ↓5 +11
Комментарии 6

Алгоритмы сортировки и их производительность

Время на прочтение 17 мин
Количество просмотров 35K
Алгоритмы *C# *
Из песочницы

Здравствуйте, давно читаю Хабр и все хотел написать кому-нибудь статью, но не знал с чего начать и о чем писать. Но решил что тянуть кота за причинное место. Надо просто взять и написать обзор о чем то что я знаю и что будет просто для начало. Поэтому решил описать алгоритмы сортировки в размере 37 штук. Я понимаю, что на Хабре есть подобные статьи, одна постараюсь их добавить количеством алгоритмов и приведением небольшого числа графиков.

Читать далее
Всего голосов 79: ↑77 и ↓2 +75
Комментарии 29

10 задач с JavaScript Promise для подготовки к собеседованиям

Время на прочтение 7 мин
Количество просмотров 47K
Блог компании OTUS JavaScript *Программирование *
Перевод

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

Читать далее
Всего голосов 53: ↑53 и ↓0 +53
Комментарии 25

Изучение TypeScript — Полное руководство для начинающих. Часть 1 — Введение и примитивные типы данных

Время на прочтение 5 мин
Количество просмотров 45K
JavaScript *TypeScript *
Туториал
Из песочницы
Перевод

Всем привет. Меня зовут Лихопой Кирилл и я - Fullstack-разработчик.

Представляю вашему вниманию cвою первую статью на Хабре, a точне перевод англоязычной статьи, на тему изучения TypeScript (TS, Тайпскрипт).

Другие части:
Часть 2 - Ссылочные типы данных
Часть 3 - Классы и интерфейсы
Часть 4 - Литералы и дженерики
Часть 5 - Строгий режим и сужение типов

Читать далее
Всего голосов 15: ↑11 и ↓4 +7
Комментарии 8

Пишем чистый код при помощи деструктуризации объектов в JavaScript

Время на прочтение 4 мин
Количество просмотров 13K
Блог компании Skillbox JavaScript *Программирование *Лайфхаки для гиков
Перевод

Сравниваем традиционный способ извлечения значений и деструктуризацию (ES6) в JavaScript

В этой статье мы рассмотрим традиционное присваивание значений из объектов в переменные и новый синтаксис деструктуризации в ES6. Материал адаптирован на русский язык совместно с тимлидом группы frontend-разработки в Skillbox Иваном Казанцевым.

Читать далее
Всего голосов 26: ↑21 и ↓5 +16
Комментарии 20

Objective-C с нуля

Время на прочтение 23 мин
Количество просмотров 426K
Разработка под iOS *
У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Читать дальше →
Всего голосов 163: ↑155 и ↓8 +147
Комментарии 61

Работа не волк, часть 1. Поиск работы: 9 кругов HR-a

Время на прочтение 16 мин
Количество просмотров 57K
Блог компании RUVDS.com Управление персоналом *Карьера в IT-индустрии
Поиск работы вызывает неприятные тревожно-азартные ощущения и у вчерашнего студента, и у профессионала с годами опыта за плечами. Это не признак неуверенности в себе, это проблема всей отрасли поиска персонала: мы идём на собеседование и понимаем, что не всё может зависеть от профессионализма, что кому-то не понравятся наши софт-скиллы или внешний вид, кто-то упрется в вопрос о причинах ухода с предыдущего места. На Хабре может выйти 200 статей-обращений к HR-службами IT-компаний, где сами соискатели будут с пеной у рта рассказывать, как с ними (нами!) нужно разговаривать, как оценивать, но на первой встрече с будущим работодателем вам всё равно подсунут психологический тест, зададут странные вопросы и посмотрят на вас, как будто вы уже что-то нарушили и идёте в компанию, чтобы порушить устои и корпоративную культуру. Поэтому мы не будем рассказывать компаниям, в чём они не правы — мы расскажем вам, как с этим жить. 


Это первая часть нашего нового цикла «Работа не волк», который будет состоять из пяти частей, каждая из которых раскрывает важнейшие аспекты, связанные с трудоустройством. Как и в случае с циклом про образование, статьи будут субъективными, честными и основанными на обширной экспертизе. Вот что вас ждёт:

Часть 1. Поиск работы: источники, резюме, собеседование с HR
Часть 2. Устройство и адаптация: собеседуем с боссом, проходим испытательный срок с ветерком
Часть 3. Работа в роли новичка: рост в компании
Часть 4. Работа в роли опытного сотрудника: как не перегореть
Часть 5. Увольнение: я ухожу красиво
Читать дальше →
Всего голосов 52: ↑45 и ↓7 +38
Комментарии 39

Профсоюзный дайджест. Цифровое подавление, бригады “удоленщиков”, 10 суток ареста, зарплатный железный занавес, IT 90-е

Время на прочтение 8 мин
Количество просмотров 18K
Законодательство в IT Социальные сети и сообщества IT-компании

Syn ack, Хабр!

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

Пожалуй, лучше агитации за объединение сотрудников в профсоюзы и не придумаешь (позицию команды Навального не поддерживаю)

Читать далее
Всего голосов 39: ↑32 и ↓7 +25
Комментарии 21

Продукт VS проект: отличия подходов

Время на прочтение 6 мин
Количество просмотров 26K
Блог компании Factory5 Управление проектами *Управление продуктом *

На связи Factory5 (входит в группу Ctrl2GO) — российский разработчик аналитических решений для бизнеса на базе умных алгоритмов обработки данных. У нас есть опыт объединения двух разных команд и мы хотели бы им поделиться. С одной стороны, мы развиваем свой продукт, который активно распространяется через партнерскую сеть. И есть команда, которая этим занимается — продуктовая. С другой стороны, мы занимаемся коммерческой разработкой. И для этого тоже есть команда — проектная.

И там и там разработчики, тестировщики, devops-ы, аналитики, менеджеры. Они обмениваются знаниями, напитывают друг друга идеями. Продуктовая команда может передать проект для проверки технологических и продуктовых гипотез в проектную команду, а проектная может сложить результат проекта как технологию в продукт. И то и другое вполне легально происходит, но вот люди из одной команды в другую не переходят никогда. Так как между ними есть большая разница. Она заключается и в процессах работы, и структуре, и целеполагании и даже профиле новых кандидатов. Это бывает сложно объяснить тем, кто не погружен, но Резеда Несынова, исполнительный директор Factory5, разложила всё по полочкам.

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 5

Все, что вам нужно знать о маршрутизации между страницами Flutter

Время на прочтение 5 мин
Количество просмотров 6.1K
Блог компании OTUS Разработка мобильных приложений *Разработка под Android *Flutter *
Перевод

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

Но для пользовательского перехода Flutter предоставляет различные виджеты перехода. Давайте посмотрим, как мы можем их использовать.

Читать далее
Всего голосов 14: ↑11 и ↓3 +8
Комментарии 5

WSN-LTE шлюз на CC1310 и WP8548. Часть 1

Время на прочтение 4 мин
Количество просмотров 3.6K
Разработка под Linux *Программирование микроконтроллеров *Схемотехника *Производство и разработка электроники *
Из песочницы

Приветствую, Habr! В данной статье рассмотрен процесс разработки Wireless Sensor Network (WSN) шлюза для передачи данных от беспроводных датчиков на сервер через мобильную связь. В качестве начинки будем использовать Sub-1GHz SoC CC1310 и программируемый модуль WP8548 от Sierra Wireless. AirPrime WP8548 - это промышленный модуль LGA-239. Его беспроводной модем обеспечивает передачу данных в сетях HSPA, WCDMA, EDGE и GPRS, а также прием GPS сигнала.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 5

Эксперимент в распознавании рукописных текстов на кириллице. Часть 2

Время на прочтение 4 мин
Количество просмотров 4.2K
Алгоритмы *Обработка изображений *Машинное обучение *Natural Language Processing *

Всем привет! В этой части хочу рассказать как мы использовали модель NomeroffNet предназначенного для распознавания автомобильных номеров, распознать рукописные записи. В предедущей статье я поделился опытом в использовании моделей SimpleHTR и LineHTR для распознавания рукописных текстов.

Распознавание рукописного текста (англ. Handwritten Text Recognition, HTR) - это автоматический способ расшифровки записей с помощью компьютера. Оцифрованный текст рукописных записей позволило бы автоматизировать бизнес процессы множества компаний, упростив работу человека. В данной статье рассматривается модель распознавания рукописного текста на кириллице на основе искусственной нейронной сети. Архитектура данной нейронной сети состоит из слоев сверточной нейронной сети (англ. Convolutional neural network, CNN) и рекуррентной нейронной сети (англ. Recurrent neural network, RNN), а также имеет алгоритм декодирования на основе коннекционной временной классификации (англ. Connectionist Temporal Classification, CTC), который приводит текст к окончательному варианту.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 5

YC Startup Library на русском: Как создавать и тестировать идеи для стартапов (Майкл Сайбл)

Время на прочтение 4 мин
Количество просмотров 3.8K
Учебный процесс в IT Развитие стартапа Управление продуктом *Карьера в IT-индустрии
Перевод
9 ноября 2020 стартовала Школа стартапов для будущих основателей (Startup School for Future Founders от Y Combinator) и мы будем публиковать полезные переводы для тех, кто планирует стать основателем стартапа международного уровня. Следите за новостями в телеграм-канале YC library на русском.

image

Майкл Сайбл — сооснователь (в 25 лет) стартапов Justin.tv/Twitch (капитализация $15 млрд) и Socialcam, член правления Reddit. На данный момент исполнительный директор (CEO) Y Combinator.

Многие заблуждаются, считая, что для создания компании их идея обязательно должна быть «великой». И для начала я хочу разбить это заблуждение. Я был одним из основателей компании Justin.tv, которая позднее была переименована в Twitch и продана Amazon почти за миллиард долларов. Наша изначальная идея заключалась в создании онлайн реалити-шоу. Трудно найти связь между этой идеей и созданием сайта для стриминга видео, где люди наблюдают за геймерами и общаются в чате со своими друзьями, а ведь именно таким и стал сервис. Итак, не попадайтесь в эту ловушку – не думайте, что ваша идея обязана быть «великой» (что бы это ни значило).

Отталкивайтесь от проблемы


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

  • Есть ли у меня личная связь с этой проблемой?
  • Сталкиваюсь ли я сам с этой проблемой?
  • Сталкиваются ли с ней мои друзья?
  • Сталкиваются ли с ней члены моей семьи?
  • Существует ли эта проблема в контексте работы?
  • Существует ли эта проблема в моем окружении и обществе?

Формулирование личных связей с проблемой может помочь по двум причинам:
Всего голосов 15: ↑11 и ↓4 +7
Комментарии 6

От желания до оффера: как программисту организовать подготовку к интервью

Время на прочтение 3 мин
Количество просмотров 8.5K
Программирование *Карьера в IT-индустрии
Из песочницы
Пару месяцев назад из-за пандемии мне пришлось искать работу и подойти к этому я решила системно. Со всей своей любовью к планированию, записям и визуальным отражением прогресса. Пройдя путь от белого листа до офферов, представляю свой план, по которому выбирала компании и готовилась к собеседованиям.

Выбор компании


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

Формируем портрет желаемой компании, я сделала 3 колонки:

  • Цели в работе
  • Желания на ближайшие годы
  • Рекомендации (советы друзей о выборе компании)


Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Комментарии 8

Сервис на языке Dart: доменное имя, SSL

Время на прочтение 6 мин
Количество просмотров 3.9K
Блог компании Surf Разработка мобильных приложений *Dart *Flutter *
Оглавление
  1. 1. Введение
  2. 2. Backend
  3. 2.1. Инфраструктура.
  4. 2.2. Доменное имя. SSL (мы находимся здесь)
  5. 2.3. Серверное приложение на Дарт.
  6. ...
  7. 3. Web
  8. 3.1. Заглушка “Under construction”
  9. ...
  10. 4. Mobile
  11. ...


disclaimer (по комментариям к предыдущей статье)
  • Эта статья не является в полной мере самостоятельной и является продолжением серии Сервис на языке Дарт. Начало здесь.
  • Предмет данной статьи только то, что вынесено в заголовок: доменное имя и шифрование соединения.
  • Облаков, оркестрации, масштабирования, K8s, AWS, GKE здесь нет. Автору известно, что данный подход не является современным и модным. Более того, автор признаёт, что общается в окружении «ретроградов», многие из которых вообще считают неприемлемым передачу критических данных и сервисов за пределы контролируемого периметра.
  • Автор не может отказаться от использования Дарт на сервере в пользу других языков и технологий, поскольку сама концепция данной серии статей заключается в реализации работоспособного сервиса на языке Дарт для всех уровней приложения: сервера, веб и мобильных клиентов.
  • Список подлежащих рассмотрению в ходе реализации приложений вопросов выбран автором по собственному усмотрению. Список может быть расширен читателем соответствующим комментарием к этой или последующим статьям. Предлагайте, попробуем сделать.
  • Список вопросов
    • Декомпозиция приложения на компоненты и слои
    • Dependency injection (кодогенерация boilerplate)
    • Генерация нативного серверного приложения
    • ORM. Генерация схемы и миграций для БД.
    • oAuth2 + JWT авторизация. Изолированный сервер авторизации.
    • Deeplinks (Universal links/ App links). Бесшовная интеграция web/app
    • Маршрутизация в приложениях
    • Взаимодействие реального времени (websockets)
    • Адаптивная верстка flutter



Доменное имя


В прошлый раз мы закончили на том, что в докер контейнере запустили веб-сервер NGINX, раздающий статический файл index.html. В этот раз мы расширим функциональность веб-сервера, добавив шифрование данных и принудительную переадресацию с http на https.


Читать дальше →
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 11

Правила компоновки во Flutter, которые должен знать каждый

Время на прочтение 14 мин
Количество просмотров 58K
Программирование *Dart *Flutter *
Перевод


Когда новичок во Flutter спрашивает, почему какой-то виджет с width: 100 не ширины 100 пикселей, обычно ему отвечают, что надо обернуть этот виджет в Center, верно?


Не надо так делать


Если так отвечать, то к вам будут возвращаться снова и снова, спрашивая, почему какой-то FittedBox не работает, почему этот Column переполнен или как работает IntrinsicWidth.


Сначала объясните, что Flutter компоновка очень отличается от HTML компоновки (особенно, если говорите с веб-разработчиком), а затем скажите, что необходимо запомнить следующее правило:


Ограничения для виджетов объявляются в родителях. Размеры (желаемые) задаются в самом виджете. Позиция виджета на экране устанавливается родителем

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

Всего голосов 25: ↑25 и ↓0 +25
Комментарии 6

Хабр в студию! Кровь, слезы и победы на этой чертовой удаленке. Выпуск 1: Фриланс vs корпорация

Время на прочтение 3 мин
Количество просмотров 12K
Блог компании Хабр Контент и копирайтинг *Конференции
Привет, Хабр! Пока за окном на солнце греются котики, проносится лето, сходит на нет (или нет?) коронавирус, мы всей контент-студией четвертый месяц работаем удаленно. Все шутки отшучены, все стадии стресса пройдены, а работа со слезами и кровью адаптирована под распределенный режим. 

Мы понимаем, что такая ситуация у всех, поэтому решили взглянуть на проблемы удаленки с разных сторон и показать, что с трудностями сталкиваются и фрилансеры, и большие компании — и все более-менее успешно их преодолевают. Для этого мы решили выслушать участников хабрасообщества и вместе с нашим партнером по интернет-трансляции SBTG.RU организовали серию видеокастов, которая стартует завтра. 

Итак, все подробности под катом.
Всего голосов 48: ↑37 и ↓11 +26
Комментарии 14

Информация

В рейтинге
1 623-й
Откуда
Тула, Тульская обл., Россия
Зарегистрирован
Активность