Использование Visual Studio для разработки для C++ для Unix

Есть ли у кого-нибудь истории сражений, которыми можно поделиться, пытаясь использовать Visual Studio для разработки приложений для Unix? И я не говорю об использовании .NET с виртуальной платформой Mono или Wine, работающей под ним.

Наша компания насчитывает около 20 разработчиков, работающих под управлением Windows XP/Vista и разрабатывающих в основном для Linux & Solaris. До недавнего времени мы все входили в основной сервер Linux и модифицировали/строили код старым добрым способом: Emacs, Vi, dtpad - выбирайте сами. Затем кто - то сказал: "Эй, мы живем в темные века, мы должны использовать IDE".

Поэтому мы попробовали некоторые из них и решили, что Visual Studio была единственной, которая отвечала бы нашим требованиям к производительности (да, я уверен, что IDE X-это очень хороший IDE, но мы выбрали VS).

Проблема в том, как настроить среду, чтобы файлы были доступны локально для VS, но также доступны для сервера сборки? Мы решили написать плагин Visual Studio-он записывает наши файлы локально и на сервер сборки всякий раз, когда мы нажимаем "Save", и у нас есть немного жирная кнопка "sync", которую мы можем нажать, когда наши файлы изменяются на стороне сервера (например, когда мы обновляем последние файлы с нашего сервера управления версиями).

Плагин также использует функцию внешней системы сборки Visual Studio, которая в конечном итоге просто ssh встраивается в сервер сборки и вызывает нашу локальную утилиту "make" (которая является Boost Build v2 - имеет большую проверку зависимостей, но очень медленно запускается в результате, т. е. 30-60 секунд, чтобы начать). Результаты передаются обратно в Visual Studio, так что разработчик может нажать на ошибку и перейти к соответствующей строке кода (довольно гладко на самом деле). Сервер сборки использует GCC и кросс-компилирует все наши сборки Solaris.

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

Есть ли что-нибудь более раздражающее, чем необходимость останавливаться и ждать ваших инструментов? Стоят ли эти преимущества такого разочарования?

Мысли, истории, помощь?

c++   visual-studio   unix   development-environment    

568   13   18:49, 10th August, 2020


Смена загрузочного диска Windows XP?

Всем привет.

Пару лет назад в результате чехарды с жесткими дисками я поставил систему на диск D:\. Деталей точно не помню, так получилось. Загрузчик естественно вписался на С:\, в результате чего ни один диск нельзя отключить.

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

Windows    

384   5   18:46, 10th August, 2020


Как сделать Ping с указанием времени отправки/получения пакета?

Необходимо получить строчку типа:
Обмен пакетами с 192.168.213.1 по с 32 байтами данных:
[09:54:01] Ответ от 192.168.213.1: число байт=32 время<1мс TTL=64
[09:54:02] Ответ от 192.168.213.1: число байт=32 время<1мс TTL=64
...

плюс, желательно записать ее в лог. Решения нужно 2, для Windows и Linux.

То что ниже не предлагать, это издевательство:
time /t >> 1.txt & ping -n 1 xxx.yyy.zzz.www >> 1.txt\

UPD: Появилось решение для Windows и для Linux.

Linux   Ping   Управление   временем    

623   3   18:37, 10th August, 2020


Фреймворк/Движок для разработки 2D игр на ActionScript (Flash)?

На чём сейчас делают 2D игры для Flash? И какие блоги порекомендуете для чтения на эту тему? Я пока нашел интересными вот эти ресурсы xitri.com/ и flashgameblogs.ru/

Adobe   Flash   Фреймворки    

346   3   18:03, 10th August, 2020


Bitrix, шаблон комплексного компонента

Подскажите пожалуйста, как правильно в Битриксе изменить шаблон комплексного компонента «Каталог товаров»?
В документации: «Папка шаблона комплексного компонента может содержать следующие подпапки и файлы… Шаблоны простых компонентов, которые входят в состав комплексного. Эти шаблоны располагаются в папках вида /пространство_имен/название_простого_компонента/ относительно папки шаблона комплексного компонента.»
Проблема в том, что от путей и количества уровней вложенности папок Битрикса у меня просто сносит уже крышу. Никак не могу сообразить, куда положить эти самые шаблоны простых компонентов.
Шаблон комплексного компонента лежит в папке bitrix/templates/шаблон_сайта/components/bitrix/catalog/catalog (он туда поместился при копировании через меню в разделе «Разработка», следовательно, этот путь правильный). В этой папке есть подпапка bitrix, в которую скопировались также папки простых шаблонов. Но, к примеру, в папке catalog.section.list нет файла template.php, а если я его создаю — он не применяется!
P.S. пробую пока на демосайте.

Вот вызов компонента:

<?$APPLICATION->IncludeComponent("bitrix:catalog", "catalog", Array(
"IBLOCK_TYPE" => "catalog", // Тип инфо-блока
"IBLOCK_ID" => "14", // Инфо-блок
"BASKET_URL" => "/personal/cart/", // URL, ведущий на страницу с корзиной покупателя
"ACTION_VARIABLE" => "action", // Название переменной, в которой передается действие
"PRODUCT_ID_VARIABLE" => "id", // Название переменной, в которой передается код товара для покупки
"SECTION_ID_VARIABLE" => "SECTION_ID", // Название переменной, в которой передается код группы
"SEF_MODE" => "Y", // Включить поддержку ЧПУ
"SEF_FOLDER" => "/catalog/", // Каталог ЧПУ (относительно корня сайта)
"AJAX_MODE" => "N", // Включить режим AJAX
"AJAX_OPTION_SHADOW" => "Y", // Включить затенение
"AJAX_OPTION_JUMP" => "N", // Включить прокрутку к началу компонента
"AJAX_OPTION_STYLE" => "Y", // Включить подгрузку стилей
"AJAX_OPTION_HISTORY" => "N", // Включить эмуляцию навигации браузера
"CACHE_TYPE" => "A", // Тип кеширования
"CACHE_TIME" => "3600", // Время кеширования (сек.)
"CACHE_FILTER" => "N", // Кэшировать при установленном фильтре
"DISPLAY_PANEL" => "Y", // Добавлять в админ. панель кнопки для данного компонента
"SET_TITLE" => "Y", // Устанавливать заголовок страницы
"SET_STATUS_404" => "Y", // Устанавливать статус 404, если не найдены элемент или раздел
"USE_FILTER" => "Y", // Показывать фильтр
"FILTER_NAME" => "FILTER", // Фильтр
"FILTER_FIELD_CODE" => array( // Поля
0 => "NAME",
1 => "",
),
"FILTER_PROPERTY_CODE" => array( // Свойства
0 => "",
1 => "",
2 => "",
3 => "",
),
"FILTER_PRICE_CODE" => "", // Тип цены
"USE_REVIEW" => "Y", // Разрешить отзывы
"MESSAGES_PER_PAGE" => "0", // Количество сообщений на одной странице
"USE_CAPTCHA" => "N", // Использовать CAPTCHA
"PATH_TO_SMILE" => "/bitrix/images/forum/smile/", // Путь относительно корня сайта к папке со смайлами
"FORUM_ID" => "2", // ID форума для отзывов
"URL_TEMPLATES_READ" => "/communication/forum/forum#FORUM_ID#/topic#TOPIC_ID#/", // Страница чтения темы (пусто - получить из настроек форума)
"SHOW_LINK_TO_FORUM" => "N", // Показать ссылку на форум
"POST_FIRST_MESSAGE" => "N", // Начинать тему текстом элемента
"USE_COMPARE" => "Y", // Использовать компонент сравнения
"COMPARE_NAME" => "CATALOG_COMPARE_LIST", // Уникальное имя для списка сравнения
"COMPARE_FIELD_CODE" => array( // Поля
0 => "",
1 => "",
),
"COMPARE_PROPERTY_CODE" => array( // Свойства
0 => "",
1 => "",
2 => "",
3 => "",
4 => "",
),
"DISPLAY_ELEMENT_SELECT_BOX" => "N", // Выводить список элементов инфоблока
"ELEMENT_SORT_FIELD_BOX" => "sort", // По какому полю сортируем список элементов
"ELEMENT_SORT_ORDER_BOX" => "asc", // Порядок сортировки списка элементов
"COMPARE_ELEMENT_SORT_FIELD" => "name", // По какому полю сортируем товары в разделе
"COMPARE_ELEMENT_SORT_ORDER" => "asc", // Порядок сортировки товаров в разделе
"PRICE_CODE" => array( // Тип цены
0 => "RETAIL",
),
"USE_PRICE_COUNT" => "N", // Использовать вывод цен с диапазонами
"SHOW_PRICE_COUNT" => "0", // Выводить цены для количества
"PRICE_VAT_INCLUDE" => "Y", // Включать НДС в цену
"PRICE_VAT_SHOW_VALUE" => "N", // Отображать значение НДС
"SHOW_TOP_ELEMENTS" => "Y", // Выводить топ элементов
"TOP_ELEMENT_COUNT" => "3", // Количество выводимых элементов
"TOP_LINE_ELEMENT_COUNT" => "1", // Количество элементов, выводимых в одной строке таблицы
"TOP_ELEMENT_SORT_FIELD" => "id", // По какому полю сортируем товары в разделе
"TOP_ELEMENT_SORT_ORDER" => "desc", // Порядок сортировки товаров в разделе
"TOP_PROPERTY_CODE" => array( // Свойства
0 => "",
1 => "",
),
"PAGE_ELEMENT_COUNT" => "5", // Количество элементов на странице
"LINE_ELEMENT_COUNT" => "1", // Количество элементов, выводимых в одной строке таблицы
"ELEMENT_SORT_FIELD" => "sort", // По какому полю сортируем товары в разделе
"ELEMENT_SORT_ORDER" => "asc", // Порядок сортировки товаров в разделе
"LIST_PROPERTY_CODE" => array( // Свойства
0 => "",
1 => "",
),
"INCLUDE_SUBSECTIONS" => "Y", // Показывать элементы подразделов раздела
"LIST_META_KEYWORDS" => "-", // Установить ключевые слова страницы из свойства раздела
"LIST_META_DEscriptION" => "-", // Установить описание страницы из свойства раздела
"LIST_BROWSER_TITLE" => "UF_BROWSER_TITLE", // Установить заголовок окна браузера из свойства раздела
"DETAIL_PROPERTY_CODE" => array( // Свойства
0 => "width",
1 => "height",
2 => "thickness",
3 => "",
4 => "",
5 => "",
),
"DETAIL_META_KEYWORDS" => "-", // Установить ключевые слова страницы из свойства
"DETAIL_META_DEscriptION" => "-", // Установить описание страницы из свойства
"DETAIL_BROWSER_TITLE" => "BROWSER_TITLE", // Установить заголовок окна браузера из свойства
"LINK_IBLOCK_TYPE" => "catalog", // Тип инфо-блока, элементы которого связаны с текущим элементом
"LINK_IBLOCK_ID" => "7", // ID инфо-блока, элементы которого связаны с текущим элементом
"LINK_PROPERTY_SID" => "catalog", // Свойство, в котором хранится связь
"LINK_ELEMENTS_URL" => "/catalog/reviews/detail.php?ID=#ELEMENT_ID#", // URL на страницу где будет показан список связанных элементов
"USE_ALSO_BUY" => "N", // Показывать блок "С этим товаром покупают"
"ALSO_BUY_ELEMENT_COUNT" => "0",
"ALSO_BUY_MIN_BUYES" => "0",
"DISPLAY_TOP_PAGER" => "N", // Выводить над списком
"DISPLAY_BOTTOM_PAGER" => "Y", // Выводить под списком
"PAGER_TITLE" => "Двери", // Название категорий
"PAGER_SHOW_ALWAYS" => "N", // Выводить всегда
"PAGER_TEMPLATE" => "orange", // Название шаблона
"PAGER_DESC_NUMBERING" => "N", // Использовать обратную навигацию
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000", // Время кеширования страниц для обратной навигации
"PAGER_SHOW_ALL" => "N", // Показывать ссылку "Все"
"AJAX_OPTION_ADDITIONAL" => "", // Дополнительный идентификатор
"SEF_URL_TEMPLATES" => array(
"sections" => "",
"section" => "#SECTION_ID#/",
"element" => "#SECTION_ID#/#ELEMENT_CODE#/",
"compare" => "compare.php?action=#ACTION_CODE#",
),
"VARIABLE_ALIASES" => array(
"compare" => array(
"ACTION_CODE" => "action",
),
)
),
false
);?>

1С-Битрикс    

518   1   17:59, 10th August, 2020


Почему вы должны препятствовать тому, чтобы класс был подклассом?

Какие могут быть причины, чтобы предотвратить наследование класса? (например, использование запечатанного на классе c#) Прямо сейчас я ничего не могу придумать.

oop    

436   14   17:40, 10th August, 2020


Какую лучше всего купить книжку по Windows 7 для своей мамы? :)

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

Книги    

306   7   17:37, 10th August, 2020


Интересна ли кому-нибудь статья про кроссплатформенную разработку на .NET и Mono?

Коллеги, есть интересный опыт разработки, тестирования и деплоймента веб-приложения с использованием .NET 3.5/Mono 2.8.1/Flex, можно осветить следующие вопросы:

  • Настройка проектов в IDE: VS 2008/ IDEA 9.x / MonoDevelop 2.4
  • Управление конфигурациями — debug, staging, production
  • Полуавтоматический деплоймент
  • Развертывание и базовое конфигурирование связки mono 2.8.1, mod_mono, apache2, nginx под Ubuntu



Если достаточно заинтересованных наберется, напишу детальную статью.

Linux   Mono   .NET   IntelliJ   IDEA   Кроссплатформенность    

281   9   17:36, 10th August, 2020


Как запустить Linux на телефоне с ARM-процессором, сенсорным экраном и без клавиатуры?

Добрый день.

Имею телефон HTC Touch Viva (ARM-процессор TI Opal 200MHz). Хочеться из праздного любопытства (и возможно результат выльется в статью) попробовать запустить на нем консоль linux с экранной клавиатурой и пакетным менеджером apt. С чего стоит начать чтение и на какие дистрибутивы/ядра обратить внимание?

Linux   HTC   ARM    

344   7   17:36, 10th August, 2020


Повторное подключение логики с уведомлениями о подключении

Скажем, у меня есть приложение, которое хочет постоянное соединение с сервером. Как реализовать логику connection/re-connection, чтобы я не тратил ресурсы (power/bandwidth), и у меня есть быстрое время повторного подключения при подключении appears/improves? если я использую только уведомления о подключении, я могу застрять на проблемах, не связанных с локальной сетью.

Бонус, если бы вы могли показать мне версию C# .

sockets   networking   offline    

369   1   17:34, 10th August, 2020