Pull to refresh
34
0
Send message

Кто реально угрожает C++ (нет, Rust, не ты)

Reading time14 min
Views69K

Привет! Меня зовут Александр Каленюк, и я крепко подсел на C++. Пишу на C++ 18 лет кряду, и все эти годы отчаянно пытаюсь избавиться от этой разрушительной зависимости.

Всё началось в конце 2005 года, когда мне довелось писать движок для симуляции 3D-пространства. В этом движке было буквально всё, чем язык C++ мог похвастаться в 2005 году. Трёхзвёздочные указатели, восьмиуровневые зависимости, C-подобные макросы повсюду. Кое-где – вкрапления ассемблера. Итераторы в стиле Степанова и мета-код в стиле Александреску. В общем, всё. Кроме ответа на самый важный вопрос: зачем?

Читать далее
Total votes 210: ↑221.5 and ↓-11.5+233
Comments361

Как мы интегрировались в казахстанский маркетплейс или история о нюансах

Reading time11 min
Views1.8K

Привет! Меня зовут Ваня Крючков, я бэкенд-разработчик в Далее. Сегодня поделюсь опытом интеграции интернет-магазина Haier с маркетплейсом Kaspi. Это история о том, как, несмотря на ограничения и не самое удобное API, нам удалось интегрироваться с самым популярным маркетплейсом в Казахстане и увеличить продажи в 3 раза.

На Хабре про Kaspi в целом мало информации, в основном, про финансы и новости. Поэтому мне показалось логичным на своем опыте показать, какие подводные камни могут встретиться на пути к автоматизации продаж на Казахстанском маркетплейсе. 

Читать далее
Total votes 4: ↑5 and ↓-1+6
Comments7

Чем на самом деле занимается Chief Technical Officer?

Level of difficultyEasy
Reading time18 min
Views12K

В 2017 году я впервые почувствовал себя в роли CTO (Chief Technical Officer, технический директор). Я присоединился к маленькому стартапу в роли разработчика‑сеньора, и не успел опомниться, как оказалось, что я держу в руках бразды правления технической командой. Если сказать кому о том, что я занимаю пост технического директора, прозвучало бы это впечатляюще, но на самом деле моя должность больше соответствовала роли технического руководителя проекта. Я трудился в маленькой компании, в состав которой входило человек десять сотрудников, и плотно занимался разработкой продукта этой компании. Мои дни были наполнены программированием, отладкой и постоянной борьбой с новыми багами и проблемами клиентов. Я, кроме того, был ответственным за то, чтобы наша команда выполняла бы обязательства перед инвесторами и клиентами. Это было не только время непростых задач, но и время мощного обучения, и время профессионального роста.

И ещё — то было время постоянного стресса. Но это — уже совсем другая история.

Перенесёмся в наши дни. Сегодня я — сооснователь цифрового агентства, которое находится в Швейцарии. В нём я занимаю должность CTO. Мы одновременно работаем над несколькими проектами, задействуя в каждом из них универсальные команды. Наше агентство, со времён его создания, немного подросло. Теперь в нём работает почти 50 человек. Эволюционировала и та роль, которую я в нём играю. Я больше не занимаюсь только программированием и отладкой. Теперь я управляю ресурсами, занимаюсь планированием, принимаю стратегические решения. Сейчас передо мной стоят другие непростые задачи. Но я, как и раньше, прямо‑таки наслаждаюсь, решая разного рода проблемы, и понимая, что я — тот, кто формирует техническое видение компании.

Читать далее
Total votes 20: ↑18 and ↓2+16
Comments1

Расстаемся с облаками на примере Sonoff

Level of difficultyMedium
Reading time7 min
Views21K


Привет всем!

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

Но почти всё так или иначе привязано к облаку. Этот пост о том, как отвязать устройства Sonoff от облаков.

Да, я знаю, что таких постов очень много и уже все рассказали, как прошить Sonoff. Но я хочу показать как можно отвязать от облака Sonoff DW2, не прошивая его. Прошить его в любом случае не получится, ведь там не ESP8266, а другая микросхема.

Что понадобится для освобождения от облаков:
  • Sonoff Basic, Sonoff 4CH — понадобится паяльник и USB-TTL преобразователь;
  • Sonoff DW2 — собственный сервер.

В посте я использую ESPHome + Home Assistant + Docker + PHP, вы можете использовать любое другое ПО, тут главное принцип работы.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments22

Sovietwave и Sovietpunk: как романтика несбывшегося переплавила ностальгию по СССР в новый жанр? Часть 1

Level of difficultyEasy
Reading time7 min
Views28K

Выход «Atomic Heart» не просто стал громким событием в истории российского геймдева — он наиболее отчётливо отразил любопытную культурную тенденцию последней дюжины лет. С начала 2010-х футуристические образы и сюжеты в подчёркнуто советском стиле стали всё чаще встречаться в Рунете в самых разных формах. Особенно ярко это стало проявляться ближе к концу десятилетия с массовым распространением музыки в стиле ретровейва — российским ответвлением которого стал стилизованный под мелодии и ритмы советской эстрады Sovietwave. Ну а сейчас советский ретрофутуризм уже можно назвать мейнстримом, даже не особенно прибегая к совам и глобусам. Он выражает ностальгию по положительным чертам и характерным деталям советской эпохи, но с начала 90-х годов эта ностальгия успела сильно измениться. Что же с ней случилось?
Читать дальше →
Total votes 168: ↑159 and ↓9+150
Comments223

Как я писал свою первую игру для Dendy

Level of difficultyMedium
Reading time18 min
Views12K

Что такое Dendy? Что так любит детвора? Это электронная игра! Ооо, дендиии...

В этой статье я вам расскажу о своем первом опыте разработки игры для NES/Famicom консоли. Постараюсь рассказать о инструментах, которые использовал и о интересных особенностях разработки игр для Dendy с которыми столкнулся во время создания игры.

Погрузиться в мир Dendy
Total votes 70: ↑70 and ↓0+70
Comments22

Манюня, мой сакральный мультитул из 2000-х

Reading time4 min
Views52K

Мне очень понравилась работа команды, создавшей Flipper Zero. Став обладателем этого устройства, в процессе эксплуатации я пришёл к выводу, что оно очень полезно, но, на мой взгляд, недостаточно удобно в эксплуатации ввиду наличия только джойстика для управления этим устройством. Да, можно подключить отдельную плату расширения с нужным количеством кнопок для быстрого набора цифровых данных, но… Очень захотелось, чтобы на одном устройстве было всё максимально удобно для использования, и чтобы это максимальное удобство не занимало много места. Так как я - человек, детство которого прошло во времена Советского Союза, я стал свидетелем вхождения в наш обиход первых мобильных телефонов, тех самых легендарных Motorolа, SonyEricsson, Nokia, и мне очень захотелось создать нечто похожее по функционалу на Flipper Zero, но в то же время напоминающее те самые первые мобильники… Ностальгия, так сказать…

Программированием микропроцессоров я занимаюсь с начала 2000-х годов, со времен своего студенчества, и именно тогда у меня родилась интересная идея – а почему бы не попробовать сделать свой, особенный, телефон, с моим «сердцем» внутри - взять за основу один из тех самых легендарных телефонов и расположить всё то, что я хочу, в нём!

 Бороздя просторы Интернета и воскрешая в памяти все эти сейчас уже ставшие легендами первые мобильники, я неоднократно наталкивался на хохмы про телефон Nokia 3310. Как-то на выходных, разобрав пару-тройку полок в своём гараже, я отыскал ЕГО, телефон, который когда-то, в году эдак 2002-ом, а может, и в 2003-м, был самой настоящей гордостью студента!

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

Сколько на самом деле звезд в нашей Вселенной?

Level of difficultyMedium
Reading time10 min
Views30K

Учитывая ~400 миллиардов звезд в Млечном Пути и ~6-20 триллионов существующих в нашей Вселенной галактик, кажется, что звезд в мире должно быть очень-очень много. Как минимум несколько септиллионов. Но на самом деле их может оказаться далеко не так много, как мы думаем. Всё это связано со скоростью формирования звезд во Вселенной и тем, как мы видим далекие галактики.

Читать далее
Total votes 45: ↑43 and ↓2+41
Comments30

Как я создал свой дипфейк для презентации

Level of difficultyEasy
Reading time3 min
Views7.6K

Недавно мне пригодился мой open-source проект Wunjo AI для создания собственного дипфейка - синтеза английской речи с минимальным акцентом. В этой статье я хочу рассказать, как мне удалось добиться этого, зачем я это сделал, и продемонстрировать полученный результат. Вы узнаете, как дипфейки могут обогатить процесс создания контента. Позже вы сможете для себя решить, могут ли дипфейки и синтез речи оказаться полезными для вас.

В чем суть проблемы?

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

Проблема 1: Речь и звук

При записи моего голоса возникла проблема низкого качества звука и заметного акцента, что делало речь трудно разборчивой. Хотя звук можно улучшить с помощью обработки, вряд ли можно исправить неправильное произношение слов (однако есть идея и об этом ниже). Первым шагом стал синтез речи из текста с использованием голосового синтезатора, которого я обучил. Если вы заинтересованы в создании собственной модели на основе вашего голоса или другого голоса на английском без акцента, для вас подойдет видеоинструкция. Я интегрировал свою модель в Wunjo AI и потратил около 15-20 минут, чтобы превратить весь текст презентации в синтезированную речь. Обучение модели заняло у меня около суток, но так как она уже была обучена заранее, мне не потребовалось повторять этот процесс. Запись и обработка собственного голоса заняли бы гораздо больше времени, чем синтез речи.

Читать далее
Total votes 20: ↑19 and ↓1+18
Comments21

Как работает компьютер: глубокое погружение (на примере Linux)

Level of difficultyHard
Reading time48 min
Views135K



Введение


Я делала много вещей с компьютерами, но в моих знаниях всегда был пробел: что конкретно происходит при запуске программы на компьютере? Я думала об этом пробеле — у меня было много низкоуровневых знаний, но не было цельной картины. Программы действительно выполняются прямо в центральном процессоре (central processing unit, CPU)? Я использовала системные вызовы (syscalls), но как они работают? Чем они являются на самом деле? Как несколько программ выполняются одновременно?


Наконец, я сломалась и начала это выяснять. Мне пришлось перелопатить тонны ресурсов разного качества и иногда противоречащих друг другу. Несколько недель исследований и почти 40 страниц заметок спустя я решила, что гораздо лучше понимаю, как работают компьютеры от запуска до выполнения программы. Я бы убила за статью, в которой объясняется все, что я узнала, поэтому я решила написать эту статью.


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


Более удобный формат статьи.

Читать дальше →
Total votes 152: ↑152 and ↓0+152
Comments36

«Моя твоя хотеть понимать», или Как говорить со всеми в IT

Level of difficultyEasy
Reading time15 min
Views5.2K

Привет! Сегодня в статье не будет ничего про наши технологии, стэки или процесс разработки, UX или дизайн.

Тем не менее статья всё равно плотно касается мира IT. Она будет полезна всем начальникам, тимлидам, руководителям проектов, которые взаимодействуют с лицами, принимающими решения у заказчика (ЛПР). Я уверен, каждый человек найдёт в ней полезное для себя. Статья позволит лучше понимать других людей и найти ответ на вопрос «Я же говорю всё ясно, почему меня не понимают?».

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

Читать далее
Total votes 17: ↑16 and ↓1+15
Comments18

Каково это — быть операционной системой?

Level of difficultyEasy
Reading time4 min
Views16K

Pier-Luc Brault придумал забавную игру, которая превращает вас в... операционную систему. Некий пользователь загружает нас процессами, которые нужно распределять по свободным CPU. Если мы будем плохо справляться с задачей, пользователь выйдет из себя и перезагрузит нас. Game over.  

Читать далее
Total votes 46: ↑45 and ↓1+44
Comments8

Дизайнер не нужен. Правила создания красивых UI

Level of difficultyEasy
Reading time5 min
Views17K


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

Такие же правила действуют в компьютерных интерфейсах. Чем проще — тем лучше. В этом смысле интересно посмотреть на новое поколение Linux-приложений в современном стиле с адаптацией под смартфоны (на КДПВ некоторые примеры), а также на свежие UI-фреймворки, которые продвигают современный стиль разработки.
Читать дальше →
Total votes 43: ↑41 and ↓2+39
Comments30

Три важных качества CTO, о которых я не догадывался, пока был разработчиком

Level of difficultyEasy
Reading time8 min
Views39K

Я начинал карьеру как фронтенд-разработчик и прошел по всем стандартным этапам: от джуниора до сеньора и тимлида, потом стал руководителем отдела. И дальше, конечно, планировал стать CTO — Chief Technical Officer. И только через несколько лет узнал, что мои представления о том, какие навыки нужны на этой должности, были далеки от реальности.

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

Читать далее
Total votes 114: ↑110 and ↓4+106
Comments65

Про FPV-квадрокоптеры. Введение

Level of difficultyEasy
Reading time30 min
Views46K

Не так давно случайно от человека, снимавшего на моих глазах видео с квадрокоптера DJI Mavic услышал про FPV, что он, мол, хочет такой себе квадрокоптер купить.

Почему, спрашиваю, у тебя же есть уже аппарат для съемки, чего не хватает? Что, там у FPV камера лучше?

Камера‑то хуже, но вот зато он может очень точно маневрировать очень близко около объектов съемки. Пролететь впритирку к дереву или к скале, залезь в любую дырку, кадры снять подинамичнее, поинтереснее.

Я и до этого заметил во время той видеосъемки, что управлять‑то DJI Mavic несложно. Но вот управлять тонко, точно вовсе не так уж и просто.

Слова того человека о точном маневрировании с квадрокоптером FPV мне понравились и я начать курить ту тему... Очнулся уже будучи владельцем нескольких квадрокоптеров FPV.

Поразило 2 аспекта: как это удивительно дешево (ну для опытного ИТ‑разработчика с соответствующей зарплатой) и как же трудно научиться им управлять (зато когда научишься, то ого‑го).

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

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Level of difficultyEasy
Reading time8 min
Views185K

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

Я решил посвятить свою первую статью SQL. Вопросы, рассмотренные ниже мне задавали на собеседованиях на позицию python-разработчика. Естественно отвечать правильно получалось не всегда, а если точнее то чаще не правильно, однако проведя N часов в рефлексии я составил перечень ответов, которыми пользуюсь до сих пор.

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

Читать далее
Total votes 191: ↑184 and ↓7+177
Comments177

Полнотекстовый поиск в PostgreSQL с SQLAlchemy

Level of difficultyMedium
Reading time7 min
Views6.7K

Привет, Хабр! В прошлой статье я  писал о том, как реализовать end-to-end тестирование telegram-бота. А сегодня расскажу о том, как реализовать полнотекстовый поиск в Postgres посредством SQLAlchemy и как его проиндексировать. 

Меня зовут Михаил Выборный, я python-разработчик, backend-developer в облачном провайдере beeline cloud. Вы узнаете, как подготовить файл миграции для alembic. В конце статьи я приведу ссылку на небольшой репозиторий, где реализовал сервис-класс для удобной интеграции поиска в свой проект. 

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

Как мы спасли от выгорания нанимающих аналитиков в X5 Tech

Level of difficultyEasy
Reading time6 min
Views3.8K

Меня зовут Антон Денисов, я руководитель аналитиков больших данных в X5 Tech. В этой статье расскажу, с какими сложностями сталкиваются нанимающие менеджеры в сфере Data Science в условиях интенсивного процесса найма сотрудников, а также продемонстрирую, к какому виду мы привели процесс собеседований и найма аналитиков больших данных в X5 Tech.

Читать далее
Total votes 12: ↑9 and ↓3+6
Comments7

Fortigate SSL VPN рекомендации по ужесточению конфигурации

Level of difficultyEasy
Reading time9 min
Views12K

Это руководство результат изучения уязвимостей Fortigate VPN SSL на протяжении последних лет, реальных случаев взлома брандмауэров, операционных руководств и отчетов нескольких группировок (например, руководств Conti), а также моего более чем 15-летнего опыта работы с Fortigate. Применяя все/некоторые из приведенных ниже мер, вы значительно усложните взлом SSL VPN вашего Fortigate и, следовательно, сделаете его менее привлекательным для злоумышленников.

Измените порт SSL VPN, по умолчанию 10443/443, на любой другой

Эта безопасность через неясность действительно работает. Чаще всего, злоумышленники не нацелены на конкретные компании, а ищут легкодоступные цели. И простейший способ сделать это — просканировать известные порты/сервисы. И оба порта, 443 и 10443, являются хорошо известными портами Fortigate. Или еще проще -  выполните поиск в Shodan/Censys по запросу "Fortigate", и в настоящее время Shodan имеет 185 тысяч результатов для порта 10443 а Censys 317 тысяч. Именно это произошло с крупной утечкой учетных данных VPN 3 года назад  — все затронутые Fortigate имели SSL VPN на портах 443 или 10443.

Возможным недостатком может быть то, что у пользователей VPN, подключающихся через Wi-Fi в отелях/кафе, могут быть заблокированы исходящие порты, кроме 443, но, поскольку пакеты сотовой связи сегодня  дешевы, то целесообразно использовать свой телефон в качестве точки доступа для VPN-подключения и избегать использования общедоступных WiFi вообще.

Читать далее
Total votes 10: ↑8 and ↓2+6
Comments12

Полный Гайд по Shopify

Reading time9 min
Views53K

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

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments12
1
23 ...

Information

Rating
4,845-th
Location
Германия
Date of birth
Registered
Activity