Как стать автором
Обновить

Все потоки

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Мое понимание красивого кода, спустя почти 10 лет ООП- кодинга

Программирование *Проектирование и рефакторинг *Управление проектами *

Для начала небольшой тест, который позволит выяснить стоит ли вам читать эту статью дальше: перед вами задача прочитать информацию из текстового файла, немного преобразовать ее (например, агрегировать по- недельно) и показать результат пользователю. Вы мысленно набросали примерно такой план: читаю файл, преобразую, отображаю? Тогда не задумываясь нажимайте кнопку "Читать далее", поскольку эта статья написана именно для вас.

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Просмотры 798
Комментарии 6

Новости

Подробное руководство по инверсии зависимостей. Часть 1

Java *Анализ и проектирование систем *Проектирование и рефакторинг *
Из песочницы

Инверсия зависимостей - один из принципов SOLID, который лежит в основе построения гексагональной архитектуры приложения. Существует множество статей, которые раскрывают суть принципа и объясняют как его применять. И, возможно, читатель уже знаком с ними. Но в рамках данной статьи будет продемонстрирован подробный разбор "тактических" приемов для успешного использования инверсии зависимостей и, возможно, в этом смысле даже искушенный читатель сможет найти для себя что-то новое. Примеры представлены на языке программирования Java с соответствующим окружением, но при этом для чтения достаточно понимания похожих языков программирования.

Читать далее
Рейтинг 0
Просмотры 295
Комментарии 1

OTA обновление устройств с Linux

Настройка Linux *Разработка под Linux *Разработка для интернета вещей *Разработка на Raspberry Pi *Интернет вещей
Tutorial

OTA A/B обновление образа rootfs для IoT устройств с Linux при помощи проекта Mender. Как обновить образ системы на множестве удалённых устройств. Демонстрация на примере Raspberry Pi.

Читать далее
Рейтинг 0
Просмотры 733
Комментарии 2

Мои собеседования 2021 edition

Карьера в IT-индустрии

Внимание: повествование будет идти в стиле "здравствуй дорогой дневничок", без критики и срывов покровов. Я строго против публичной критики компаний в разрезе процесса интервью. Хотят устраивать 5 алгораундов - их дело, они будут платить тебе деньги и вправе решать как они собеседуют. С другой стороны, я считаю, что могу высказывать свое мнение без конкретных имен. Все описанные компании не российские. Извиняюсь за англицизмы.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 3.2K
Комментарии 15

Примечательная напольная акустика для небольших помещений — обсуждаем две пары колонок от ELAC и Old School

Блог компании Аудиомания Периферия

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

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 2.6K
Комментарии 0

Знакомство с невидимками

Читальный зал Научно-популярное Биология

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

Читать далее
Всего голосов 30: ↑29 и ↓1 +28
Просмотры 2.7K
Комментарии 3

Новая суббота и очередное посещение барахолки — теперь без карантинных ограничений и с кучей интересностей

Блог компании Selectel Гаджеты Компьютерное железо История IT Старое железо

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

Дело в том, что у нас сняли карантинные ограничения для рынков подобного типа, так что теперь продавцов стало в 2 раза больше. До этого им приходилось меняться, установив очередность выхода «на работу» по спискам. Теперь же никаких ограничений нет — торгуют все! Ну и результаты не заставили себя ждать, о новом походе и улове — под катом.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 2.7K
Комментарии 3

Как я портировал игру с VisualBasic 6 на С++, сделав её кросс-платформенной

C++ *Разработка игр *Игры и игровые приставки
Из песочницы

Всем доброго времени суток! Это моя история о том, как я портировал исходный код одной фанатской Windows-игры о Марио с VisualBasic 6 на C++, и с какими трудностями я столкнулся в процессе создания порта.

Эта статья рассказывает о портировании Super Mario Bros. X, фанатской игры Эндрю Спинкса, созданную им в 2009 году, которую он затем бросил 2011 году в пользу более серьёзного и масштабного проекта в лице Terraria.

Читать далее
Всего голосов 33: ↑33 и ↓0 +33
Просмотры 2.8K
Комментарии 11

Стоит ли изучать PHP в 2021 году?

Блог компании OTUS PHP *Программирование *
Перевод

Возможно, вы слышали, что PHP — бесполезный и вымирающий язык программирования, но каковы факты?

Язык PHP является преемником проекта PHP/FI, созданного в 1994 г. Расмусом Лердорфом для отслеживания просмотров своего онлайн-резюме. Это был простой набор бинарных файлов для CGI (англ. Common Gateway Interface — «интерфейс общего шлюза»), написанных на языке C. В 1995 г. Расмус опубликовал исходный код своего проекта и призвал пользователей присоединиться к его совершенствованию.

Читать далее
Всего голосов 62: ↑6 и ↓56 -50
Просмотры 6.3K
Комментарии 28

Apollo 3.0 для работы с GraphQL в многомодульном Android приложении

Разработка под Android *

Давайте рассмотрим, каким образом настроить и использовать последнюю на данный момент версию клиента apollo в многомодульном приложении под android.

Читать далее
Рейтинг 0
Просмотры 559
Комментарии 0

Анализ статей Хабрахабр

Программирование *Алгоритмы *Визуализация данных

Решила повторить исследование, сделанное в 2017 году и посмотреть, что изменилось за 5 лет. Ссылка на предыдущую статью Анализ статей Хабрахабр и Geektimes. Дизайн сайта изменился, поэтому делала все в jupyter python, а не wolfram mathematica. Далеко не все графики удалось воспроизвести заново. Получился анализ более чем 260000 статей.

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

Кто реализовал обмен данными по WebRTC с помощью звука

Блог компании Аудиомания Исследования и прогнозы в IT Софт Звук

Всем знаком тот шипящий и скрипящий звук, которым обменивались модемы dial-up во время коннекта. Сегодня эти устройства до сих пор используют в удаленных регионах планеты, однако идея подключения с помощью звука находит разве что нишевые применения. Одно из них — установка соединения по WebRTC.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 2.1K
Комментарии 2

Kotlin Symbol Processing. Работаем с аннотациями по-новому

Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Kotlin *
Tutorial

Всем доброго дня! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. В феврале 2021 года компания Google анонсировали экспериментальный релиз технологии Kotlin Symbol Processing (совместима с Kotlin с 1.4.30), как более эффективную альтернативу KAPT (Kotlin Annotation Processing Tool). Она сразу привлекла внимание многих разработчиков, помышляющих о внедрении аннотаций в мультиплатформенные проекты, несмотря на рекомендации создателей не использовать ее в продакте. В сентябре вышел первый стабильный релиз, и теперь она официальна готова к работе в боевых проектах. В этой статье предлагаю рассмотреть нюансы работы с KSP как в приложениях для Android, так и Kotlin Multiplatform.

Итак, начнем с назначения. Kotlin Symbol Processing предназначена для разработки легковесных плагинов компиляции Kotlin и процессоров аннотаций. Последние нас и интересуют. По сути аннотации нужны в приложении для того, чтобы упростить работу и избавить нас от лишнего кода. Например, когда нам нужно проанализировать код для определенной цели и затем сделать какие-то действия. Либо убрать лишнюю абстракцию из приложения. Гораздо привлекательнее выглядит добавить буквально 1 команду над конкретным объектом/методом/типов, и вместо того, чтобы писать тонны бойлерплейта для каждого случая, поручить это библиотеке, которая сделает все сама.

Давайте посмотрим, как работает в своей механике процессор аннотаций. Например, такой, как мы используем в Java коде.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 1.2K
Комментарии 3

Разбор работы LVDS портов и DMA на отечественном DSP 1967ВН028

Assembler *Программирование микроконтроллеров *
Tutorial

В продолжение моих заметок, посвященных разбору функционала процессора от фирмы Миландр 1967ВН28, рассмотрим способы общения с внешними устройствами. В данном процессоре есть возможности общения по следующим информационным каналам. Порты LINK (LVDS) и также имеется параллельный интерфейс, предназначенный для работы с внешней памятью. Этой заметке разберем работу с интерфейсом LINK.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 1.1K
Комментарии 1

Несколько технических вопросов к ДЭГ

Тестирование IT-систем *Анализ и проектирование систем *
Из песочницы

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

Главный редактор эХО Москвы, Венедиктов, который упорно проталкивал ЭГ, и утверждает, что всё честно, и никто его ни в чём, обратном, не убедил.

Вопрос технический и интересный. И поэтому, я изучил Что же не так с ДЭГ в Москве? от Жижина. Зашёл на https://observer.mos.ru/all/ и скачал дампы базы данных, которые лежат там, PostgreSQL server и попробовал разобраться, что именно не так.

Читать далее
Всего голосов 23: ↑21 и ↓2 +19
Просмотры 2.6K
Комментарии 5

Аппроксимация синуса: полиномы Чебышёва vs. ряды Маклорена

Алгоритмы *Математика *

В комментариях к моей статье про быстрое вычисление синуса был задан вопрос: "А чем не устроило разложение в ряд Тейлора?"

Краткий ответ таков: хоть приближение при помощи рядов Тейлора (точнее - рядами Маклорена) и даёт меньшую ошибку при том же количестве вычислений, но оно не позволяет разбить аргумент на произвольное количество интервалов и тем самым увеличить точность вычислений.

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

Создание собственных RequestBody и ResponseBody

Java *
Из песочницы

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

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

Читать далее
Рейтинг 0
Просмотры 1.2K
Комментарии 0

Разворачиваем техническое интервью

Ненормальное программирование *Lisp *Читальный зал
Перевод

Если вы хотите устроиться на работу колдуном-программистом, вам придется пройти собеседование с написанием кода на бумажке. Все инженеры периодически их проходят - иногда в качестве утреннего ритуала, вместе с аккуратным расставлением окошек терминала по астральному плану, компульсивным выполнением команды ls во всех папках (на всякий случай, если за ночь что-либо поменялось). С теми же чувствами другие копаются в дальнем ящике на кухне, где лежат всякие отвертки, бесхозные патрубки, и прочие пластмассовые изделия - белые вороны среди бытовых принадлежностей, чье первоначальное предназначение давно забыто (а может и никогда не было известно), но о которых мы все равно вынуждены заботиться.

Сегодня мы обсудим один из типичных вопросов на таком интервью - развернуть связанный список.

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

(defn cons [h t] #(if % h t))

Читать далее
Всего голосов 10: ↑5 и ↓5 0
Просмотры 1.6K
Комментарии 2