Pull to refresh
3
0.4

User

Send message

Индия выходит на рынок полупроводников: когда ожидать мощные индийские чипы?

Reading time4 min
Views4.1K

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

В 2024 году страна запустила масштабную программу по развитию производства микросхем. Первые заводы запустят к 2027 году. В условиях сильной конкуренции с уже устоявшимися мировыми лидерами, такими как Тайвань, Южная Корея и США, Индия надеется стать важным игроком на глобальной арене. Подробности — под катом.
Читать дальше →
Total votes 29: ↑28 and ↓1+37
Comments6

Некоторые малоизвестные фичи, фокусы и причуды языка C

Reading time19 min
Views22K

В этом посте разобраны некоторые фокусы, причуды и фичи языка C (некоторые из них – весьма фундаментальные!), которые, казалось бы, могут сбить с толку даже опытного разработчика. Поэтому я потрудился сделать за вас грязную работу и (в произвольном порядке) собрал некоторые из них в этом посте. Примеры сопровождаются ещё более вольными краткими пояснениями и/или листингами (некоторые из них цитируются).

Конечно же, здесь я не берусь перечислять абсолютно всё, так как факты из разряда «функция nan() не может устанавливать errno, поскольку в определённых ситуациях поведёт себя как strtod()» не слишком интересны.

ВНИМАНИЕ: сам факт попадания тех или иных вещей в эту подборку  не означает автоматически, что я рекомендую или, наоборот, не рекомендую ими пользоваться! Некоторые из приведённых примеров никогда не должны просачиваться за пределы списков наподобие этого, тогда как другие примеры невероятно полезны! Уверен, что могу положиться на ваш здравый смысл, дорогие читатели.

Читать далее
Total votes 72: ↑71 and ↓1+90
Comments44

Чистый код — дар или проклятие? Акт I. Конфронтация

Level of difficultyMedium
Reading time24 min
Views8.2K

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

Читать далее
Total votes 21: ↑21 and ↓0+30
Comments29

Excel — самый опасный софт на планете

Level of difficultyEasy
Reading time7 min
Views99K


В 80-е годы компании покупали компьютеры, чтобы запустить электронные таблицы. Автоматический расчёт налогов и зарплат казался чудом. Тысячи бухгалтеров оказались на улице, остальным пришлось осваивать работу ПК, а конкретно — Excel.

И до сих пор Excel играет важнейшую роль в бизнесе многих компаний. Без электронных таблиц у них просто всё развалится. Сложно найти на компьютере другую программу настолько древнюю и настолько важную, от которой столько всего зависит. И в такой ситуации факапы неизбежны.
Читать дальше →
Total votes 98: ↑84 and ↓14+95
Comments247

16 Способов Отладки и Диагностики FirmWare

Level of difficultyEasy
Reading time9 min
Views8.1K

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

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

Читать далее
Total votes 14: ↑11 and ↓3+14
Comments24

Путешествие сквозь секреты прошивок: от BIOS/UEFI до OS

Level of difficultyMedium
Reading time17 min
Views11K

Вы когда-нибудь задумывались, что происходит, когда вы нажимаете кнопку питания на компьютере? За той краткой паузой, прежде чем экран загорится, скрывается сложный процесс. В этой статье мы погрузимся в увлекательный мир прошивок (firmware) и исследуем, как разные компоненты взаимодействуют во время загрузки системы. Поняв эти связи, вы получите четкое представление о том, как основные элементы приводят вашу систему в действие. Мы сосредоточимся на Intel архитектуре x86, хотя многие принципы применимы и к другим архитектурам.

Читать далее
Total votes 31: ↑31 and ↓0+41
Comments4

Деградация кода — это результат неправильной организации процессов

Reading time7 min
Views21K

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

На своей должности руководителя разработки я стал непосредственным свидетелем разницы между командой, которой предоставили мощь и… какой антоним у мощи? Они были не слабыми, а, скорее, немощными.

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

Что я под этим подразумеваю? Давайте поговорим о том, как немощные организации влияют на техническую работу.

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

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

Давайте изучим это на примере деградации кода.
Читать дальше →
Total votes 31: ↑28 and ↓3+36
Comments31

Как оптимизировать аккумуляторную батарею

Level of difficultyMedium
Reading time11 min
Views10K

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

Представьте, что работаете инженером в компании по производству электромобилей, и ваш начальник обращается к вам со следующими словами: «Джереми, у нас проблема! (и да, зовут вас Джереми). Всё эти чёртовы батареи! В машине их слишком много, и это выходит для нас очень накладно. Но при этом мы хотим, чтобы клиенты могли спокойно проехать 400 миль на одном заряде».

Что вы в этой ситуации сделаете? Как вы оптимизируете батареи? Это же чёрный магический ящик, не так ли? Не так. Используйте симуляцию.
Читать дальше →
Total votes 39: ↑37 and ↓2+56
Comments3

Разработчики встраиваемых систем не умеют программировать

Reading time9 min
Views59K

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

Редко когда речь заходит об обратной проблеме, имеющей место в куда более узких кругах разработчиков встраиваемых систем, включая системы повышенной отказоустойчивости. Есть основания полагать, что ранний опыт использования MCS51/AVR/PIC оказывается настолько психически травмирующим, что многие страдальцы затем продолжают считать байты на протяжении всей карьеры, даже когда объективных причин для этого не осталось. Это, конечно, не относится к случаям, где жёсткие ценовые ограничения задают потолок ресурсов вычислительной платформы (микроконтроллера). Но это справедливо в случаях, где цена вычислительной платформы в серии незначительна по сравнению со стоимостью изделия в целом и стоимостью разработки и верификации его нетривиального ПО, как это бывает на транспорте и сложной промышленной автоматизации. Именно о последней категории систем этот пост.

Читать далее
Total votes 100: ↑81 and ↓19+92
Comments239

Экстремальное программирование: полное руководство

Level of difficultyEasy
Reading time6 min
Views8K

Экстремальное программирование (XP) — это одна из методологий Agile. Несмотря на название, некоторые практики уже стали стандартом в индустрии — например, рефакторинг и непрерывная интеграция. XP сосредоточена на упрощении процесса разработки, минимизации документации и максимизации обратной связи от заказчиков.

Читать далее
Total votes 7: ↑5 and ↓2+5
Comments11

Получаем белый IP с помощью VDS за копейки

Level of difficultyEasy
Reading time2 min
Views25K

Всем привет! В этой статье я расскажу, как получить белый IP-адрес без помощи провайдера и настройки вашего роутера, используя обычный VDS (виртуальный выделенный сервер), или как его ещё называют "Дедик". С помощью VDS вы сможете подключаться к вашему компьютеру по IP-адресу VDS с любого интернета и любой точки мира, размещать сайт на своём железе и использовать его IP-адрес.

Для чего это может быть нужно?

Все зависит от ваших потребностей и нужд. Вот несколько примеров использования:

Читать далее
Total votes 27: ↑16 and ↓11+9
Comments60

Сколько стоит 3D-принтер по металлу?

Reading time6 min
Views15K

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

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

Читать далее
Total votes 17: ↑11 and ↓6+11
Comments9

Балансировка планов в 1С:ERP: кратко про основные подходы и решения

Level of difficultyEasy
Reading time6 min
Views1.1K

Балансировка планов в 1С:ERP — одна из основных задач, с которой сталкиваются многие предприятия, которые хотят оптимизировать свои процессы производства и управления ресурсами.

Рассмотрим наиболее хорошие подходы в процессе планирования с помощью функционала 1С:ERP.

Читать далее
Total votes 8: ↑7 and ↓1+10
Comments4

Как много кликов сделает пользователь перед тем как заснет?

Level of difficultyEasy
Reading time3 min
Views1.4K

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

Однако консультант по юзабилити Стив Круг, автор книги «Не заставляйте меня думать. Веб-юзабилити и здравый смысл» пришел к выводу, что важно даже не само количество кликов, а их сложность, и вот что это значит.

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

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

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

Вот пример старого веб-дизайна онлайн-статьи на ресурсе издания с трудным неоднозначным выбором для пользователя: 

Читать далее
Total votes 5: ↑3 and ↓2+3
Comments2

Как мы получили Digital Nomad визу Португалии на Бали: личный опыт и пошаговая инструкция

Reading time12 min
Views8.2K

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

В статье я пошагово описываю весь процесс: от выбора типа визы и страны, где можно быстрее всего оформить ВНЖ, до получения двух Temporary stay виз в консульстве Португалии в Джакарте. Попутно делюсь всеми нюансами подачи из Индонезиями, полезными контактами и ссылками для тех, кто решится на этот квест.

Читать далее
Total votes 17: ↑11 and ↓6+12
Comments71

Генерация зависимостей внутри программы

Level of difficultyEasy
Reading time7 min
Views4.4K

В программировании программы часто строятся иерархично. Один программный компонент вызывает функции из другого программного компонента. Как бы представить эту взаимосвязь в законченной программе?

Эту задачу можно решить прибегнув к языку Graphviz и утилитам cpp, dot, make, chrome.

Читать далее
Total votes 14: ↑10 and ↓4+11
Comments48

CRM (Crew resource management) или осознанное неподчинение

Level of difficultyMedium
Reading time9 min
Views2.3K

Когда со мной сразу соглашаются, я чувствую, что я не прав
Оскар Уайльд

История

В авиации есть методика снижения человеческой ошибки: Управление ресурсами экипажа, или CRM — Crew resourse management. CRM стала развиваться после катастрофы на Тенерифе в 1977 году, когда столкнулись 2 боинга на взлетно-посадочной полосе — погибло более 500 человек. Пилоты проигнорировали сомнения бортинжинера в том, что взлетная полоса свободна, что и послужило одной из причин аварии.

Читать далее
Total votes 9: ↑7 and ↓2+8
Comments18

Программист никому не должен доверять, и даже самому себе

Level of difficultyMedium
Reading time7 min
Views5.5K

Программисты должны быть параноиками.

  • «Я дважды проверил код»
  • «Код проходит все тесты»
  • «Ревьюер одобрил мой код»

«Так ли корректен мой код?»

Писать код корректно трудно, а подтвердить корректность кода невозможно.
Вот некоторые из причин этого:

  • Всеобщность: даже если код правильно вёл себя один раз, будет ли он вести себя так во всех случаях на всех машинах и всегда?
  • Ложное прохождение теста: непрохождение тестов указывает на наличие багов, но прохождение тестов не гарантирует их отсутствия.
  • Отсутствие определённости: можно написать формальное доказательство корректности кода, но теперь нужно задаться вопросом, корректно ли доказательство. Потребуется доказать доказательство. Эта цепочка проверки проверок никогда не закончится.

Безумно было бы стремиться к определённости корректности кода. Баг может скрываться в зависимости, которую вы никогда не найдёте. Однако отчаиваться не стоит, всё равно можно снизить вероятность багов, расширяя своё понимание и внимательность.
Читать дальше →
Total votes 26: ↑26 and ↓0+34
Comments4

Три недели кодирования экономят два дня проектирования

Level of difficultyMedium
Reading time14 min
Views26K

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

Писать постановку, но чуть-чуть
Total votes 69: ↑67 and ↓2+80
Comments73
1
23 ...

Information

Rating
1,977-th
Registered
Activity