Как стать автором
Обновить
630
Рейтинг

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга

Магия размерностей и магия Котлина. Часть первая: Введение в KotUniL

Программирование *Kotlin *Физика
Tutorial

Амперы нельзя складывать с вольтами. Сантиметры можно складывать с дюймами, но очень внимательно. Иначе получится как с космическим аппаратом стоимостью 125 миллионов долларов Mars Climate Orbiter, который успешно долетел до Марса, но бездарно разбился о его  поверхность. 

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

Этих катастроф и смертей можно было бы избежать, если бы программисты бортового и системного ПО использовали в своей работе специализированные библиотеки типа KotUniL, о которой я хочу рассказать в серии статей. 

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

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

Новости

Что нового в Java 20?

Блог компании Издательский дом «Питер» Программирование *Java *API *
Перевод
image

Версия Java 20 должна быть выпущена в марте 2023 года, и ожидается, что в ней появится целый ряд изменений и новых функциональных возможностей. Мы подготовили обзор, описывающий, какие JEP с наибольшей вероятностью будут приняты в JDK 20, и какие из них, как мы надеемся, будут приняты в ближайшей перспективе!

Последняя версия JDK (Java Development Kit) 19 была выпущена 20 сентября 2022 года. Следующая версия, Java 20, планируется как релиз без LTS, а следующая версия 21 — как релиз с долгосрочной поддержкой (LTS). Ожидается, что грядущая версия 20 принесет ряд замечательных обновлений, поэтому мы с нетерпением ждем марта, чтобы получить ее в распоряжение!

Но прежде чем перейти к рассмотрению JEP, запланированных для Java 20, давайте сделаем краткий обзор процесса обновления Java и концепции предложений по улучшению, чтобы целиком представлять картину происходящего.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 3.4K
Комментарии 2

CHAD Principles

Программирование *
Перевод

Наверное, каждый из вас слышал о SOLID, KISS, DRY, DI, HWDP и других популярных наборах хороших практик программирования.

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

Ну что же, приступим!

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

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

Программирование *Алгоритмы *Математика *Научно-популярное Будущее здесь

Я люблю давать простые задачки студентам на лекции. Во-первых, понятно, скольких мы потеряли, во-вторых, это переключение из режима потребления информации в режим выдачи результатов, в третьих — возможность проявить себя для шустрых. Сплошные плюсы!

Одна из простых задач звучит так: «При переводе картинки из цветового пространства RGB в YUV мы выполняем прореживание, то есть выкидываем каждый четный столбец и каждую четную строку в компонентах U и V (все компоненты пикселя по 1 байту). Вопрос: во сколько раз меньше данных у нас стало?» Эта операция называется chroma subsampling и широко используется при сжатии видео, например.

Забавно, что когда-то давно, когда винчестеры были меньше, а дискеты больше, студенты реально отвечали на этот вопрос быстро. А в последние годы регулярно народ в ступор впадает. Приходится разбирать по частям: «Если выкинуть каждую четную строку и каждый четный столбец, во сколько раз меньше данных будет у компоненты?» Почти хором: «В четыре». Начинаю подкалывать: «Отлично! У нас было 3 яблока, первое осталось как есть, а от второго и третьего осталось по четвертинке. Во сколько раз меньше яблок у нас стало?» Народ ржет, но, наконец-то, дает правильный ответ (заметим, не все). 

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

И хорошо видно, как эта способность в широких массах студентов заметно плавно падает. Причем не только в нашей стране. Придуман даже специальный термин: «цифровое слабоумие» ("digital dementia") — снижение когнитивных способностей, достаточно серьезное, чтобы повлиять на повседневную деятельность человека. 

Кому интересно как теряют мозг студенты масштабы бедствия и что с этим делать — добро пожаловать под кат!

Читать далее
Всего голосов 120: ↑116 и ↓4 +112
Просмотры 18K
Комментарии 178

Стратегии роста Notion. Часть 1

Блог компании Wunder Fund Программирование *Управление разработкой *Бизнес-модели *
Перевод

Примечание Wunder Fund: мы very early adopters Ноушена и большие его фанаты. Поэтому решили перевести нетипичную для нас статью о том, как он создавался, как рос, как развивалась его стратегия. В статье есть ряд интересных мыслей про развитие продуктов.

Что можно узнать о стратегиях роста бизнеса, в основе которых лежит продукт и формируемое вокруг него сообщество пользователей, проанализировав SaaS-стартап стоимостью 10 миллиардов долларов?

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

MVP за выходные: dashboard для Телеграм-ботов

Программирование *Анализ и проектирование систем *Node.JS *Хакатоны Управление продуктом *

Скорее всего, вы слышали о «12 стартапах за 12 месяцев» или о продуктах, которые родились на хакатонах. Такие истории всегда вдохновляли меня, поэтому я придумал свой челлендж: я сделал простой сервис за выходные.

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

Qooxdoo 6.0 — JavaScript фреймворк для тех, кто любит кодить

Разработка веб-сайтов *JavaScript *Программирование *
Из песочницы
Перевод

Создать полноценное веб приложение с помощью только Javascript без HTML и CSS? Написать код с использованием ООП, которое превосходит возможности даже стандарта ES7? Звучит впечатляюще? И это далеко не все, что вас ожидает! Также мы добавили оптимизирующий ваш код компилятор, тестовый фреймворк, улучшенную темизацию, больше виджетов и полную поддержку многоязычных приложений. Все это идет с установкой всего лишь одного npm пакета.

В статье мы покажем, как создать первое Qooxdoo приложение и запустить его в два клика.

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

Jenkins pipelines с Groovy

Блог компании OTUS Программирование *Groovy & Grails *
Recovery mode

Добрый день, коллеги. Jenkins является одной из самых популярных систем CI/CD, которая применяется для построения пайплайнов сборки и доставки.

Jenkins поддерживает построение пайплайнов на основе Groovy скриптов. Использование Groovy дает возможность очень гибко настраивать пайплайны под нужды конкретного проекта.

Рассмотрим основы построения пайплайнов в Jenkins с использованием Groovy скриптов.

Groovy - это объектно-ориентированный язык программирования, использующий платформу JVM. Этот динамический язык имеет множество возможностей, вдохновленных Python, Smalltalk и Ruby. Он также предлагает множество функций для повышения скорости и удобства написания кода, таких как поддержка DSL, замыкания и динамическая типизация.

Почему стоит использовать Groovy в Jenkins?

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

Нюансы поддержки npm в Deno

Блог компании Самокат.Тех Информационная безопасность *Программирование *Node.JS *TypeScript *

Всем, привет! Меня зовут Данильян, я работаю в Самокате фронтенд-разработчиком и разрабатываю бэкофисное приложение с использованием React. Помимо работы, у меня есть несколько сайд-проектов, в которых я широко использую Deno. В последнее время этот проект радует новыми фичами чуть ли не каждую неделю и об одной из них я хотел бы рассказать в этом посте.

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

Как развернуть IDE для прототипирования в облаке за 5 минут?

Блог компании Selectel Настройка Linux *Программирование *Облачные вычисления *Управление разработкой *

Как часто бывает: устанавливаете разные пакеты и программные модули и через время замечаете, как ОС превращается в dependency hell. С этим сценарием знаком почти каждый разработчик.

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

Под катом делимся лайфхаком, как за несколько минут развернуть IDE в облаке и подключиться к ней через браузер — без использования терминала с Vim. Сохраняйте статью в закладки: пригодится тем, кто занимается прототипированием систем.
Читать дальше →
Всего голосов 39: ↑38 и ↓1 +37
Просмотры 2K
Комментарии 2

Программировали два товарища

Программирование *Управление разработкой *Управление персоналом *Карьера в IT-индустрии

Эта грустная история случилась на моих глазах. Не берусь утверждать, что она уже совсем прям завершилась – мало ли, вдруг кто-то из её героев прочтёт, задумается, что-то изменит… Ну или плюнет мне в кружку.

Итак, пришли в компанию, почти одновременно, два распрекрасных программиста. Одного поля ягодки – опыт, квалификация, профессиональная любознательность, энергия. Раньше их карьеры развивались по одинаковому, иногда – равному треку (работали вместе).

Компания в нетерпении потирала ладошки, предвкушая результаты, развитие и непоколебимую дружбу двух программистов. Да, давайте их как-нибудь назовём – Коля и Вася. Всё было хорошо.

Беда на горизонте даже не отсвечивала.

Читать далее
Всего голосов 66: ↑55 и ↓11 +44
Просмотры 21K
Комментарии 73

Колдовской NeoVIM. Часть первая. «Neovim VS Ваша IDE, или долой мышей!»

Программирование *VIM *Разработка под Linux *
Из песочницы

Nvim - это не обычный текстовый редактор, а программа, которая позволяет вам превратить свой рабочий процесс в изящный танец или фортепианную партию.

Фишкой колдовского редактора является то, что вы общаетесь с ним не через аналоговое управление (двигаем мышкой, вводим текст), а через команды и макросы. Зачем заморачиваться и пользоваться текстовым редактором через код?

Потому что это чертовски быстро!

Читать далее
Всего голосов 20: ↑16 и ↓4 +12
Просмотры 6.6K
Комментарии 71

Земля круглая, вода мокрая, JPEG шакалит, небо голубое… Или нет?

Программирование *Алгоритмы *Обработка изображений *Математика *

Вы можете сказать, что один факт выбивается из этого ряда в заголовке, потому что он не так очевиден, как остальные. Еще лет 10-15 назад я бы никогда не подумал, что тут могут быть возражения, а сейчас уже и не удивляюсь, что приходится объяснять простые истины: дело в том, что планеты обладают очень большой массой, поэтому гравитация стремится придать им форму шара. Вот и все! Хотел бы на этом закончить статью и поблагодарить за внимание.

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

Истории

Лекция 8. Helicopter Game 3D — CS50`s Introduction to Game Development с русскими субтитрами

Программирование *Разработка игр *Unity *Дизайн игр *
Перевод

Привет! Перевод очередной лекции на этот раз о знакомстве с Unity и о Helicopter Game 3D в частности

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

Величайшие программисты 21 века. Джон-Движок Кармак

Блог компании RUVDS.com Программирование *Разработка игр *Управление разработкой *История IT

Джон Кармак вместе с тёзкой Джоном Ромеро стали родоначальниками игрового жанра FPS. На слабеньких 486SX, без видеокарт (!) они выдали настоящий 3D-шутер без лагов с эффектом присутствия, что стало бомбой для 1993 года — в эпоху пошаговых стратегий и отсутствия скроллинга. Казалось, тут вмешалась чёрная магия…

В принципе, примерно так и есть. В разработке Wolfenstein 3D, Doom и движка Quake Джон Кармак действительно использовал кучу нестандартных приёмов вроде конверсии указателей или выхода за границы объектов, чтобы в циклах получать доступ к другому объекту, который гарантированно идёт следом.

Уровень программирования Doom и Quake до сих пор считается непревзойдённым образцом хакерских оптимизаций, а сам Джон Кармак — эталон сверхэффективного разработчика. Благодаря высочайшему качеству программирования Doom стал феноменом, который изменил мир.
Читать дальше →
Всего голосов 111: ↑107 и ↓4 +103
Просмотры 23K
Комментарии 56

ActiveRecord Schema Consistency — а если проверю?

Блог компании Evrone Ruby *Программирование *Ruby on Rails *

Это ещё один текст по мотивам доклада на Ruby Russia 2022. Он посвящён консистентности схемы базы данных на примере библиотеки database_consistency. Автор — Евгений Демин, Principal Engineer и Ruby-разработчик Toptal.

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

Чем самообучение лучше курсов

Программирование *Учебный процесс в IT Карьера в IT-индустрии Изучение языков Удалённая работа

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

Читать далее
Всего голосов 32: ↑27 и ↓5 +22
Просмотры 7.2K
Комментарии 87

Обзор книги Дэна Бейдера «Чистый Python. Тонкости программирования для профи» — почему её стоит прочитать

Python *Программирование *Профессиональная литература *Учебный процесс в IT Читальный зал

Для кого эта книга? Точно не для начинающих — это не учебник. Скорее, для профессионалов, но и не для гуру. Если вы уже программируете на Python, но всё ещё чувствуете себя неуверенно в чисто питоновских концепциях, то эта книга для вас. Особенно, если до этого вы писали приложения на каком-то другом языке программирования. Книга «Чистый Python» позволит вам существенно продвинуться на пути к цели — постижению дзена Python. Ваш код станет чище, красивее и понятнее. А ещё гораздо более эффективным, ведь дзен — это не только про красоту, но и про использование всех возможностей этого прекрасного языка. И даже только ради этого книгу «Чистый Python» стоит прочитать.

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

Вклад авторов