Избранное VS отслеживать
В чем разница? Зачем нужно и то и другое? Я просто хочу, чтобы уведомления о постах в теме у меня в уведомлениях появлялись.
В чем разница? Зачем нужно и то и другое? Я просто хочу, чтобы уведомления о постах в теме у меня в уведомлениях появлялись.
Некоторое время назад я читал Javascript: The Good Parts и узнал, что в джаваскрипте нет уровней приватности членов, поэтому там делают энкапсуляцию с помощью лямбд. Я задумался, можно ли сделать так же в C++?
Простейший случай с одним замыканием - можно:
#include <iostream>
auto get_counter() {
int i {0};
return [=]() mutable {
return i++;
};
}
int main() {
auto counter = get_counter();
for (auto i = 0; i < 6; ++i) {
std::cout << counter() << std::endl;
}
}
// выведет 0, 1, 2, 3, 4, 5,
Но в джаваскрипте я могу сделать что-то еще интереснее:
var create_counter = function() {
var i = 0;
var increment = function() {
i++;
return i;
};
var reset = function() {
i = 0;
};
var counter = {
increment: increment,
reset: reset
};
return counter;
};
var counter = create_counter();
for (var j = 0; j < 5; j++) {
console.log(counter.increment());
}
counter.reset();
console.log(counter.increment());
Выведет
1
2
3
4
5
1
Видно, что у функций increment и reset захвачена общая переменная i, и они ее могут обе читать и менять. Как так же сделать в C++?
Я знаю, как писать нормальный поддерживаемый код в ооп-парадигме на C# и С++. А в python вроде тоже есть ООП, но какой-то стремный и непонятный. Что бы такого почитать, чтобы понять, как писать питонячий код, чтобы в нем потом и я, и другие, могли разобраться?
Указывать размеры элементов на страницах в px - моветон или нет? А то ведь на экранах с разными dpi будет отображаться по-разному. Я об этом никогда не задумывался, пока сидел за десктопами с обычными днище-экранами, а как переполз на ноут с 13-дюймовым fullhd дисплеем, понял, что в фаерфоксе надо менять [bold]devPixelsPerPx[/bold] на кастомное значение, иначе все слишком мелко, а в других браузерах и вовсе костылями надо как-то допиливать.
Если не в px, то в чем?
Если я устанавливаю какую-нибудь новую программу, которая добавляет свой .desktop файл, оно не появляется автоматически в krunner, пока его не перезапустишь. Приходится в терминале делать killall krunner && krunner & exit
Может быть есть способ лучше?
Расчехляю wireshark или tshark, натравливаю на wlan0, а он ловит только пакеты от этого компьютера, адресуемые этому компьютеру и броадкасты. Между другими устройствами и роутером не ловит. Что я делаю не так?
Пробовал с помощью sudo ip link set wlan0 promisc on
вручную включать промискуитет на вайфай-интерфейсе - ничего не меняется.
Раньше у меня был какой-то хоткей, который я нажимал, вводил
livestreamer twitch.tv/nl_kripp high
Super
- ничего такого не нашел, ничего не подходит. Что случилось? Ее убрали? Или это я тупой?Почему у меня 3 мусорки и 3 спама, и некоторые названия папок для спама еще и называются так, что и не поймешь - это то же самое, что корзина или нет? Почему нельзя сделать, чтобы почтовые клиенты - thunderbird, evolution - интегрировались с почтовыми сервисами как-то поплотнее - использовали их антиспам, мусорку ОДНУ нормальную. Доколе это будет продолжаться?
Есть у Unity хоткеи, например Super+A - открыть линзу Apps. Если это нажать при английской раскладке, то работает. Если при русской (то есть ф вместо a), то нет. Как решить?
Вопрос с дивана, потому что ни то ни другое я ни в каком серьезном проекте не использовал:
Сейчас становится популярным стек технологий MEAN (MongoDB ExpressJS AngularJS NodeJS). И вроде это стильно модно молодежно, а вроде и не для всех проектов подходит - ведь MongoDB это NoSQL, и я где-то прочитал, что там в отличие от SQL систем баз данных не соблюдается ACID, не поддерживаются JOIN'ы, но лучше скейлится.
1. Что именно из ACID не соблюдается, для каких веб-сайтов это не важно, а для каких ACID нужен?
2. Как жить без джоинов? Или они вообще не так уж нужны? Когда они нужны, а когда нет? А если вдруг на готовом сайте, использующем MongoDB понадобятся, то что делать?
3. Почему MongoDB лучше скейлится? Кому нужен скейлинг, кому нет? Что же делают люди, которым и скейлиться нужно, и джоины делать?
4. Можно ли в стеке MEAN MongoDB заменить на какую-нибудь реляционную базу данных (в идеале на PostgresQL - он вроде самый годный)?
Мне каждый день приходит много уведомлений об ответах в моей теме в Development - всего накопилось этих уведомлений из одной этой темы почти на 10 страниц (уведомлений, а не страниц в теме). Тем временем кол-во страниц в теме почти не растет - точно не пропорционально кол-ву уведомлений об ответах. Что происходит? Посты куда-то деваются? Их трут? Или это лишние уведомления непонятно откуда берутся?
Речь об этой теме, если что Если в баше все так плохо, не пора ли перестать им пользоваться для скриптов?
Прочитал на днях вот эту статейку: http://www.dwheeler.com/essays/filenames-in-shell.html. Это просто жесть. Я наверное не видел ни одного баш скрипта, который бы делал все правильно, как там описано. Не легче ли использовать какой-нибудь там питон для этого, а не терпеть внезапные унижения собственным шеллом, когда ты впервые запустишь скрипт на файлах с русскими символами / пробелами / переносами строк / еще какими-нибудь внезапными названиями?
У меня есть настройки тачпада, какие мне нравятся, прописанные в /etc/X11/xorg.conf.d/, например двойное нажатие на тачпад (TapButton2) юнити превращает в райтклик, а не миддлклик. Судя по всему, юнити (или еще какая штука) меняет это, потому что во время работы системы synclient рапортует, что используются не те значения, которые я ставлю конфигом иксов.
Как это исправить?
Устанавливаю ubuntu, opensuse или любой другой дистрибутив - создается пользователь username и одноименная группа username.
1. Зачем эта группа нужна? Нужно ли давать доступ к моей домашней папке этой группе или нет?
2. Если я запрещу читать, писать и запускать папку /home/username для others, смогут ли они наощупь сделать cd в /home/username/Pictures или еще куда-нибудь и посмотреть мои файлы?
3. Конкретно для ubuntu - по умолчанию у домашней папки пользователя права 755 (others могут читать и запускать) - так почему же встроенный специальный пользователь, называющийся guest, не может в нее войти?
Флеш-видео-плееры очень глючат на большинстве сайтов в фаерфоксе в gentoo на интеловской видеокарте.
На всяких xvideos на странице одно флеш-видео. Когда страница изначально загружается, с шансом 99% оно будет абсолютно черным или будет мигать между черным состоянием и нормальным при скроллинге. Обычно если проскроллить так, чтобы весь фрейм флешки помещался на экране и перезагрузить так страницу несколько раз, то в конце концов чинится (правда если поскроллить так, чтобы часть скрылась - может снова сломаться).
А если на странице несколько флеш-видео, то это вообще беда, и нет никакой надежды их посмотреть в фаерфоксе, и приходится открывать google chrome. В нем вроде все норм.
Почему так, и что мне с этим делать?
Видюха Intel HD Graphics 4000 [8086:0166]
В интернете есть всякие интернет-воители, борящиеся за чистоту $HOME от файлов с точечкой, которые хотят, чтобы программы складывали свой мусор в $XDG_CONFIG_HOME, $XDG_DATA_HOME и куда-то еще. А у меня вот на Gentoo таких переменных даже нет. Почему так? Какие же они тогда универсальные иксовые переменные, если у меня они даже не установлены?
Есть такой запрос linq-to-sql
dc - таблица со столбцами real Re, real Im.
var re2 = from p in dc.Numbers.ToList()
where p.Im > 0
select p.Re * p.Re;
Вопрос в том, какой из этих двух вариантов действий здесь происходит:
1) Делается SELECT запрос, уже включающий в себя WHERE условие (и возможно еще и умножающий Re на Re)?
2) Делается запрос SELECT * FROM Numbers, то есть все записи отдаются программе на C#, а там C# уже сам делает с объектами в оперативной памяти filter и map?
Время от времени при перечислении плюсов каких-нибудь языков я вижу следующее: В $ЯЗЫКНЕЙМ легкие зеленые потоки, их можно делать тысячами, и все будет хорошо.
Что это за потоки такие, как они работают, как такое самому сделать - например на C?
Есть один старый геймпад, который не поддерживает xinput - logitech cordless rumplepad 2. Вроде настроил xboxdrv на эмуляцию геймпада от xbox 360, запускаю так:
$ cat logitech_cordless_rumblepad2.xboxdrv
[xboxdrv]
[evdev-keymap]
# left hand - logitech cordless rumblepad 2 buttons and axises
# right hand - xbox360 buttons and axises
# button 1
BTN_A=X
# button 2
BTN_B=A
# button 3
BTN_C=B
# button 4
BTN_X=Y
# button 5
BTN_Y=LB
# button 6
BTN_Z=RB
# button 7
BTN_TL=LT
# button 8
BTN_TR=RT
# button 9
BTN_TL2=Back
# button 10
BTN_TR2=Start
# left analog stick press
BTN_SELECT=TR
# right analog stick press
BTN_START=TL
[evdev-absmap]
# left hand - logitech cordless rumblepad 2 buttons and axises
# right hand - xbox360 buttons and axises
# dpad up/down axis
ABS_HAT0Y=DPAD_Y
# dpad left/right axis
ABS_HAT0X=DPAD_X
# left stick up/down (up = 0, down = 255)
ABS_Y=Y1
# left stick left/right (left = 0, right = 255)
ABS_X=X1
# right stick up/down (up = 0, down = 255)
ABS_RZ=Y2
# right stick left/right (left = 0, right = 255)
ABS_Z=X2
[axismap]
# change negative values to positive and vice-versa (analog stick coordinates are inverted by default)
-Y1=Y1
-Y2=Y2
sudo xboxdrv --evdev /dev/input/event5 -c logitech_cordless_rumblepad2.xboxdrv --silent
Game..Math..Graphic..Action..File..Resource..Interaction..3D..Particle..Misc..DS..Sound..Physics..Gamepad..GAMEPAD: Initialising Ubuntu support
GAMEPAD: 4 axis values (last) at 0x8a564f0
GAMEPAD: 4 axis values (last) at 0x8a56820
GAMEPAD: Enumerating 3
GAMEPAD: device name Logitech Logitech Cordless RumblePad 2
GAMEPAD: buttons - 12, axes - 6
GAMEPAD: 4 axis values (last) at 0x8a56dd0
GAMEPAD: Enumerating 4
GAMEPAD: device name Microsoft X-Box 360 pad
GAMEPAD: buttons - 11, axes - 8
GAMEPAD: 4 axis values (last) at 0x8a69688
Buffers..Networking..Shaders..Steam_Init
Как это поправить?
Поставил kubuntu 14.10, все было хорошо, пока не установил с помощью кубунтовского костыля для драйверов nvidia-331-updates. (на самом деле нет разница ставить с помощью костыля или через apt-get)
Попробовал следующие драйвера от нвидии: nvidia-304, nvidia-331, nvidia-331-updates. Как только установка такого драйвера обновляет initramfs, установка с соостветствующим ядром (3.16.0-24-generic) виснет на Loading initial ramdisk. В момент зависона можно перезагрутиться с помощью ctrl+alt+sysrq reisub. Если систему перезагрузить прямо из убунты, то на стадии загрузки вроде бы скипается граб или что-то типа того, и тогда успевает появиться экран с графическим полем ввода пароля от luks-контейнера, причем в разрешении намного меньшем нежели при установленном nouveau и без нвидия-блоба, и на этом все так же виснет. В данной ситуации с помощью ctrl+alt+sysrq всякие-буквы можно попасть в шелл busybox. Если же в грабе выбрать в дополнительных опциях такое же ядро (recovery options), то нормально грузится, и даже glxinfo показывает, что загружен драйвер nvidia, а не nouveau.
Собственно если удалить нафиг нвидия блобы и оставить только nouveau, то грузится и без рекавери режима.
В нормальном режиме я не могу показать xorg-лог, потому что загрузка до такой стадии не доходит.
Вот Xorg.0.log из рекавери режима: http://pastebin.com/NsjWK2PL
Вообще какая-то странная эта кубунта - вроде systemd установлен, а ps --pid 1 - init, и systemctl и journald имеются в наличии, а не работают.
← назад | следующие → |