Pull to refresh
30
0.2
Алексей @alexeibs

Пользователь

Send message

Разбираемся с латинскими сокращениями и фразами в английском языке

Reading time 6 min
Views 63K


Полтора года назад, читая работы про уязвимости Meltdown и Spectre, я поймал себя на том, что не очень понимаю разницу между сокращениями i.e. и e.g. Т.е. по контексту вроде бы понятно, но потом вроде бы как-то и не совсем то. В результате я тогда сделал себе небольшую шпаргалку именно по этим сокращениям, чтобы не путаться. И тогда же появилась идея этой статьи.


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

Читать дальше →
Total votes 143: ↑142 and ↓1 +141
Comments 72

Хранение данных на Виниле

Reading time 22 min
Views 25K


В 2016-м я выступил на Highload с докладом про Vinyl, движок для хранения данных на диске в Tarantool. С тех пор мы добавили много новых возможностей, но хранение данных на диске — такая объемная тема, что основы, о которых идет речь в этой статье, совсем не изменились.

Содержание (чтобы удобно было ориентироваться):

Читать дальше →
Total votes 61: ↑60 and ↓1 +59
Comments 25

30+ онлайн ресурсов для изучения программирования в 2022

Reading time 11 min
Views 352K
Изучение программирования становится все более доступным благодаря непрерывному росту количества онлайн ресурсов, которые помогают в этом всем желающим. Плюс таких ресурсов — в неограниченном количестве знаний, которые они могут дать и в высокой квалификации преподавателей. Минус — никто не заставляет вас учиться и качество полученных знаний зависит лишь от того, сколько усилий вы приложили.



Составить рейтинг ресурсов для изучения программирования, предлагаю пользователям хабра, исходя из личного опыта их использования. В конце статьи вы сможете проголосовать за любимый сайт для изучения программирования.
Читать дальше →
Total votes 45: ↑37 and ↓8 +29
Comments 44

Статический анализ printf-like функций в Си при помощи libclang

Reading time 11 min
Views 8.4K
По сравнению со многими современными языками язык Си зачастую кажется крайне примитивным и небезопасным. И одной из частых претензий к языку является невозможность доступа из кода в его же внутреннее представление. В других языках это традиционно осуществляется механизмами, вроде reflections, и довольно удобно в применении.

Тем не менее, с появлением libclang, можно писать собственные анализаторы и генераторы кода прямо в compile time, устраняя достаточно большое множество проблем на ранних этапах работы. Сочетание инструментов статического анализа общего плана (coverity, clang-scan), инструментов анализа для конкретного проекта, а также дисциплины написания кода позволяет намного улучшить качество и безопасность кода, написанного на Си. Конечно, это не даст гарантий, каких дает haskell или даже rust, но позволяет существенно оптимизировать процесс разработки, особенно в случае, когда переписывать огромный проект на другом языке является нереальной задачей.

В данной статье я хотел бы поделиться опытом создания плагина статического анализа format argument для функций, похожих на printf. В ходе написания плагина, мне пришлось очень много рыться в исходниках и doxygen документации libclang, поэтому я счел полезным сделать некоторый обзор для тех, кто хочет ступить на этот тернистый путь, но пока еще не уверен в целесообразности траты времени на сбор информации. В статье не будет картинок, и даже картинок блюющих единорогов, простите.
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 5

Вы неправильно пишете животных

Reading time 5 min
Views 357K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Total votes 442: ↑438 and ↓4 +434
Comments 350

Магия одного div. Мастеркласс от создателя a.singlediv.com

Reading time 7 min
Views 49K
Почему Single Div?

В мае 2013 года я присутствовала на CSSConf и услышала, как Лиа Веру говорит об укрощении свойства border-radius. Это было поучительно и позволило мне понять о CSS то, чего я раньше не понимала. Это напомнило мне времена, когда я изучала изящные искусства, когда я постоянно стремилась повысить свой профессиональный уровень. Мой уровень владения CSS можно назвать средним, поэтому я бросила себе вызов, чтобы узнать все, что я смогу, исследуя и экспериментируя со свойствами

Но почему именно один DIV?

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

Я решила запустить проект a.singlediv.com, где намеревалась каждые несколько дней размещать нечто новенькое, созданное с помощью CSS. Я поставила перед собой ограничение использовать только один DIV.
Читать дальше →
Total votes 74: ↑71 and ↓3 +68
Comments 23

Я, пират (главы 3-5)

Reading time 9 min
Views 112K
Продолжение опубликованного ранее рассказа. Его название было выбрано по аналогии с рассказом Эндо Биндера «Я, робот» (1939), который представляет собой предсмертную записку робота, преследуемого полицией за преступление, которого он не совершал.
Читать дальше →
Total votes 80: ↑67 and ↓13 +54
Comments 38

Я, пират

Reading time 17 min
Views 277K


Все-таки красные у меня глаза или нет? Кажется не очень. Может так и должно быть? Я внимательно разглядывал себя в зеркало. Нет, всё-таки красные, хоть и не так сильно. Может не стоит уже с утра проверять почту и ходить по всем этим сайтам? Ну напишут там что-то, а я не прочитаю, ну и что такого? Нет, каждый раз просыпаюсь и первым делом туда…

Так начинался фантастический рассказ — антиутопия про один день из жизни программиста в недалёком будущем, написанный мной в 2010 году. Меня просили продолжить, и через какое-то время появились идеи, но всё никак не было времени их реализовать. Однако в связи с последними событиями начинает казаться, что придуманный мной сюжет того гляди может стать реальностью. Поэтому сегодня представляю вам вторую главу. Рисунок был сделан в прошлом году совсем по другому поводу, но он хорошо подошел сюда как иллюстрация.
Читать дальше →
Total votes 228: ↑205 and ↓23 +182
Comments 70

Внезапно: спутник Электро-Л снял затмение по нашей просьбе

Reading time 2 min
Views 185K
Ребята, мы это сделали! Роскосмос, как создатель, и Росгидромет, как пользователь спутника «Электро-Л» откликнулись на нашу просьбу, изменили режим работы космического аппарата и сняли солнечное затмение в Австралии.



Кажется, никто не верил, что это реально — уговорить Роскосмос сделать что-то подобное для простых интернет-пользователей. Сам я полагал, что это будет сложнее чем попросить NASA сфотографировать Марс, и на успех надеялся, но, откровенно, не верил. Но это свершилось! Сразу две научные группы подготовили для нас результаты ночной съемки спутника. Во время австралийского затмения на космическом посту дежурили усиленные смены, а ведь это была ночь после праздника 9 мая. Готовые фотографии на открытый FTP загружались вдвое быстрее чем при штатной работе. И было не три снимка, как ошибочно написали РИА-Новости, а семь — каждые 15 минут, начиная с 0:55. Был даже один десятиминутный интервал.

(Под катом гифки на 5 мб)
Читать дальше →
Total votes 338: ↑332 and ↓6 +326
Comments 57

Зачем исследовать космос? Письмо 1970 года монахине в Африку

Reading time 10 min
Views 57K
Эрнс Шталингер написал это письмо 6 мая 1970 года сестре Мэри Джаканд, монахине, которая работала среди голодающих детей города Кабве в африканской стране Замбии, в ответ на вопрос о значении освоения космоса. В то время доктор Шталингер был заместителем директора по науке в Центре Космических Полетов Маршалла, в Хэнтсвилле, штата Алабама. Тронутый искренностью и обеспокоенностью Мэри, он направил ей все свои искренние убеждения о ценности исследований космоса. Красноречивое заявление доктора актуально до сих пор, даже спустя четыре десятилетия. Родившись в Германии в 1913 году, доктор Шталингер получил Ph.D. по физике в университете Tuebingen 1936 году. Он был членом немецкой ракетной группы, в Peenemunde и приехал в Соединенные Штаты в 1946 работать на американскую армию в Форт Блисс, штат Техас. Он переехал в Хэнтсвилль в 1950 и продолжил работать для армейского Redstone Arsenal до тех пор пока не был создан центр космических полетов в 1960. Доктор Шталингер был неоднократно награжден и широко известен за свои исследования силовых установок. Он получил награду от министра обороны (Exceptional Civilian Service Award) за участие в запуске Эксплорера-1, первого американского космического спутника.

Читать дальше →
Total votes 236: ↑228 and ↓8 +220
Comments 308

Ключевые моменты марсианского путешествия

Reading time 2 min
Views 4.5K

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

Давайте посмотрим, как путешествовал космический корабль, куда приземлился марсоход и какие вопросы стоят перед NASA сейчас…
Читать дальше →
Total votes 70: ↑63 and ↓7 +56
Comments 90

Ремонт БП FSP Epsilon 1010, принцип работы APFC

Reading time 10 min
Views 212K
Идея написать родилась после очередной непредвиденной поломки блока питания, чтобы поделиться опытом да и самому было где почитать в следующий раз, если попадётся на ремонт подобный блок питания (далее — БП) или понадобится вспомнить схему.



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

Необходимость вникнуть в работу APFC у меня появилась в 2005 году, когда я имел проблему с произвольной перезагрузкой компьютера. Комп я купил на «мыльной» фирмочке не вникая особо в тонкости. В сервисе не помогли: на фирме работает, а у меня перезагружается. Я понял, что пришла очередь напрячься самому… Оказалось проблема в домашней сети, которая вечером просаживалась скачками до 160В! Начал искать схему, увеличивать ёмкость входных конденсаторов, слегка попустило, но проблему не решило. В процессе поиска информации увидел в прайсах непонятные буквы APFC и PPFC в названиях блоков. Позже выяснил, что у меня оказался PPFC и я решил купить себе блок с APFC, потом взял ещё и бесперебойник. Начались другие проблемы — выбивает бесперебойник при включении системника и пропадании сети, в сервисе разводят руками. Сдал его обратно, купил в 3 раза мощнее, работает по сей день без проблем.

Поделюсь с вами своим опытом и надеюсь, вам будет интересно узнать немного больше про компонент системника — БП, которому несправедливо отводят чуть ли не последнюю роль в работе компьютера.

Блоки питания FSP Epsilon 1010 представляют собой качественные и надёжные устройства, но учитывая проблемы наших сетей и другие случайности, они иногда тоже выходят из строя. Выкидывать такой блок жалко, а ремонт может приблизиться к стоимости нового. Но бывают и мелочи, устранив которые, можно вернуть его к жизни.
Читать дальше →
Total votes 77: ↑73 and ↓4 +69
Comments 41

Джентльменский набор интернет шоппера: Shipito + ProfitBid + TrackChecker

Reading time 9 min
Views 43K
На волне постов ненависти к Почте России легко прослеживается тот факт, что все большее количество людей покупают товар из заграниц. Тем самым не желая переплачивать Российским барыгам-ритейлерам подрывая политику государства в области импортозамещения. И я один из них.
Однако много препятствий чинит православным Россиянам виртуальный шоппинг, самое трудное из которых — страна проживания. К сожалению наша отчизна классифицируется большинством онлайн магазинов как страна третьего мира, не иначе, а поэтому и прямой доставки туда нам не видать.
Выходом из этого казуса, очевидно, является mail forwarding сервис.
Итак в данной статье речь пойдет о
  • нововведениях в сервисе-посреднике — Shipito
  • Сервисе, который возвращает процент с покупок на ebay.com/ca/uk, Amazon, Skype, GoDaddy — Profitbid
  • Наконец-то созданном юзером MetalFan отличном софте (полностью бесплатном) для отслеживания почтовых отправлений всех почтовый сервисов TrackChecker
  • Небольшом списке интересных магазинов


PS. В топике присутствуют мои реферральные ссылки.
PS2. Трафик.
Читать дальше
Total votes 114: ↑93 and ↓21 +72
Comments 68

Немецкое правительство выложило все законы на гитхаб в machine-readable формате

Reading time 1 min
Views 6.7K


github.com/bundestag/gesetze

Все законы можно найти в формате Markdown. Теперь граждане страны могут получать доступ к самым свежим текстам законов и отслеживать изменения.

Можно делать pull-реквесты, но только законы, которые одобрены голосованием в бундестаге, будут приняты…

/via news.ycombinator.com/item?id=4353389
Total votes 106: ↑104 and ↓2 +102
Comments 70

В США испытали боевой лазер — на литий-ионных батареях и с контроллером от Xbox

Reading time 2 min
Views 135K
Корпорация Боинг разрабатывает лазерное орудие по заказу армии США, и теперь новое оружие было испытано на море и за земле. The High Energy Laser Mobile Demonstrator (HEL MD) — просто высокоэнергетический лазер, установленный на большой грузовик — успешно сбивал беспилотные дроны и 60-мм минометные снаряды в небе Флориды ранее в этом году



Текущее испытание проведено в ветренной и туманной среде, важный шаг для доказательства, что эта технология подходит для использования во флоте. Установка HEL MD использовала 10-киловаттный лазер — намного менее мощный, чем планируется использовать в окончательном варианте — для того, чтобы «успешно перехватить» более 150 целей на базе Eglin Air Force Base, тестовом полигоне министерства обороны в северо-западной части Флориды. Другими словами, лазер вывел из строя или уничтожил цели.
Читать дальше →
Total votes 67: ↑55 and ↓12 +43
Comments 351

Тонкости анализа исходного кода C/C++ с помощью cppcheck

Reading time 27 min
Views 57K
В предыдущем посте были рассмотрены основные возможности статического анализатора с открытым исходным кодом cppcheck. Он показывает себя не с худшей стороны даже при базовых настройках, но сегодня речь пойдёт о том, как выжать из этого анализатора максимум полезного.

В этой статье будут рассмотрены возможности cppcheck по вылавливанию утечек памяти, полезные параметры для улучшения анализа, а также экспериментальная возможность по созданию собственных правил. Сегодня никаких сравнений анализаторов «кто лучше», статья полностью посвящена работе с cppcheck.
Читать дальше →
Total votes 59: ↑59 and ↓0 +59
Comments 15

Spatial hashing для самых маленьких

Reading time 5 min
Views 40K


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

Предположим, что у вас есть несколько объектов и вам нужно узнать нет ли между ними столкновений. Простейшим решением будет посчитать расстояние от каждого объекта до всех остальных объектов. Однако, при таком подходе количество необходимых вычислений растёт слишком быстро. Если на десятке объектов приходится делать сотню проверок, то на сотне объектов выходит уже десяток тысяч проверок. Это и есть печально известная квадратичная сложность алгоритма.
Можно улучшить ситуацию, если...
Total votes 88: ↑82 and ↓6 +76
Comments 21

Заглавные и строчные буквы

Reading time 3 min
Views 46K
Я собрал здесь некоторые не очень очевидные факты о заглавных и строчных буквах, с которыми может столкнуться программист в работе. Многие из вас переводили строки во «все заглавные» (uppercase), «все строчные» (lowercase), «первую заглавную, а остальные строчные» (titlecase). Ещё более популярна операция сравнения без учёта регистра. В мировом масштабе такие операции могут быть весьма нетривиальны. Пост построен в виде «сборника заблуждений» с контрпримерами.

1. Если я переведу строку в uppercase или lowercase, число Unicode-символов не изменится.

Нет. В тексте могут попасться строчные лигатуры, которым не соответствует один символ в верхнем регистре. Например, при переводе в uppercase: fi (U+FB00) -> FI (U+0046, U+0049)

2. Лигатуры — изврат, ими никто не пользуется. Если их не учитывать, то я прав.

Нет. Некоторым буквам с диакритикой нет точного соответствия в другом регистре, поэтому приходится использовать комбинированный символ. Скажем, в языке африкаанс есть буква ʼn (U+0149). В верхнем регистре ей соответствует комбинация из двух символов: ʼN (U+02BC, U+004E). Если вам попадётся транслитерация арабского текста, вы можете столкнуться с (U+1E96), которой в верхнем регистре также нет односимвольного соответствия, поэтому придётся заменять на (U+0048, U+0331). В ваханском языке есть буква (U+01F0) с аналогичной проблемой. Вы можете возразить, что это экзотика, однако на африкаанс в википедии 23000 статей.

3. Ну хорошо, но давайте считать комбинированный символ (с участием modifying или combining code points) одним символом. Тогда длина всё же сохранится.

Нет. Есть, например, в немецком языке буква «эсцет» ß (U+00DF). При переводе в верхний регистр, она превращается в два символа SS (U+0053, U+0053).
Читать дальше →
Total votes 171: ↑169 and ↓2 +167
Comments 66

Полезные метрики для оценки проектов

Reading time 7 min
Views 46K
В октябре я уже рассказывала о способах оценки тестирования, все страждующие и сочувствующие могут посмотреть запись здесь. А сегодня мне захотелось затронуть тему метрик проекта в целом, причём метрик не «длягалочных», а метрик «пользуприносящих» и «проектыулучшающих». Именно поэтому, вместо сухих формул и перечня метрик, я расскажу 3 истории из опыта о внедрении и использовании строго определённых метрик в строго определённых условиях — и о результатах, которые с их помощью удалось достичь.

Зачем что-либо измерять?


Есть проект. Ваш любимый, родной, которому вы желаете расти и процветать.
Но как вы оцените его процветание, если нет критериев этого самого процветания?
Как вы сможете оперативно среагировать на проблемы до того, как они стали неисправимыми, если не будете использовать «датчик грядущей Ж»?
Как вы поймёте, что именно следует улучшать, если вам неизвестен источник проблем?

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

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

А если не приходят, значит метрику можно смело выбросить ;)
Читать дальше →
Total votes 89: ↑79 and ↓10 +69
Comments 34

Information

Rating
2,128-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity