Pull to refresh
2
0
Send message

Как улучшить английский в документации

Reading time11 min
Views36K

Я работаю техническим писателем в компании documentat.io. Мы занимаемся заказной разработкой технической документации, в том числе на английском языке. Иногда я дорабатываю уже существующие документы или спецификации к API на английском. Как правило, такие документы написаны русскоязычными разработчиками, которые неплохо владеют английским. И всё же они часто допускают характерные грамматические, пунктуационные и стилистические ошибки.

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

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

Читать далее
Total votes 81: ↑80 and ↓1+97
Comments27

Брюнетки против блондинок или как на мониторе показать цвет свечения светильника?

Reading time19 min
Views5.7K

Метод демонстрации на мониторе цветности свечения светильника в соответствии с требованиями проекта национального стандарта «Методы определения неоднородности цветности», и шаблоны в MS Excel.

Читать далее
Total votes 39: ↑39 and ↓0+39
Comments14

Системный шрифт как проприетарные куки. Необычный метод пометки вашего устройства

Reading time8 min
Views8.3K
Предположим, перед разработчиком поставлен такой вопрос — как со стороны веб-сайта определить, что у пользователя установлено конкретное приложение? Вопрос интересный. На него есть несколько способов ответа. Как вам такой вариант — поставить в систему уникальный шрифт при инсталляции программы? Ведь браузер всегда отдаёт по запросу список системных шрифтов. Значит, проблема решена.

Так делают различные программы, хотя это не назовёшь образцом правильного программирования. У метода свои преимущества и недостатки.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments8

Отладка, модификация и устранение багов в сторонних 32-х и 64-х разрядных приложениях под ОС Windows

Reading time14 min
Views5.8K

В этой статье я хочу поделиться практическими методами отладки, модификации и устранения багов в 32-х и 64-х разрядных приложениях под ОС Windows, разработанных на языке C/C++, исходные коды которых по тем или иным причинам не стали достоянием общественности.

Этот пробел отчасти можно попытаться устранить, например, с помощью плагина Hex-Rays для IDA Pro, и зачастую удаётся довольно качественно восстановить нужный участок исходного кода, обнаружив в нём проблемное место. Но после этого всегда возникает вопрос - что с этим исправленным кодом делать дальше, как и где его можно использовать? На данном этапе мне всегда хотелось взять этот отдельно декомпилированный фрагмент программы, поменять в нём что-нибудь и затем каким-то чудесным образом «поместить обратно» в программу.

Далее будет описан один из возможных способов реализации этой идеи на практике.

Читать продолжение
Total votes 26: ↑26 and ↓0+26
Comments4

Новоглифы или иероглифы будущего

Reading time3 min
Views10K

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

Экспресс от аэропорта слегка покачивался, навевая сладкую дрёму. За окном мелькали березки вперемешку со строениями непонятного назначения, назойливая мысль о том, что что-то новое и неуловимое появилось в моём городе никак не прогонялась. Я допил капучино, смял билет, запихнул его в стакан от кофе (всё равно его уже никто не будет проверять) и оторопел: на стакане были надписи на четырёх языках.

Read more
Total votes 40: ↑39 and ↓1+49
Comments47

Познание

Reading time7 min
Views2.8K

У Марк Твена есть замечательная повесть Адам и Ева. В какой-то момент повествования Ева начинает давать всем окружающим предметам уникальные названия. Что очень расстраивает Адама, который не понимает почему плавающая рыба (рыба) и скачущая рыба (кролик) и несъедобная рыба (ребёнок) должны называться по-разному. Ведь все это рыба. Эта, казалось бы, обычная семейная склока показывает два разных подхода к изучению мира, которые в общем-то не противоречат, а дополняют друг друга.

Подход Евы называется феноменологическим. Суть которого в следующем; не важно понимать как устроены объекты наблюдения, важно понимать, как они взаимодействуют друг с другом и с тобой.

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

Почему некоторым так сложно учиться программированию?

Reading time15 min
Views110K

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

Однако с этим я согласиться никак не могу. Программирование по содержанию ничуть не сложней многих других отраслей знаний, а в чем-то даже и легче, особенно когда касается прикладных задач. Наткнулся на заметку человека, который высказал весьма небанальную мысль: при обучении программированию "с нуля" этот "ноль" для всех сильно разный. И у меня есть стойкое убеждение, что сложность освоения четко зависит от значения этого нуля. А вот почему он разный и что на него влияет- мне и хотелось бы поразмышлять.

Читать далее
Total votes 251: ↑225 and ↓26+238
Comments720

Рабочий стол Linux в браузере

Reading time5 min
Views17K

Первый в мире браузер (1993 года) выполнял две функции:

  • рендеринг HTML;
  • переход по гиперссылкам (навигация, браузинг — отсюда и название «браузер»).

Всё было предельно просто. Но те времена давно ушли.

Современный браузер эволюционировал в сложнейшую мета-систему, которая по объёму кода превосходит ядра многих ОС. Более того, браузер де-факто может работать как операционная система. И не только в Linux-виртуалке (как ChromeOS), но как реальная платформа для запуска настоящих приложений, в том числе нативных программ на C, C++, Go и Node.js.
Читать дальше →
Total votes 32: ↑29 and ↓3+36
Comments7

Беседа о справедливой экономике

Reading time21 min
Views9.7K


Пролог


Гарик: Док, что такое экономика?

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

Гарик: Какой она должна быть в идеале.

Док: То есть справедливая?

Гарик: Именно справедливая! К чему стремиться, как не к справедливости?!

Док: А вывих головного мозга не получишь? Экономика – штука заумная, для незаурядных умов.

Гарик: Ты так объясни, чтобы дураку было понятно. Я как-нибудь разберусь.

Предупреждение автора: Док не шутит, экономика – штука заумная, и материал под катом объемный. Трижды подумайте, стоит ли вам знакомиться с постулатами справедливой экономики.
Я не боюсь вывиха головного мозга
Total votes 50: ↑22 and ↓28-6
Comments1001

Ересь

Reading time8 min
Views57K
image

Одна из самых удивительных вещей, свидетелем которых я был в своей жизни, — это возрождение концепции “ереси”.

В своей превосходной биографии Ньютона Ричард Уэстфолл пишет о моменте, когда Ньютона избрали членом Тринити-колледжа:

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


В первый раз, когда я прочитал это в 1990-х годах, это звучало забавно средневеково. “Не вляпаться в ересь”. Но когда я перечитал этот текст 20 лет спустя, фраза прозвучала как описание современной ситуации на рабочих местах.

Количество мнений, за которые вас могут уволить, постоянно растет. Те, кто увольняет, не используют слово «ересь» как обоснование, но структурно они эквивалентны. В структурном отношении ересь имеет две отличительные особенности: (1) она имеет приоритет над вопросом об истинности или ложности и (2) она перевешивает все остальное, что сделал говорящий.

Например, когда кто-то называет утверждение «%%%-истским», он также неявно говорит, что это конец обсуждения. Сказав это, они не продолжают выяснять, верно это утверждение или нет. Использование таких меток является разговорным эквивалентом сигнализации об исключении. Это одна из причин, по которой они используются: чтобы закончить обсуждение.

Если вы обнаружите, что разговариваете с кем-то, кто часто использует эти ярлыки, возможно, стоит прямо спросить его, верят ли они, что детей выплескивают вместе с водой. Может ли утверждение быть %%%-истским для какого-либо значения %%%, а также истинным? Если ответ да, то они признаются в запрете правды. Это достаточно очевидно, и я думаю, что большинство ответит «нет». Но если они ответят «нет», легко показать, что они ошибаются и что на практике такие ярлыки применяются к утверждениям независимо от их истинности или ложности.
Читать дальше →
Total votes 171: ↑151 and ↓20+166
Comments325

Настолько ли общество прогнило?

Reading time5 min
Views74K

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

Читать далее
Total votes 164: ↑128 and ↓36+124
Comments1078

Запуск MFC-приложения на не-x86 архитектуре нативно при помощи Winelib и подключение к нему плагина на Qt

Reading time5 min
Views2.9K

Занимался я недавно портированием одного старого win32 MFC MDI приложения, до сих пор разрабатываемого с использованием Microsoft Visual Studio 6.0 (среда разработки 1998 года выпуска), на Linux. При чем необходимо было, чтобы под Linux собирался нативный бинарник в формате ELF из исходников. Взгляд упал на проект Wine, позволяющий запускать бинарники Windows (формат PE - Portable Executable). Один из компонентов Wine - библиотека Winelib - является прослойкой (враппером) между вызовами win32 и вызовами библиотек Linux. С помощью Winelib можно под Linux собирать win32 приложения из исходников. В составе Winelib есть десятки врапперов стандартных библиотек Windows. Но вот незадача. Враппера для MFC (Microsoft Foundation Classes) нет. В итоге прослойку между классами MFC и вызовами win32, пригодную для компиляции с использованием Winelib, пришлось готовить самому. Далее будет описан путь к решению задачи, а также компромиссы, на которые пришлось пойти по ходу реализации.

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments2

Как REST выродился в собственную противоположность

Reading time13 min
Views12K

Меня все сильнее раздражает, сколько людей готовы записывать в REST API любой интерфейс на основе HTTP. Сегодня приведу в качестве примера SocialSite REST API. Это же вызовы удаленных процедур (RPC). Он просто выкрикивает RPC. Связность между элементами на экране настолько сильная, что это творение заслуживает рейтинга X.

Читать далее
Total votes 20: ↑16 and ↓4+17
Comments19

Прагматичный набор модификаций для Windows 10 на старом железе

Reading time7 min
Views45K

В статьях про раздувание софта часто упоминают лаги Windows 10/11. Главная причина — ожирение кода в новых версиях. Для работы ОС с каждым годом требуется всё больше ресурсов. После засорения системы приходится ждать 10–20 секунд, пока отрисуются пункты контекстного меню по правой кнопке…

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

Но что делать, если приходится поневоле сидеть под Win10/11? Тогда остаётся одно — бороться с ожирением софта хирургическим путём. А именно, отключить ненужные модули и компоненты, развестистый GUI, анимацию и спецэффекты, удалить лишний софт, почистить реестр. Другими словами, спустить жирок из системы. После мануальных процедур винда начинает шевелиться значительно бодрее.
Читать дальше →
Total votes 106: ↑51 and ↓55+21
Comments114

Разработчик с мозгом груга

Reading time14 min
Views91K

Введение


это сборник мыслей о разработке программ собранный разработчиком с мозгом груга

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

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

разработчиков с большим мозгом много, некоторым страница не понравится, скривят кислая рожа

Ещё больше-больше ДУМАЮТ, что они разработчики с большим мозгом и им она тоже не понравится

(груг раньше думал груг с большим мозгом, но потом всё понял)

это ладно!

груг надеется, что тебе понравится читать и может ты научишься на много-много ошибка груг совершил за длинную жизнь программиста
Читать дальше →
Total votes 223: ↑197 and ↓26+209
Comments81

Вы в Самом Деле Хотите Стать Программистом Микроконтроллеров?

Level of difficultyEasy
Reading time68 min
Views77K

В этом тексте я напишу о буднях программиста МК в РФ.

Что вообще пишут программисты МК и на чем?

Основной язык программирования это С. Языку С уже более 50лет. Кроме микроконтроллеров С уже практические никому не нужен. Навыки программирования на С очень слабо конвертируются. В свое время, видимо на С написали компилятор для С++ и нужда в С для desktop как таковая отпала. A сам С остался для сборки артефактов для микроконтроллеров с экстремально малыми ресурсами. Хотя и сейчас большинство компаний в ЕС уже микроконтроллерные сборки собирают на С++ 17. 

Иногда программистам MК приходится обсчитывать аналоговые цепи и вычислять какие-то сложные 8-этажные формулы и строить графики. Для этого практикуют бесплатный интерпретатор Python.

Главным образом программисты МК составляют Board Support Package, пишут драйверы для новых умных периферийных чипов, пишут загрузчики, портируют RTOS(ы) на разные процессорные ядра, пишут код-генераторы, скрипты сборки, составляют модульные тесты, изредка производят рефакторинг, часто чинят ошибки в Legacy коде, изредка что-то изменяют в коде Assembler(а), который запускается до вызова функции main().

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

Читать далее
Total votes 135: ↑110 and ↓25+122
Comments433

Микросервисы и неизбежная боль?

Reading time20 min
Views32K

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

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

Читать далее
Total votes 55: ↑53 and ↓2+64
Comments105

Магия Ctrl-C Ctrl-V, или как перестать сохранять картинки и начать жить

Reading time9 min
Views40K
image

Одна из немногих стандартных утилит Windows, которой я пользуюсь практически каждый день — это snippingtool, или, попросту говоря, «Ножницы». Свою задачу она выполняет на ура (впрочем, многого от неё я и не требую), а из прочих полезностей можно отметить вставку выделенного региона напрямую в Skype, без необходимости сохранять изображение в файл — достаточно всего лишь нажать Ctrl-V в окне ввода сообщений. Приятно, что название файла в таком случае будет состоять из даты и времени вместо, например, хеша.

Несмотря на то, что в самом Snipping Tool имеется возможность обводить определённые части изображения, порой этого недостаточно:

  • Во-первых, «Ножницы» не умеют обрабатывать комбинацию клавиш Ctrl-Z, т.е. сделать в них Undo не получится, в связи с чем одна-единственная ошибка в редактировании может заставить начать всё с начала
  • Во-вторых, обводить изображение можно только при помощи Pen'а и Highlighter'а, что не очень удобно, когда надо, например, указать на прямоугольную область

Именно по этим причинам я зачастую обращаюсь к mspaint. А вот у него есть обратный недостаток — вставить изображение напрямую из буфера обмена в Skype уже не получится.

В чём же причина такого поведения? Можно ли его исправить? Давайте разберёмся.

Как протекал процесс, и что из этого вышло, читайте под катом.
Читать дальше →
Total votes 59: ↑55 and ↓4+51
Comments31

Здравствуйте, я ошибка 217 и я вам ничего не скажу

Reading time10 min
Views103K
Вероятно многие встречались с таким вот «партизаном» при старте или завершении приложения:



Очень информативное сообщение, сразу понятна причина ошибки, место и способ ее решения.
Впрочем, если без шуток, что это вообще такое?
Конечно-же это исключение, но ни тип исключения, ни его описание нам не доступны — просто «Runtime error 217» и адрес, а дальше сами…

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

И тратил бы его в дальнейшем, если бы на днях со мной не связался Виктор Федоренков и не рассказал о своих мыслях по поводу ошибки за номером 217.
Читать дальше →
Total votes 137: ↑114 and ↓23+91
Comments51

Начинающие программисты боятся темноты

Reading time7 min
Views100K

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

Всех, кто пишет эти радужные истории «войти в айти». Тех, кому я заплатил за курсы по программированию. «Друзей» и «советчиков», которые сказали: смело бросай свою старую, нелюбимую работу, и иди в программисты. Если бы вы только знали, о чём говорите…

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

Я один в темноте.

Читать далее
Total votes 179: ↑148 and ↓31+150
Comments301

Information

Rating
Does not participate
Registered
Activity