LINUX.ORG.RU

Сообщения jcdr

 

ищется настраиваемый шахматный движок

Форум — Talks

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

Есть ли такой движок, чтобы можно было настроить - в начале он играет такой-то дебют? Или тип игры «позиционная», «комбинационная». Т.е. чтобы не только «сила» движка настраивалась, но и «стиль» игры

 ,

jcdr
()

решение системы уравнений с дискретными переменными

Форум — Development

Вот есть у меня система линейных уравнений. Часть из переменных в которой может изменяться только дискретно (назовем их D-переменные). Я делаю так: сначала считаю, как получится, потом фиксирую D-переменные на ближайшем допустимом значении. И решаю систему заново, добавив вычисленные значения D-переменных как константы.

Процесс итеративный, поэтому вычисление из-за многоэтапности затягивается. Как лучше учитывать в одной системе и дискретно изменяемые величины и «нормальные аналоговые»?

 

jcdr
()

какой базы данных вам не хватает?

Форум — Development

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

Интересуют прежде всего 3 направления:

  • графовая база данных (типа neo4j)
  • база данных для сбора метрик и статистики (типа influxdb)
  • объектная база данных (типа ObjectDB)

Вопрос, собственно, в том - чего в современном мире на самом деле не хватает? Или neo4j удовлетворяет всех желающих как графовая база данных. Для телеметрии у всех свои велосипеды, а чисто объектная бд вообще никому не нужна?

 , ,

jcdr
()

сделать строку поиска в chromium как в firefox

Форум — Desktop

Всем доволен в хромиум (после того, как ушел с firefox). Но очень не хватает строки поиска как в firefox. Так, чтобы был комбобокс с выбором самых посещаемых за некоторое время страничек. Искал среди расширений - и ничего приемлемого не нашел. Может плохо искал? Подскажите, есть такая возможность сделать такую строку поиска?

Перемещено mono из talks

 

jcdr
()

ПО для диванных финансовых аналитиков

Форум — Talks

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

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

В связи с вышеизложенным взываю о помощи - что не хватает простым людям для финансовой и вообще экономической аналитики от ПО?

 ,

jcdr
()

дублированные ссылки на объект

Форум — Development

Такой вопрос. Есть у меня есть некий объект. И есть вектор, который хранит ссылки на объекты этого же типа. Насколько я понимаю, все присваивания в Rust просиходят перемещением объекта (или явным копированием). Т.е. если я сделаю

..
let x = get_new_object();
my_vector[42] = x;

, то «x» перестанет ссылаться на объект, а ссылку «украдет» вектор. Так? А если мне надо сохранить 2 ссылки на объект, но при этом не создавать копий, то как быть? Использовать рантаймовый счетчик ссылок?

 

jcdr
()

как rust захватывает ссылки

Форум — Development

Предположим, есть такой код

fn f(x : Box<i32>) -> Box<i32> {
	if some_random_value {
		return x;
	} else {
		return Box::new(10);
	}
}


fn g() -> Box<i32> {
	let x = Box::new(20);
	return f(x);	
}

fn main() {
	let a = g();
}

Как раст понимает, что после вызова g() память, выделенную под Box::new(20), надо освободить? Ведь, насколько я понимаю, в зависимости от случайного события (some_random_value) Box::new(20) надо либо удалить после g(), либо вернуть как результат

 

jcdr
()

спортивные часы-браслет

Форум — Talks

Посоветуйте, пожалуйста, спортивные часы-браслет.

Чтобы функционал был по минимуму: малый размер/вес/цена, часы, таймер + (желательно, но, в принципе, не обязательно) шагомер, встроенный mp3 плеер.

То, что в интернетах находил - это все «умные» часы с кучей ненужных мне функций (типа синхронизаций с телефоном), громоздкие

 ,

jcdr
()

оптимизация работы с векторами

Форум — Development

Есть такая структура

struct f
{
...
    // здесь хранятся индексы другого вектора
    std::vector<size_t> ir;
    std::vector<size_t> ic;
...
};

f l;
size_t k;

В одной функции есть строчка

1. size_t i = l.ir[k];

AMDшный CodeXl расскрывает по этой строчке такой код:

mov edi,ecx
shl edi,04h
mov [ebp-10h],edi
----- break -----
mov eax,[ebx+1ch]
mov ebx,[ebx+4ch]
mov edi,[ebp-18h]
mov [ebp-20h],eax
----- break -----
mov eax,[ebp-20h]
lea ecx,[edx*4+00000000h]
---- break -----
mov eax,[eax+ecx]

И вторая строчка

2. size_t j = l.ic[k];

Компилируется в

xor esi,esi
mov [ebp-10h],esi
----- break -----
movsd xmm4,[ebp-34h]
----- break -----
movsd xmm5,[ebp-3ch]
----- break -----
mov eax,[edi+40h]
----- break -----
lea edi,[eax+ebx*4]
mov ecx,ebx
shl ecx,05h
sub edx,ebx
mov ebx,[ebp-14h]
lea ecx,[ecx+00h]
mov eax,[edi]
add edi,04h

И первый вариант, судя по логам профайлера, выполняется в 3 раза дольше.

Почему первый раз выполняется дольше?

Почему вообще ассемблерный код у этих вариантов отличается?

 , , ,

jcdr
()

шахматный gui для обучения

Форум — Games

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

 ,

jcdr
()

zimbu

Форум — Development

А никто не пробовал http://www.zimbu.org (язык программирования от Bram Moolenaar)? Как оно по скорости? А то публичных бенчмарков найти не удалось

 

jcdr
()

сортированный по значению map

Форум — Development

Появилась такая задача - есть набор пар ключ-значение. И ключ и значение - целые числа. Значения не уникальны и могут повторяться в парах, ключи - уникальны.

В соответствие с алгоритмом, значения некоторых пар итеративно меняются. Кроме того, каждую итерацию надо выбирать пару (1 или несколько) по минимальному значению «значения» (прошу прощения за тавтологию). Язык реализации C++

Стандартный map для pair ключ-значение - очень медленно (видимо, за счет частых обращений и модификаций перед поиском минимума). Даже вектор чисел и стандартный std::min каждый раз и то быстрее.

Какое решение посоветуете?

update: забыл добавить, что диапозон значений и ключа и значений ограничен одним и тем же N (не больше 100000).

 ,

jcdr
()

выбор структуры данных

Форум — Development

Какую выбрать структуру данных?

Список целых чисел (на отрезке от нуля до N), элементы добавляются последовательно, процентов на 80 в отсортированном порядке. Элементов в списке немного, обычно до 20, но процедура наполнения списка вызывается часто.

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

Avl, как я понимаю, не вполне подходят из-за необходимости часто балансировать дерево.

Главное требование - скорость добавления и извлечения уникальных сортированных. Память не критична, время удаления не критично.

Что бы выбрать?

 ,

jcdr
()

где лучше вести личный блог

Форум — Talks

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

* Про блогспот/свой сайт никто не узнает и читать никто не будет

* Хабрахабр все-таки для уникальных статей, а не для очередной заметки про всем известную тему, но по своему

* livejournal подошел бы, но оттуда уже все ушли. Или нет?

* juick тоже в чем-то подходит, но там нет никакой разметки да и людей там еще меньше, чем в жж

* facebook, g+ не использую принципиально

Что еще посоветуете?

jcdr
()

Maude system

Форум — Development

Читаю про Maude и переписывание термов здесь http://www.cs.swan.ac.uk/~csneal/MaudeCourse/termrewriting.html (другие ссылки можно взять отсюда http://en.wikipedia.org/wiki/Maude_system).

И не могу понять, переписывание термов - это по сути Datalog с наследованием типов? Возможности унификации, как в прологе, отсутствуют, сопоставления с образцом, как в рефале, отсутствуют. Зато большая эффективность и заточенность на декларативное описание модели. Я прав?

 

jcdr
()

верификация алгоритма

Форум — Development

Есть у меня, к примеру, графы. И несколько алгоритмов по работе с графами. Хочется убедиться в корректности работы этих процедур - тесты, все-таки, покрывают не все возможные случаи.

Я знаю о существовании agda, coq, ats - но, насколько можно судить по разрозненным знаниям из википедии, они доказывают корректность зависимых типов выражений. А у меня тип везде один и тот же - граф и граф

Подскажите, как правильно будет доказать правильность реализации алгоритма по некой спецификации? И как правильно описывать такие спецификации алгоритмов?

 ,

jcdr
()

объясните про std::vector от фейсбука

Форум — Development

https://github.com/facebook/folly/blob/master/folly/docs/FBVector.md здесь написано, что выделять память для вектора по степени двойки - плохо. Но вот причину я не могу понять:

What that really means is that the new request for a chunk will be never satisfiable by coalescing all previously-used chunks. We would of course want the vector to not crawl forward in memory, but instead to move back to its previously-allocated chunks. Any number smaller than 2 guarantees that you'll be able at some point to reuse the previous chunks

 ,

jcdr
()

фризы при работе с sd-картой

Форум — Mobile

Есть планшет Supra M943, android-4.1. Полгода работал нормально, но последние несколько дней появилась проблема - любые операции с sd-картой выполняются с паузой от нескольких десятков секунд до нескольких десятков минут. Некоторые приложения и вовсе показывают, что карты нет.

Казалось бы, проблема в sd-карте (но тогда бы была ошибка ввода/выводы, да?), но из компьютера данные на sd-карту копируются и сканятся без проблем. Кроме того, после перезагрузки из recovery mode, первое время все работает нормально, но стоит выключить/включить экран - и все опять подвисает. Нашел несколько подобных проблем с самсунговскими планшетами, но решения я там не увидел.

Подскажите, как исправить проблему подвисаний при работе с sd-картой?

 

jcdr
()

объединение вершин графа

Форум — Development

Добрый день!

Есть такая задача. Граф (циклический, ориентированный), у которого ветки могут быть 2 типов (А и Б). Надо найти группы узлов, связанных между собой ветками типа А. Потом, собственно, такие узлы надо будет заменить новым объединенным узлом.

Ткните, пожалуйста, в описание алгоритма, который бы находил такие группы узлов.

p.s. например, граф

o==o
| /
o
должен преобразоваться в такой
q
|
o
где «==» ветка типа А, «/» и «|» ветки типа Б. «о» - необъединенные узлы, «q» - объединенный узел

 ,

jcdr
()

конструктор копирования

Форум — Development

Есть класс:

struct A {
  A(const &A a) {...}
}

и функция:

A& f(A a) {
  //...
  return a;
}

Если я вызываю:

A a;
auto b = f(a);

то при обращении получается обращение к чужой памяти. почему? ожидал, что при вызове f значение «a» скопируется и в «b» будет ссылка на эту копию. это не так?

 

jcdr
()

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