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

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

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

Подарок на 1 сентября всем поклонникам цифровой схемотехники и архитектуры компьютера

Время на прочтение2 мин
Количество просмотров29K
hh2e_lecture_slides_banner_3

Господа! Сегодня на 1 сентября, в День Знаний, группа из украинских преподавателей вузов, их аспиранток, а также российских инженеров, решили, по согласованию с британскими издателями Elsevier через компанию Imagination Technologies, сделать небольшой подарок всем учителям компьютерной архитектуры и цифровой схемотехники, особенно тем, которые используют популярный учебник Дэвида Харриса и Сары Харрис.

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

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

Итого, вырезка из слайдов, чтобы вы поняли, о чем идет речь:
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии13

Гильоши

Время на прочтение11 мин
Количество просмотров40K
Гильоши — это характерные узоры на деньгах и ценных бумагах. Они красивы, и сочетают в себе одновременно заметную сложность с внутренней простотой — когда кажется, что ты вот-вот уловишь принцип, но он каждый раз от тебя ускользает. Возможно, именно это и есть определение красоты.
Читать дальше →
Всего голосов 123: ↑123 и ↓0+123
Комментарии56

Видеоматериалы, блоги и подкасты для .NET разработчика

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


В одной из своих статей Бьёрн Страуструп (папа С++) признался, что он не признает видео материалы в качестве источника для самообразования. И с ним сложно не согласиться, когда речь касается изучения с нуля языка программирования или технологии. Я правда сомневаюсь, что можно одолеть такого монстра, как С++ или стать гуру WPF лежа на диване и просматривая обучающее видео типа «Узнай все за 24 часа». Но если вы ставите себе цель познакомиться с некоторой технологией или новой возможностью языка программирования, или просто послушать философско-компьютерные размышления умного товарища, то в этом случае веб-касты, записи конференций или другой вид видеоматериалов может быть очень кстати.
Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии19

Знакомство с межпроцессным взаимодействием на Linux

Время на прочтение11 мин
Количество просмотров206K
Межпроцессное взаимодействие (Inter-process communication (IPC)) — это набор методов для обмена данными между потоками процессов. Процессы могут быть запущены как на одном и том же компьютере, так и на разных, соединенных сетью. IPC бывают нескольких типов: «сигнал», «сокет», «семафор», «файл», «сообщение»…

В данной статье я хочу рассмотреть всего 3 типа IPC:
  1. именованный канал
  2. разделенная память
  3. семафор
Отступление: данная статья является учебной и расчитана на людей, только еще вступающих на путь системного программирования. Ее главный замысел — познакомиться с различными способами взаимодействия между процессами на POSIX-совместимой ОС.
Читать дальше →
Всего голосов 79: ↑78 и ↓1+77
Комментарии22

ASP.NET MVC. Урок 0. Вступление

Время на прочтение2 мин
Количество просмотров782K
Я пишу сайты на asp.net mvc. В этих 16 главах я хочу рассказать, как я это делаю. Это некий учебник-справочник всех тех знаний, которые я накопил в течение трех лет.

Почему именно asp.net mvc

ASP.NET MVC я люблю потому что:
  • Это .net. Я знаю .net и С#.
  • Это компилируемый код.
  • Это не ASP.NET WebForms, я работаю с html-кодом.
  • Используется MVC-паттерн.
  • Visual Studio – самое популярное средство разработки, в котором есть IntelliSense.
  • Отличные инструменты отладки.


Читать дальше →
Всего голосов 290: ↑215 и ↓75+140
Комментарии67

REST vs SOAP. Часть 1. Почувствуйте разницу

Время на прочтение6 мин
Количество просмотров472K
Некоторое время назад я гуглил интернет по поводу “REST vs SOAP”, прочитал пару статей и вроде бы все понял, но не почувствовал от этого никакого удовлетворения. Что-то было не так, то ли я не почувствовал основную идею, то ли просто читал, одновременно слушая новый музон и думая о новой фиче в проекте. Как появилось время, решил восполнить этот пробел, заодно написав полезную статью по этому поводу.
Читать дальше →
Всего голосов 117: ↑106 и ↓11+95
Комментарии101

Мультиплеер в быстрых играх (Часть IV: Хэдшот! Путешествуем во времени)

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

  1. Части I, II (синглплеер с авторитарным сервером)
  2. Часть III (Появление врага)
  3. Часть IV (Хэдшот!)

Как повесить идеальный хэдшот если у тебя пинг 2 секунды? Вы узнаете в этой статье.

Текущий алгоритм работы мультиплеера


  • Сервер получает команды с клиентов и времена их отправления
  • Сервер обновляет состояние мира
  • Сервер с некоторой частотой отправляет свое состояние всем клиентам
  • Клиент отправляет команды и локально воспроизводит их результат
  • Клиент получает обновленные состояния мира и:
    • Применяет состояние от сервера
    • Заново применяет все свои команды, которые сервер не успел применить.
    • Интерполирует предыдущие состояния других игроков
  • С точки зрения игрока, есть два серьезных последствия:
    • Игрок видит себя в настоящем
    • Игрок видит других в прошлом.

Обычно это отлично работает, но это становится большой проблемой для событий, которым нужна высокая пространственно-временная точность. Например если хочется разнести врагу башку!
Читать дальше →
Всего голосов 65: ↑64 и ↓1+63
Комментарии77

Опыт полезной модификации UEFI: возвращаем Thinkpad W520 законную поддержку быстрой памяти

Время на прочтение5 мин
Количество просмотров26K
Для начала предыстория:

Некоторое время назад я приобрёл на Ebay б/у ноутбук Lenovo Thinkpad W520. Как известно, W-серия — это очень мощные ноутбуки, железки в которых дадут фору многим более современным машинам. Конечно же, я начал его обустраивать под себя, и, в частности, решил проапгрейдить имеющуюся память всем, что было в наличии, а в наличии было немало: 2 свободные планки DDR3-1600 из старого ноута — 4 и 8 гигабайт. Посмотрев на то, что было установлено продавцом, я обнаружил, что из 3 установленных планок 2 — DDR3-1600, а одна — 1333. Учитывая, что первые две были по 8 гигабайт, а последняя — 2 гигабайта, от неё я и решил избавиться. Рассчитывая получить после апгрейда 8+8+8+4=28 гигабайт DDR3-1600 в рабочем ноуте, я залил всё слюной и всё это быстренько подключил. И получил 28 гигабайт… DDR3-1333. «Что за...», подумал я и полез в гугл.

После непродолжительных поисков я обнаружил, что как официально, так и неофициально W520 поддерживает только DDR3-1333, а владельцы более быстрой памяти зря тратили на неё деньги. Мне стало немного обидно за всех таких владельцев, и я решил попробовать избавиться от этой несправедливости, тем более, что контроллер памяти, нынче, как известно, в процессоре, и установленный в моей модели Intel Core i7 2720QM официально поддерживает DDR3-1600.
А теперь немного интересных подробностей
Всего голосов 63: ↑62 и ↓1+61
Комментарии56

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

Время на прочтение4 мин
Количество просмотров81K
..., даже если проект не планируется развивать и вы не собираетесь делиться исходными кодами, потому что через 20 лет какой-нибудь маньяк будет изучать и дорабатывать машинный код вашего продукта, и он может захотеть вас найти.

Разработка Need For Speed III Modern Patch

Вообще я достаточно редко играю в компьютерные игры. Бывало, не играл по несколько лет подряд. Но иногда во мне просыпается маленький реверс-инженер, который мотивирует меня забраться в машинный код какой-нибудь любимой игрушки из прошлого. В последний год я занимался доработкой Need For Speed III: Hot Pursuit (1998 года). Это моя любимая игра в жанре, но теперь я, к своему сожалению, знаю о том, насколько отвратительно она написана. Большое количество маленьких багов в самых неожиданных местах — прямое следствие низкого качества кода.
Читать дальше →
Всего голосов 159: ↑156 и ↓3+153
Комментарии87

Компилятор С/С++ на базе LLVM для мультиклеточных процессоров: быть или не быть?

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

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


Немного истории


С начала основания компании "Мультиклет" в 2010 велась разработка нескольких типов компиляторов для мультиклеточной архитектуры:


  1. С первым процессором Multiclet P1 в 2012 году был разработан в составе программного обеспечения компилятор С89 на базе LCC. Одновременно велась разработка первого варианта собственного компилятора, приостановленная ввиду изначально сложного нереализуемого замысла.
    Как уже неоднократно указывалось во многих статьях на данную тему, а также признавалось самими разработчиками компании, компилятор на базе LCC имеет ряд существенных недостатков: поддержка лишь языка С89, отсутствие каких-либо оптимизаций.
    Впоследствии данный компилятор был адаптирован для поддержки нового процессора Multiclet R1 (2015 г.), система команд которого была значительно расширена, но компилятор этого не учитывал.
    Принимая во внимание эти недостатки, руководство компании в 2012 году собрало группу программистов, которым была поставлена задача разработать новый компилятор С99, лишённый указанных недостатков.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии36

Советы о том, как писать на С в 2016 году

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

Если бы язык С был оружием

От автора: Наброски для этой статьи появились еще в начале 2015 года, правда, до публикации материалов дело так и не дошло. Наконец, решив, что в ящике моего письменного стола от вышеупомянутого «черновика» не будет никакой пользы, представляю его вашему вниманию в исходном виде. Единственное, что изменилось в тексте – год, с 2015 на 2016.

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

Итак, статья ...


Первое правило программирования на С – не используйте его, если можно обойтись другими инструментами.

Когда найти альтернативный метод не удается, самое время вспомнить о современных заповедях программиста.
Читать дальше →
Всего голосов 92: ↑84 и ↓8+76
Комментарии80

Так вы думаете, что знаете Const?

Время на прочтение11 мин
Количество просмотров56K
От переводчика:
Предлагаю вам перевод поста из блога Мэтта Стэнклиффа (Matt Stancliff), автора нашумевшей на хабре статьи Советы о том, как писать на С в 2016 году.
Здесь Мэтт делится знаниями о квалификаторе типа const. Несмотря на вызывающий заголовок, возможно, многое из того что здесь описывается будет вам известно, но, надеюсь, и что-нибудь новое тоже найдется.
Приятного чтения.


Думаете, что вы знаете все правила использования const для С? Подумайте еще раз.
Читать дальше →
Всего голосов 57: ↑48 и ↓9+39
Комментарии57

7 типичных русских проблем в английской речи

Время на прочтение10 мин
Количество просмотров254K
South Park
Предметом данной статьи является попытка систематизировать культурные различия, и типичные ошибки которые мы допускаем с нашими иностранными коллегами. Большинство примеров взято из книги Русские проблемы в английской речи. Я взял на себя смелость в небольшой популяризации данной темы, снабжению комментариями и собственными примерами.

1. Я прав, а ты нет
Читать дальше →
Всего голосов 170: ↑160 и ↓10+150
Комментарии171

Будущее гибкой разработки ПО

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

Программное обеспечение проникает во все щели человеческого общества. Мы узнаем погоду через интернет, а не через обычный градусник за окном. Мы едем по новому адресу с навигатором, а не ищем квадрат G7 на странице 59. Мы включаем RunKeeper, когда катаемся на велосипеде, чтобы узнать среднюю скорость и похвастаться в твиттере. Мы используем софт каждый день. Наверное, бОльшую часть жизни мы уже проводим в обнимку с любимыми гаджетами и программным обеспечением, а не с любимым человеком.

Проблема в том, что никто не знает, как на самом деле писать классный софт быстро и правильно. Waterfall благополучно скончался на рубеже веков, а новые методы разработки (agile) пока не могут решить фундаментальные проблемы.
Узнать, что нам всем делать и как с этим жить
Всего голосов 190: ↑180 и ↓10+170
Комментарии81

Живительная флешка

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

Я не собираюсь описывать процесс установки GRUB4DOS, так как это не изменилось и в сети полно инструкций. Просто скажу, что GRUB4DOS просто должен быть установлен на флешку. Также я НЕ собираюсь выкладывать здесь образы систем (все имеется на торрентах), но, тем не менее, выложу полное меню из LST-файлов со структурой папок. Также необходимо учесть, что все образы ISO необходимо дефрагментировать.


Читать дальше →
Всего голосов 97: ↑80 и ↓17+63
Комментарии96

Простая реализация шифрования и расшифровывания файлов в Qt

Время на прочтение4 мин
Количество просмотров27K
Приветствую, почтенное хабрасообщество.

Недавно столкнулся с необходимостью шифровать и расшифровывать файлы в Qt проекте. Основное условие – простота и прозрачность, так как, по сути, нужно заменить работу с файлами через QFile на что-то, что может писать данные в зашифрованном виде и читать их из зашифрованного файла. В итоге родился небольшой класс. Затем появилось желание поделиться с общественностью им, может кому-то пригодится и сэкономит время, а может кто-то доработает его и изменит жизнь к лучшему.
Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии10

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

Время на прочтение3 мин
Количество просмотров15K
Как-то, анализируя дефект в разрабатываемом продукте, я наткнулся на архитектурную особенность менеджера памяти, который мы использовали. Дефект приводил к увеличению времени создания некоторых объектов. Особенность архитектуры заключалась в использовании паттерна Singleton при работе с менеджером памяти (далее X allocator). Схематично это выглядит так:

image
Рисунок 1 – Структурная схема работы X allocator

Из схемы видно, что доступ к глобальной куче защищен мьютексом. Такая архитектура, при интенсивном создании однотипных объектов из нескольких потоков, может привести к тому, что потоки будут вставать в очередь на этом мьютексе. А ведь одна из главных особенностей продукта – это возможность его масштабирования за счет увеличения количества потоков обработки (потоков выполняющих одинаковые действия). Поэтому такой подход потенциально может стать узким местом.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии9

Универсальная метасистема на C++

Время на прочтение8 мин
Количество просмотров16K
Привет, Хабрхабр!

Хочу поделиться своим опытом разработки метасистемы для C++ и встраивания различных скриптовых языков.
Сравнительно недавно начал писать свой игровой движок. Разумеется, как и в любом хорошем движке встал вопрос о встраивании скриптового языка, а лучше даже нескольких. Безусловно, для встраивания конкретного языка уже есть достаточно инструментов (например, luabind для Lua, boost.python для Python), и свой велосипед изобретать не хотелось.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии24

Лекция «история космонавтики»

Время на прочтение2 мин
Количество просмотров24K
Вчера я прочитал лекцию на тему «история космонавтики». Была идея сделать интернет-трансляцию. Похоже, что предварительное тестирование было недостаточным — судя по отсутствию фидбека трансляция не получилась. Тем не менее видео записалось, и его вполне можно посмотреть, если вам интересна эта тема.



Под катом план лекции, ссылка на презентацию и т.п.
Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии16

Сравнительная схема кораблей из научной фантастики

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


DirkLoechel наконец-то закончил работу над самой большой в истории сравнительной схемой космических кораблей из научно-фантастических произведений: художественных фильмов, сериалов и игр. Star Trek, «Звёздные войны», EVE Online и многие другие (полный список под катом). Все культовые корабли — они тут. Открывайте оригинал изображения 4268 x 5690 пикселов — и погружайтесь.
Читать дальше →
Всего голосов 186: ↑157 и ↓29+128
Комментарии202

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность