14 авг. 2010 г.

Сообщения об ошибках в clang

Одним из требований к clang — новому компилятору Си++ — было предоставить пользователю подробную информацию об ошибках. Рассмотрим небольшой пример.

double UniversalGravitation(double G, double mass1, double mass2, double distance)
{
    double F = G * ((mass1 * mass2)/(distance * dsitance));
    return F;
}

Здесь допущена описка в идентификаторе. Что же покажет нам clang?

consoleoutput

Во-первых, он заботливо подчеркивает место в длинном выражении, какой именно идентификатор он считает незнакомым. Во-вторых, он учтиво подсказывает возможное исправление. Вспомним, как выглядит похожие сообщения в Microsoft Visual Studio 2010. (Хотя Визуал Студию 2010 можно и похвалить: такой тип ошибок оно подсвечивает ещё при редактировании.)

consoleoutputvs2010

gcc показывает что-то вроде такого:

/tmp/webcompile/_13952_0.cc: In function 'double UniversalGravitation(double, double, double, double)':
/tmp/webcompile/_13952_0.cc:3: error: 'dsitance' was not declared in this scope

Почитать о других возможностях диагностического механизма компилятора clang можно в справке: Expressive Diagnostics. Очень интересны случаи, когда оно находит ошибки в неразвёрнутых макросах или в тайпдефах.

Уже жду, когда компиляторы в будущем будут сами исправлять ошибки. А потом и сами писать код.

13 авг. 2010 г.

Выкинул кусок кода

Сегодня удалил из проекта старый Си++-парсер. Спасибо знакомому выпускнику (почти), который образумил меня на этот поступок. Решил интегрировать clang — компилятор Си++ с открытым исходным кодом. Он написан на Си++, компилирует в промежуточное представление llvm, а ещё якобы быстрее и меньше gcc. Теперь потребуется какое-то время, чтобы адаптировать это представление к граф-схемам алгоритма, которые используются при синтезе в железо. Сами алгоритмы синтеза и дампа в Верилог меняться не будут. О результатах доложу позже.

Пик-рилейтед:

sourcelines

Подборка интервью с Артемием Лебедевым

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

Описание

Дата

Время

Антропология — Артемий Лебедев

Лебедев в гостях у Дмитрия Диброва. Благодаря грамотному журналисту интервью получилось очень содержательным и интересным. Темы:
— история;
— веб-дизайн;
— интернет.

http://art-sluza.info/2010/07/03/lebedev/

1999

47:13

Артемий Лебедев в архиве программы «Времечко»

Интервью перемешано со сводками новостей. Качество оставляет желать лучшего. Темы:
— интернет и компьютеры;
— Студия Артемия Лебедева;
— стоимость сайта и клиенты;
— программное обеспечение.

http://rutube.ru/tracks/1815277.html

2000

47:34

Дмитрий Шапошников и Артемий Лебедев на Новом канале

Коротко, но интересно. Темы:
— как всё начиналось;
— студия;
— отношения с заказчиками;
— разработка сайтов;
— открытие представительства студии на Украине;
— вопросы телезрителей к Лебедеву;
— бизнес-линч сайта «Нового канала»

http://www.youtube.com/watch?v=ARznSFTzUg0

2001

24:04

Выступление перед студентами Новосибирского государственного университета

Лебедев рассказывает о студии, о том, как всё начиналось, о дизайне, о работе, о ЖЖ, отвечает на вопросы студентов. Весьма интересное и содержательное выступление.

http://video.globala.ru/play/2042

2005

1:50:00

Артемий Лебедев о русском языке. Программа «Ленивые будни»

http://rutube.ru/tracks/981863.html

2007

58:02

О свободе самовыражение блогера

Ответы на вопросы блогеров об общении в интернете.

http://video.i.ua/user/9/33/45554/

2008

20:26

50 ответов Артемия Лебедева

Интервью записано во время этнографической экспедиции — 2008. Качество записи хромает. Темы:
— этнографическая экспедиция;
— Студия Артемия Лебедева;
— города и путешествия;
— личные вопросы.

http://www.youtube.com/watch?v=FGRrZfaT-go

2008

19:50

«Клиент — это враг?»

Запись «поединка» между Игорем Манном и Артемием Лебедевым. Весёлое интервью. Темы:
— отношения с клиентами;
— увольнение клиента;
— CRM;
— маркетинг и PR.

http://www.youtube.com/watch?v=BVUdS_NXdKI (часть 1)
http://www.youtube.com/watch?v=ZeJtB2xXMNE (часть 2)
http://www.youtube.com/watch?v=K8pNaTGVWv4 (часть 3)

2008

29:29

Новый облик городов: инфраструктура, культура, дизайн

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

http://www.youtube.com/watch?v=RxF63VvcJdw

2010

7:25

Бизнес-секреты: Артемий Лебедев

Олег Тиньков приглашает в гости Артемия Лебедева, чтобы выведать бизнес-секреты. Темы:
— Живой Журнал, его феномен;
— Студия;
— интернет, веб, Вконтакт, Фейсбук, Твитер;
— продажи в интернет-магазине;
— и немного о политике.

http://www.youtube.com/watch?v=MKoNHZbERMQ

2011

39:58

Раздвоение личности

Артемий Лебедев в гостях программы «Раздвоение личности» на канале iTV. Темы:
— где пересекается реальная жизнь и виртуальная?
— общение в каментах;
— отношение к благотворительности;
— заработок на блоге;
— о Живом Журнале;
— реклама в журнале tema;
— сиськи по пятницам субботам.

http://community.livejournal.com/itvcom/4452.html

2011

26:18

Искусство провокации

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

http://www.youtube.com/watch?v=ZUAXs-4XvgQ
http://www.youtube.com/watch?v=hHRLtPRYE0k
2011

1:15:38

10 авг. 2010 г.

Прогноз погоды на август

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

weather2

Ну и прогноз суточной температуры на сентябрь.

weather3

9 авг. 2010 г.

Новости погоды

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

weather

Спортивные новости

Харьковская служба интернет-новостей «Медиапорт» торопится ознакомить харьковчан с результатами спортивных соревнований:

news

На самом деле «Металлист» играл дома в Харькове, значит они были хозяевами. Это «Ворскла» играла в гостях. Краснопёров не забивал с пенальти. Он забил после выхода один-на-один с вратарём «Металлиста». А с пенальти забил Девич на 52-й минуте.

Правописание местами хромает. Но всем известно, что в интернет-журналистике факты и правописание играют второстепенную роль.

7 авг. 2010 г.

О дизайне в документации разработчика

Долго не мог понять в чем проблема, но только что разобрался и тороплюсь доложить вам. Заметил, что читая документацию в MSDN’е на душе становится как-то хорошо и спокойно, а когда читаю в doxygen’е, то как-то подташнивает.

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

Так вот, если меня интересует какой-либо класс из библиотеки .NET, то в MSDN’е описание выглядит так:

msdn

Здесь четко видно: секция «конструкторы» — один метод, секция «методы» — пять. Плотность подачи информации равна шести единицам. Давайте посмотрим на документацию в дефолтовом стиле doxygen’а:

doxygen

Секции всё также видны, но так легко считать отдельные методы уже не получается. Визуально толстые синие ссылки доминируют над декларациями методов, и отвлекают внимание. Более того, на одном экране мы видим описание только трёх методов. Значит условная плотность равна трём.

Обратите внимание, как doxygen заботливо тип «unsigned» сделал ссылкой. Если вы забудете, что такое unsigned, то вы всегда сможете пройти по ссылке и узнать.

Важная часть документации — это не только описание, но и примеры исходного кода. В MSDN’е мы видим исходники в таком оформлении:

msdn_source

Раз, два, три, четыре — и всё. Четыре цвета. Исходный код в doxygen’е выглядит так:

doxygen_source

Здесь же мы видим такие классы подсветки: 1) директивы; 2) ссылки; 3) ключевые слова раз; 4) ключевые слова два; 5) комментарии; 6) встроенные типы; 7) идентификаторы, пунктуация. Итого семь разных цветов. Понятно, что подкраска — это дело вкуса, но если пользователь и так знает, что на любой идентификатор можно кликнуть и перейти в место определения, то зачем лишний раз выделять ссылки синим цветом?

Ну и на последок уменьшенная в пять раз collaboration diagram из doxygen’а. Реально кто-то будет ей пользоваться будучи в реальном размере (3600 на 1500 пикселей, смотреть оригинал)?

collaboration_750px

В комментариях приветствуются ссылки на мануалы и личный опыт ведения документации, настройки doxygen’а и прочее.

Темы

2012 (2) амазон (1) анпакинг (1) артемий лебедев (4) атн (1) аудио (1) аэропорт (1) безопасность (3) бизнес (1) билайн (1) блог (2) будущее (2) видео (11) википедия (5) вымысел (16) гагарин (1) герман (1) гитхаб (1) гугл (3) дед мороз (1) декабрь (1) демотиватор (2) дети (2) дизайн (13) диссертация (2) документация (1) друзья (5) евпатория (1) евро-2012 (1) жадность (1) заяц (1) идея (1) имейл (1) инстаграм (1) интервью (5) интересное (20) интерфейс (13) история (7) как_выжить (4) календарь (1) капитализм (1) картина (1) кмб (6) книга (6) коллекция (4) компилятор (2) конкурс (5) космос (1) лаборатория (1) либералы (1) лингво (1) лузер (6) макаренко (2) макдональдс (2) математика (1) медиапорт (1) ментор (1) металлика (1) металлист (2) метро (7) микрософт (6) миргород (1) москва (2) музыка (3) наркомания (1) новости (17) образование (3) оптимизация (5) основы (14) открытки (3) ошибка (11) памятник (1) патриотизм (3) плагиат (1) плата (1) погода (3) поиск (1) политика (2) полтава (2) праздник (1) программирование (15) прошлое (2) путешествия (8) рейтинг (1) рендер (1) рисунок (2) русские (1) русский язык (1) сайт (4) санкт-петербург (1) сапр (7) сеть (1) си++ (1) синтез (1) системси (1) скриншот (40) социализм (1) соцопрос (3) спектрум (2) спорт (2) срач (2) статистика (1) такси (1) тбб (3) твитер (9) тимошенко (1) украина (5) униан (1) фан (30) фокус (1) фото (39) фотошоп (1) фурсенко (1) футбол (2) хабр (1) харьков (21) хнурэ (19) хобби (4) цитата (2) чехия (1) школа (1) эпл (1) эхостар (1) юмор (1) яндекс (1) clang (2) doxygen (1) english (3) ios (1) llvm (1) msdn (1) outlook (1) PHP (1) stackoverflow (1)

Поиск

Читатели