Был какой-то видеоролик, по-моему муз. клип или что-то ещё... И там был фрагмент как-бы советского кино (скорее всего просто имитация или нарезка), а точнее немого кино (то есть сначала кадр, потом текст, опять кадр, опять такст и т. п.). Там один спрашивает «Даешь?», второй отвечает «Даю!», первый (а может другие) «Уррааа!».
Не могу завести 1-wire на raspberry pi. Делаю через owfs, но, думаю, проблема глубже.
Важно: предполагается использование встроенного адаптера 1-wire, не внешнего.
У кого есть работающий 1-wire? - Покажите/подскажите следующее:
1. lsusb (lspci) должны выводить что-то про адаптер? Покажите свой вывод lsusb, lspci
2. Зачем редактировать в /boot/config.txt добавлять «dtoverlay=w1-gpio-pullup,gpiopin=4,pullup=1»? Что будет если этого не сделать?
3. Говорят, что в каких-то ядрах есть бага, которая что-то ломает в 1wire. Есть инфа, какая версия 100% рабочая? Какая у вас версия ядра?
4. Я правильно понимаю, что для owfs модули ядра не обязательны?
5. У себя я вообще не нашел модулей ядра. Они как-то доставляются? Или где их взять?
6. Покажите свой owfs.conf. Интересно что писать в server:.
7. У меня датчик не видится, но есть фейковые устройства. Как их убрать?
8. Я правильно понимаю, что pullup резистор не обязателен? Есть какая-то разница в конфигурациях с резистором или без?
CC [M] /var/ramdisk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.o
disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_acpi.c:839:20:’ defined but not used [-Wunused-function]
static acpi_status KCL_ACPI_Slot_No_Hotplug(KCL_ACPI_DevHandle handle, u32 lvl, void *data, void **rv)
CC [M] /var/ramdisk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_ioctl.o
disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:262:0:"__flush_tlb" redefined
#define __flush_tlb() native_write_cr3(native_read_cr3())
In file included from /highmem.h:26:0,
from em.h:34,
from disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:123:
/tlbflush.h:13:0:this is the location of the previous definition
#define __flush_tlb() __native_flush_tlb()
disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:264:20:’
static inline void __flush_tlb_all(void)
In file included from /highmem.h:26:0,
from em.h:34,
from disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:123:
/tlbflush.h:124:20:’ was here
static inline void __flush_tlb_all(void)
disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:pxchg’:
disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1751:30:plicit declaration of function ‘plicit-function-declaration]
: "q"(new), "m"(*__xg(ptr)), "0"(old)
disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1751:46:ent of unary ‘’)
: "q"(new), "m"(*__xg(ptr)), "0"(old)
disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1757:46:ent of unary ‘’)
: "q"(new), "m"(*__xg(ptr)), "0"(old)
disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1763:46:ent of unary ‘’)
: "q"(new), "m"(*__xg(ptr)), "0"(old)
CC [M] /var/ramdisk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/kcl_io.o
disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1749:9:emory input 2 is not directly addressable
__asm__ __volatile__(LOCK_PREFIX "cmpxchgb %b1,%2"
disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1755:9:emory input 2 is not directly addressable
__asm__ __volatile__(LOCK_PREFIX "cmpxchgw %w1,%2"
disk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1761:9:emory input 2 is not directly addressable
__asm__ __volatile__(LOCK_PREFIX "cmpxchgl %1,%2"
cc1: some warnings being treated as errors
scripts/Makefile.build:258: recipe for target '/var/ramdisk/tmp/portage/x11-drivers/ati-drivers-15.12-r1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o' failed
Чувствую что туплю, потому прошу помощи - просветить.
Нужно сделать константу в классе, которая представляет из себя union. Сейчас это строка в самом низу:
static const TUnion A = TUnion(1,1);
(сорри за неинформативное имя)
Компилирую так:
$ g++ -std=c++14 -ggdb -o range range.cpp
Текущий вариант кода выдает такое:
test.cpp:74:36: error: ‘constexpr’ needed for in-class initialization of static data member ‘const TRangeLocation::TUnion TRangeLocation::A’ of non-integral type [-fpermissive]
static const TUnion A = TUnion(1,1);
^
test.cpp:74:36: error: ‘constexpr TRangeLocation::TUnion::TUnion(TPointLocation::T, TPointLocation::T)’ called in a constant expression
Что ему нужно? Или вообще так нельзя?
Я ожидаю, что если я скормлю ему две единицы, то m_range константы TRangeLocation::A будет содержать 257.
#include <iostream>
#include <iomanip>
#include <cstdint> // uint8_t
#include <type_traits>
/**
* \brief Definitions of constants for describing location of point relative of range's endpoints
*
* If was decided no not using enum since a bug in gcc: when defining bitsize of enum field, gcc emits warning: http://stackoverflow.com/questions/28401851/is-it-possible-to-specify-the-bit-width-of-an-enum-in-c11
* All constants shall have same type
* MAX shall contain maximum value
*/
class TPointLocation{ /// \todo: Rename to TPointRangeLocation
public:
typedef uint8_t T; /// To let all constants have same type
static const T LEFT_FROM = 0; /// -p-f---t---
static const T EQUAL_FROM = 1; /// ---fp--t---
static const T BETWEEN = 2; /// ---f-p-t---
static const T EQUAL_TO = 3; /// ---f---tp--
static const T RIGHT_TO = 4; /// ---f---t-p-
static const T MAX = 4; /// Maximum value of all constants. Uses for static_assert.
/// \todo: think about constexpr
};
/**
* \brief Location of one range relative to another one.
*/
class TRangeLocation{ /// \todo: Rename to TRangeRangeLocation
public:
typedef uint16_t T; /// Shall fit two TPointLocation::T
/** \brief A structure just containing location information of two endpoints of the range.
*
* Used in union to construct cummulative value.
* Shall not be a bitfield, since later will use reference to it.
* Separated because a new struct cannot be defined in the union.
*/
struct TPoints{
static_assert(std::is_integral<TPointLocation::T>::value && std::is_unsigned<TPointLocation::T>::value,"TPointLocation is expected to be an unsigned integer");
//static_assert(TPointLocation::MAX < 9,"Bitfield size in not enough to store the value");
static_assert(sizeof(T)==sizeof(TPointLocation::T)*2 ,"Size of TrangeLocation: is bigger (and thus causes ambiguity) or is not enough");
TPointLocation::T from;
TPointLocation::T to;
constexpr TPoints():from(0),to(0){};
constexpr TPoints(TPointLocation::T f, TPointLocation::T t):from(f),to(t){};
};
union TUnion{
TPoints m_points; /// It is prefered to avoid constructions like m_points.from, but this is impossible
T m_range;
constexpr TUnion():m_range(0){};
constexpr TUnion(TPointLocation::T from, TPointLocation::T to):m_points(from,to){};
} m_value;
const T &m_range = m_value.m_range; /// Convenient alias
const TPointLocation::T &m_from = m_value.m_points.from; /// Convenient alias
const TPointLocation::T &m_to = m_value.m_points.to; /// Convenient alias
TRangeLocation(){};
TRangeLocation(TPointLocation::T from, TPointLocation::T to):m_value(from,to){};
TRangeLocation& operator=(TRangeLocation &&b)
{
m_value.m_range = std::move(b.m_value.m_range);
return *this;
};
static const TUnion A = TUnion(1,1);
} x;
int main()
{
return 0;
};
$ emerge -av1 kwin
...
Calculating dependencies... done!
[ebuild U ] media-libs/mesa-11.0.5::gentoo [11.0.4::gentoo] USE="classic dri3 egl gallium gbm nptl udev vaapi wayland* -bindist -d3d9 -debug -gles1 -gles2 -llvm -opencl -openmax -osmesa -pax_kernel -pic (-selinux) -vdpau -xa -xvmc" VIDEO_CARDS="(-freedreno) -i915 -i965 -ilo -intel -nouveau -r100 -r200 -r300 -r600 -radeon -radeonsi -vmware" 7 102 KiB
...
[ebuild U ] kde-plasma/kwin-5.4.95:5::kde [5.4.3:5::kde] USE="-debug -gles2 -handbook -multimedia {-test} (-wayland%)" 3 719 KiB
[...
The following USE changes are necessary to proceed:
(see "package.use" in the portage(5) man page for more details)
# required by kde-plasma/kwin-5.4.95::kde
# required by kwin (argument)
>=media-libs/mesa-11.0.5 wayland
Would you like to add these changes to your config files? [Yes/No]
То есть kwin, который без wayland, требует mesa с wayland, я все правильно понял? Это нормально?
Ситуация: выкачал одну вещь из github, нашел недостатки, подправил. Теперь хочется поделиться наработками с сообществом. Вопрос: как сделать так, чтобы мои изменения попали в исходный репозиторий?
Исходные данные: - Никогда не работал с git (работал с subversion) - Завел новый аккаунт на github - Есть измененный файл, который нужно закоммитить репозиторий (про push/pull ничего не знаю, так что «закоммитить» может и не совсем точно) - Волей случая не за линуксовой машиной, так что очень желательно все делать через браузер.
Вкратце опишите, пожалуйста, что делать, чтобы мой патч попал в основной репозиторий.
Да, и как это сделать идеологически правильно: ведь по идее ж собственник репозитория же должен решить, принимать ли мой коммит? Или кто угодно может менять файлы?
И VLAN, и MPLS - уровня 2.5, добавляют метки/теги. Так зачем параллельно существуют две технологии? Почему нельзя, например, использовать MPLS вместо VLAN? Или VLAN вместо MPLS? В чем принципиальная разница?
Есть шаблонная функция (fn в примере внизу), которая действует по-разному в зависимости от типа аргумента. Есть кастомный тип (TNew в примере внизу), который является синонимом стандартного типа unsigned char. Мне нужно чтобы функция действовала по-разному в случаях, когда ей передается стандартный тип или кастомный. C++ же воспринимает кастомный тип как синоним стандартного, и не дает специфицировать функцию.
В общем, проще на примере.
Код внизу не компилируется, так как компилятор трактует void fn(const unsigned char &arg) void fn(const TNew &arg) как одно и то же. А нужно, чтобы он различал эти функции/типы.
У кого-то работает видео в youtube в otter browser? У меня черный экран, звук идет, картинки если навести на перемотку показывает. HTML5 (не flash). Такое впечатление, что нет кодеков, но каких?
Шаманю с трансляцией скан-кодов в keycodes. setkeycodes работает. Но интересно бы посмотреть дефолтную таблицу связок scancodes -> keycodes.
Интернет советует 2 вещи: - evtest. Но он показывает не все. В частности, мою клавиатурную кнопку Power (scancode=0xde) не показывает. - showkeys . Но он показывает нажатую кнопку. Мне что, его запускать и все кнопки по очереди нажимать?
После обновления Xorg и/или драйверов при переключении на виртуальный терминал показывается черный экран. Возврат в граф. среду с помощью Ctrl+Alt+F7 работает нормально.
Я такое замечал ранее, откатывался маскировкой следующего:
Подозреваю, что с тех пор что-то поменялось. Например, в мане по ebuild нахожу такие вещи как setup, prepare, configure, test, которые, подозреваю, как-то должны вписываться в общий процесс.
В идеале получить бы ссылку на официальную документацию, где описана актуальная информация.
Заговорили с товарищем про разницу switch, L3 switch, router. Я вроде эту тему понимаю. Но после общения, погуглив, я не нашел подтверждения некоторым своим мыслям. Потому прошу достопочтенное общество подтвердить/опровергнуть следующие утверждения относительно L3 switch. 1. Его портам не нужно назначать отдельных IP адресов (management IP не в счет). Те IP адреса (подсети), которые назначены на его порты, это адреса других устройств. Или: если есть сеть из двух хостов соедененных L3 switch'ем, такой сети достаточно двух IP адресов (management IP не в счет). 2. Его нельзя пингануть по прортам (management IP не в счет) 3. Он не подменяет MAC адреса пакетов. То есть пакет, пройдя L3 switch, будет все равно иметь MAC адреса отправителя/получателя - хостов или соотв. ближайших шлюзов, но не L3 switch'a. 4. На хостах ARP таблица будет содержать MAC адреса других хостов/рутеров, но L3 switch там никак себя не засветит (management IP не в счет).
Собственно, всё это базируется на утверждении, что это все еще L2 устройство (точнее устройство уровня ниже L3, если считать VLAN уровнем 2.5) абсолютно прозрачное для уровня L3 (IP).
Верно?
Ответ: Нет, не верно. Функционально L3 switch = полноценный router. В исполнении, у него меньше функций, чем у классического (с точки зрения предложений на рынке) рутера, где-то меньше ресурсов, но он очень быстрый. Его сегмент применения - маршрутизация между VLAN'ами. Детальней здесь: L3 switch (комментарий)
В свое время слышал интересную (и достаточно прикладную) задачу по теории вероятностей. При кажущейся простоте до сих пор понятия не имею как к ней подступиться.
Условие:
Есть мясной магазин. Каждое утро он закупает мясо, продаёт, а остатки выбрасывает. Закупка стоит 6р/кг, цена мяса 10р/кг, то есть чистая прибыль с 1кг мяса составляет 4р. (Если же мясо не продано, то просто теряется 6р/кг).
Спрос таков, что в день может продаться от 81 до 100кг мяса включительно. Upd: Для простоты предположим, что распределение вероятностей равномерное.
Вопрос: Сколько мяса должен закупать магазин ежедневно чтобы иметь максимальную прибыль?
Проблема состоит еще и в том, что, если магазин сегодня закупил, например, 90кг мяса, а сегодняшний спрос 95кг, то магазин всё равно продаст 90кг. То есть распределение вероятностей спроса не совпадает с распределением вероятностей выручки если ответ задачи меньше 100кг.
Задача 1. Нужно вырезать из нее все, что в скобках. То есть получить такое:
1+2+10+23+24
Задача 2. То же, но начиная со второго уровня скобок. То есть так:
1+2+(3+4)+10+(11+12+13+14+17+22)+23+24
Как?
Update:
Задача 1 решена:
$ echo "1+2+(3+4+(5+6+(7+8)+9))+10+(11+12+13+14+(15+16)+17+(18+19+(20+21))+22)+23+24" | sed ':a s/([^()]*)//g
t a'
1+2++10++23+24
# Или с косметикой:
$ echo "1+2+(3+4+(5+6+(7+8)+9))+10+(11+12+13+14+(15+16)+17+(18+19+(20+21))+22)+23+24" | sed ':a s/([^()]*)+\?//g
t a'
1+2+10+23+24