Рубрика «программа»

image

Зачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT, отличие -fPIE от -fPIC, как писать скрипты для ld и т. п. Недавно я копал SDK для первых версий Symbian и основываясь на решениях из этой ОС понял, каким образом можно сделать крайне «дешевую» загрузку любого нативного кода практически на любом микроконтроллере, совершенно не вникая в особенности кодогенерации под неё! Сегодня мы с вами: узнаем, что происходит в процессе загрузки программы ядром Linux, рассмотрим концепцию, предложенную Symbian Foundation и реализуем её на практике для относительно малоизвестной архитектуры — XTensa (хотя она используется в ESP32, детали её реализации «под капотом» для многих остаются загадкой). Интересно? Тогда добро пожаловать под кат!
Читать полностью »

Вернёмся к вопросу о компьютерах. Вопроса, что следует считать первым (или не совсем) компьютером, мы успели коснуться в статье про разностную машину Бэббиджа. А там, где есть первый компьютер, есть и первый программист. И кто же был этим супергероем, чинящим всё — от холодильника до лыж? А ответ, между тем, лежит недалеко от механического зверя Чарльза Бэббиджа, и в какой-то мере даже с ним связан. Итак, на сцену выходит леди Августа Ада Кинг Байрон, графиня Лавлейс!

image
Мать вычислений, бесподобная леди Лавлейс
Читать полностью »

image

В наши дни массовые хранилища данных для компьютеров довольно просты. Они либо твердотельные, либо используют вращающийся диск. Есть несколько уникумов, использующих ленту, но по сравнению с тем, сколько их было раньше, лента скорее мертва, чем наоборот. Но еще не так давно число типов запоминающих устройств было огромным. Ленты, диски, барабаны, перфокарты, бумажная лента и еще более странные вещи. Но наверное ни один из них не был настолько странным, как накопитель IBM 2321 Data Cell — то, что внутри IBM называлось MARS.
Читать полностью »

Введение

Методология разработки имитационных моделей и симуляторов по различным техническим дисциплинам в основном ориентирована на снижение уровня абстракции учебного материала. Наряду с теоретическим учебным материалом наглядное имитационное моделирование того или иного технологического процесса или операции позволяет учащемуся в более полной мере освоить преподаваемый материал с максимальным приближением к естественным условиям. При этом имитационные модели и симуляторы могут рассматриваться только как вспомогательный инструмент учебного процесса. Основное назначение данной категории образовательных ресурсов – базовое (начальное) ознакомление с принципами работы сложных технических объектов в условиях отсутствия возможности использования реального промышленного оборудования, либо в целях предварительного повышения компетенции учащегося перед прохождением производственной практики.
Читать полностью »

На Хабре (да и в реальной IT жизни) встречаeтся много вопросов вида:

  • Надо ли обновлять систему (или зависимости в приложении), если и так всё работает?
  • Нужны ли вообще тесты (автотесты) в приложении (вы ведь на них потратите своё время и деньги заказчика)?
  • Если ли смысл в паттернах и выделении абстракций (ведь подобное размазывает код, приводит к снижению производительности и т.д.)?

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

Читать полностью »

Возможно, вы узнали о выпуске пакета средств квантовой разработки Quantum Development Kit и подумали, что это звучит безумно круто… а потом вспомнили, что про квантовую механику почти ничего не знаете. Но ничего страшного. Через 30 минут вы будете знать о кубитах, суперпозиции и квантовой запутанности достаточно, чтобы написать свою первую программу и, что более важно, неплохо понимать, что она делает.

Квантовые вычисления и язык Q# для начинающих - 1Читать полностью »

Катастрофические последствия программных ошибок - 1

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

В идеальной ситуации баги исправляют все и сразу. Но в жизни всегда есть куча задач, отодвигающих полный и бесповоротный багфикс (новый функционал, срочные хотфиксы, расставленные приоритеты при исправлении багов). Это значит, что в первую очередь находятся и исправляются очевидные и явные проблемы. Остальные тихо ждут своего часа, превращаясь в бомбы замедленного действия. Иногда ошибки приводят не только к неприятностям в жизни рядового разработчика, но и вызывают настоящие катастрофы. Сегодня у нас подборка и объяснение самых кошмарных багов в истории разработки ПО.
Читать полностью »

Распутывая историю Ады Лавлейс (первого программиста в истории) - 1

Перевод поста Стивена Вольфрама "Untangling the Tale of Ada Lovelace".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации.


Содержание

Ранние годы Ады
Чарльз Бэббидж
Уровень развития этой области
Возвращаемся к Аде
Возвращаясь к Бэббиджу
Статья Ады
После статьи
После смерти Ады
Что стало с Бэббиджем?
Повторное открытие
О чем на самом деле писала Ада
Вычисление чисел Бернулли
Бэббидж vs. Ада?
Секретный ингредиент Бэббиджа
В большем масштабе
А что, если...
Какими они были?
Заключение


Ада Лавлейс родилась 200 лет назад. Для некоторых она является знаменательной фигурой в истории вычислительной техники; для других — изрядно переоцененной личностью. В течение долгого времени я пытался разобраться, как всё было на самом деле. И вот, к её двухсотлетию, я решил разобраться в том, что называл для себя "тайной Ады".

Получилось намного сложнее, чем я ожидал. Историки расходятся во мнениях. Личности в истории сложно изучать. Технологии трудно понять. Вся история переплетается с обычаями 19-го века британского высшего общества. И есть удивительное количество ошибочных сведений и неверных трактовок.

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

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

image

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

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

Существует ли этика у журналистов-роботов? Когда редакторы рассматривают возможность использования автоматизированного написания новостей, какие вопросы возникают касательно точности, качества и открытости?
Читать полностью »

image

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

Может показаться, что эти эмоции действительно запутанные и программе их трудно понять. Но Скип Риццо, психолог, который помогал разрабатывать Ellie, думает иначе.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js