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

Разработка

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

Когда «сделать плохо» == «сделать лучше»

Microsoft SQL Server *SQL *ООП *Анализ и проектирование систем *

В мире IT есть много разных концепций и подходов, которые облегчают процесс разработки, расширения архитектуры и создания прочных продуктов. KISS, DRY, SOLID и прочие умные слова - это то, что должен знать программист для того, чтобы считаться как минимум неплохим. Но в данном посте будет затронута и без того известная тема - все эти подходы это рекомендации, а не безукоризненный закон.

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

Новости

Моделирование приемника GPS для наноспутников

Open source *Глобальные системы позиционирования *Геоинформационные сервисы *Производство и разработка электроники *DIY или Сделай сам

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

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

Ontol про Kotlin: подборка 28 самых полезных бесплатных курсов и видео на Youtube

Блог компании Timeweb Kotlin *Разработка под Android *Учебный процесс в IT
image

На английском


freeCodeCamp — лучший и при этом бесплатный канал для самообучения программированию. Многие платные школы просто делают «рерайт» их программ и продают за 100К руб.



850 000 просмотров
2,5 часа
курс для начинающих 2019 года
Содержание
(0:00:50) Create Your First Kotlin Project
(0:04:23) Hello World
(0:06:33) Working With Variables
(0:11:04) Type System
(0:15:00) Basic Control Flow
(0:21:31) Basic Kotlin Functions
(0:27:12) Function Parameters
(0:32:52) Arrays
(0:35:28) Iterating with forEach
(0:41:17) Lists
(0:42:47) Maps
(0:45:05) Mutable vs Immutable Collections
(0:49:24) Vararg Parameters
(0:54:21) Named Arguments
(0:56:26) Default Parameter Values
(1:00:27) Create A Simple Class
(1:03:35) Adding Class Properties
(1:05:15) Class Init Block
(1:06:40) Accessing Class Properties
(1:07:32) Primary Constructor Properties
(1:08:17) Secondary Constructors
(1:09:50) Working With Multiple Init Blocks
(1:11:30) Default Property Values
(1:11:59) Properties With Custom Getters/Setters
(1:16:52) Class Methods
(1:20:12) Visibility Modifiers — Public/Private/Protected/Public
(1:22:30) Interfaces
(1:24:21) Abstract Classes
(1:26:13) Implementing An Interface
(1:26:35) Overriding Methods
(1:28:30) Default Interface Methods
(1:29:30) Interface Properties
(1:31:40) Implementing Multiple Interfaces
(1:32:57) Type Checking And Smart Casts
(1:36:18) Inheritance
(1:43:07) Object Expressions
(1:45:06) Companion Objects
(1:49:51) Object Declarations
(1:52:41) Enum Classes
(1:58:16) Sealed Classes
(2:00:07) Data Classes
(2:12:25) Extension Functions/Properties
(2:16:40) Higher-Order Functions
(2:29:07) Using The Kotlin Standard Library
(2:00:07) Data Classes

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

Golang для Embedded Linux

C *C++ *Go *Java *Rust *
Из песочницы

При разработке очередной платформы перед командой АТОЛ встал вопрос выбора языка программирования/стека технологий/железа/фреймворка для создания решений. Железо было выбрано на базе относительно недорогой Linux-платформы STM32MP153/512MB DDR3/8GB eMMC. Эта платформа имеет на несколько порядков больше ресурсов, чем используемые в нашей основной массе решений LPC1768/LPC1778/LPC4078/STM32F207. 100% наработок кода компании для устройств были написаны на C/C++, однако прогресс не стоит на месте, и периодически необходимо актуализировать инструменты и технологии разработки, особенно с учетом новых аппаратных возможностей. Из статьи станет ясно, как мы дошли до жизни такой и почему выбрали Golang для создания очередного набора решений.

Выбор стека технологий важен для всех компаний, которые занимаются разработкой железа и перерастают крошечные embedded контроллеры на Cortex M0/M3/M4/M7. Обычно команды при переходе на новую платформу выбирают одно из двух решений: стараются сделать новую версию системы на новом железе/технологиях/архитектуре, превращая решение в нестабильный долгострой, или наоборот — вносят минимальное количество изменений, но иногда вместо совокупности положительных черт разных подходов получают совокупность отрицательных.

В статье исследованы особенности различных языков программирования/технологий (Java, Python, C/C++, Rust, Golang), их плюсы и минусы, сформулированы критерии выбора и представлен выбор команды АТОЛ.

Для анализа использован метод SWOT-анализа. В качестве источников данных — информация сайтов фреймворков. Помимо этого, косвенная информация о боли и страданиях разработчиков получена на Stackoverflow, и часть субъективных выводов сделана на основе моего экспертного мнения за более чем 30-летний опыт программирования.

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

Архитектура PlayStation 3, часть 4: Борьба с пиратством

Информационная безопасность *Реверс-инжиниринг *Компьютерное железо Старое железо Игры и игровые консоли
Перевод

Из предыдущих частей вы уже знаете, на что способна консоль PlayStation 3. Ожидали ли вы, что хакеры будут довольствоваться ограниченными возможностями OtherOS? Думаю, что Sony тоже не ожидала. Компания изо всех сил старалась защитить некоторые области, оставляя другие полузакрытыми, чем позже и воспользовались хакеры.

Давайте посмотрим, как некоторые из "крепостей" консоли были взломаны независимыми хакерами по всему миру...

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

Worker Services в .NET

.NET *C# *
Из песочницы
Tutorial

Написание воркер-сервисов на .NET часто сопряжено с написанием большого количества повторяющегося boilerplate-кода. Однажды мне это надоело и я попытался успростить этот процесс, перенеся часть бойлерплейта в отдельную библиотеку, которой и посвящена эта статья.

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

DIY зарядка для Tesla. Как устроен J1772? Делаем свой wallconnector с куртизанками

Разработка под Arduino *DIY или Сделай сам Автомобильные гаджеты Электроника для начинающих
Tutorial

Может ли автомобиль загореться от плохого зарядного устройства? Зарядное устройство переменного тока для электромобилей с протоколом J1772 по сути своей не зарядное устройство. Я решил сделать свой Wallconnector с бюджетом до 10.000 руб. и разобраться как все работает. Опыты с электричеством опасны! Не повторяйте это дома, или повторяйте....решать Вам!

Сделай свою зарядку сам, тыжпрограммист

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

Введение в отладку на примере Firefox DevTools, часть 2 из 4

Firefox Разработка веб-сайтов *JavaScript *Отладка *Браузеры
Перевод

Продолжаем погружаться в отладку с Firefox DevTools. Во второй части разбираем, что такое точки останова в отладчике, как ими пользоваться и почему они — замена console.log.

Читать про точки останова
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 228
Комментарии 0

Первое правило машинного обучения: начните без машинного обучения

Блог компании билайн бизнес Программирование *Машинное обучение *Kubernetes *
Перевод

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

Что? Начинать без машинного обучения?


Об этом говорю не только я.

Догадайтесь, какое правило является первым в 43 правилах машинного обучения Google?

Правило №1: не бойтесь запускать продукт без машинного обучения.

Машинное обучение — это здорово, но для него требуются данные. Теоретически, можно взять данные из другой задачи и подстроить модель под новый продукт, но она, скорее всего, не справится с базовыми эвристиками. Если вы предполагаете, что машинное обучение придаст вам рост на 100%, то эвристика даст вам 50%.
Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 1K
Комментарии 5

Почему Golang – лучшее решение для оптимизации рабочих процессов?

Блог компании Southbridge Системное администрирование *Программирование *IT-инфраструктура *DevOps *

28 октября у Слёрма прошел вебинар «Golang против скриптов», на котором Всеволод Севостьянов (Tech Lead берлинского vene.io) подробно описал основные преимущества использования Go при написании скриптов для автоматизации повседневных задач. В этом материале мы собрали для вас ключевые тезисы вебинара, расписали главные проблемы Python, Bash и Perl и разобрались, как именно Golang облегчает жизнь разработчикам. 

Читать далее
Всего голосов 20: ↑3 и ↓17 -14
Просмотры 1.7K
Комментарии 6

Паутина для чайников: алгоритм строительства паучьих сетей

Блог компании ua-hosting.company Алгоритмы *Математика *Научно-популярное Биология


К паукам можно относиться как угодно: их можно бояться, недолюбливать или держать в качестве питомцев. Но любой, от арахнофоба до арахнолога, согласится с тем, что они мастера по строительству своих сетей. Научное сообщество уже очень давно и с большим интересом наблюдает за членистоногими прядильщиками, но полностью раскрыть все их секреты пока еще не удалось. И вот ученые из университета Джонса Хопкинса (США) решили детально рассмотреть и описать процесс строительства паутины, используя при этом искусственный интеллект и приборы ночного видения. Выяснилось, что разные виды пауков подчиняются общим правилам в ходе создания своих сетей. Следовательно, наблюдение за движениями лапок может предсказать, что именно будет строить паук. На какие стадии можно разделить строительство паутины, как пауки ведут себя во время каждой из них, и как эти данные могут помочь в понимании нас самих? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 1.1K
Комментарии 2

Oracle Call Interface: как написать клиентское приложение на Си

Oracle *C *Разработка под Linux *Разработка под Windows *
Из песочницы

В этой статье я расскажу, как написать клиентское приложение для БД Oracle, используя библиотеку OCI и язык Си.

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

Решаем логистическую задачу: алгоритм привязки фактической и плановой стоянок автомобилей

Программирование *Алгоритмы *Облачные вычисления *Математика *Облачные сервисы
Tutorial

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

Отмечу, что первоначальное и основное предназначение Муравьиной логистики – это формирование маршрутов по заданным пользователем параметрам. За 9 лет работы сервиса появилось множество дополнительных возможностей, в том числе построение фактического маршрута движения автомобиля на основании данных GPS-трекера. Но нашим клиентам было недостаточно просто видеть на карте траекторию движения автомобиля. Сервис должен предоставить в удобном формате уже проанализированные данные - каждой плановой точке маршрута автомобиля необходимо присвоить соответствующую фактическую стоянку.

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

Брутальный Protocol Buffers от Google vs статический анализ кода

Блог компании PVS-Studio Open source *C++ *

Protocol Buffers — это очень популярный, крутой и качественный проект, развиваемый в основном компанией Google. Это хороший вызов для статического анализатора кода PVS-Studio. Найти хоть что-то — это уже достижение. Попробуем.
PVS-Studio: проверяем Protocol Buffers

Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 1.6K
Комментарии 4

Как айтишнику издать свою книгу. Часть 5. Сколько получают авторы

Профессиональная литература Карьера в IT-индустрии Читальный зал

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

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

Считаем деньги
Всего голосов 19: ↑18 и ↓1 +17
Просмотры 1.4K
Комментарии 22

Возвращаем к жизни калькулятор HP Prime G2

Блог компании RUVDS.com Разработка под Linux *Компьютерное железо DIY или Сделай сам
Tutorial

Калькулятор с восстановленной прошивкой.

В предыдущих сериях:


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

В результате, когда в очередной раз наткнулся в шкафу на лоток с этим барахлом, принял волевое решение вернуть его к жизни, в качестве калькулятора, каким он и был в девичестве.
Как обычно, путь был тернист, даже был сформирован мердж реквест автору перепрошивки линукса, но обо всём по порядку.
Читать дальше →
Всего голосов 35: ↑32 и ↓3 +29
Просмотры 2.3K
Комментарии 3

Накачиваем заряд аркадного автомата: -5 В от источника питания на 5 В

Производство и разработка электроники *Старое железо Игры и игровые консоли
Перевод

Когда дело касается электроники, мои интересы просты. В идеале мне бы хотелось работать с одним напряжением и заземлением — в колледже я гораздо лучше училась цифровой электронике, чем аналоговой, и на то были причины. Но время от времени приходится разбираться с чем-то более сложным, чем 1 и 0. Сегодня мы рассмотрим самую из пугающих ситуаций: -1. И это не уравновешенная троичная система. Спасёт ли нас простая интегральная схема?
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 1.6K
Комментарии 8

Открытый проект файловой системы для внутренней памяти STM32H

Open source *Алгоритмы *Программирование микроконтроллеров *Производство и разработка электроники *DIY или Сделай сам
Tutorial

Зачем ставить внешнюю IC памяти или SD карту если в микроконтроллере осталось много свободной Flash памяти! 

Микроконтроллеры семейства STM32H снабжены двумя независимыми банками Flash памяти и это очень удобно. В одном банке можно расположить программный код, а в другом временные перезаписываемые данные.  

Как сделать из внутренней Flash подобие EEPROM сравнительно неплохо написано в этом апноуте от ST. Но с некоторого уровня комплексности встроенного ПО хранить данные в именованных файлах удобнее чем в жёстких структурах. Файлы упрощают реюзинг, облегчают поддержку преемственности версий, апгрейды и даунгрейды. Файлы освобождают от хлопот с планированием размещения во флэш и разруливанием конфликтов размещения, особенно если приложение модульное и модули разрабатываются отдельно. 

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

Мир должен знать, как я генерировал mock-объекты

Тестирование IT-систем *PostgreSQL *Go *
Tutorial

Поставил Linux? Напиши об этом статью. Нашел на Github интересный проект? Напиши об этом статью. Примерная такая логика привела к написанию этой статьи.

Недавно мне потребовалось наполнить базу данных из более чем 300 таблиц со сложной структурой и кучей внешних ключей тестовыми данными. Требования к наполнению минимальны, нужны просто таблицы с заполненными полями, семантика пока не важна. Сделать надо быстро, с минимальными усилиями и как можно ближе к уровню СУБД.

Если вам интересно, как была решена поставленная задача, прошу под кат.

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