Как стать автором
Обновить
1
0

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

Отправить сообщение

Как работает оптимизирующий компилятор

Время на прочтение23 мин
Количество просмотров19K

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

В этой статье мы рассмотрим некоторые из основных методик приведения (inference techniques) в оптимизирующих компиляторах: как спроектировать программу, с которой компилятору будет легко работать; какие приведения можно сделать в вашей программе и как использовать их для её уменьшения и ускорения.
Читать дальше →

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

Время на прочтение23 мин
Количество просмотров58K

До выхода этого фильма зрители не видели ничего, подобного этому научно-фантастическому творению Вачовски, и не знали, насколько сильное потрясение их ждёт



Фильму «Матрица» в этом году исполнилось 20 лет

Однажды в 1992 году Лоуренс Мэттис, раскрывая свою почту, обнаружил непрошеное письмо со сценарием от двух неизвестных авторов. Это была тёмная, отвратительная, вызывающе некоммерческая история классовой борьбы и каннибализма – как раз такая история, которую в Голливуде захотело бы рассказать крайне малое количество директоров студий. Однако Мэттис искал именно такое кино.

Всего за несколько лет до этого Мэттис, которому тогда было немногим менее 30, бросил многообещающую юридическую карьеру, и основал компанию по поиску талантов Circle of Confusion, чтобы раскрывать новых авторов и представлять их интересы. Он открыл офис в Нью-Йорке, несмотря на то, что ему постоянно твердили, что больше всего шансов отыскать таланты было в Лос-Анджелесе. И до того, как у него появился этот странный сценарий, Мэттис уже начал сомневаться, не следовало ли ему прислушаться к тем советам. «Я к тому времени продал немножко опционов по $500 каждый, — говорит Мэттис. – Я уже начал задумываться о том, чтобы вернуться в юриспруденцию. А потом я получил письмо от двух этих ребят, с подписью ’Не могли бы вы, пожалуйста, прочесть наше письмо?’»
Читать дальше →

8 историй о внутреннем Китае. То, что не показывают иностранцам

Время на прочтение12 мин
Количество просмотров148K

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


Чжунго — самая развивающаяся страна в мире. Во всех сферах: производство, IT, биотехнологии. В прошлом году Китай показал крупнейший в мире валовый продукт, который составил 18% от мирового ВВП.


Китай давно и прочно стал основным экономическим партнёром нашей страны. Россия продаёт Китаю ресурсы: нефть, газ, лес, металлы, продовольствие. Китай продаёт России высокотехнологичную продукцию: станки, электронные приборы, компьютерную и бытовую технику, настоящие швейцарские часы за 50 долларов, спинеры и прочий AliExpress. В прошлом году товарооборот с Китаем превысил 108 миллиардов долларов — за год вырос на четверть.


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



Старинная китайская гравюра. Дядюшка Ляо на прогулке придумывает iPhone 12 c ТВ-приёмником, пятью sim-картами, десятью камерами, термометром, шокером и пылесосом.


Читать дальше →

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

Время на прочтение11 мин
Количество просмотров106K


Каждый раз перед собесом я говорю себе: "Спокойно, не нужно ничего выдумывать, доучивать и врать, твоих знаний и опыта достаточно для того, что бы работать у них. Ты усилишь любую команду, тебе есть что предложить, а пробелы в твоих знаниях — приемлемы. Если бы они знали о твоих навыках всё, что знаешь ты, они бы точно тебя взяли". Но когда начинается собеседование, я всегда перестаю в это верить. Все два часа интервью я хожу как по минному полю, что бы не дай бог не спалиться, что я чего-то не знаю.

Читать дальше →

Почему для открытия меню Windows читает один файл сто тысяч раз?

Время на прочтение4 мин
Количество просмотров158K

«Проводник тратит 700 мс на то, чтобы открыть контекстное меню панели задач. 75% этого времени он выполняет 114 801 операцию считывания из одного файла, средний объём считываемых данных 68 байт.

Мне стоит написать пост об этом, или достаточно саркастичного твита?»


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

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

Этот пост написан как проверка скоростного блогинга. От момента нахождения проблемы и саркастичного твита о ней до публикации поста прошло примерно 90 минут.
Читать дальше →

ООП, «святая троица» и SOLID: некоторый минимум знаний о них

Время на прочтение43 мин
Количество просмотров118K

Необходимое вступление


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


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


Столь малые гарантии поднимают вопросы о причинах, по которым статья пишется. Я считаю, что этим вещам должны учить везде, где учат программированию, вплоть до уроков информатики в школах с углублённым её изучением. Тем не менее, для меня стала пугающе нормальной ситуация, когда я узнаю, что собеседник мой коллега, причём работающий уже не первый год, но про инкапсуляцию «что-то там слышал». Необходимость собрать всё это в одном месте и давать ссылку при возникновении вопросов зрела давно. А тут ещё и мой «pet-project» дал мне изрядно пищи для размышлений.


Тут мне могут возразить, что учить эти вещи в школе рановато, и вообще на ООП свет клином не сошёлся. Во-первых, это смотря как учить. Во-вторых, 70% материала этой статьи применимо не только к ООП. Что я буду отмечать отдельно.



Читать дальше →

Всё, что вам нужно знать про CSS Margin

Время на прочтение8 мин
Количество просмотров79K
Одним из первых, что многие из нас усвоили, когда изучали CSS, были особенности разных составляющих блока в CSS, описываемые как «Блочная Модель CSS». Один из элементов в блочной модели — margin (внешний отступ), прозрачная область вокруг блока, которая отталкивает другие элементы от содержимого данного блока. Свойства margin-top, margin-right, margin-bottom и margin-left были описаны еще в CSS1, вместе с сокращенным свойством margin для одновременной установки в всех четырёх свойств.

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

Химия жареной курочки. Детальный разбор

Время на прочтение2 мин
Количество просмотров46K
Для многих курица во фритюре одно из самых вкусных блюд, пусть и не самое полезное. Что же делает её такой вкусной?

image

Все дело в поведении масла при высоких температурах, а именно в протекающих химических процессах. В данном случае идет речь о полном погружении куриного мяса во фритюр, и температура масла при этом достигает 150 — 190 С.

Первым делом происходит процесс конвекции — нагретое масло со дна поднимается к поверхности, а более холодное, соответственно, в нижние слои, тем самым обеспечивается равномерная температура.

image
Читать дальше →

Как политика 19 века повлияла на расположение дата-центров сегодня

Время на прочтение4 мин
Количество просмотров66K
От переводчика

Уважаемые хабражители! Так как это мой первый эксперимент по размещению контента на Хабре, прошу не судить слишком строго. Критика и предложения охотно принимается в ЛС.


Недавно, Google объявил о доступности нового дата-центра в Солт-Лейк Сити, в штате Юта. Это — один из наиболее современных ЦОД, в которые инвестировали такие компании, как Microsoft, Facebook, Apple, Yahoo, и другие, расположенных вдоль линии, соответствующей 41-ой параллели на территории США.


карта расположения ЦОД


Каждая из этих компаний инвестирует миллиарды долларов в эти четыре города:



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

Читать дальше →

Зачем современную веб-разработку так усложнили? Часть 1

Время на прочтение7 мин
Количество просмотров72K
Современная фронтенд-разработка оставляет полярные впечатления: одни её любят, другие презирают.

Я большая поклонница современной веб-разработки, хотя она мне напоминает некую «магию», со своими плюсами и минусами:

  • Когда вы поймёте, как использовать волшебные инструменты (babel! бандлеры! вотчеры! и так далее!), ваш рабочий процесс становится быстрым, мощным и восхитительным
  • Если вы не понимаете волшебные инструменты, всё ужасно запутанно
  • …и попытки освоить магию слишком часто неудачны, если вам кто-нибудь не поможет продраться через джунгли жаргона, преувеличений и устаревшей информации в интернете
Читать дальше →

Почему отписка от рассылки занимает несколько дней?

Время на прочтение2 мин
Количество просмотров45K
В одном твите спрашивали, почему отписка от рассылки может «занимать несколько дней». Пристегнитесь покрепче, я сейчас расскажу вам невероятную историю о том, как это делается в энтерпрайз-разработке™…


Есть один банк. Наверняка вы о нем слышали, а если вы живете в Великобритании — с вероятностью 10% это ваш банк. Я работал там «консультантом» на отличной зарплате.

Банк рассылает маркетинговые письма. В подвале каждого письма есть маленькая ссылка «отписаться». Люди иногда на эти ссылки кликают.
Читать дальше →

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

Время на прочтение6 мин
Количество просмотров70K


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


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

Читать дальше →

Почему не SQL?

Время на прочтение67 мин
Количество просмотров73K


Без преувеличения можно сказать, что SQL — один из самых распространенных в мире языков. Информационные системы могут быть написаны на Java, Python, JavaScript, C#, PHP и десятке других языков, но SQL база в том или ином виде будет в абсолютном большинстве таких систем. Среди бизнес-приложений процент систем, использующих SQL, вообще стремится к 100%.

При этом большинство существующих материалов о SQL на хабре и других ресурсах сводятся к простым вопросам, вроде: «какие типы соединений бывают», «чем левое соединение отличается от правого», «что такое триггеры» и так далее. Более того, в этих материалах практически ничего не говорится о проблемах SQL (и его реализациях), которых на самом деле очень и очень немало. Поэтому мы решили восполнить оба этих пробела: с одной стороны рассказать, как многие вещи в SQL работают изнутри, а с другой стороны — почему они работают не так как нужно / хотелось бы.

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

The state of CSS

Время на прочтение15 мин
Количество просмотров23K
В ежегодном опросе «The state of JavaScript» разработчики рассказывают о том, что они используют здесь и сейчас. Вопросы там знакомы и привычны фронтенд-сообществу. В 2019 году появился опрос «The state of CSS», который ввёл разработчиков в ступор. Оказывается, многие технологии разработчикам не знакомы, хотя большинство из них уже активно используются. Возможно, разработчики используют привычные инструменты и технологии, и не стремятся применять что-то новое? Возможно, просто нет задач под новые технологии? Зачем использовать CSS Grid, CSS Multi columns, там, где проще построить все на Flexbox? Возможно, это все касается старичков, а джуны уже и не знают про Flexbox и Float и в опросах не участвуют?



Сергей Попов (popovsergey), руководитель Лиги А, спикер и организатор конференций задался этими вопросами, провел свой мини-опрос и даже получил результаты от организаторов «The state of CSS». Всю информацию Сергей обработал, структурировал и получил срез фронтенд-сообщества: кто что знает и использует, где учатся верстальщики и сколько зарабатывают, какие технологии актуальны, а какие пора сдавать в переработку, и что изучать, чтобы применять всю мощь CSS. Расшифровка доклада — один из вариантов отчета по актуальному состоянию CSS, вместе с оригинальным отчетом «The state of CSS» подскажет, куда двигаться и какие технологии применять.

Осторожно, под катом много диаграмм и картинок, действительно много, но они все по делу. В хорошем качестве они тут.

Почему Интернет до сих пор онлайн?

Время на прочтение16 мин
Количество просмотров43K
Интернет кажется сильной, независимой и нерушимой структурой. В теории, прочности сети хватит, чтобы пережить ядерный взрыв. В реальности, интернет может уронить один маленький роутер. Все из-за того, что интернет — это нагромождение противоречий, уязвимостей, ошибок и роликов про котиков. Основа интернета — протокол BGP — содержит кучу проблем. Удивительно, что он еще дышит. Кроме ошибок в самом интернете, его еще ломают все кому не лень: крупные интернет-провайдеры, корпорации, государства и DDoS-атаки. Что с этим делать и как с этим жить?



Ответ знает Алексей Учакин (Night_Snake) — лидер команды сетевых инженеров в компании IQ Option. Главная его задача — доступность платформы для пользователей. В расшифровке доклада Алексея на Saint HighLoad++ 2019 поговорим про BGP, DDOS-атаки, рубильник от интернета, ошибки провайдеров, децентрализацию и случаи, когда маленький роутер отправил интернет поспать. В конце — пара советов, как все это пережить.

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

Время на прочтение10 мин
Количество просмотров65K


Скоро наступит десятый год, как я профессионально занимаюсь программированием. Десять лет! И кроме формальной работы, почти две трети своей жизни я что-то создавала в интернете. С трудом вспоминаю годы, когда я не знала HTML: даже странно, если подумать об этом. Некоторые дети учатся музыке или балету, а я вместо этого создавала волшебные миры, кодируя в своей детской.

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

Горький урок отрасли ИИ

Время на прочтение5 мин
Количество просмотров53K
Об авторе. Ричард Саттон — профессор компьютерных наук в университете Альберты. Считается одним из основателей современных вычислительных методов обучения с подкреплением.

По итогу 70-ти лет исследований в области ИИ главный урок заключается в том, что общие вычислительные методы в конечном счёте наиболее эффективны. И с большим отрывом. Конечно, причина в законе Мура, точнее, в экспоненциальном падении стоимости вычислений.

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

Стремясь к улучшению в краткосрочной перспективе, исследователи пытаются применить человеческие знания в предметной области, но в долгосрочной перспективе имеет значение только мощность вычислений. Эти две тенденции не должны противоречить друг другу, но на практике противоречат. Время, потраченное на одно направление, — это время, потерянное для другого. Есть психологические обязательства инвестировать в тот или иной подход. И внедрение знаний в предметной области имеет тенденцию усложнять систему таким образом, что она хуже подходит для использования общих вычислительных методов. Было много примеров, когда исследователи слишком поздно усваивали этот горький урок, и полезно рассмотреть некоторые из самых известных.
Читать дальше →

Я ненавижу почти всё ПО

Время на прочтение2 мин
Количество просмотров32K
Прим. переводчика:

Недавно создатель NodeJS Райн Дал открывал конференцию HolyJS в Питере. И я вспомнил, что у меня есть неопубликованный перевод с его блога и решил его опубликовать. Местами перевод довольно откровенный. Надеюсь, вам будет интересно. Дата выхода статьи — Октябрь 2011. Дата выхода NodeJS — 27 Мая 2009.
Читать дальше →

Опусы про Его Величество Клей. Часть четвертая — силиконы

Время на прочтение10 мин
Количество просмотров34K
Посвящается Андрею А., котрому я так и не принес до сих пор извинения за испорченную силиконом вещь...

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

Читать дальше →

Опусы про Его Величество Клей. Часть третья — полиуретан vs космический холод

Время на прочтение16 мин
Количество просмотров62K
Посвящается всем туристам-водникам, рыбакам и морякам, которым удалось или не удалось (но, надеюсь, удастся после прочтения статьи) заклеить дыры на своих ПВХ судах, ибо не Десмоколом единым...

Полиуретаны вошли в мою жизнь еще в раннем детстве, когда я с жаром доказывал мамке, что выгоднее купить дорогие кроссовки от Белкельме с полиуретановой подошвой, а не лидские с разлазящимся непонятным пластиком (позднее, кстати, «лидские» исправились), просто потому что «полиуретан — вечный». В принципе так оно и было, кроссовки изнашивались до трухи, а подошва, подошва выглядела как в день покупки. Второе «открытие» этого важного класса полимеров для меня состоялось тогда, когда я познакомился с водным туризмом и такой штукой, как пробоина на «шкуре» из ПВХ. До сих пор помню заповедь тренера, м.с. Вячеслава Антоновича Бажанского — «Десмокол-создан для байдарки, как птица для неба».

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

Узнать, что это за полиуретан такой!

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность