Как стать автором
Обновить
180
0
Дмитрий Конобрицкий @Akson87

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

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

Кремний

Время на прочтение6 мин
Количество просмотров62K
image
Процессор? Песок? А какие у вас с этим словом ассоциации? А может Кремниевая долина?
Как бы там ни было, с кремнием мы сталкиваемся каждый день и если вам интересно узнать что такое Si и с чем его едят, прошу под кат.
Читать дальше →
Всего голосов 145: ↑130 и ↓15+115
Комментарии50

Celestia

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


В свете обострившегося интереса к космонавтике и астрономии на Хабре (спасибо NASA и Curiosity), хотелось бы рассказать о замечательном свободном планетарии, созданным Крисом Лорелом — Celestia (а точнее, о расширенной сборке Celestia Extended Pack).
Кстати, именно с помощью Celestia была создана заставка к всенародно любимому сериалу Теория большого взрыва :)
Читать дальше →
Всего голосов 71: ↑67 и ↓4+63
Комментарии59

Эксперимент ATLAS — упрощенное описание задачи и немного о детекторе

Время на прочтение5 мин
Количество просмотров4.3K
В прошлой статье я вкратце рассказал о том, чем же занимается ЦЕРН. Теперь же я хочу немного рассказать об эксперименте ATLAS.



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

И чтобы заинтересовать читателя, я задам один вопрос: почему у вас есть масса?
Читать дальше →
Всего голосов 52: ↑51 и ↓1+50
Комментарии44

Не тратьте своё время на дерьмовую работу в стартапе

Время на прочтение21 мин
Количество просмотров73K
Под катом перевод огромной статьи, написанной Майклом Чёрчем и посвящённой стартапам. Статья вызвала необыкновенное бурление… мнений, скажем так, на разных сайтах и агрегаторах, поэтому я решил её перевести на русский и посмотреть на реакцию. Текст ОЧЕНЬ длинный, но также и очень интересный. И несколько пояснений перед чтением: в статье речь идёт об инженере в стартапе, именно с этой позиции всё рассматривать; некоторые финансово-экономические термины, возможно, не очень адекватно удались и я буду рад любым конструктивным поправкам.

То, о чём я хочу рассказать, справедливо для июля 2012 г. 15 лет назад необязательно было так же, и не факт, что будет справедливо через год. Но в данный момент это абсолютно верно для большинства людей в достаточной степени, так что я считаю обязанным высказаться. Нынешний мир ИК-стартапов (ИК=инвестиционный капитал / venture capital) — я его нежно называю ИК-стан — является, мягко говоря, тотально напрасной тратой времени для большинства вовлечённых людей.
Читать дальше →
Всего голосов 238: ↑221 и ↓17+204
Комментарии77

Компьютер вашей мечты. Часть 1: Философия рационального подхода

Время на прочтение9 мин
Количество просмотров8.1K
У каждого свои потребности. Геймер требователен к железу, которое сможет без труда вращать все современные игрушки на максимальных настройках качества, профессионалам нужна та машина, на которой будут быстро и эффективно решаться их рабочие задачи, обычным домашним пользователям хочется получить универсальный мултимедийный центр…

image

Существует ли компьютер, способный удовлетворить любые потребности пользователей одинаково хорошо? На первый взгляд может показаться, что достаточно запастись несколькими килобаксами, взять топовое железо, и вот он — компьютер мечты. Но действиетельно ли он будет одинаково хорош для любой задачи? Лично я считаю, что нет. Понятие идеального компьютера не ограничивается одной производительностью системы. Существует ещё множесто факторов, которые нужно учитывать. Энергопотребление, габариты и внешний вид, уровень шума, наличие каких-либо специфических функций, наконец, цена.
Читать дальше →
Всего голосов 156: ↑88 и ↓68+20
Комментарии194

Gmail Show M. Later

Время на прочтение2 мин
Количество просмотров30K
Некоторое время назад, я сделал одну очень удобную штуку для Gmail

image

Если кратко, то этот google script позволяет создать в вашем ящике ярлыки (папки), положив письмо в которые, оно будет лежать пока не пройдет нужный срок, а потом оно снова переместится в inbox и станет не прочитанным. Мне такой штуки очень давно не хватало, т.к. часто приходят письма, на которые нужно отреагировать, но в данный момент реагировать на них возможности нету.

Есть более древние варианты в галерее скриптов, Gmail Snooze например, но они позволяют работать только с дневными интервалами и устроены таким образом, что письмо добавленное в 23:00, в 01:00 снова окажется в инбоксе. Поэтому я сначала модифицировал, а потом полностью переписал. В моей реализации, письма живут более правильной жизнью.
Читать дальше →
Всего голосов 62: ↑58 и ↓4+54
Комментарии30

Много книг, хороших и разных

Время на прочтение20 мин
Количество просмотров96K
Мой список книг, которые мне хочется прочесть, изрядно вырос, спасибо топику “запасаемся на зиму”. Под катом вы обнаружите список книг, составленный по комментариям в том топике.
Читать дальше →
Всего голосов 139: ↑124 и ↓15+109
Комментарии89

Ускорение загрузки Windows for fun and profit

Время на прочтение4 мин
Количество просмотров803K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Всего голосов 532: ↑516 и ↓16+500
Комментарии365

Я хочу работать в Google! Телефонное интервью (часть 1)

Время на прочтение4 мин
Количество просмотров31K
Привет Хабр! Давно не писал. Да это и понятно. Защита диссертации, получение PhD, а сейчас ещё и активный поиск работы — всё это занимает очень много драгоценного времени. Но разговор сегодня пойдёт не о том. Хотелось бы поделиться с Вами, уважаемые хабралюди, ресурсами и описанием процесса подготовки к телефонному техническому интервью с Гуглом, первый технический этап которого я уже прошёл, и теперь готовлюсь ко второму, который будет в пятницу.
Читать дальше →
Всего голосов 207: ↑182 и ↓25+157
Комментарии99

Опыт составления резюме

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

Проблема


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

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

Читать дальше →
Всего голосов 131: ↑107 и ↓24+83
Комментарии215

Неопределённое поведение и теорема Ферма

Время на прочтение4 мин
Количество просмотров54K
В соответствии со стандартами C и C++, если выполнение программы приводит к переполнению знаковой целой переменной, или к любому из сотен других «неопределённых действий» (undefined behaviour, UB), то результат выполнения программы может быть любым: она может запостить на Твиттер непристойности, может отформатировать вам диск…
Увы, в действительности «пасхальные яйца», которые бы заставляли программу в случае UB делать что-то из ряда вон выходящее, не встречались со времён GCC 1.17 — та запускала nethack, когда встречала в коде программы неизвестные #pragma. Обычно же результат UB намного скучнее: компилятор просто оптимизирует код для тех случаев, когда UB не происходит, не придавая ни малейшего значения тому, что этот код будет делать в случае UB — ведь стандарт разрешает сделать в этом случае что угодно!
В качестве иллюстрации того, как изобилие UB в стандарте позволяет компилятору выполнять неочевидные оптимизации, Реймонд Чен приводит такой пример кода:

int table[4];
bool exists_in_table(int v)
{
    for (int i = 0; i <= 4; i++) {
        if (table[i] == v) return true;
    }
    return false;
}

В условии цикла мы ошиблись на единицу, поставив <= вместо <. В итоге exists_in_table() либо должна вернуть true на одной из первых четырёх итераций, либо она прочтёт table[4], что является UB, и в этом случае exists_in_table() может сделать всё что угодно — в том числе, вернуть true! В полном соответствии со стандартом, компилятор может соптимизировать код exists_in_table() до
int table[4];
bool exists_in_table(int v)
{
    return true;
}

Такие оптимизации иногда застают программистов врасплох.
Читать дальше →
Всего голосов 107: ↑104 и ↓3+101
Комментарии129

Splay-деревья

Время на прочтение8 мин
Количество просмотров64K
Сбалансированное дерево поиска является фундаментом для многих современных алгоритмов. На страницах книг по Computer Science вы найдете описания красно-черных, AVL-, B- и многих других сбалансированных деревьев. Но является ли перманентная сбалансированность тем Святым Граалем, за которым следует гоняться?

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

Сегодня я расскажу о splay-деревьях. Эти деревья не являются перманентно сбалансированными и на отдельных запросах могут работать даже линейное время. Однако, после каждого запроса они меняют свою структуру, что позволяет очень эффективно обрабатывать часто повторяющиеся запросы. Более того, амортизационная стоимость обработки одного запроса у них , что делает splay-деревья хорошей альтернативой для перманентно сбалансированных собратьев.
Читать дальше...
Всего голосов 88: ↑83 и ↓5+78
Комментарии26

Прерывания в конвейеризированных процессорах

Время на прочтение10 мин
Количество просмотров75K
Наверняка вы знаете, что такое прерывания. Возможно, даже интересовались устройством процессора. Почти наверняка вы нигде не видели внятный рассказ про то, как именно процессор обнаруживает прерывание, переходит к обработчику и, самое главное, возвращается из него именно туда, куда положено.

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

Если когда-нибудь вы задумывались над тем, что значат слова «the processor supports precise aborts» в даташите, прошу под кат.
Читать дальше →
Всего голосов 154: ↑153 и ↓1+152
Комментарии25

Секреты кэш-памяти, или как потратить 1000 тактов на 10 команд

Время на прочтение5 мин
Количество просмотров57K
Про кэш процессоров написано много, в том числе и на Хабре, но все больше общими словами. Предлагаю вашему вниманию конкретный пример того, как работает кэш в реальной жизни.

В качестве примера я возьму простенькую систему на кристалле, основанную на 32-битном гарвардском RISC-процессоре с одноуровневой кэш-памятью и без MMU (что-то типа ARM Cortex-R). Процессор подключен к контроллеру внешней памяти через 32-битную шину AMBA AHB, работающую на частоте процессора.


Читать дальше →
Всего голосов 44: ↑38 и ↓6+32
Комментарии15

Логическая организация кэш-памяти процессора

Время на прочтение3 мин
Количество просмотров38K
На днях решил систематизировать знания, касающиеся принципов отображения оперативной памяти на кэш память процессора. В результате чего и родилась данная статья.

Кэш память процессора используется для уменьшения времени простоя процессора при обращении к RAM.

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

Логически кэш-память представляет собой набор кэш-линий. Каждая кэш-линия хранит блок данных определенного размера и дополнительную информацию. Под размером кэш-линии понимают обычно размер блока данных, который в ней хранится. Для архитектуры x86 размер кэш линии составляет 64 байта.



Так вот суть кэширования состоит в разбиении RAM на кэш-линии и отображении их на кэш-линии кэш-памяти. Возможно несколько вариантов такого отображения.
Читать дальше →
Всего голосов 58: ↑57 и ↓1+56
Комментарии10

Введение в оптимизацию. Имитация отжига

Время на прочтение10 мин
Количество просмотров181K
В этой статье я постараюсь максимально доходчиво рассказать о таком простом, но эффективном методе оптимизации, как имитация отжига (simulated annealing). А чтобы не быть причисленным к далёким от практики любителям теоретизировать, я покажу как применить этот метод для решения задачи коммивояжёра.

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

image


Читать дальше →
Всего голосов 148: ↑138 и ↓10+128
Комментарии37

Чисто функциональные структуры данных

Время на прочтение7 мин
Количество просмотров40K
Признаюсь. Я не очень любил курс структур данных и алгоритмов в университете. Все эти стеки, очереди, кучи, деревья, графы (будь они не ладны) и прочие “остроумные” названия непонятных и сложных структур данных ни как не хотели закрепляться в моей голове. Как истинный “прагматик”, я уже на втором — третьем курсе свято верил в стандартную библиотеку классов и молился на дарованные нам (простым смертным) коллекции и контейнеры, бережно реализованные отцами и благородными донами CS. Казалось, все что можно было придумать — уже давно придумано и реализовано.

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

И сейчас, я хочу показать вам небольшую частицу этого мира. Через замочную скважину, мы на секунду заглянем в этот удивительный мир, чтобы рассмотреть одного из наиболее ярких его обитателей — функциональное красно-черное дерево (КЧД).
Читать дальше →
Всего голосов 73: ↑68 и ↓5+63
Комментарии21

Список литературы для менеджера продукта 80 уровня

Время на прочтение4 мин
Количество просмотров123K
Менеджер продукта – все еще редкий зверь в российских и украинских IT компаниях. И если внутри команд, где менеджер продукта существует, его роль вопросов не вызывает (если он, конечно, занимается делом), то знакомые в других компаниях, на конференциях, друзья, от разработчиков до менеджеров проектов задают массу любопытствующих вопросов. Вопросы очень разномастные – от того, о чем собственно работа, и как устроен процесс работы над продуктом в нашей команде, до того, где поучиться, что почитать, и где вообще берут на работу продакт менеджеров.

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

Сразу хочу сказать, что все книги на английском. Часть из них можно найти на русском, но без английского на уровне чтения и прослушивания подкастов будет тяжко – на русский клевые вещи об управлении продуктами переводят медленно и нехотя. Второй момент – чтение книг из этого списка не сделает из вас менеджера продукта. Как и книжка С++ за 21 день не сделает из вас С++ разработчика. Просто уровень вхождения в окологуманитарные профессии пониже, и это иногда создает напрасные иллюзии.

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

Итак, мой список рекомендованной литературы для всех, кто хочет хочет проливать кровь, пот и слезы работать продакт менеджером или уже работает им.
Читать дальше →
Всего голосов 84: ↑75 и ↓9+66
Комментарии20

Лучшее время для изучения микроконтроллеров

Время на прочтение12 мин
Количество просмотров212K
image
Признайтесь, как часто вы думали о том, чтоб освоить азы программирования микроконтроллеров? Наверняка у вас есть в голове несколько идей потенциальных проектов, но воплощать их в жизнь вы так и не взялись. Так вот: лучше времени для старта, чем сейчас просто не найти.

Почему я решил, что этот вопрос интересен аудитории Хабра? Достаточно проанализировать количество добавления в избранное некоторых постов и выводы напрашиваются сами собой.

С другой стороны, в моём текущем окружении очень много программистов, но почти нет имбедеров. Когда я разговариваю с ними на тему микроконтроллеров, у меня создаётся впечатление, что мнение о них у многих осталось на уровне 10-летней давности.
Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии77

FT232H, MPSSE и SPI-программатор за 15 евро

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

Странно, что про этот крайне популярный и полезный чип до сих пор не было статьи на Хабре. Считаю необходимым восполнить этот пробел. В статье будет описано несколько интересных способов применения чипа FTDI FT232H и его аналогов для различных прикладных целей.
Пару слов о нем: относительно дешевый, простой в разводке и программировании, распространенный конвертер USB 2.0 <-> последовательные протоколы (USART, SPI, I2C, JTAG TAP и просто GPIO bit-bang), хорошо подходящий как для изготовления собственных устройств с подключением к ПК по USB, так и для тестирования и отладки других устройств.
Из простой breakout-платы на этом чипе легко и непринужденно можно сделать UART-конвертер, SPI-программатор, JTAG-отладчик, I2C-master, конвертер GPIO bit-bang (а с ним и остальных протоколов, не требующих запредельных частот и стойких к возможным задержкам, вносимым USB-стеком, к примеру, Dallas 1-wire).
Если вышеуказанные возможности сумели вас заинтересовать — прошу под кат.
Вперед, читатель!
Всего голосов 65: ↑64 и ↓1+63
Комментарии31

Информация

В рейтинге
4 944-й
Откуда
Pittsburgh, Pennsylvania, США
Дата рождения
Зарегистрирован
Активность