LINUX.ORG.RU

Сообщения CatsCantFly

 

Хранилище или СУБД для множества blob данных

Форум — Development

Просьба посоветовать, что посмотреть из дисковых хранилищ/key-value СУБД со следующими требованиями:

  • Хранение blob значений по ключам или путям (число или строка, не важно).
  • Сущностей для хранения много (порядка 10 млн), все они - бинарные блобы разных размеров - от 100Кб до 1Гб.
  • Нужен быстрый random-access на чтение/запись. Намного быстрее, чем хранить каждую из сущностей в виде отдельного файла в фс (это проверено, очень медленно при росте числа файлов).
  • Все хранится на одной машине, не распределенно
  • Не слишком большой оверхед по занимаемому месту на диске
  • С или C++ API

Копалось в сторону штук типа leveldb, проприетарных хранилищ и собственного велосипеда, все показывает сильное падение скорости доступа при росте числа значений или просто константно-низкую скорость (порядка 0.1 от скорости диска)

 , , ,

CatsCantFly
()

Сколько сейчас платят в геймдеве?

Форум — Talks

Подумал я тут на досуге, не податься ли мне в какой-нибудь серьезный геймдев? Матан более менее крепкий (линал прежде всего), C++ на хорошем уровне есть. Есть понимание архитектуры движков, графических технологий, но это все пока надо подтягивать. Так вот, есть ли кто тут, работающий в этой сфере? Правда ли, что по деньгам в ней все плохо? Стоит вообще связываться?

 , ,

CatsCantFly
()

Подкиньте задачек для студентов про полиморфизм в C++

Форум — Development

Надо мне студентам придумать несколько задач на тему наследования, виртуальных функций, интерфейсов. Ничего путного не приходит в голову и не гуглится. Так как есть следующие условия: Не требуется STL, Не требуются сторонние библиотеки (в тч системные), Только консольный ввод-вывод

 

CatsCantFly
()

Координаты вершин куба по диагонали

Форум — Talks

Что то не могу сообразить, хотя задача вроде первого курса технического вуза. Даны две точки в декартовой системе координат - M0(x0,y0,z0) и M1(x1,y1,z1) - являющиеся вершинами куба, лежащими на его диагонали. Найти координаты всех остальных вершин куба. Пробовал выразить через сумму векторов, образующих 3 грани куба от точки M0 - получается 3 уравнения с 9 неизвестными, пробовал воспользоваться фактом, что третья грань коллинеарна векторному произведению первых двух - сокращаем число неизвестных до 6. Знатоки математики ЛОРа, есть идеи?

 

CatsCantFly
()

hash map с заранее известным множеством ключей.

Форум — Development

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

 ,

CatsCantFly
()

Странность с массивом нулевой длины в C++

Форум — Development
struct A
{
    int arr[];
};

int main()
{
    A a[5];
    std::cout << sizeof(a) << std::endl;
    return 0;
}
$ g++ -std=c++14 test1.cpp -o test1 && ./test1
0

Притом:

struct A
{
    int arr[];
};

int main()
{
    struct A a[5];
    printf("%d", sizeof(a));
    return 0;
}
$ gcc -std=c99 test.c -o test1
test.c:7:5: error: flexible array member in otherwise empty struct
 int arr[];
     ^
Почему так? Исходя из https://en.wikipedia.org/wiki/Flexible_array_member и моих представлений о стандарте C++ и C, все должно быть наоборот.

 , ,

CatsCantFly
()

А что сейчас по мониторам?

Форум — Talks

Собираюсь взять себе новый монитор вместо древнего дешевого samsung 20". Ознакомился с прайсами и ничего не понял, много моделей у каждого производителя по примерно одинаковым ценам. Мои требования: 23"-24", full HD или выше, нужен для кодинга, чтения, игорь. ЧТо сейчас стоит брать по таким параметрам?

 

CatsCantFly
()

Путь продвижения линукса на десктопах

Форум — Talks

Как мы знаем, одна из основных причина малой популярности linux на десктопах - ограниченный по сравнению с windows набор софта (прежде всего коммерческого). В связи с тем, что доля linux на десктопах менее 2%, корпорации очень часто отказываются портировать Свое ПО на эту платформу, и получем замкнутый круг. Выход: основывается общественная организация по защите прав пользователей этой системы. На волне веяний в цивилизованном мире в сторону защиты прав меньшинств, линуксоидов вполне можно объявить таким вот меньшинством, а невыпуск версии под эту платформу - актом дискриминации и угнетения. Создавать подобный образ в СМИ, подавать в суды. Сработает?

 ,

CatsCantFly
()

Стыдно ли быть нищебродом?

Форум — Talks

Вот сейчас (особенно на фоне кризиса) все стали тыкать - «нищеброд, нищеброд», критерии нищебродства приводить, и вообще всячески утверждать, что мир делится на неудачников-нищебродов и нормальных людей. Особенно женщины, которые наиболее любят такие деления и фильтрацию своих знакомств. Сразу скажу, что нищеброд, это не только тот, кто только дошираком питается. Фактически любого, не имеющего своего бизнеса или руководящей должности в хорошей компании те же женщины причисляют к нищим лузерам. А стыдно ли вам быть нищебродом (если вы он), тяготит ли вас это? Я раньше думал, что в этом ничего плохого, типа бедный но зато внутренний мир. А вот сейчас себя как то начинаю со временем чувствовать ущемленным, задумываться, что я то и сам такой, на которых смотрят пренебрежительно, в свои 26 не имею ни особых денег, ни социального положения, ни даже просто своего жилья в ДС.
Линукс тут при том, что большинство его любителей (как и вообще гиков) - сабж.

 

CatsCantFly
()

initializer_list in variadic template

Форум — Development

Вопрос простой, но я как то не понял.
Почему можно:

    auto lst = {2.5f, 1.5f};
    auto  tpl = std::make_tuple("ololo", 1, lst);
Но нельзя
    auto  tpl = std::make_tuple("ololo", 1, {2.5f, 1.5f});

main.cpp:13:57: error: too many arguments to function 'constexpr std::tuple<typename std::__decay_and_strip<_Elements>::__type ...> std::make_tuple(_Elements&& ...) [with _Elements = {}]' auto tpl = std::make_tuple(«ololo», 1, {2.5f, 1.5f}); ^ In file included from prog.cpp:5:0: /usr/include/c++/5/tuple:966:5: note: declared here make_tuple(_Elements&&... __args) ^

 ,

CatsCantFly
()

Замену C++ делают неправильно

Форум — Development

Уже не первый год человечество пытается избавиться от переусложненности C++ и массы его исторического наследия со старыми костылями. Появляются полумертвые D, Rust. Почему бы не пойти более простым путем и просто форкнуть нынешний стандарт C++ ? Выпилить оттуда весь груз обратной совместимости, странности и неочевидности, и естественно, добавить улучшательств. Преимущества подхода: а). Программистам в целом не придется переучиваться, библиотеки тоже портировать легче. б). Готовые уже компиляторы, из которых понадобится в большей степени выпилить всякую хрень (можно даже сделать флаг типа --no-legacy-compat). Так где же оно?

 

CatsCantFly
()

Почему Undefined Behaviour настолько Undefined?

Форум — Development

Недавно поразился следующему примеру:

int const F = 1000000000;

int x = 0;

for(int y = 0; y < 7; ++y)
{
    printf("x=%d, y=%d", x, y);
    x += F; // UB
}
При компиляции с -O2 на всех компиляторах, на которых пробовал, цикл становится бесконечным, вместо ожидаемых 7 шагов. Собственно, понятно, что переполнение x влечет за собой UB, но логично предположить, что неопределено будет значение этого самого x. Так почему компилятор считает возможным выкинуть проверку счетчика цикла y, который с x никак не связан?

 ,

CatsCantFly
()

Шаблонный расширитель типов

Форум — Development

Собственно, требуется простенькая вещь типа такой:

ExpandType<float>::type x;// <-- double
ExpandType<char>::type y;// <-- int64_t
ExpandType<unsigned int>::type y;// <-- uint64_t
Велосипед изобретать не хотел. Что-то нагуглить такое в boost например не могу, но кажется, что то должно такое быть. Есть ли там такое?

 , ,

CatsCantFly
()

Откуда у сторонников несвободного ПО столько проблем с GNU/Linux?

Форум — Talks

Зачастую встречаю среди сторонников windows (сильно реже os x) различные истории неуспеха, когда они «пробовали этот ваш линупс» . Из последнего встретилось в комментариях к статье http://habrahabr.ru/company/eset/blog/274783/ . И при каждом апдейте у них половина железа отваливается, и из коробки у них даже видеокарта без танцев с бубном не работает, и собирать вручную им все приходится, борясь самостоятельно с зависимостями и зоопарком библиотек, и даже самые популярные принтеры никак не подключить без недели чтения манов, и даже вот объем памяти узнать не получается. Понятно, что проблем реальных хватает, но не так же все плохо. Пользуются они какими то старыми и непопулярными дистрами, у них плохие советчики или просто кривые руки? Интересны причины таких кулстори.

 , ,

CatsCantFly
()

Debian не хочет использовать статический IP

Форум — General

Суть такая: есть ноут Debian 8 с двумя интерфейсами - wlan0 и eth0. Ноут ходит в инет по wlan0 и шарит его подключенному по eth0 устройству. На ноуте стоит dhcp сервер, включенный для eth0, и раздает динамические ip подключенным устройствам. Проблема: я ставлю статический IP для интерфейса eth0 на ноуте, пробуя двумя способами: 1. Через конфиг /etc/network/interfaces:

auto eth0
# allow-hotplug eth0
iface eth0 inet static
        address 192.168.123.100
        netmask 255.255.255.0
как сказано в документации дебиан. Это не работает вообще.
2. Как то так:
# ip link set up dev eth0
# ip addr add 192.168.123.100/24 dev eth0

Это сначала срабатывает:

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:1d:60:ec:59:e5  
          inet addr:192.168.123.100  Bcast:0.0.0.0  Mask:255.255.255.0
          inet6 addr: fe80::21d:60ff:feec:59e5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4681 errors:0 dropped:0 overruns:0 frame:0
          TX packets:825 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1979491 (1.8 MiB)  TX bytes:120466 (117.6 KiB)
А через пару минут без видимых причин IP исчезает:
# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:1d:60:ec:59:e5  
          inet6 addr: fe80::21d:60ff:feec:59e5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3735 errors:0 dropped:0 overruns:0 frame:0
          TX packets:772 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1911970 (1.8 MiB)  TX bytes:111292 (108.6 KiB)
Мой /etc/dhcpd/dhcpd.conf, если вдруг важен:
#
# Sample configuration file for ISC dhcpd for Debian
#
#
option domain-name-servers 8.8.8.8, 8.8.4.4;
option subnet-mask 255.255.255.0;
option routers 192.168.123.100;
subnet 192.168.123.0 netmask 255.255.255.0 {
  range 192.168.123.150 192.168.123.250;
}
Надеюсь на вашу помощь, что с этим делать

 , ,

CatsCantFly
()

Сделать из ноута подобие роутера.

Форум — General

Есть старенький ноут с Debian 8. Есть десктопный пк. Ноут подключен к точке доступа по wifi и через нее ходит в интернет. Хочу что бы он так же раздавал интернет соединение подключенному к нему по обычному ethernet ПК, но в настройке сетей полный нуб, так что прошу помощи тут. Непосредственно соеденить пк и роутер, на котором поднят wifi, возможности нет, только через костыль в виде этого ноута, так как wifi и при этом обычный ethernet умеет только он

 , ,

CatsCantFly
()

Почему нет аналога wine для OSX программ

Форум — Talks

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

 ,

CatsCantFly
()

Выдрать сигнатуру вызова из любого функционального объекта в шаблонном параметре

Форум — Development
class Foo
{
public:
	int operator(int x);
};

//Need to implement this:
template<class Functor> struct GetSignature
{
	//???
}

//...
GetSignature<Foo>::type; // int(int)

Есть идеи, как такое сделать? Спасибо.

 ,

CatsCantFly
()

Программисты - обслуга для бизнеса. Продолжение.

Форум — Talks

Вот и на ЛОРе снова была поднята эта тема - дескать, программист - обслуживающий персонал, являющийся незначительным для основного бизнеса компании. Творчества работа лишена, академических знаний тоже не нужно и вообще это ремесло.
Глядя на это, складывается впечатление, что большинство программистов пишут сайты на PHP или пилят конфиги 1C. Неужели такого большинство? Я, будучи программистом, практически всегда, кроме первого места работы, работал и работаю в компаниях, в которых труд программистов является основным продуктом, так что или я не репрезентативен, или эти разговоры - преувеличение и ЛПП. Возможно, играет роль то, что пишу на C++ и работаю на соотвествующих должностях. Интересно провести статистику здесь - а с чем вы в основном сталкивались в ходе работы?

 ,

CatsCantFly
()

Стоит ли предпочесть iPad планшетам на Андроиде?

Форум — Talks

Недавно окончательно умер мой Samsung Galaxy Tab 3 7" (прожив всего 3 года) и встал вопрос о покупке нового планшета. Планшет использую для интернет-серфинга, как читалку, просмотр фильмов и ютуба. В игры на планшете не играю, экран слишком большой не нужен, 7-8 дюймов достаточно. В планшете этом больше всего раздражала тормознутость, да и срок жизни разочаровал. Стал искать замену в районе 12 тысяч, при этом желая что-то однозначно более шустрое, и понял, что с нынешним курсом уложить эти требования (хорошая скорость и отзывчивость, хороший, пусть и не слишком большой экран, какая-никакая уверенность, что его не придется менять через 2-3 года) в такой бюджет очень тяжело. В итоге, расширив поиски тысяч до 16-17, пришел к выводу, что в этой нише царствует все тот же Самсунг, от которого остались не слишком хорошие впечатления, хоть теперь и на Андроиде 5. HTC Nexus, Sony Xperia нравятся, но стоят за 20. Вместе с тем пришло осознание, что за 19-20 можно купить гламурный iPad Mini с Retina. До этого яблочной техники никогда не было и никогда ей не пользовался, относясь с предубеждением. Собственно, вопрос: стоит ли уходить с планшетов на Android на IOS и взять таки Айпад мини, или все же за эти деньги лучше найти что-то на андроид? Если да, то что?

 , ,

CatsCantFly
()

RSS подписка на новые темы