LINUX.ORG.RU

Сообщения Dendy

Шаблон в шаблоне

Форум - Development

Помогите понять как правильно записать следующее:

template <typename T>
class A
{
public:
	template <typename U>
	class B
	{
	public:
		static int foo;
	};
};

template <typename T, typename U>
void bar()
{
	A<T>::B<U>::foo = 5;
}

int main()
{
	bar<int, char>();
	return 0;
}

Ругается на строке:

A<T>::B<U>::foo = 5;
main.cpp: In function ‘void bar()’:
main.cpp:17:11: error: expected primary-expression before ‘>’ token
main.cpp:17:12: error: ‘::foo’ has not been declared
main.cpp: In function ‘void bar() [with T = int, U = char]’:
main.cpp:22:17:   instantiated from here
main.cpp:17:2: error: dependent-name ‘A<T>::B’ is parsed as a non-type, but instantiation yields a type
main.cpp:17:2: note: say ‘typename A<T>::B’ if a type is meant
()

[Bug report] Двойное уведомление

Форум - Linux-org-ru

Если в комментарии к теме, на которую подписан USER упомянуть его через [usеr]USER[/usеr], то ему прийдёт два уведомления. Ошибка или так и задумано?

()

Android 4.0 и обнаружение лиц на OMAP4

Форум - Talks

Тут решили провести в офисе эксперимент насколько хорошо работает обнаружение лиц в Ducati (подсистема на OMAP4, отвечающая за мультимедиа и алгоритмы). Перед вами GED, тот самый Galaxy Nexus с Android 4.0.3. Думаю, комментарии излишни.

http://s17.postimage.org/3rcf5njkv/IMG_20111226_054941.jpg

()

Android 4.0 в низком старте

Форум - Talks

Итак, встречайте: Galaxy Nexus. Он же Nexus Prime, он же Tuna, он же следующий GED для Android 4.0 «Ice Cream Sandwich» на OMAP4 4460. Ролик рекламный, седьмая вода на киселе, но таки лучше, чем вообще ничего. Краем уха продемонстрированы новые возможности камеры вроде обнаружения лиц и панорамной съёмки, видимо маркетологи посчитали это киллер-фичами.

Осторожно, флеш: http://www.youtube.com/android

P.S. По слухам, ICS должен уйти в OpenSource 5 ноября, так что можете начинать писать новость.

()

Android 4.0

Форум - Talks

Только что попробовал собственными руками следующий GED от Google, тот самый Nexus Prime на OMAP4 с Android 4.0 aka «Ice Cream Sandwich». Такой себе плоский широкий кирпич, приятный на ощупь. Интерфейс повсюду анимированный и очень отзывчивый, не знал бы, что там Java — догататься было бы сложно. Экран большой 1280x720, насколько я понял, плотность пикселей уже достигает 250 DPI. Форм-фактор похож на Nexus S, с лёгкими отличиями.

Аппарат оставляет приятные впечатления. Если Google таки разродится им в октябре, обязательно возьму себе. Также ходят слухи, что одновременно с его выходом исходники ICS уйдут в OpenSource.

()

Так кто тут у нас латентный вендузятник?

Форум - Talks
()

Android 3.0 «Honeycomb» будет closed source?

Форум - Talks

Только что сорока на хвосте принесла. На днях должен выйти новый Андроид, но Google, по всей видимости, решил оставить исходники себе. Как всегда, SDK и прочие инструменты для разработки будут, конечно же, доступны, а вот сами исходники ОС — увы. Какую цель они преследуют этим ходом можно только догадываться. Возможно, борятся с утечкой кода в другие проекты до выхода Honeycomb в мейнстрим или стремятся обеспечить безопастность низкоуровневой подсистемы, в которой, наверняка, ещё полно дыр (система сменила старшую версию и пока очень сырая). Хотя возможно и что Google хочет попридержать мелких поставщиков от распыления сил между 1.x, 2.x и 3.x, ведь новые версии вылетают буквально как пирожки, что догнать их и портировать инфраструктуру попросту нереально.

Если им снова моча в голову не стукнет, то дышащий в спину Андроид 3.1 «Icecream» должен быть открыт.

Вобщем, подтвердите/опровергните, кто там живёт поближе к Корпорации Добра.

()

Глава Intel предпочёл бы Android, а не WP7

Форум - Talks

http://www.3dnews.ru/news/glava-intel-predpochel-bi-android-a-ne-wp7

Очень примечательная цитата CEO Intel с пресс-конференции относительно Nokia, MeeGo и открытых платформ вцелом, особенно в свете последних панических настроений, нагнетённых Стефаном Ёлопом.

>>-----Цитата---->>

Пол Оттеллини также отметил, что его компания решила не участвовать в торгах за поддержку Nokia. Любопытное заявление сделал он и относительно выбора Windows Phone 7: «Я не принял бы решения, которое сделал он [Стивен Элоп]. Вероятно, я бы предпочёл Android, если бы был на его месте. MeeGo была бы наилучшей стратегией, но он решил, что не может позволить себе этого».

Также он сказал, что операторы всё ещё ждут выхода MeeGo, которая должна стать открытой экосистемой, конкурентной по отношению к Android. В Барселоне господин Отеллини также указывал, что открытые системы имеют большие преимущества: «Некоторые закрытые модели, конечно, сохранятся, потому что при таком подходе можно оптимизировать их работу, но в целом, если объединить возможности инженеров всего мира с разработчиками, открытые системы победят».

<<-----Цитата----<<
()

Управление экранами в X11

Форум - Desktop

Есть конфигурация: Nvidia с двумя DVI-выходами, к которым подключёны: монитор (1920x1200) и проектор (1920x1080). С помощью утилиты от Nvidia они настроены как различные экраны (screens), вот так: http://imageupload.org/?di=14129811501011

1. Как запустить на этих экранах разные оконные менеджеры? На мониторе мне нужен kwin, а на проекторе — metacity. Предупреждая вопрос отвечу зачем — kwin не умеет определять размеры экрана, смещая картинку на проекторе, то-есть он думает, что на нём разрешение такое же, как и на мониторе.

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

()

Своевременное корректирование новостей

Форум - Linux-org-ru

Часто корректоры воздерживаются от правки неподтверждённых новостей. Причина ясна, ведь тема всегда рискует отправить в мусорное ведро, а работа — коту под хвост. Как результат — темы на главную часто попадают в страшноватом виде (как, например, вот эта: http://www.linux.org.ru/news/novell/5891016), после чего спустя N времени до неё добирается авангард грамар-наци. И хорошо ещё, если через N, а то ведь бывает и через M.

Просьба моредаторам как-то сообщать, какие новости они собираются подтверждать в ближайшем будущем. Лучше всего — прикрепить тему в l-o-r, на которую будут подписаны только корректоры, чтобы приходили уведомления.

Предложения приветствуются.

()

LORCODE: млуг.рф

Форум - Linux-org-ru

Коротко: кириллический домен разбирается с ошибкой в LORCODE.

Проявилось в этой теме: http://www.linux.org.ru/news/russia/5873304

Как выглядит сейчас и как должно быть видно здесь: http://img265.imageshack.us/img265/1743/lorcode.png

()

Firefox и горячие клавиши

Форум - Desktop

Работаю, значит, на своём новеньком ThinkPad'е и за недолгое время успел несколько раз в Фаерфоксе потерять текст случайным нажатием на кнопки предыдущий/следующий документ (те, что над курсором). Да, я знаю, что так сделаны некоторые сайты, но меня это мало утешает. Комбинации ALT+влево/ALT+вправо меня устраивают для навигации вперёд/назад с головой. Отсюда вопрос - как можно отключить поведение этих кнопок конкретно в Фаерфоксе? Или они глобально в X11 эмулируют ALT+влево/ALT+вправо?

()

Личные сообщения

Форум - Linux-org-ru

Как-то тихо и незаметно спустили на тормоза замечательную идею, которую предложил камрад guilder, а именно - сделать на форуме личные сообщения. Собственно, сама тема здесь: http://www.linux.org.ru/forum/talks/5469988, если из от модераторского сообщества поступил вердикт, прошу ткнуть ссылкой.

Вкратце идея выглядит следующим образом:

1. Как бы это страшно ни звучало - создать отдельный раздел "Личные сообщения", в которой каждый желающий создаст себе ровно одну тему, в теле которой будет его открытый GPG-ключ.

2. Желающий написать личное сообщение отвечает на корневую тему в зашифорванном виде.

3. Получатель видит в уведомлениях (1), открывает и расшифровывает сообщение.

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

В недостатки схемы можно отнести видимость активности дискуссии между конкретными пользователями. Однако можно всегда кинуть ссылку на джаббер, переведя разговор за пределы ЛОРа.

Ну а преимущества - это конечно же уникальный олдскульный подход, когда для простого чтения корреспонденции нужно пару минут покрасноглазить. Кроме того, часто пользователи прячут свои контактные данные, а создание личной переписки в Talks рискует навлечь гнев бдящих хранителей ЛОРа, но даже без этого подобную тему элементарно можно проглядеть или она попросту уйдёт за горизонт. А связаться ведь кровь из носу нужно.

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

Прошу организовать внутреннее обсуждение/голосование среди власть имущих, судя по отзывам в предыдущей теме - абсолютное большинство За.

()

KDE3 + KDE4 в одном флаконе

Форум - Talks

До сих пор активно пользуюсь KDE3 в качестве основного DE, но от прогресса не убежать, большинство программ, основанных на KDE4 сильно превосходят ближайших конкурентов. Поскольку с определённого релиза программы на KDE4 перестали сворачиваться в трей KDE3, придумал себе вот такое решение:

http://img594.imageshack.us/img594/8692/snapshot1o.png

Более того - таким способом можно задействовать любой полезный плазмоид.

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

()

openSUSE + KDE4 = Epic Fail

Форум - Talks

Решил поставить себе на свежий ноутбук свою любимую openSUSE. Хоть я и прекрасно осознаю, что этот дистрибутив для опытных пользователей, возомнив себя таковым, приступил к самому процессу. В надежде, что на сей раз проблемы меня минут. Увы и ах. После развёртывания образа на жёсткий диск, первое, что я сделал - запустил обновляться. Поскольку процесс сей не быстрый, пока YaST шуршал интернетами и винтом, я рассматривал Dolphin'ом содержимое другого компьютера по самбе. Вдруг система закричала нечеловеческим голосом, что место на диске всё. После чего даже в виртуальном терминале попытка логина выдавала ошибку. Единственный путь - ресет, после которого система выдала, мол примонтировать раздел никак, ибо файловой системы ext4 она не знает.

Дальнейшее расследование с LiveUSB подтвердило, что таки место на / всё. Виновник был моментально обнаружен по толстым следам в /tmp/kde-dendy, им оказался Dolphin, заняв своими временными файлами всё пустое место - около 5 Гб. Было бы больше - съел бы и его.

Я конечно понимаю, что софт на образе уже старый, но сам факт, что система из коробки рискует "обновиться" до полной недееспособности удручает.

Итого, Dolphin получает 2 балла за 5 Гб временных файлов в течении 10 минут. openSUSE получает кол за выключенный по-умолчанию режим "сначала всё качаем, потом всё ставим".

()

#pragma once

Форум - Development

Я являюсь адептом #pragma once, использую эту директиву во всех своих проектах и поощряю других к тому же. Тем не менее время от времени приходится натыкаться на код с использованием header guards, причём код относительно свежий, без налёта 20-го века. Сей факт меня, как представителя homo sapience (с акцентом на sapience) не перестаёт удивлять.

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

1. header guards - это хак и как любому хаку в коде ему не место. Более того, это хак в квадрате из-за использования макросов, что сами по себе есть зло. Логика подсказывает, что если же хак превращается в правило - проблему нужно решать на глобальном уровне, причём стандарт должен минимизировать побочные эффекты к нулю. Именно отсюда и родился #pragma once - тот самый стандарт, призванный решить существовавшие проблемы с включением заголовочников.

2. Конфликт имён. Если вы в своём коде добавили util.h с #define UTIL_H внутри, рано или поздно вы наткнётесь на конфликт с 3rdparty-библиотекой с таким же макросом. Единые правила для выбора имён макросов дискредитируют саму их идею - если все будут их придерживаться, то в результате они породят те же конфликты. Остаётся надеяться на генераторы мусорных суффиксов, которые а) идут вразрез с идеей того, что код должен писаться для человека и б) привет, рефакторинг! то-есть, пока... переименовав один заголовочник в другой или просто скопировав код получаем чёрти что.

3. Поощрение к хитростям. Если макрос объявлен, значит его можно и удалить, чтобы потом попробовать включить заголовочник снова. Или смешная до коликов в животе попытка "ускорить" компиляцию следующим хаком:

#ifndef UTIL_H
#include "util.h"
#endif

Которая не только ни на грамм не быстрее, но ещё и вынуждает следить по всему коду, чтобы макрос совпадал.

Конечно подкованный кодер к подобным хитростям чужд, максимум кого ими можно обхитрить - самого себя. Тем не менее неоднозначная семантика header guards вынуждает молодого программиста задуматься - а вдруг таки можно? Однозначная семантика #pragma once решает эту проблему на корню, минимизируя возможные хаки и ошибки к нулю.

4. Распространённость и поддержка компиляторами. Как известно, чем проще код - тем легче его сопровождать. Аргумент сложности реализации #pragma once для меня вообще смешон, поддержка реализуется примерно следующим алгоритмом:

int include_or_not_the_header( const char * path )
{
    if ( pragma_onced_headers_cache_contains( path ) )
        return DONT_INCLUDE_THIS_HEADER;

    if ( does_header_contain_pragma_once( path ) )
        pragma_onced_headers_cache_add( path );
    
    return INCLUDE_THIS_HEADER_PLEASE;
}

Если кто сможет назвать хоть один компилятор (помимо мирно лежащих в гробах) без поддержки #pragma once - будьте добры. Мой гугл находит только кивания, что суслик как бы есть, но в глаза его никто не видел.

5. Миф о проблемах с символическими ссылками в #pragma once. Давно развеян с тех пор, как в GCC в кеш (см. пример выше) стали ложить не символические ссылки на файлы, а сами файлы.

6. Достоинства header guards. Здесь прочерк.

Итого я пришёл к выводу, что header guards продолжают пользоваться:
1) Осознанно. Бородатые программисты с бородатыми компиляторами со специфичным кодом под специфичные устройства.
2) Неосознанно - все остальные.

Отчасти на пункт 2 повлияли два фактора - ISO и GCC. Первый, насколько я понимаю, до сих пор жмётся, чтобы добавить директиву в стандарт. Второй долгое время выдавал warning на эту директиву, мол deprecated и вообще ай-яй-яй. Пользователи при этом балансировали на грани, а многие поддались общей панике и устроили крестовые походы набеги на #pragma once, насаждая всюду религию header guards. И видимо по инерции не заметили, как ещё в 2004-м году (!!) в GCC 3.4 официально убрали любые комплексы по этому поводу, оставив #pragma once навсегда в списке поддерживаемых директив.

Аргументы за и против, а также список компиляторов без поддержки #pragma once - приветствуются. Примеры сотен кода, в которых используются header guards без аргументации почему - можете оставить себе.

()

King's Bounty

Форум - Talks

Играю сейчас в эту замечательную пошаговую игрушку, мир которой густо населён всевозможными NPC разных рас. Уже повидал Робина Гудмена, Бенгана, Рейк Явика и прочих камео. Каково же было моё удивление при встрече этого персонажа:

http://img837.imageshack.us/img837/3109/screen101009000.png

()

Википедия и телевизор

Форум - Talks

Всё таки фильмы бывают смешными, и не только комедии. Касл, герой одноимённого сериала, которого играет Натан Филлион (Светлячок, Серенити), 3-й сезон, 3-я серия, время момента 18:25:

>>-----Цитата---->>

Дочурка Касла: - Ты решил на счёт скутера?
Касл: - Ты слышала о потреблядстве?
Д: - Потребительстве?
К: - Потреблядстве. Это синдром, присущий детям из богатых семей.
Д: - Ты это выдумал.
К: - Нет, посмотри в Википедии.

<<-----Цитата----<<

Думаю после просмотра этого момента с экранов телевизоров многие таки решат познакомиться с новомодным словом получше. И не найдя его в Википедии придут на правильный сайт (начинается на "Л", заканчивается на "Р", но не ЛОР).

()

Возврат OEM Windows в Украине

Форум - Talks

Таки заказал себе Lenovo ThinkPad X200s, должен приехать в пятницу. Тем временем ищу информацию как сделать возврат Windows. Судя по этому документу http://www.pc.ibm.com/europe/microsoft/ru/os_return_policy.html с возвратом в России у Lenovo проблем нет. Главный вопрос - как с этим в Украине?

Вопрос номер 1. Может кто скинуть текст лицензии, которую я должен лицезреть при первом включении и от которой должен отказаться?

Вопрос номер 2. У кого есть истории успеха по возврату OEM Windows в Украине?

()

Trackpad vs Touchpad

Форум - Talks

Под Trackpad'ом подразумевается торчащий из клавиатуры пиптик, в простонародье именуемый клитором.

На днях основательно пощупал MacBook Pro, оставлю недостатки в покое (их хватает) и сразу перейду к тому, что понравилось. Собственно это что-то состоит из одного пункта: Touchpad.

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

Соберу свои плюсы относительно тачпада:

1. Практически все операции можно выполнить только одними касаниями, без раздражающих щелчков:
- клик левой кнопкой (касание одним пальцем);
- клик правой кнопкой (касание двумя пальцами);
- клик средней кнопкой (касание тремя пальцами);
- скроллирование во все стороны (вождение двумя пальцами);
- перетягивание с зажатой левой кнопкой (двойное нажатие + вождение одним пальцем).
2. Точность и скорость наведения.
3. Разгруженная клавиатура.

Как вот такие типичные операции делаются трекпадом? Можно ли по трекпаду кликать? Не мешаются ли пальцы в клавиатуре, откуда этот самый трекпад как правило торчит? Как вообще делается скроллирование?

И конечно же насущный вопрос, насколько трекпады хорошо поддерживаются в Линуксах, как на уровне ядра, так и на уровне DE? Можно ли при желании стандартными средствами переопределить поведение (если оно конечно нужно)?

P.S. Предполагаемый бук - Lenovo ThinkPad X200s.

()