Pull to refresh
4
0
Send message

Долгий путь микропроцессора на рынок или учимся читать новости про российские литографы

Level of difficultyHard
Reading time10 min
Views51K

Пару дней назад Хабр в списке новостей вывел и эту - В России создали и тестируют собственный литограф . Новость не вызвала у меня особого интереса - кроме того, что на Хабре завелась особая математика, +68 – 24 = +58, и вот почему.

Читать далее
Total votes 290: ↑253 and ↓37+266
Comments319

Загадочное дело о пропавшей точке

Level of difficultyEasy
Reading time6 min
Views19K

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

В то время клиент пользовался в документах шаблонами Microsoft Word с замещающим текстом. Каждый раз, когда сотруднику клиента необходимо было отправить документ по электронной почте или распечатать документ для отправки почтовой службой, он заменял весь замещающий текст документа (имя, фамилия и так далее).

В компании на тот момент было множество шаблонов с устаревшими версиями. В некоторых шаблонах использовались устаревшие условия договоров, в других — старый логотип компании или неправильный шрифт и так далее. Системой стало невозможно управлять, и клиент попросил нас найти решение.
Читать дальше →
Total votes 85: ↑83 and ↓2+105
Comments32

Почта не ходит далее 500 миль – ЧаВо

Reading time9 min
Views14K
История про электронную почту, которая не уходила дальше 500 миль от отправителя, давно стала бородатой классикой. Я думал, что нормальная реакция – просто посмеяться, но нашлось не так мало людей, пожелавших доказать автору, что такого не могло быть, потому что… В конце концов автор не выдержал и выпустил целый FAQ. Итак, встречайте:

ЧаВо по электронной почте, которая не уходила дальше 500 миль


Я получил множество ответов на публикацию «Почта не ходит дальше 500 миль». Мой рассказ был много раз перепечатан и разошёлся гораздо шире, чем я мог надеяться. Большая часть ответов – благодарности за забавную историю и предложения работы (кстати, спасибо за них, и мне бы хотелось, чтобы они продолжали приходить!) Однако немало было и тех, кто выискивал в моём рассказе неточности и противоречия, придираясь к мелочам. Вместо того, чтобы отвечать на каждый такой выпад, я просто собрал наиболее часто встречающиеся вопросы и ответил на все сразу.

1. Это правда было, или история – всего лишь байка?

Это быль. В то время я отвечал за централизованную систему электронной почты в кампусе Университета Северной Каролины в Чапел Хилл (Chapel Hill). Кроме того, я занимался и настройкой электронной почты тех подразделений, которые по каким-то причинам использовали собственные сервера. Главное в контексте этой истории то, что я написал файл конфигурации почтового сервера, sendmail.cf, который использовался большинством серверов кампуса.
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments12

Многообразие связных списков

Level of difficultyMedium
Reading time13 min
Views9K

Связный список — классическая структура данных, которая позволяет быстрые вставки/удаления, но при этом просаживает другие операции (случайный доступ к элементу). Мы пройдёмся от базовой реализации до других возможных вариаций этой структуры данных и, надеюсь, вместе узнаем что‑то новое. Краем глаза увидим возможные применения связных списков. И в конце, для любителей C++, бонус: использование связного списка для сбора диагностики выделений динамической памяти в вашем коде.

Связать себя со знаниями!
Total votes 25: ↑25 and ↓0+33
Comments7

Базовые концепции аллокаторов

Reading time10 min
Views18K

Находясь в поисках какой-то агрегированной информации о стандартных приёмах, используемых при проектировании кастомных аллокаторов, я обнаружил, что существует достаточное количество статей о том, как аллокаторы работают в C++, каких-то базовых вариантах или наоборот очень специфических версиях, но ничего достаточно общего. Попался только замечательный доклад замечательного Андрея Александреску про неправильную архитектуру std::allocator и собственно базовые концепции построения своего нового самого крутого в мире аллокатора. Эта статья является довольно вольным переводом второй части его выступления с моими небольшими дополнениями. Конечно же, категорически рекомендую посмотреть оригинальный доклад, но, если вы любитель текстовых версий, прошу под кат.

Выделить знания...
Total votes 40: ↑40 and ↓0+40
Comments5

Префиксы is, has, can, should… в нейминге переменных и функций

Level of difficultyEasy
Reading time5 min
Views25K

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

Читать далее
Total votes 70: ↑66 and ↓4+71
Comments56

Четыре частых вопроса по SQL джуну-аналитику и три задачи на собеседовании. Часть 1

Level of difficultyEasy
Reading time8 min
Views29K

Для аналитиков, владение SQL — это база. И от познаний в SQL зачастую зависит, отправит ли вам компания, где вы собеседуетесь — оффер.

В статье мы обсудим четыре области вопросов, которые могут встретиться на собеседованиях по SQL. А в конце рассмотрим три задачки.

Читать далее
Total votes 18: ↑15 and ↓3+16
Comments57

ref locals и ref returns в C#: подводные камни производительности

Reading time7 min
Views24K
В языке C# с самого начала поддерживалась передача аргументов по значению или по ссылке. Но до версии 7 компилятор C# поддерживал только один способ возврата значения из метода (или свойства) — возврат по значению. В C# 7 ситуация изменилась с введением двух новых возможностей: ref returns и ref locals. Подробнее о них и об их производительности — под катом.

Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments12

Как потреблять API с ограничением по RPS в .NET приложениях

Level of difficultyEasy
Reading time11 min
Views13K


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

Интернет яростно сопротивлялся предоставить мне инструкцию к написанию такого кода, закидывая туториалами по настройке ограничения RPS на сервере, а не клиенте.

Но теперь на Хабре есть эта статья, которая научит отправлять запросы из HttpClient так, чтобы не получать 429 Too Many Requests.
Читать дальше →
Total votes 45: ↑44 and ↓1+63
Comments10

Как «оптимизация» зарплат вредит бизнесу, и что делать

Level of difficultyMedium
Reading time64 min
Views35K

Оптимизация фонда оплаты труда (далее - ФОТ) в долгосрочной перспективе вредит компаниям, ухудшает их положение и усиливает кризисы.

Этот вопрос мы рассмотрим на основе проблем в Boeing и Blizzard, разбора жёсткого поведения Amazon в отношении сотрудников, с примерами лучших практик Генри Форда и General Electric, а так же ссылками на исследования, с описанием психологических аспектов и ключевых трендов. И рекомендациями: что с этим делать.

Цель данной публикации - описать ключевые аспекты и нюансы проблемы, чтобы любой мог прийти к финансистам, кадровикам или генеральному директору с ней со словами “хватит вредить бизнесу оптимизацией ФОТ!"

Оптимизировать вред оптимизации ФОТ
Total votes 90: ↑87 and ↓3+100
Comments132

Оцениваем сложность алгоритмов на C# по памяти и времени с примерами

Level of difficultyHard
Reading time10 min
Views9.1K

Продолжаем говорить о производительности и оптимизации кода. Сегодня поговорим о том, как и зачем оценивать сложность алгоритмов,  а также наглядно покажем, как эта сложность влияет на производительность кода.

Читать далее
Total votes 9: ↑6 and ↓3+4
Comments20

Как появилась на свет программа youtube-dl

Reading time10 min
Views29K
Как известно, в данный момент репозиторий youtube-dl на GitHub заблокирован по DMCA-запросу от RIAA. Хотя я не могу комментировать текущие планы мейнтейнеров или текущие дискуссии, но после сделанных обвинений RIAA я подумал, что мне как создателю программы и первому мейнтейнеру будет полезно рассказать о первых годах youtube-dl.

Сборщики меди


В любой хорошей истории должен быть злодей, и в качестве такого персонажа я решил выбрать сборщиков меди — воришек, которые собирали цветные металлы в округе. Именно они подтолкнули к созданию youtube-dl. В далёком 2006 году мой посёлок находился в 5-10 километрах от небольшого города Авилес на севере Испании. Жители Авилеса наслаждались хорошей инфраструктурой и услугами, включая кабельное телевидение и ADSL-доступ в интернет. В моём районе ничего такого не было: слишком далеко от телефонной станции с ADSL, а сборщики меди годами воровали медные провода по пути к ней, время от времени вызывая перебои в телефонной связи и заставляя телефонную компанию заменять эти провода более слабыми и тонкими, потому что их тоже, скорее всего, украдут. Это продолжалось несколько лет.

Единственным вариантом выхода в интернет из дома был модем 56k V.90. На самом деле качество связи было настолько плохим, что приходилось для стабильности снижать скорость до 33,6 Кбит/с. Фактическая скорость загрузки редко превышала 4 КБ/с. В то же время в интернете появился интересный видеосервис YouTube, он быстро набирал популярность, а в конце того же года его купила компания Google.
Читать дальше →
Total votes 111: ↑111 and ↓0+111
Comments29

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

Reading time6 min
Views48K


В ХIV веке в английском языке начался процесс, который называют Великим сдвигом гласных. Латинское произношение и нижненемецкая фонетика стали вытесняться новыми вариантами. В ходе этого процесса два долгих гласных стали дифтонгами, а еще пять сильно изменились.

Но в средние века не было интернета. В каждом графстве постепенно устоялся свой собственный способ написания и произношения. К примеру, слово «church» на территории Англии могли произносить 22 разными способами, а «she» — 60 вариантами. Знакомое всем «though» и вовсе имело целых 500 вариантов написаний и произношений.

Изменил все один человек — Уильям Кэкстон. Но большинство студентов, которые учат английский как иностранный, ругают этого джентльмена последними словами, когда узнают, как именно читаются слова в английском. Спойлер: как попало. И ругают его, даже если вообще никогда не слышали это имя. Мы расскажем, почему.
Читать дальше →
Total votes 91: ↑88 and ↓3+120
Comments334

Аппаратные трояны под микроскопом

Level of difficultyHard
Reading time14 min
Views12K
Хотя индустрия кибербезопасности в основном сфокусирована на атаках на программное обеспечение, не стоит забывать о влиянии на безопасность аппаратных дефектов более низкого уровня, например, тех, которые касаются полупроводников. За последние несколько лет площадь атаки на уровне кремния сильно расширилась. Так как в производстве интегральных схем (ИС) используется всё более сложная микроэлектроника, риски проникновения дефектов в эти системы возрастают.


Процесс проектирования интегральных схем (ИС)

В этой статье мы расскажем об аппаратных троянах, в том числе о списках соединений, подготовке кристаллов, снимках электронных микроскопов и тестировании цепей. Также мы создадим собственную архитектуру и схему аппаратного трояна, которая будет проанализирована при помощи Klayout.
Читать дальше →
Total votes 39: ↑36 and ↓3+40
Comments17

В поисках серебряной пули: необычные патроны

Reading time8 min
Views64K
Посмотрим, как по-разному можно решать одну и ту же инженерную задачу, даже если эта задача — запускать в цель маленькие кусочки свинца.

В сегодняшней программе: болтер для войны во Вьетнаме, огнестрельный дартс и опасное прочтение старой поговорки.
Читать дальше →
Total votes 128: ↑126 and ↓2+166
Comments60

История создания Civilization IV: избавление от унылости

Level of difficultyEasy
Reading time8 min
Views11K
Историю четвёртой части «Цивилизации» можно начать с очередной смены владельца бренда Civilization: Atari (Infrogames) продала их 2К Games, дочерней компании Take-Two. Сумма сделки составила 22,3 миллиона долларов. На дворе стоял 2004-й год.



Хотя на самом деле к тому моменту разработка уже весьма активно велась, так что Сид Мейер и его студия Firaxis отнеслись к происходящему философски: смена издателя не сильно влияла на планы команды. Руководил проектом Сорен Джонсон, набравшийся опыта в работе над предыдущей частью серии.
Читать дальше →
Total votes 27: ↑26 and ↓1+31
Comments13

Как «Ревущий Котёнок» с Reddit заработал 28.500% на акциях GameStop: объясняю простым языком

Reading time9 min
Views148K

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

Читать далее
Total votes 184: ↑181 and ↓3+238
Comments369

Ускоряем Dictionary в C# при помощи структур и CollectionsMarshal

Level of difficultyEasy
Reading time5 min
Views8.3K

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

Узнать как
Total votes 14: ↑12 and ↓2+11
Comments21

Недостатки корутин в C++

Level of difficultyMedium
Reading time11 min
Views9.5K

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

Даже при отсутствии многопоточности корутины следует рассматривать с той же подозрительностью, что и в случае написания многопоточного кода, так как они всё равно работают асинхронно.
Читать дальше →
Total votes 37: ↑35 and ↓2+51
Comments7

Как не надо проверять размер массива в С++

Level of difficultyMedium
Reading time7 min
Views27K

Как часто вам приходится сталкиваться с конструкцией sizeof(array)/sizeof(array[0]) для определения размера массива? Очень надеюсь, что не часто, ведь на дворе уже 2024 год. В заметке поговорим о недостатках конструкции, откуда она берётся в современном коде и как от неё наконец избавиться.

Читать далее
Total votes 66: ↑63 and ↓3+83
Comments103

Information

Rating
Does not participate
Registered
Activity