Общение с анонимусами
При общении в треде с числом анонимусов более 2-х, становится трудно отслеживать, кому же ты отвечаешь. Прошу добавить нумерацию анонимусов.
При общении в треде с числом анонимусов более 2-х, становится трудно отслеживать, кому же ты отвечаешь. Прошу добавить нумерацию анонимусов.
https://www.dsogaming.com/news/tim-sweeney-founder-of-epic-games-comments-cur...
Есть интересное высказывание Tim Sweeney, основателя Epic Games:
«... Я понимаю, что вам могут не нравиться эксклюзивы магазинов, но это другой вопрос, который не связан с проблемой закрытия платформ вроде Windows с целью монополизировать дистрибуцию, как это происходит на iOS. Microsoft пыталась создать закрытые версии Windows с помощью UWP, но ничего не получилось. Причём сторонники этой идей ушли, а их места заняли замечательные лидеры вроде Сатья Наделлы и Фила Спенсера, которые ведут Windows вперёд как открытую платформу», - сказал Суини.
Это что же получается, Стим для линукса сделал свое дело?
Правда, валвы продолжают пилить именно линукс как платформу (пусть и через протон), видимо это требует от них меньше усилий, чем тянуть за уши геймдев на линукс.
Но вот нужен ли он будет теперь? Не дропнут ли краны его поддержку, ибо мавр свое сделал?
https://www.theverge.com/2019/1/31/18205774/nio-ota-update-traffic-china-es8
Для не умеющих в англицкий - клиенты на тест-драйве китайского электромобиля Nio ES8 тыркнули на экране установку обновлений, машина на оживленной магистрали отрубилась полностью на час, ни дверей открыть, ни даже стекол опустить.
Свершилось, теперь ЗП запускается под линуксом. Собирать отсюда:
https://github.com/OpenXRay/xray-16
Инструкция по сборке там же, инстукция по запуску в вики.
Нужны тестеры и баг-репорты.
Сразу предупреждаю, с лицензией есть засада, сорцы несвободны, но открыты для некоммерческого использования.
Нужен направляющий пинок. Имеется вектор, с переопределенным аллокатором tbb::tbb_allocator. Переопределены операторы new и delete на использование scalable_malloc/free из того же tbb. И со всем этим добром творится непонятная хрень: push_back в этот вектор приводит к сегфолту, но не всегда, и каждый раз в разных местах. Подозреваю, что есть некая гонка в разных потоках, но понять где именно, не могу. Минимальный пример для воспроизведения тоже не смог сделать - 1М элементов в 8 потоков прекрасно добавились и ни разу не упали. Подскажите, куда еще можно копать, у меня идеи кончились вообще, а понимание происходящего кончилось еще раньше.
Хотите поржать?
BOOL ShaderElement::equal(ShaderElement* S)
{
if (nullptr == S && nullptr == this)
return TRUE;
if (nullptr == S || nullptr == this)
return FALSE;
return equal(*S);
}
( читать дальше... )
Есть 2 класса: B.h:
#pragma once
class B
{
public:
B();
virtual ~B();
};
#pragma once
#include "B.h"
class A
{
public:
using bns = B; // И вот если мы обявим его через using, то начинаются чудеса
private:
bns* m_Bclass;
public:
A();
virtual ~A();
bns* get_b();
void set_b(bns* b);
};
#include "A.h"
A::A()
{
m_Bclass = nullptr;
}
A::~A()
{
}
void A::set_b(bns* b) // тут всё нормально
{
m_Bclass = b;
}
bns* A::get_b() // а тут error: ‘bns’ does not name a type
{
return m_Bclass;
}
Снова MSVC против g++ :
template <typename TIndex>
struct CVertexManagerFixed
{
template <typename TPathBuilder, typename TCompoundVertex>
class CDataStorage : public TPathBuilder::template CDataStorage<TCompoundVertex>
{
public:
using CDataStorageBase = typename TPathBuilder::template CDataStorage<TCompoundVertex>;
using Vertex = TCompoundVertex;
using Index = TIndex;
public:
inline CDataStorage(const u32 vertex_count);
inline virtual ~CDataStorage();
inline Vertex& get_node(const Index& vertex_id) const;
};
};
#define TEMPLATE_SPECIALIZATION \
template <typename TIndex> \
template <typename TPathBuilder, typename TCompoundVertex>
#define CFixedVertexManager \
CVertexManagerFixed<TIndex>::CDataStorage<TPathBuilder, TCompoundVertex>
TEMPLATE_SPECIALIZATION
inline CFixedVertexManager::CDataStorage(const u32 vertex_count)
: CDataStorageBase(vertex_count)
{
}
TEMPLATE_SPECIALIZATION
inline typename CFixedVertexManager::Vertex& CFixedVertexManager::get_node(const Index& vertex_id) const
{
VERIFY(vertex_id < m_max_node_count);
VERIFY(is_visited(vertex_id));
return *m_indexes[vertex_id].m_vertex;
}
Лог ошибок:
../src/test_cpp.cpp:54:34: error: non-template ‘CDataStorage’ used as template
CVertexManagerFixed<TIndex>::CDataStorage<TPathBuilder, TCompoundVertex>
^
../src/test_cpp.cpp:63:17: note: in expansion of macro ‘CFixedVertexManager’
inline typename CFixedVertexManager::Vertex& CFixedVertexManager::get_node(const Index& vertex_id) const
^
../src/test_cpp.cpp:54:34: note: use ‘CVertexManagerFixed<TIndex>::template CDataStorage’ to indicate that it is a template
CVertexManagerFixed<TIndex>::CDataStorage<TPathBuilder, TCompoundVertex>
^
../src/test_cpp.cpp:63:17: note: in expansion of macro ‘CFixedVertexManager’
inline typename CFixedVertexManager::Vertex& CFixedVertexManager::get_node(const Index& vertex_id) const
^
../src/test_cpp.cpp:54:59: error: expected unqualified-id before ‘,’ token
CVertexManagerFixed<TIndex>::CDataStorage<TPathBuilder, TCompoundVertex>
^
../src/test_cpp.cpp:63:46: note: in expansion of macro ‘CFixedVertexManager’
inline typename CFixedVertexManager::Vertex& CFixedVertexManager::get_node(const Index& vertex_id) const
Снова код с винды:
template <typename _param, // shadows template parm ‘class _param’
typename _param_ptr = _param*> // shadows template parm ‘class _param_ptr’
class CTest
{
public:
typedef _param CParam;
struct STest
{
_param_ptr m_operator;
inline STest(_param_ptr _param) // declaration of ‘_param_ptr _param’
: m_operator(_param)
{
}
};
};
Как я понимаю, основная засада в инлайновом методе внутри структуры - он воспринимается как новое объявление класса. Как же тогда передать туда параметр шаблона?
Портирую код с винды на линукс.
struct CDestroyer
{
...
template <typename T>
struct CHelper4
{
template <bool a>
static void delete_data(T& data)
{
CHelper2<T>::delete_data<object_type_traits::is_pointer<T>::value>(data);
}
template <> // explicit specialization in non-namespace scope ‘struct CDestroyer::CHelper4<T>’
static void delete_data<true>(T& data) //error: template-id ‘delete_data<true>’ in declaration of primary template
{
CHelper3::delete_data(data);
}
};
template <typename T>
static void delete_data(T& data)
{
CHelper4<T>::delete_data<object_type_traits::is_stl_container<T>::value>(data);
}
};
Вопрос: как это обойти?
Я в кресты не умею, только в си, так что при ответе пожалуйста учитывайте. Ну или ткните носом в доки, каким образом можно делать условный выбор шаблонов в целом.
Не могу не поделиться радостью.
Пруф:
https://steamdb.info/app/337000/depots/
Пока под мак и лялих нет DLC, вангую что задерживается именно из-за этого.
Думаю, надо брать как выпустят, вроде тогда статистика по линуху засчитается. И да, есть надежда, что Denuvo на другие платформы портировать не будут.
Электромагнитные волны возбуждаются попеременным движением электронов в проводнике в противоположных направлениях, т.е. переменным током. Движение же электронов в одном направлении возбуждает просто магнитное поле, без волн.
Изменения магнитного поля способно двигать электроны, т.е. возбуждать токи. Но что такое ЭМ-волна в вакууме - там же нет электронов, чтобы цепной реакцией возбуждались токи и далее менялось магнитное поле?
Правильно ли я понимаю, что если просто помахать магнитом в вакууме, то ЭМ волны не возникнет? Ведь тогда сам термин «электро-магнитная волна» некорректен?
Пробовал почитать литературу, нагугленную по «возбуждение электромагнитных волн», нашел это, так ничего и не понял. Математики дофига, но я не понимаю, как это интерпретировать.
В общем, я совсем запутался, может кто-нибудь пролить свет на это темное дело?
P.S. Эфиродинамщиков прошу не беспокоиться.
Видео здесь: https://www.youtube.com/watch?v=qYfNzhLXYGc
Вопрос к специалистам: кроме игрулек это на что-то годится? По идее, можно устроить что-то вроде CAD-Wall для конструкторов, но не за лярды долларов, а всего за восемьсот бачинских. Ещё на ум приходят биологи - там вроде есть задача визуализации белков и ручная корректировка цепочек. Всякие программеры в пролёте - тексты в этом шлеме видны отстойно.
Для чего ещё полезного можно такое использовать?
Сабж. Бинари добавили для лялеха (эх, Саныч не дожил) и для мака.
Подробности: http://dev.arma3.com/post/sitrep-00120
Российское программное обеспечение должно попасть в специальный реестр отечественного софта только после того, как права на него будут зарегистрированы в Роспатенте, считает Федеральная антимонопольная служба (ФАС). Подготовленный Минкомсвязи проект постановления правительства, описывающего механизм ведения реестра и запрета закупок иностранного софта, передан в правительство с замечаниями антимонопольного органа
http://www.vedomosti.ru/technology/articles/2015/07/31/602953-fas-trebuet-pat...
Появился Backer branch, под паролем, для кикстартеровцев. Есть тут такие, как оно там, годно получилось?
Итак, есть 2 сетевые карты, и 2 интерфейса, eth0 и eth1.
Хочется мне погонять трафик через роутер, подключенный ланом к eth1, а ваном к eth0, пусть это будет ping. На eth1 ip 192.168.0.100 (получен по dhcp), на eth0 - 10.90.90.1, поднят dhcp сервер, раздающий адреса в 10.90.90.0/24
Указываю маршрутом для 10.90.90.1 устройство eth1, трассирую - он идет через интерфейс lo напрямую. Гуглю - оказывается, есть 2 таблицы, main и local, так пакет, попадая в ядро, проверяется сперва в local и радостно идет в eth0, мимо роутера.
Что посоветуют гуру? Что-то мне подсказывает, что если удалю запись для 10.90.90.1 из local, тогда пакет вообще никогда на интерфейс не придёт. Можно ли как-то маршрутизировать в зависимости от источника? Т.е., дефолтно пакет пихать его в eth1, а если извне от роутера (из 10.90.90.0/24), то в eth0. Или это в принципе невозможно?
Я ДЖВА ГОДА ЖДАЛ!! Более полная новость: http://habrahabr.ru/company/gttf/blog/239669/
Сбылась мечта идиота - теперь с мобилы на мобилу можно будет звонить напрямую. Обещают к концу 2015-го. Правда, как я понял, только при отсутствии сигнала БС, но и это уже огромный шаг вперед.
Оригинал новости: http://hothardware.com/News/Qualcomm-LTE-Direct-Allows-Calls-Between-Devices-...
Дано, местный номер телефона из 5, 6 или 7 цифр. Нужно в зависимости от числа цифр подставить в начало номера код города.
Например, номер 123456 плавно превращается в 8(4912)123456, а 12345 в 8(49133)12345
В голову не приходит ничего умнее, чем искать начало строки перед 6-ю и 5-ю цифрами соответственно: ^(?=\d{5}) , но не прокатывает.
Протупив 2 часа, я вообще засомневался, решаема ли задача с помощью регулярок?
← предыдущие | следующие → |