?

Log in

Программизм's Journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in Программизм's LiveJournal:

[ << Previous 20 ]
Friday, November 4th, 2016
3:59 am
[m_f]
вопрос по C++
Мне немного стыдно за такой тупой вопрос, но я что-то не соображу, как быть.
Есть чисто виртуальный класс Base с чисто виртуальным методом, например void func(). От него унаследован класс Derived, где этот метод определен. Есть метод в некоем классе, который берет vector<Base>.

Вопрос: как скормить этому методу vector<Derived>?
Friday, October 28th, 2016
7:23 pm
[m_f]
Вопрос о boost(C+)
Краткое содержание предыдущих серий: в предыдущем посте меня убедили использовать boost.
Я подключил в свой проект boost/filesystem, добавил параметр -lboost_system и пытался его построить. В ответ была получена ошибка cannot find -lboost_system. Предварительно я построил boost и добавил фолдер D:/boost1_62 в пути для линкера. Как я понимаю, гду-то должен быть файл libboost_system.o, но я его нигде не нашел.
Вопрос: что я делаю не так и как это исправить?
UPD. Решено. Оказывается, реально оно называется не boost_system, а boost_system-mgw49-mt-1_62.
Monday, October 24th, 2016
3:36 pm
[m_f]
вопрос по C++
Вопрос, чтобы не изобретать велосипед. Вот в Java есть прикольный класс File, сс помощью, которого, в частности, можно переходить от абсолютных путей к относительным. А есть что-нибудь подобное в C++? Я, конечно, могу и свой велосипед написать, но вдруг оно уже есть.
Thursday, October 20th, 2016
11:18 pm
[nicka_startcev]
gnu plot
а подскажите люди добрые как гнуплот готовить

1. есть у меня в квартире куча термодатчиков. иногда они долго показывают одну и ту же температуру, тогда гнуплот начинает ворнинговать, что по оси У ноль, всё плохо. как задать именно разность температур, а не диапазон?
2. можно ли тупо подавить этот ворнинг, не давя другие?
3. гнуплот любит красиво ставить метки далеко друг от друга. можно ли заставить его ставить метки в 4 раза чаще? не через каждые 1/16 градуса, а именно в 4 раза чаще, чем по умолчанию?

а может стОит заменить гнуплот чем-то более удобным? на входе текстовый файл в формате "дата время т1 т2 т3 т4" или "дата время т1" из которого хочется видеть график температур в виде картинки (чтоб отобразить на вебстраничке), и это сидит в крон(таб)е.
Monday, October 17th, 2016
3:26 am
[m_f]
Вопрос по STL(C++)
Допустим, есть multimap<string, int>. Как грамотно просуммировать все значения? Как пробежать все значения? Я спрашиваю именно про multimap. С обычным map-ом никогда проблем не было, а mutlimap использовать не приходилось.
Заранее спасибо.
Saturday, October 15th, 2016
6:20 pm
[m_f]
Вопрос по algorithm(C++)
Есть map<time_t,string>. Хочу скопировать только те записи, которые соответствуют определенному string.
map<time_t, string>
Написал код:
copy_if(times.begin(),times.end(),copyTimes.begin(),[&Name](pair<time_t,string> curPair)->bool
{
return (curPair.second == Name);
});
При компиляции выдается ошибка:

assignment of read-only member 'std::pair
[Error: Irreparable invalid markup ('<const [...] std::basic_string<char>') in entry. Owner must fix manually. Raw contents below.]

Есть map&lt;time_t,string&gt;. Хочу скопировать только те записи, которые соответствуют определенному string.
map&lt;time_t, string&gt;
Написал код:
copy_if(times.begin(),times.end(),copyTimes.begin(),[&Name](pair&lt;time_t,string&gt; curPair)->bool
{
return (curPair.second == Name);
});
При компиляции выдается ошибка:

assignment of read-only member 'std::pair<const long long int, std::basic_string<char> >::first'.

Не понимаю в чем дело. Я ж сравниваю, а не присваиваю нифига. Попробовал сделать лямбду mutable - не помогает, та же ошибка.
В чем причина и что делать?
Thursday, October 13th, 2016
12:10 pm
[nicka_startcev]
чтение файла fuse/owfs
несколько странный вопрос - а как в линуксе правильно читать (псевдо)файл?

читаю свежие показания 1-варь термометра через owfs который через fuse.
иногда читается быстро, а иногда тупит.

хочется как-то асинхронно вычитывать оттуда 1 строку (100.562, например) или асинхронно, или по факту изменения содержимого файла.

сейчас пока что тупо-тупо в цикле вычитываю, жду, например 890мс (или 5600мс), пишу в лог время и температуру. так вот, время вычитывания из псевдофайла или совсем мало, или аж 600мс, что как-то очень дофига. а иногда и вообще единицы секунд. хочется как-то повменяемее этос делать.

ps: таки да, с/с++, линух, х86, 32бит.
Sunday, October 9th, 2016
3:54 am
[m_f]
Вопрос по STL
Программа падает при попытке добавить в std::map данные. Код приводится ниже
Есть класс,в котором есть map. объявленный статическим полем.
static map<int, DataKeeper*> typeKeepers;
В сишнике оно инициализируется:
static map<int, DataKeeper*> typeKeepers;
Далее, есть вызов статического метода:
DataKeeper DataKeeper::getKeeper (int type)
{
cout<<"getDataKeeper enter"<<::iterator it;
map::iterator it;
DataKeeper* result;
it = keepers.find(type);
if (it == keepers.end())
{
int size;
result = new DataKeeper();
size = sizeof(result);
keepers[type] = result;
}
Проходя по шагам я увидел, что оно не находит значения(что вполне логично - это первый вызов) и пытается добавить указатель в map. Вот на этом добавлении оно и падает. Конкретно на этой строке. Компилятор MinGW.
В чем дело?
Заранее спасибо за любые конструктивные советы.
UPD. Всем спасибо, разобрался. Только сейчас добрался до сети, прошу прощения. Оказалось, вызов идёт раньше, чем map создаётся. После 3 лет на джаве отвык от того, что при обращении к не существующему объекту что-то ещё может дышать, если в этот объект ничего не писать.
Wednesday, October 5th, 2016
3:44 am
[m_f]
Вопрос по rapidjson(C++)
Collapse )
Решил я использовать эту библиотеку. Задача такая: сохранить массив объектов, типа скажем Person, в каждом два поля: std::string name и int age.
Почитал доки и написал следующий код.

std::map<string, Person> aPersons;
ofstream ofstr(fname,ios_base::out | ios_base::trunc);
rapidjson::Document doc;
rapidjson::Document::AllocatorType& allocator = doc.GetAllocator();
rapidjson::Value array(rapidjson::kArrayType);
map<string,Person>::iterator it,end = aPersons.end();
int i,size = aStations.size();
array.Reserve(size,allocator);
i = 0;
for (it=aPersons.begin();it!=end;it++)
it->second.saveMe(array[i++],allocator);
Соответственно, в классе Person реализован метод saveMe():
void Person::saveMe (rapidjson::Value& aValue, const rapidjson::Document::AllocatorType& anAllocator)
{
aValue.AddMember("name",name,anAllocator);
aValue.AddMember("age",age,anAllocator);
}
Строиться оно отказывается. Если верить доке и исходникам, то такие методы есть, Что я делаю не так? И как надо?
Заранее спасибо
UPD. Текст ошибки:
no matching function for call to 'rapidjson::GenericValue >::AddMember(const char [5], std::string&, const AllocatorType&)'
no matching function for call to 'rapidjson::GenericValue >::AddMember(const char [8], int&, const AllocatorType&)'
UPD2. Перенес весь код в одну функцию. Стало строиться успешно. Видимо, какая-то фигня происходит при передаче параметров.
UPD3. Проблема в передаче параметров. Не понял почему, но передать Document и Document::AllocatorType через параметры не получается. Даже при передаче через ссылку все равно не компилится. Знает кто, почему так?
Monday, September 26th, 2016
6:18 pm
[nicka_startcev]
экспонента
есть некая физическая система из большого бака, грелки и термодатчика.

термодатчик примерно 2 раза в секунду с неравными интервалами (от 300мс до 2000мс, но в среднем около 500мс) выдает температуру.

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

теоретически, график нагрева должен неплохо аппроксимироваться чем-то типа y=A+B*exp(C*x).

так вот, вопрос. какими методами лучше "на ходу" подбирать эти три коэффициента (по критерию минимизации среднего квадрата отклонения)? нужно ли для этого хранить всю историю или есть более хитрые методы, требующие меньше вычислений?
Wednesday, August 17th, 2016
4:03 pm
[elexandra]
offline
А как нынче принято веб-приложения для работы без интернета делать?

Есть пользователи с планшетами. Пока в офисе - синхронизируется через офисный интернет. Пока ловит мобильный - синхронизируется через мобильный.

Но бывают ситуации, когда интернета нет. Должна быть возможность открыть браузер на планшете, открыть сайт и подгрузить всё, что было синхронизировано раньше.

Сторажи? Манифесты?

Планшеты на андроиде, но желательно кросс-платформенно и кросс-браузерно.

Как быть? 2016 год и далее.
Thursday, July 21st, 2016
12:36 am
[andrewshell]
Майкрософт решил подарить всем нам тьму БЕСПЛАТНЫХ книг. Качайте на здоровье!
Привожу ссылку на мой сайт, где можете найти информацию о бесплатных книгах на английском, которые Майкрософт решил подарить всем нам. Книг - море! Я не считал. А сам директор по продажам Eric Ligman (тот, кто и подарил нам это богатство) утвержадает, что их Миллион! Ну, это конечно, как на Руси обычно говорят: "Тьма", "Было тьма народу". Да чё это я вам из Америки и про русский язык рассказывать то буду.
Скачивайте прямо с Майкрософт сайта. 3 линка я поставил в заметке (начало, середина и конец). А мне будет плюс в карму.

FREE MICROSOFT EBOOK GIVEAWAY
FREE MICROSOFT EBOOK GIVEAWAY

Windows 10 IT Pro Essentials Top 10 Tools

  • Introducing Windows 10 for IT Professionals

  • Introducing Microsoft Power BI

  • Microsoft Azure Essentials Azure Automation

  • Microsoft Azure Essentials Fundamentals of Azure

  • Microsoft Azure Essentials Azure Machine Learning

  • Microsoft® Office 365: Connect and Collaborate

  • Introducing Windows Azure™ for IT Professionals

  • Introducing Windows Server 2016 Technical Preview

  • Virtually Anywhere, Anytime

  • SharePoint Server 2016 Quick Start Guide for Single Server Farms

  • SharePoint Server 2016 Reviewer’s Guide

  • Introducing Microsoft SQL Server 2016: Mission-Critical Applications, Deeper Insights, Hyperscale Cloud, Preview 2

  • WINDOWS POWERSHELL 4.0 LANGUAGE QUICK REFERENCE

  • Windows Powershell 4.0 Examples Quick Guide

  • Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition

and much more… .


FREE MICROSOFT EBOOK GIVEAWAY

Thursday, March 3rd, 2016
3:17 pm
[ilvyanyatka]
программировать видеоигры для самых маленьких
Здравствуйте,
Мой шестилетний сын просит научить его программировать видеоигры.
Подскажите есть ли какие нибудь пакеты для такого программирования, для самых маленьких.
Спасибо.
Tuesday, May 10th, 2016
8:58 pm
[insanegigolo]
Рекрутинг через блоги и гитхаб
Расскажите про ваши истории успеха, как вы вели блог/гитхаб аккаунт/подкаст и вас нашли и взялм на работу и вы там до сих пор работаете.
Saturday, March 19th, 2016
1:54 pm
[109]
lock-free
а вот объясните мне на пальцах, почему lock-free конструкции считаются более скалируемыми (эффективнее при большом количестве тредов)?

интуитивно кажется, что должно быть наоборот - если тред не смог получить лок, он же yield-ит и больше ничего не делает, пока его не разбудят, не потребляя никаких ресурсов. а lock-free продолжает херачить свой цикл, пока не получится успешно compare-and-exchange сделать.

то есть, кажется, что lock-free делает лишнюю работу, и количество этой лишней работы растёт с количеством конкурирующих тредов. опровергните меня, пожалуйста.
Friday, February 26th, 2016
11:56 am
[semjon]
Сертификаты для разработки на Android, iOS, WP
Всем доброго дня!
Скажите, какие сертификаты можно получить, чтобы подтвердить свои навыки разработки на мобильных платформах (Android, iOS, Windows Phone)?
Естественно, с целью предоставления куда-либо (работодатели, участие в конкурсах и пр.). В общем, для конкурентного преимущества.
Можно платные или бесплатные, желательно, чтобы можно их было получить через сеть Интернет (или в Питере, в другой город ради них ехать не собираюсь).

Заранее признателен за ссылки, наводки, контакты.
Friday, February 5th, 2016
2:45 pm
[alex_djk1]
Парсинг лексем через детерминированный автомат с магазинной памятью
Здравствуйте.
А кто-нибудь реализовывал эту штуку? Можно задавать вам пару вопросов?
Collapse )
Thursday, January 21st, 2016
12:43 am
[nasha_sasha]
Памагити soap/xsd
Дебильный провайдер из блубмерга посылает нам xml через MQ, причем там "soap". То есть идет:

< soap:envelope >
  < soap:body >
    <БЛУМБЕРГ:Интересное>
        
    </БЛУМБЕРГ:Интересное>
  < /soap:body >
< /soap:envelope >


WSDL для этой лабуды не существует. Это ваще pub/sub, там нет реквеста по определению.

При этом дебильный провайдер предоставляет xsd для всего, что <БЛУМБЕРГ>, без учета, что оно внутри < soap >.

И вот как я должна теперь создать xsd, с помощью которого я могу сгенерировать java classes в JAXB, чтобы они мне давали

Envelope env = (Envelope)unmarshaller.unmarshall("blah.xml");
Body b = env.getBody();
Блумберг blu = b.getБлумберг();
Интересное и = blu.getИнетересное();

Вы понимаете проблему, да? Все, что в soap body, оно все *. Прицепить "свое" к этому невозможно.

Поэтому все, на что я могу рассчитывать, это body.getAny(), которое мне дает Object. И я потом должна как дура его кастить. Причем оно еще и не кастицца, как какой-то выходит NSNode без каких-то персоналий.

Должен же быть какойто способ как создать xsd с иерархией, в которой верхушка айсберга SOAP а в Body все что мне интересно?
Monday, December 7th, 2015
1:45 pm
[elexandra]
Здравствуйте, уважаемые коллеги.

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

Сейчас имеется готовое решение для популярного GSM-модема Huawei E173. Программа звонит, отсылает SMS-ки, принимает входящие — в общем, всё хорошо, если бы не одно НО. Способ работает через сотовую сеть, поэтому предприятию придётся подключаться к оператору мобильной связи и покупать соответствующий тариф.

Сейчас от меня хотят вариант решения c использованием дозвона через АТС предприятия. Другими словами, нужно использовать не GSM-модем, а обычный FAX-модем для диалапа с подключением одним концом к компьютеру, а другим — прямиком в телефонную сеть.

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

Теперь вопрос — существуют ли какие-то современные методы запрограммировать обзвон через телефонную сеть? Какие модели факс-модемов ещё актуальны? Какие драйвера будут поддерживаться Windows 7 и выше? Чем программирование такого модема будет отличаться от GSM? Может быть, возможен вариант использования систем типа Asterisk?

Проясните, пожалуйста, ситуацию.
Буду благодарна за любые ответы.

P.S. Как понимаете, должна быть возможность легально купить оборудование на юрлицо и поставить на баланс предприятия.
Saturday, November 21st, 2015
12:37 pm
[tretiy3]
getpid в линукс возвращает 1
Привет!
Делаю пример из wiki CEF. Приложение при старте форкает себе несколько процессов
(https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage#markdown-header-processes)
В одном из дочерних процессов (может и во всех, я с одним только работаю) getpid возвращает 1. Снаружи у процесса нормальный pid.
Это все в убунту.
Почему так?
Спасибо

update:
https://github.com/aganzha/cefsimple/blob/master/cefsimple_linux.cc#L47 тут форкается процесс
https://github.com/aganzha/cefsimple/blob/master/simple_app.cc#L23 конструктор приложения

выхлоп:

aganzha@aganzha-asus:~/cef/build$ cefsimple/Release/cefsimple
[1121/210859:INFO:simple_app.cc(23)] SimpleApp constructor 25054||13666

[1121/210859:INFO:cefsimple_linux.cc(48)] Exit code of child -1 in process: 25054

[1121/210859:INFO:cefsimple_linux.cc(53)] Proceed!

[1121/210859:INFO:simple_app.cc(23)] SimpleApp constructor 1||0

[1121/210859:INFO:simple_app.cc(58)] OnContextInitialized 25054

[1121/210859:ERROR:nss_util.cc(839)] After loading Root Certs, loaded==false: NSS error code: -8018
[1121/210859:WARNING:cefsimple_linux.cc(18)] X error received: type 0, serial 304, error_code 8, request_code 42, minor_code 0

getrlimit(RLIMIT_NOFILE) failed
[1121/210859:INFO:simple_app.cc(30)] OnContextCreated

[1121/210902:INFO:v8_handler.h(23)] Call Execute of V8Handler with name loadAdapter with pid: 1

Update 1:
всем спасибо и особенно x_a_e_p. это был pid namespace. сам процесс оказывается создается не fork а clone
[ << Previous 20 ]
RU PROGRAMMING   About LiveJournal.com