LINUX.ORG.RU

Сообщения CatsCantFly

 

Автоматизация алгоритмов собак

Форум — Talks

Шел я сегодня на работу по парку, вокруг собаки, и пришла в голову одна мысль - полная замена собак и их упразднение. Рассмотрим собаку с точки зрения ее разумности. Начнем с двух разделов ее деятельности: обработка входящей информации и принятие решений. Входящая информация собаке поступает посредством зрения, слуха, обоняния и осязания. Зрение - собака (в отличие от современных систем ИИ) совершенно не способна распознавать зрительные образы. Она не может отличить живой объект от неживого, не способна узнать хозяина лишь по внешнему виду. Собака использует зрение, только что бы не натыкаться на препятствия и замечать движущиеся объекты. Слух - собака может запомнить звуки, например команды, но совершенно не способна их распознавать и анализировать (в отличие от распознавателей речи), она запоминает точные последовательности звуков, поэтому она не способна распознать команду, когда она, например, произнесена другим голосом. Собака использует слух только как триггер для запуска устойчивых ассоциаций. Как же собака распознает, идентифицирует и классифицирует объекты, если распознавать визуальную и звуковую информацию она не способна? Ответ один - обоняние. Почему именно оно? Оно самое простое алгоритмически, вместо работы сложной нейросети, находящей приблизительные похожести образов, обоняние выполняет большую часть работу, заключающуюся в взятии образца молекулы вещества и преобразовании ее свойств во внутренний формат мозга собаки, аппаратно и мозгу остается просто найти контрольную сумму, полученную от органов обоняния, в хэш-таблице. Итого: как анализатор информации собака намного примитивнее современных систем искусственного интеллекта. А чтос принятием решений? Принятие решений собаки основанно на скриптах, которые запускаются определенными триггерами - например, бежать за объектом, если он движется со скоростью более N м/с. Как помним из пункта 1, собака не способна распознать объект, не способна определить, стоит ли за ним бежать (условная добыча типа мелкого животного) или нет (например, машина). Триггер сработал - запустился скрипт, собака бежит. Я думаю, больше примеров приводить смысла нет. Так вот, получается, что уже сейчас мы можем создавать роботов, которые будут для хозяина более развитыми, интеллектуальными и приятными в общении, чем собаки. Что ликвидирует большую часть проблем: агрессия домашних собак в общественных, брошенные и бродячие собаки, которые могут напасть, нечистоты на улицах и многое другое. Многие скажут, что робот не теплый, не пушистый - я думаю, можно переоборудовать биологических собак, например оборачивать хард робота в оболочку чучела биологической собаки. Кто что думает?

 ,

CatsCantFly
()

Унифицированный вызов лямбды с различным количеством параметров

Форум — Development

Проще объяснить сразу на примере того, что хочется добиться:

template <class Callback> void Manager::addHandler(const std::string& pattern, Callback handler)
{
//...???
}

void Manager::process(const std::string& request) 
{
//...как???
}

//... 
//...

manager.addHandler("dir/{0}", [](const std::string& dir) {
    //do smth
}); //1

manager.addHandler("root/{0}/{1}", [](const std::string& dir, const std::string& subdir) {
    //do smth other
}); //2

manager.process("root/kokoko/pokpok"); //должна вызваться лямбда, которую мы передали в //2 с аргументами "kokoko" и "pokpok"

Мы где то сохраняем паттерн, с которым сопоставляем строки (пути, запросы, команды, etc) и в соответствии с тем, с чем совпадет, вызовем сохраненную функцию обработчик с параметрами, выдранными из команды, с нужным количеством их. Есть какие идеи насчет реализации Manager::addHandler и Manager::process? Строка, передаваемая в process, может и будет генерироваться в рантайме

 ,

CatsCantFly
()

Размышления о социальных благах

Форум — Talks

Изучив некоторые материалы по теме, оформилась идея крайне экономически эффективного капиталистического общества. Суть вот в чем: мы просто отменяем всю социалку вообще - пенсии, льготы, бесплатные государственные услуги, пособия, бесплатные медицина/образование, дотационный общественный транспорт и все такое прочее. Чем больше социальных благ, даваемых государством - тем обременительнее их содержание для экономической активной части общества (бизнеса) с одной стороны, и тем больше дестимулируется экономическая активность (желание много и эффективно работать) у масс - с другой. Что мы получаем, проведя такую модернизацию и устранив эти социальные блага: Увеличение доли экономически активного населения, генерирующего прибыль (так как жить ему стало тяжелее, ничего бесплатного нет, то часть этого населения начинает с целью выживания работать в удвоенном режиме, обогащая бизнес и экономику в целом), и устранение экономически пассивного населения, которое сейчас пользуется социалкой, что убирает с бизнеса бремя содержания этого населения. В результате растет абсолютное богатство такого общества. Как минус - растет неравенство, социальная напряженность, что компенсируется полицией. Как вам, ЛОР, такая модель?
Линукс тут при том, что дискуссионно и положение СПО в таком мире.

 ,

CatsCantFly
()

Gnome стал плох.

Форум — Talks

До сих пор использовал гном. После апдейта до 3.18 получил странное поведение - gdm, как обычно, запускается на tty1. Привычно логинимся через него - и получаем пустой экран с фоном gdm. Чисто случайно, методом тыка, обнуржил что gnome-session запускается под tty2. В поисках решения проблемы нашел багрепорт https://bugzilla.gnome.org/show_bug.cgi?id=747339. Фактически, разработчики гнома ответили что это не баг, так и задумано и теперь будет так. Так что за? Они предлагают пользователям терпеть что в другом tty всегда запущен работающий и не нужный логин-скрин gdm, съедающий по 120МБ, а при логине всегда надо нажимать cntrl+alt+F2 или что-то подобное. А так же, у неопытных обычных пользователей, дружелюбным к которым гном себя позиционирует, скорее всего первой (и последней) мыслью будет, что этот ваш линукс с гномом вообще не работает и не запускается, показывая серый экран. Как это терпеть?

 , ,

CatsCantFly
()

Буфферизированное чтение бинарного файла на C++

Форум — Development

Всегда как то с неохотой пользовался и не желал разбираться в плюсовых *stream, а тут понадобилось. В общем, задача - максимально быстро читать бинарные данные (например, int) из файла, заняв при этом не более точно известного количества памяти для этого чтения (данных много, счет идет на десятки-сотни мегабайт). Куда они потом идут - не суть.

мой вариант (черновой пример, показывающий идею).

std::ifstream file("data", std::ios::binary);
char* buffer = new char[MAX_MEMORY];
file.rdbuf()->pubsetbuf(buffer, MAX_MEMORY);
//blablabla
//читаем int
int value;
file.read(reinterpret_cast<char*>(&value, sizeof(value));
Вопросы: я правильно понимаю, что данные из файла будут читаться в мой буффер, кусками размером MAX_MEMORY, и когда я делаю read, я читаю из этого буфера? Вообще правильно я все делаю? Есть ли способ лучше (если говорить о другом способе, то требования: кроссплатформенность, не использовать никаких либ кроме stl и boost).

 ,

CatsCantFly
()

GZDoom не работает клавиатура

Форум — Games

Сижу на арче. GZDoom поставлен из AUR, версия g2.0.05. После какого то по счету его обновления перестали работать все символьные клавиши (в любой раскладке), то есть AWSD, а например стрелки - работают. Кто нибудь сталкивался?

 

CatsCantFly
()

Почему в компании под запретом Linux?

Форум — Talks

Работал я в одной компании веб кодером на заре карьеры (компания кстати говоря ужас, платили мало, грузили много, начальство было занято подставами друг друга и прочими дворцовыми интригами). Компания причем большая, больше 500 сотрудников. Так вот, на персональных рабочих местах всех сотрудников стояла винда (естественно пиратская, как и весь остальной софт). Из какого-то узкоспециализированного софта сотрудникам не требуется ничего (в основном браузер, текстовый редактор, офисный пакет, почтовая программа). Сотрудникам запрещено ставить какой либо софт - всё только через админов. Я поднимал вопрос, что если всех сотрудников и нельзя пересадить на СПО с пиратчины по понятным причинам, то почему бы не позволить поставить линукс на персональные машины сотрудникам, которые разбираются и хотят сами его поставить. Ответом было «нет» без объяснения причин. Вопрос: почему компания предпочитает пиратчину и не разрешает сотрудникам самим использовать СПО?

 , , ,

CatsCantFly
()

Ограничение скорости для начинающих водителей

Форум — Talks

МВД РФ подготовило законопроект, в котором предлагается ограничить максимальную скорость движения водителей со стажем менее 2 лет до 70км/ч на любых дорогах. http://www.rg.ru/2015/06/10/pdd-site.html.
Кто как к этому относится?

 , ,

CatsCantFly
()

Предложение по стандарту C++

Форум — Development

Решил сделать свою библиотеку для работы с json. Существующие не нравятся тем, что обладают ужасным синтаксисом, так как не используют многие возможности из C++11 (например, std::initializer_list) Как известно, в json допускаются два вида коллекций данных - просто списки и ассоциативные контейнеры. Во многих языках, эти виды контейнеров декларативно описываются разным синтаксисом. В C++11 полявилась удобная штука, позволяющая задавать любые коллекции как {a, b, c}, что неявно преобразуется в std::initializer_list. Но для инициализации ассоциативного контейнера, к примеру, std::map, используется он же, наприимер {{key1, val1}, {key2, val2}}. Соответсвенно, при конструировании json объекта мы не можем отличить пришедший в конструктор std::initializer_list, описывающий ассоциативный контейнер от списка списков. Есть просто решение: выдумать отдельный синтаксис, который по аналогии с std::initializer_list и {a,b,c} будет преобразовываться в std::pair, например такой

{key: value}
, что должно раскрываться в
std::make_pair(key, value)
. По идее все логично, обратную совместимость ни с чем не нарушает, радикально переделывать компиляторы не придется. Почему не добавить такое в стандарт?

 , ,

CatsCantFly
()

Тормозит firefox при воспроизведении звука.

Форум — Desktop

Arch с Gnome 3, проблема существует со дня установки, уже год с лишним. Выглядит это так: открываем лису, дальше любой плеер и запускаем в нем воспроизвдение - в лисе начинает тормозить скроллинг, интерфейс и все такое. Выключаем звук - тормоза прекращаются. Так же они прекращаются, если не выключая воспроизведение, перезапустить firefox. В момент воспроизведения загрузка цп не большая - где то 5%. Кроме firefox ничего при этом не тормозит. Если воспроизводит звук сама лиса (например с ютуба) - тормозов нет. Железо - Core i5, 8GB, GTX660Ti (проприетарные дрова).

 ,

CatsCantFly
()

Посоветуйте книг по теории вероятностей и статистике

Форум — Science & Engineering

Для человека, который изучал это все когда-то в универе, но ничего не помнит. Нужно достаточно доступно (но не для школьников или идиотов), со средним углублением в тему.

 ,

CatsCantFly
()

Программист C++ ищет работу по удаленке.

Форум — Job

Ищу работу по удаленке, в качестве подработки, с расчетом работы около 4 часов в день (время суток вечернее, но по различным вопросам могу общаться в любое время). Имею образование по специальности «Электронно-вычислительные системы, комплексы, сети» (магистр).
Навыки:

  • C++ (upper mid), в т.ч. C++11/14
  • STL
  • Boost
  • Qt 4-5
  • Знания основных алгоритмов и структур данных
  • Навыки написания серверного ПО
  • SQL, запросы и опыт проектирования БД

Рассматриваются любые предложения. Интересует как постоянно сотрудничество, так и разовые задачи.

 ,

CatsCantFly
()

Листалка картинок в gnome

Форум — Desktop

Вот в винде есть такая фишка - в explorer стандартном открываем директорию с картинками, сортируем, например, по дате, открываем любую стандартным просмотрщиком - картинки листаются в порядке, в котором отсортированы в фм. А в Gnome с nautilus (да и в других вариантах, которые пробовал) и стандартным просмотрщиком гнома - всегда листаются с сортировкой по имени. Как бы повтворить такую фичу из винды?

 ,

CatsCantFly
()

Зачем выкладывать вакансии, если сотрудники не нужны.

Форум — Talks

Еще одна история про поиски работы 2 месяца назад. Решил я наряду с другими вариантами попробовать и в mail.ru, не смотря на то, что их продукты считаю не нужными. У них вакансии есть как на ЛОРе, так и на hh.ru и естественно на их сайте. Выбрав парочку вакансий на сайте, сделал отклик, прошел там же сертификацию по C++ (совершенно упоротая, ориентированная на задрачивание стандарта), набрав неплохой вроде как балл. Так же откликнулся на hh. Через неделю приходит отклик с хедхантера, что они заинтересованы, но откликнитесь пожалуйста на вакансию на нашем сайте. Я ответил что уже это сделал неделю назад, и они просто проигнорили. Через несколько дней он написали (как я понял, на отклик на сайте, в тч сертификат, они даже не посмотрели), и hr-ша предложила пройти техническое интервью в скайпе. Я согласился, в назначенное время мне в скайп никто не написал, через полчаса отписал hr-ше на почту, в ответ на что она тут же в скайп добавилась. Как проходило интервью: она сама текстом копипастила 15 вопросов, причем совершенно упоротых, из разряда «вот кусок дикого говнокода с кастами указателей через не понятно что, скомпилируется ли он и что выведет на экран?». На любые уточняющие вопросы по заданию, она говорила, что ничего не знает и ничего мне ответить не может по этому поводу. После 15 вопросов этих она отключилась. Через день отписала на почту «результаты теста перспективны но недостаточны, спасибо за потраченное время». Мне как бы не настолько надо, но им нужны сотрудники вообще, при таком подходе?

 , ,

CatsCantFly
()

Почему игровые движки не open-source?

Форум — Talks

Натолкнуло на эту мысль недавнее введение бесплатной подписки на Unreal Engine 4, с фактически доступными публично исходниками. Специфика игрового ПО такая, что для конечного пользователя код ничего не значит, продукт это код + ресурсы (музыка, модели, текстуры, текст). Зачем им в этом случае оставлять проприетарную лицензию на код? Деньги всегда можно заработать на поддержке. Или сделать как у Qt - двойную: хочешь закрывать продукт и не делиться своими доработками - платишь деньгами, иначе берешь gpl версию и платишь авторам тем, что отдаешь свои доработки, которые становятся частью движка. В выгоде были бы все: компании совместными усилиями бы дорабатывали и развивали движок, а не каждый кто во что горазд, при этом никто не запрещает делать весь арт проприетарным. Почему так не делают?

 ,

CatsCantFly
()

Задачи с собеседований на интеллект.

Форум — Talks

Подкиньте еще логических задач с собеседований. Примеры таких:

  1. Встретились два старых друга, не видевшиеся уже довольно долго. Оба когда-то вместе учились на Физтехе. Вот их диалог: — Я слышал, у тебя дети появились. — Да, три сына. — И сколько им лет? — Ну... В сумме — тринадцать! — Хм... Загадками хочешь говорить? Ну ладно. И что еще можешь сказать? — Если возрасты перемножить, получится как раз столько, сколько окон у вооон того дома. — Но этого всё еще мало! — Могу добавить, что мой старший сын — рыжий. — Ну теперь совсем другое дело. Им ... (далее следует ответ) — Правильно! Сколько же лет им было?

  2. Три мудреца поспорили, кто из них самый умный и обратились к четвертому, чтобы он их рассудил. Судья сообщил мудрецам, что у него есть три белых колпака и два черных, после чего надел каждому белый колпак на голову так, чтобы каждый видел только колпаки двух других мудрецов. Мудрецам требовалось угадать цвет колпака на собственной голове. Через некоторое время один из мудрецов сообщил, что у него на голове белый колпак и выиграл состязание. Как он смог догадаться?

  3. Человек находится в ж.д. составе, замкнутом в кольцо. Случайным образом в каждом вагоне включен или выключен свет. Окна закрыты. Человек может только переходить из вагона в вагон и включать и выключать свет. Как ему узнать длину состава? UPD: У него с собой никаких предметов, ничего что бы он мог оставить, нельзя портить вагоны и испражняться в них.

  4. Жил-был султан, и был у него совет из множества мудрецов. Решил он, подсократить их, выбрать самых умных, а остальных казнить. Для этого вызвал их и сказал: «Сегодня вас всех посадят в темницу, завтра завяжут глаза, выведут на площадь у дворца, каждому наденут на голову черный или белый колпак, построят в шеренгу, что бы каждый видел всех перед ним и никого за ним, после чего всем развяжут глаза. Каждого, начиная с последнего, спросят, какой на нем колпак, если он не угадал - его казнят». Что могли придумать мудрецы, что бы минимизировать свои потери?

  5. На одномерную планету приземляются два робота, откидывают парашюты и начинают искать друг друга. Робот может раз в секунду поехать направо, поехать налево или постоять на месте (скорость у робота постоянная). Кроме того, робот может определить, есть ли рядом с ним парашют, и есть ли рядом с ним другой робот. Как им встретиться? Программа роботов одинакова.

  6. У вас есть стоэтажная башня и два идентичных стеклянных шара. Как за минимальное число попыток определить наименьший этаж, при падении с которого шар разбивается?

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

  8. В тюрьме сидят 10 заключенных, каждый — в одиночной камере. Общаться между собой они не могут. В один прекрасный день начальник тюрьмы объявил им, что предоставляет всем шанс выйти на свободу на следующих условиях:

    «В подвале тюрьмы есть комната с переключателем, имеющим два состояния: ON и OFF («вкл.» и «выкл.»). Каждую ночь я буду приводить в эту комнату ровно одного заключенного (выбирая его абсолютно случайно) и через некоторое время уводить. Находясь в комнате, каждый из вас может либо изменить положение переключателя, либо ничего с ним не делать. Персонал тюрьмы трогать этот переключатель не будет. В какой-то момент один из вас (любой) должен понять, что в комнате побывали все заключенные, и сообщить об этом. Если он окажется прав — всех отпустят, если ошибется — все вы навсегда останетесь в тюрьме. Я обещаю, что в комнате побывают все заключенные, причем каждого будут приводить туда неограниченное число раз».

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

    Могут ли заключенные гарантированно выйти на свободу, и если да, то как им этого добиться?

Кто какие еще знает? Составляем коллекцию.

 , ,

CatsCantFly
()

Как программисту получать больше?

Форум — Talks

Ситуация такая - живу в DC, снимаю квартиру, работаю C++ программистом за 120 тысяч оклада. С учетом съема квартиры и кредита за машину - хватает еле-еле. По вакансиям смотрю - получаю вполне среднерычночную зп, везде предложения в лучшем случае до 130 - 150к за плюсы, причем за 150к подразумевается уже действительно многолетний опыт (у меня стаж 2.5 года). Вопрос: как и где плюсовику-линуксоиду получать больше?

 ,

CatsCantFly
()

Gnome 3 тормозит перемещение окон

Форум — Desktop

Проблема появилась где-то еще с 3.14. Тормозит перемещение окон по экрану, будто оно отрисовывается с 10 кадров в секунду, особенно заметно, если сзади развернуто другое окно, например браузер. Другие анимации работают нормально, даже казалось бы более сложные типа перехода в обзор по окнам. Притом в MATE с compiz этой проблемы нет, но там изменение размеров окна зато тормозит. Можно это как то вылечить все? Железо вполне сорвеменное - Core i5 4670K, Nvidia GTX660Ti, дрова видео проприетарные.

 

CatsCantFly
()

Посоветуйте книги/учебники по OpenGL

Форум — Development

Посоветуйте хороший учебник по современному OpenGL с понятными примерами и для новичка. В графике полный нуб (на уровне институтского курса, длящегося семестр). Писать буду под онтопик. В существующем что нашел, есть одни и те же недостатки: очень старое, предлагающее использовать какие то левые умершие библиотеки, сильно завязано на WinAPI в адском миксе с OpenGL. Спасибо за советы.

 ,

CatsCantFly
()

Лучший выбор редактора/IDE для кастомных сообщений и перехода по ним в коде.

Форум — Development

Суть вопроса: нужно реализовать для какой либо IDE/редактора под GNU/Linux с минимальными усилиями возможность открыть файл определенного формата (формат можно сделать любой, какой понадобится, в файле просто сообщения, имена файлов с исходником и номера строки в нем для перехода) и перехода по сообщениями из него на соответствующие строчки в C++ коде (как ошибки компиляции и варнинги в том же qt creator). Выбор редактора или среды не принципиален, желательно популярный, формат тоже, главное - в каком это можно реализовать наиболее просто и удобно?

 ,

CatsCantFly
()

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