[Mailman-Users] Client wants unique archiving method
dragon at crimson-dragon.com
Wed Aug 23 22:02:07 CEST 2006
Andrew Jones sent the message below at 11:23 8/23/2006:
>I just moved a client to Dreamhost from another provider where they
>also had a Mailman discussion list.
>Everything is working at Dreamhost, but they have a strange request.
>They want all original posts to go to all subscribers as normal. BUT,
>they want all replies to ONLY go to the original poster. But they
>also want those replies to be archived so the entire list can choose
>to view them or not.
>I've looked through all of the Mailman config options and cannot find
>a way to achieve what they want, even though they swear this is the
>way it worked with their old host.
>Is this possible, or are they on crack?
---------------- End original message. ---------------------
They are on crack. And you really don't want to get into this can of
worms. I'm not saying it couldn't be done, but it is not something
that would be easy nor reliable. See below for the full explanation.
In the standard mailman distribution, you can set up a list so that
replies go to the list (called "Reply-To munging" and
despised/deprecated by some) or to the poster. If you set it up in
the latter fashion, the e-mail in reply will never hit the mailman
server and you have no way of archiving it. If you set it up for
reply to list, everything will go to the list and get archived.
The only possible way to even come close to what they want is to
modify the mailman code. It would be difficult to do and would be
fraught with potential problems. Each incoming e-mail would have to
be examined for a number of things to determine if it was a reply or
not and who it should go to. This means that the In-Reply-To: header
must be examined to see if there is a matching message ID in the
archive. Depending on list size and traffic, the archive size and the
server's processing load, that could be a long and slow process.
If you found a matching message, you would then have to determine who
the reply should go to. That task is non-trivial and you would have
to make a number of assumptions that may or may not be valid. If
there is only one matching e-mail, you could extract the From: header
from the original post, but if you have the list configured to hide
the identity of list members (you have anonymous_list set to Yes),
you cannot do that.
But what do you do if you have multiple messages in a long thread? Do
you just send the reply to the most immediate poster or to everyone
in the chain? Is your assumption on what to do always appropriate, I
would say that it probably won't be.
What happens if somebody replies to a thread by creating a new post
that does not have the In-Reply-To: header? What about when somebody
goes off on a tangent and uses Reply-To in their MUA to post a new
message to the list? (People do these sorts of thing sometimes, there
is no way you can reliably account for them).
So you can see why I say they are on crack. Tell them to step back
and take a deep breath of reality.
Venimus, Saltavimus, Bibimus (et naribus canium capti sumus)
More information about the Mailman-Users


Generate map reports to view and compare saved map results. You can create map reports to:
- Identify hosts that have been added or removed from the network
- Detect devices that have been placed on your network without your authorization
- Filter data from your saved map results
- Restrict the range of IPs included in the map report
Go to VM/VMDR > Reports > Templates. Identify the map template you want to run and select Run from the Quick Actions menu. You'll be prompted to select the domain you want to report on, plus one or two saved maps to gather data from. When 2 map results are selected we'll compare them to identify systems that have been added or removed from your network.
You have the option to include related host information in your report (edit display settings in the map report template). If included, you can click the black arrow next to any host to see this information.
Discovery Method and Port - A list of open services on the host. For each service detected, the discovery method used to identify the service is listed along with the port that the service was running on (if available).
Asset Groups - A list of asset groups containing the host.
Authentication - Identifies whether the host is included in one or more authentication records.
You'll learn more about each host in the report by looking at these columns:
Approved (A) - Identifies whether the host is included in the approved hosts list for the domain. An "A" appears in this column if the host is in the approved hosts list. This column is blank if the host is not in the approved hosts list. Configure approved hosts for your domains from the domains list (Assets > Domains).
Scannable (S) - Identifies whether the host is in your account and therefore scannable. An "S" appears in this column if the host is in your account. This column is blank if the host is not in your account.
Live (L) - Identifies whether the host was "alive" at the time of the discovery. An "L" appears in this column if the host was alive at the time of discovery. This column is blank if the host was not alive at the time of discovery.
Netblock (N) - Identifies whether the host is included in the netblock for the domain. An "N" appears in this column if the host is in the domain's netblock. This column is blank if the host is not in the domain's netblock.
(Only applicable when two maps are included in the report.) Identifies the current status of the host as compared to the first map. "Active" indicates the host was detected in both map results. "Removed" indicates the host was detected in Map 1 (the older map), but was not detected in Map 2 (the more recent map). The host may be inactive and not responding. "Added" indicates the host was not detected in Map 1 but was detected in Map 2.
There are several workflow actions you can perform on one or more hosts directly from your map report. Select the check box next to each host to include in the action, and select an action from the drop-down menu. Then click Apply.


Goa'uld Apophis captured Jack O'Neill's team again! Jack himself was able to escape, but by that time Apophis's ship had already jumped to hyperspace. But Jack knows on what planet will Apophis land. In order to save his friends, Jack must repeatedly go through stargates to get to this planet.

Overall the galaxy has n planets, indexed with numbers from 1 to n. Jack is on the planet with index 1, and Apophis will land on the planet with index n. Jack can move between some pairs of planets through stargates (he can move in both directions); the transfer takes a positive, and, perhaps, for different pairs of planets unequal number of seconds. Jack begins his journey at time 0.

It can be that other travellers are arriving to the planet where Jack is currently located. In this case, Jack has to wait for exactly 1 second before he can use the stargate. That is, if at time t another traveller arrives to the planet, Jack can only pass through the stargate at time t + 1, unless there are more travellers arriving at time t + 1 to the same planet.

Knowing the information about travel times between the planets, and the times when Jack would not be able to use the stargate on particular planets, determine the minimum time in which he can get to the planet with index n.


Roma found a new character in the game "World of Darkraft - 2". In this game the character fights monsters, finds the more and more advanced stuff that lets him fight stronger monsters.

The character can equip himself with k distinct types of items. Power of each item depends on its level (positive integer number). Initially the character has one 1-level item of each of the k types.

After the victory over the monster the character finds exactly one new randomly generated item. The generation process looks as follows. Firstly the type of the item is defined; each of the k types has the same probability. Then the level of the new item is defined. Let's assume that the level of player's item of the chosen type is equal to t at the moment. Level of the new item will be chosen uniformly among integers from segment [1; t + 1].

From the new item and the current player's item of the same type Roma chooses the best one (i.e. the one with greater level) and equips it (if both of them has the same level Roma choses any). The remaining item is sold for coins. Roma sells an item of level x of any type for x coins.

Help Roma determine the expected number of earned coins after the victory over n monsters.


Create custum sshd config file
cp /etc/ssh/sshd_config /etc/sshsshd_config_custom
Changed options in sshd_config_custom file
With this configuration file, only theusername could connect ssh deamon on port 4321.
Run sshd deamon
/usr/lib/ssh/sshd -f /data01/tcell/sshd_config_config
Change shell to /usr/bin/false in passwd file
If you do not have false shell create read only shell.
add two lines below
bash -r -c read
chmod a+x /usr/bin/dummyshell
From remote computer:
So user had to use -N option for ssh command
Does not execute a remote command. This is useful if you
just want to forward ports (protocol version 2 only).
For port forwarding from another system
ssh -N theusername@ipadressoftheserver -L 9999:127.0.0.1:9999 -p 4321
-p for changed ssh port in sshd_config_custom
Now user could not give any command on the server but could port forward 9999 from the server to computer.


Dates are not always precisely known, but the Art Institute strives to present this information as consistently and legibly as possible. Dates may be represented as a range that spans decades, centuries, dynasties, or periods and may include qualifiers such as c. (circa) or BCE.
The International Image Interoperability Framework (IIIF) represents a set of open standards that enables rich access to digital media from libraries, archives, museums, and other cultural institutions around the world.
Antiquarian Society of the Art Institute of Chicago, American and European Decorative Arts: A Pictorial Review of Notable Objects in its Collections and Notes on the Society’s Aims and History (Chicago, 1951), no. 60 (ill.).
Augusta S. Tavender, “Mediaeval English Alabasters in American Museums,” Speculum 30, 1 (1955), pp. 64-71, here 70, no. 57.
Dorothy Gillerman, ed., Gothic Sculpture in America, vol. 2: The Museums of the Midwest (Turnhout, Belgium, 2001), pp. 3-4, no. 2, ill.
Francis Cheetham, Alabaster Images of Medieval England (Rochester, N.Y., 2003), p. 104, no. 6.
Chicago, The Art Institute of Chicago, The First One Hundred Years, April 29 - June 19, 1977, cat. 321.
Object information is a work in progress and may be updated as new research findings emerge. To help improve this record, please email . Information about image downloads and licensing is available here.


It depends on the verb's ending how you form the imperatives but there are always two* options: an informal ("tu") and a formal ("Lei"). In most cases it is safe to stick to the indicative forms, like in "veni qui" vs. "venga qui", with the formal version of course being third person.
However, for verbs ending in -are, this is somehow reverted. Thus, "scusi" is the formal and "scusa" the informal imperative of "scusare" and you use the third person for second and vice versa.
(* Plus the "let us" type of first person plural imperative which is easily formed by using the corresponding indicative form.)


/**
* @file settings.c
*
* contains all the functions for io to the settings file, including default
* values that can be written to disk if no file is present.
 **/

#include <stdio.h>
#include <string.h>	// FOR str_cmp()
#include <fcntl.h>	// for F_OK
#include <unistd.h>	// for access()

#include <json-c/json.h>
#include <rc/math/filter.h>

#include <settings.h>
#include <rc_pilot_defs.h>

// json object respresentation of the whole settings file
static json_object* jobj;

// primary settings struct declared as extern in header is defined ONCE here
settings_t settings;

// if anything goes wrong set this flag back to 0
static int was_load_successful = 0;

////////////////////////////////////////////////////////////////////////////////
/// MACROS FOR PARSING JSON TYPES
////////////////////////////////////////////////////////////////////////////////

// macro for reading a boolean
#define PARSE_BOOL(name) \
if(json_object_object_get_ex(jobj, #name, &tmp)==0){\
	fprintf(stderr,"ERROR parsing settings file, can't find " #name "\n");\
	return -1;\
}\
if(json_object_is_type(tmp, json_type_boolean)==0){\
	fprintf(stderr,"ERROR parsing settings file, " #name " should be a boolean\n");\
	return -1;\
}\
settings.name = json_object_get_boolean(tmp);\

// macro for reading an integer
#define PARSE_INT(name) \
if(json_object_object_get_ex(jobj, #name, &tmp)==0){ \
	fprintf(stderr,"ERROR parsing settings file, can't find " #name "\n");\
	return -1;\
}\
if(json_object_is_type(tmp, json_type_int)==0){\
	fprintf(stderr,"ERROR parsing settings file, " #name " should be an int\n");\
	return -1;\
}\
settings.name = json_object_get_int(tmp);\

// macro for reading a bound integer
#define PARSE_INT_MIN_MAX(name,min,max) \
if(json_object_object_get_ex(jobj, #name, &tmp)==0){ \
	fprintf(stderr,"ERROR parsing settings file, can't find " #name "\n");\
	return -1;\
}\
if(json_object_is_type(tmp, json_type_int)==0){\
	fprintf(stderr,"ERROR parsing settings file, " #name " should be an int\n");\
	return -1;\
}\
settings.name = json_object_get_int(tmp);\
if(settings.name<min || settings.name>max){\
	fprintf(stderr,"ERROR parsing settings file, " #name " should be between min and max\n");\
	return -1;\
}\

// macro for reading a polarity which should be +-1
#define PARSE_POLARITY(name) \
if(json_object_object_get_ex(jobj, #name, &tmp)==0){ \
	fprintf(stderr,"ERROR parsing settings file, can't find " #name "\n");\
	return -1;\
}\
if(json_object_is_type(tmp, json_type_int)==0){\
	fprintf(stderr,"ERROR parsing settings file, " #name " should be an int\n");\
	return -1;\
}\
settings.name = json_object_get_int(tmp);\
if(settings.name!=-1 && settings.name!=1){\
	fprintf(stderr,"ERROR parsing settings file, " #name " should be -1 or 1\n");\
	return -1;\
}\

// macro for reading a floating point number
#define PARSE_DOUBLE_MIN_MAX(name,min,max)\
if(json_object_object_get_ex(jobj, #name, &tmp)==0){\
	fprintf(stderr,"ERROR can't find " #name " in settings file\n");\
	return -1;\
}\
if(json_object_is_type(tmp, json_type_double)==0){\
	fprintf(stderr,"ERROR " #name " should be a double\n");\
	return -1;\
}\
settings.name = json_object_get_double(tmp);\
if(settings.name<min || settings.name>max){\
	fprintf(stderr,"ERROR " #name " should be between min and max\n");\
	return -1;\
}\

// macro for reading a string
#define PARSE_STRING(name) \
if(json_object_object_get_ex(jobj, #name, &tmp)==0){ \
	fprintf(stderr,"ERROR parsing settings file, can't find " #name "\n");\
	return -1;\
}\
if(json_object_is_type(tmp, json_type_string)==0){\
	fprintf(stderr,"ERROR parsing settings file, " #name " should be a string\n");\
	return -1;\
}\
strcpy(settings.name, json_object_get_string(tmp));

// macro for reading feedback controller
#define PARSE_CONTROLLER(name) \
if(json_object_object_get_ex(jobj, #name, &tmp)==0){\
	fprintf(stderr,"ERROR: can't find " #name " in settings file\n");\
	return -1;\
}\
if(__parse_controller(tmp, &settings.name)){\
	fprintf(stderr,"ERROR: could not parse " #name "\n");\
	return -1;\
}\

////////////////////////////////////////////////////////////////////////////////
/// functions for parsing enums
////////////////////////////////////////////////////////////////////////////////

/**
 * @brief      pulls rotor layout out of json object into settings struct
 *
 * @return     0 on success, -1 on failure
 */
static int __parse_layout(void)
{
	struct json_object *tmp = NULL;
	char* tmp_str = NULL;
	if(json_object_object_get_ex(jobj, "layout", &tmp)==0){
		fprintf(stderr,"ERROR: can't find layout in settings file\n");
		return -1;
	}
	if(json_object_is_type(tmp, json_type_string)==0){
		fprintf(stderr,"ERROR: layout should be a string\n");
		return -1;
	}
	tmp_str = (char*)json_object_get_string(tmp);
	if(strcmp(tmp_str, "LAYOUT_6DOF_ROTORBITS")==0){
		settings.num_rotors = 6;
		settings.layout = LAYOUT_6DOF_ROTORBITS;
	}
	else if(strcmp(tmp_str, "LAYOUT_4X")==0){
		settings.num_rotors = 4;
		settings.layout = LAYOUT_4X;
	}
	else if(strcmp(tmp_str, "LAYOUT_4PLUS")==0){
		settings.num_rotors = 4;
		settings.layout = LAYOUT_4PLUS;
	}
	else if(strcmp(tmp_str, "LAYOUT_6X")==0){
		settings.num_rotors = 6;
		settings.layout = LAYOUT_6X;
	}
	else if(strcmp(tmp_str, "LAYOUT_8X")==0){
		settings.num_rotors = 8;
		settings.layout = LAYOUT_8X;
	}
	else{
		fprintf(stderr,"ERROR: invalid layout string\n");
		return -1;
	}
	return 0;
}

static int __parse_thrust_map(void)
{
	struct json_object *tmp = NULL;
	char* tmp_str = NULL;
	if(json_object_object_get_ex(jobj, "thrust_map", &tmp)==0){
		fprintf(stderr,"ERROR: can't find thrust_map in settings file\n");
		return -1;
	}
	if(json_object_is_type(tmp, json_type_string)==0){
		fprintf(stderr,"ERROR: thrust map should be a string\n");
		return -1;
	}
	tmp_str = (char*)json_object_get_string(tmp);
	if(strcmp(tmp_str, "LINEAR_MAP")==0){
		settings.thrust_map = LINEAR_MAP;
	}
	else if(strcmp(tmp_str, "MN1806_1400KV_4S")==0){
		settings.thrust_map = MN1806_1400KV_4S;
	}
	else if(strcmp(tmp_str, "TEAM2_PROP")==0){
		settings.thrust_map = TEAM2_PROP;
	}
	else if(strcmp(tmp_str, "F20_2300KV_2S")==0){
		settings.thrust_map = F20_2300KV_2S;
	}
	else if(strcmp(tmp_str, "RX2206_4S")==0){
		settings.thrust_map = RX2206_4S;
	}
	else{
		fprintf(stderr,"ERROR: invalid thrust_map string\n");
		return -1;
	}
	return 0;
}

/**
 * @brief      parses a json_object and fills in the flight mode.
 *
 * @param      jobj  The jobj to parse
 * @param      mode  pointer to write mode out to
 *
 * @return     returns 0 on success or -1 on failure
 */
static int __parse_flight_mode(json_object* jobj_str, flight_mode_t* mode)
{
	char* tmp_str = NULL;
	struct json_object *tmp = NULL;
	if(json_object_is_type(jobj_str, json_type_string)==0){
		fprintf(stderr,"ERROR: flight_mode should be a string\n");
		return -1;
	}
	tmp_str = (char*)json_object_get_string(jobj_str);
	if(strcmp(tmp_str, "TEST_BENCH_4DOF")==0){
		*mode = TEST_BENCH_4DOF;
	}
	else if(strcmp(tmp_str, "TEST_BENCH_6DOF")==0){
		*mode = TEST_BENCH_6DOF;
	}
	else if(strcmp(tmp_str, "DIRECT_THROTTLE_4DOF")==0){
		*mode = DIRECT_THROTTLE_4DOF;
	}
	else if(strcmp(tmp_str, "DIRECT_THROTTLE_6DOF")==0){
		*mode = DIRECT_THROTTLE_6DOF;
	}
	else if(strcmp(tmp_str, "ALT_HOLD_4DOF")==0){
		*mode = ALT_HOLD_4DOF;
	}
	else if(strcmp(tmp_str, "ALT_HOLD_6DOF")==0){
		*mode = ALT_HOLD_6DOF;
	}
	else if(strcmp(tmp_str, "VELOCITY_CONTROL_4DOF")==0){
		*mode = VELOCITY_CONTROL_4DOF;
	}
	else if(strcmp(tmp_str, "VELOCITY_CONTROL_6DOF")==0){
		*mode = VELOCITY_CONTROL_6DOF;
	}
	else if(strcmp(tmp_str, "POSITION_CONTROL_4DOF")==0){
		*mode = POSITION_CONTROL_4DOF;
	}
	else if(strcmp(tmp_str, "POSITION_CONTROL_6DOF")==0){
		*mode = POSITION_CONTROL_6DOF;
	}
	//B: define autonomous
	else if(strcmp(tmp_str, "AUTONOMOUS")==0){
		*mode = AUTONOMOUS;
	}
	else if(strcmp(tmp_str, "SENSEDAUTONOMOUS")==0){
		*mode = SENSEDAUTONOMOUS;
	}
	else{
		fprintf(stderr,"ERROR: invalid flight mode\n");
		return -1;
	}
	return 0;
}

static int __parse_kill_mode(void)
{
	struct json_object *tmp = NULL;
	char* tmp_str = NULL;
	if(json_object_object_get_ex(jobj, "dsm_kill_mode", &tmp)==0){
		fprintf(stderr,"ERROR: can't find dsm_kill_mode in settings file\n");
		return -1;
	}
	if(json_object_is_type(tmp, json_type_string)==0){
		fprintf(stderr,"ERROR: dsm_kill_mode should be a string\n");
		return -1;
	}
	tmp_str = (char*)json_object_get_string(tmp);
	if(strcmp(tmp_str, "DSM_KILL_DEDICATED_SWITCH")==0){
		settings.dsm_kill_mode = DSM_KILL_DEDICATED_SWITCH;
	}
	else if(strcmp(tmp_str, "DSM_KILL_NEGATIVE_THROTTLE")==0){
		settings.dsm_kill_mode = DSM_KILL_NEGATIVE_THROTTLE;
	}
	else{
		fprintf(stderr,"ERROR: invalid dsm_kill_mode string\n");
		return -1;
	}
	return 0;
}

/**
 * @ brief     parses a json_object and sets up a new controller
 *
 * @param      jobj         The jobj to parse
 * @param      filter       pointer to write the new filter to
 *
 * @return     0 on success, -1 on failure
 */
static int __parse_controller(json_object* jobj_ctl, rc_filter_t* filter)
{
	struct json_object *array = NULL;	// to hold num & den arrays
	struct json_object *tmp = NULL;		// temp object
	char* tmp_str = NULL;
	double tmp_flt, tmp_kp, tmp_ki, tmp_kd;
	int i, num_len, den_len;
	rc_vector_t num_vec = rc_vector_empty(); //RC_VECTOR_INITIALIZER;
	rc_vector_t den_vec = rc_vector_empty(); //RC_VECTOR_INITIALIZER;

	// destroy old memory in case the order changes
	rc_filter_free(filter);

	// pull out gain
	if(json_object_object_get_ex(jobj_ctl, "gain", &tmp)==0){
		fprintf(stderr,"ERROR: can't find controller gain in settings file\n");
		return -1;
	}
	if(json_object_is_type(tmp, json_type_double)==0){
		fprintf(stderr,"ERROR: controller gain should be a double\n");
		return -1;
	}
	tmp_flt = json_object_get_double(tmp);

	// check if PID gains or transfer function coefficients
	if(json_object_object_get_ex(jobj_ctl, "TF_or_PID", &tmp)==0){
		fprintf(stderr,"ERROR: can't find TF_or_PID in settings file\n");
		return -1;
	}
	if(json_object_is_type(tmp, json_type_string)==0){
		fprintf(stderr,"ERROR: TF_or_PID should be a string\n");
		return -1;
	}
	tmp_str = (char*)json_object_get_string(tmp);

	if(strcmp(tmp_str, "TF")==0){

		// pull out numerator
		if(json_object_object_get_ex(jobj_ctl, "numerator", &array)==0){
			fprintf(stderr,"ERROR: can't find controller numerator in settings file\n");
			return -1;
		}
		if(json_object_is_type(array, json_type_array)==0){
			fprintf(stderr,"ERROR: controller numerator should be an array\n");
			return -1;
		}
		num_len = json_object_array_length(array);
		if(num_len<1){
			fprintf(stderr,"ERROR, numerator must have at least 1 entry\n");
			return -1;
		}
		rc_vector_alloc(&num_vec,num_len);
		for(i=0;i<num_len;i++){
			tmp = json_object_array_get_idx(array,i);
			if(json_object_is_type(tmp, json_type_double)==0){
				fprintf(stderr,"ERROR: numerator array entries should be a doubles\n");
				return -1;
			}
			tmp_flt = json_object_get_double(tmp);
			num_vec.d[i]=tmp_flt;
		}

		// pull out denominator
		if(json_object_object_get_ex(jobj_ctl, "denominator", &array)==0){
			fprintf(stderr,"ERROR: can't find controller denominator in settings file\n");
			return -1;
		}
		if(json_object_is_type(array, json_type_array)==0){
			fprintf(stderr,"ERROR: controller denominator should be an array\n");
			return -1;
		}
		den_len = json_object_array_length(array);
		if(den_len<1){
			fprintf(stderr,"ERROR, denominator must have at least 1 entry\n");
			return -1;
		}
		rc_vector_alloc(&den_vec,den_len);
		for(i=0;i<den_len;i++){
			tmp = json_object_array_get_idx(array,i);
			if(json_object_is_type(tmp, json_type_double)==0){
				fprintf(stderr,"ERROR: denominator array entries should be a doubles\n");
				return -1;
			}
			tmp_flt = json_object_get_double(tmp);
			den_vec.d[i]=tmp_flt;
		}

		// check for improper TF
		if(num_len>den_len){
			fprintf(stderr,"ERROR: improper transfer function\n");
			rc_vector_free(&num_vec);
			rc_vector_free(&den_vec);
			return -1;
		}

		// check CT continuous time or DT discrete time
		if(json_object_object_get_ex(jobj_ctl, "CT_or_DT", &tmp)==0){
			fprintf(stderr,"ERROR: can't find CT_or_DT in settings file\n");
			return -1;
		}
		if(json_object_is_type(tmp, json_type_string)==0){
			fprintf(stderr,"ERROR: CT_or_DT should be a string\n");
			return -1;
		}
		tmp_str = (char*)json_object_get_string(tmp);

		// if CT, use tustin's approx to get to DT
		if(strcmp(tmp_str, "CT")==0){
			// get the crossover frequency
			if(json_object_object_get_ex(jobj_ctl, "crossover_freq_rad_per_sec", &tmp)==0){
				fprintf(stderr,"ERROR: can't find crossover frequency in settings file\n");
				return -1;
			}
			if(json_object_is_type(tmp, json_type_double)==0){
				fprintf(stderr,"ERROR: crossover frequency should be a double\n");
				return -1;
			}
			tmp_flt = json_object_get_double(tmp);
			if(rc_filter_c2d_tustin(filter, DT, num_vec, den_vec, tmp_flt)){
				fprintf(stderr,"ERROR: failed to c2dtustin while parsing json\n");
				return -1;
			}
		}

		// if DT, much easier, just construct filter
		else if(strcmp(tmp_str, "DT")==0){
			if(rc_filter_alloc(filter,num_vec, den_vec, DT)){
				fprintf(stderr,"ERROR: failed to alloc filter in __parse_controller()");
				return -1;
			}
		}

		// wrong value for CT_or_DT
		else{
			fprintf(stderr,"ERROR: CT_or_DT must be 'CT' or 'DT'\n");
			printf("instead got :%s\n", tmp_str);
			return -1;
		}
	}

	else if(strcmp(tmp_str, "PID")==0){
		// pull out gains
		if(json_object_object_get_ex(jobj_ctl, "kp", &tmp)==0){
			fprintf(stderr,"ERROR: can't find kp in settings file\n");
			return -1;
		}
		tmp_kp = json_object_get_double(tmp);
		if(json_object_object_get_ex(jobj_ctl, "ki", &tmp)==0){
			fprintf(stderr,"ERROR: can't find ki in settings file\n");
			return -1;
		}
		tmp_ki = json_object_get_double(tmp);
		if(json_object_object_get_ex(jobj_ctl, "kd", &tmp)==0){
			fprintf(stderr,"ERROR: can't find kd in settings file\n");
			return -1;
		}
		tmp_kd = json_object_get_double(tmp);
		// get the crossover frequency
		if(json_object_object_get_ex(jobj_ctl, "crossover_freq_rad_per_sec", &tmp)==0){
			fprintf(stderr,"ERROR: can't find crossover frequency in settings file\n");
			return -1;
		}
		if(json_object_is_type(tmp, json_type_double)==0){
			fprintf(stderr,"ERROR: crossover frequency should be a double\n");
			return -1;
		}
		tmp_flt = json_object_get_double(tmp);
		if(rc_filter_pid(filter,tmp_kp,tmp_ki,tmp_kd,1.0/tmp_flt, DT)){
				fprintf(stderr,"ERROR: failed to alloc pid filter in __parse_controller()");
				return -1;
			}
	}

	#ifdef DEBUG
	rc_filter_print(*filter);
	#endif

	rc_vector_free(&num_vec);
	rc_vector_free(&den_vec);

	return 0;
}

int settings_load_from_file(char* path)
{
	struct json_object *tmp = NULL; // temp object
	char* tmp_str = NULL; // temp string poitner
	double tmp_flt;
	int tmp_int;

	was_load_successful = 0;

	#ifdef DEBUG
	fprintf(stderr,"beginning of load_settings_from_file\n");
	fprintf(stderr,"about to check access of fly settings file\n");
	#endif

	// read in file contents
	if(access(path, F_OK)!=0){
		fprintf(stderr,"ERROR: settings file missing\n");
		return -1;
	}
	else{
		#ifdef DEBUG
		printf("about to read json from file\n");
		#endif
		jobj = json_object_from_file(path);
		if(jobj==NULL){
			fprintf(stderr,"ERROR, failed to read settings from disk\n");
			return -1;
		}
	}

	#ifdef DEBUG
	settings_print();
	#endif

	// START PARSING

	PARSE_STRING(name)
	#ifdef DEBUG
	fprintf(stderr,"name: %s\n",settings.name);
	#endif
	PARSE_BOOL(warnings_en)
	#ifdef DEBUG
	fprintf(stderr,"warnings: %d\n",settings.warnings_en);
	#endif

	// PHYSICAL PARAMETERS
	// layout populates num_rotors, layout, and dof
	if(__parse_layout()==-1) return -1; // parse_layout also fill in num_rotors and dof
	#ifdef DEBUG
	fprintf(stderr,"layout:%d,%d\n",settings.layout,settings.num_rotors);
	#endif
	if(__parse_thrust_map()==-1) return -1;
	#ifdef DEBUG
	fprintf(stderr,"thrust_map: %d\n",settings.thrust_map);
	#endif
	PARSE_DOUBLE_MIN_MAX(v_nominal,7.0,18.0)
	#ifdef DEBUG
	fprintf(stderr,"v_nominal: %f\n",settings.v_nominal);
	#endif
	PARSE_BOOL(enable_magnetometer)

	// EMERGENCY LANDING SETTINGS
    PARSE_BOOL(enable_mocap_dropout_emergency_land)
    PARSE_DOUBLE_MIN_MAX(mocap_dropout_timeout_ms, 0, 10000)
    PARSE_DOUBLE_MIN_MAX(dropout_z_throttle, -1, 0)
	#ifdef DEBUG
    fprintf(stderr, "enable_mocap_dropout_emergency_land: %d\n", settings.enable_mocap_dropout_emergency_land);
    fprintf(stderr, "mocap_dropout_timeout_ms: %lf\n", settings.mocap_dropout_timeout_ms);
	#endif

	// FLIGHT MODES
	PARSE_INT_MIN_MAX(num_dsm_modes,1,3)
	if(json_object_object_get_ex(jobj, "flight_mode_1", &tmp)==0){
		fprintf(stderr,"ERROR: can't find flight_mode_1 in settings file\n");
		return -1;
	}
	if(__parse_flight_mode(tmp, &settings.flight_mode_1)) return -1;
	#ifdef DEBUG
	fprintf(stderr,"flight_mode_1: %d\n",settings.flight_mode_1);
	#endif
	if(json_object_object_get_ex(jobj, "flight_mode_2", &tmp)==0){
		fprintf(stderr,"ERROR: can't find flight_mode_2 in settings file\n");
		return -1;
	}
	if(__parse_flight_mode(tmp, &settings.flight_mode_2)) return -1;
	#ifdef DEBUG
	fprintf(stderr,"flight_mode_2: %d\n",settings.flight_mode_2);
	#endif
	if(json_object_object_get_ex(jobj, "flight_mode_3", &tmp)==0){
		fprintf(stderr,"ERROR: can't find flight_mode_3 in settings file\n");
		return -1;
	}
	if(__parse_flight_mode(tmp, &settings.flight_mode_3)) return -1;
	#ifdef DEBUG
	fprintf(stderr,"flight_mode_3: %d\n",settings.flight_mode_3);
	#endif

	// DSM RADIO CONFIG
	PARSE_INT_MIN_MAX(dsm_thr_ch,1,9)
	PARSE_POLARITY(dsm_thr_pol)
	PARSE_INT_MIN_MAX(dsm_roll_ch,1,9)
	PARSE_POLARITY(dsm_roll_pol)
	PARSE_INT_MIN_MAX(dsm_pitch_ch,1,9)
	PARSE_POLARITY(dsm_pitch_pol)
	PARSE_INT_MIN_MAX(dsm_yaw_ch,1,9)
	PARSE_POLARITY(dsm_yaw_pol)
	PARSE_INT_MIN_MAX(dsm_mode_ch,1,9)
	PARSE_POLARITY(dsm_mode_pol)
	if(__parse_kill_mode()==-1) return -1;
	#ifdef DEBUG
	fprintf(stderr,"kill_mode: %d\n",settings.dsm_kill_mode);
	#endif
	PARSE_INT_MIN_MAX(dsm_kill_ch,1,9)
	PARSE_POLARITY(dsm_kill_pol)

	// PRINTF OPTIONS
	PARSE_BOOL(printf_arm)
	PARSE_BOOL(printf_altitude)
	PARSE_BOOL(printf_rpy)
	PARSE_BOOL(printf_sticks)
	PARSE_BOOL(printf_setpoint)
	PARSE_BOOL(printf_u)
	PARSE_BOOL(printf_motors)
	PARSE_BOOL(printf_mode)
	PARSE_BOOL(printf_xbee)
	PARSE_BOOL(printf_rev)
	PARSE_BOOL(printf_counter)
	PARSE_BOOL(printf_feedforward)

	// LOGGING
	PARSE_BOOL(enable_logging)
	PARSE_BOOL(log_sensors)
	PARSE_BOOL(log_state)
	PARSE_BOOL(log_xbee)
	PARSE_BOOL(log_setpoint)
	PARSE_BOOL(log_control_u)
	PARSE_BOOL(log_motor_signals)
	PARSE_BOOL(log_flight_mode)

	// MAVLINK
	PARSE_STRING(dest_ip)
	PARSE_INT(my_sys_id)
	PARSE_INT(mav_port)

	// XBEE SERIAL PORT
    PARSE_STRING(xbee_serial_port)

	// FEEDBACK CONTROLLERS
	PARSE_CONTROLLER(roll_controller)
	PARSE_CONTROLLER(pitch_controller)
	PARSE_CONTROLLER(yaw_controller)
	PARSE_CONTROLLER(altitude_controller)
	PARSE_CONTROLLER(horiz_vel_ctrl_4dof)
	PARSE_CONTROLLER(horiz_vel_ctrl_6dof)
	PARSE_CONTROLLER(horiz_pos_ctrl_4dof)
	PARSE_CONTROLLER(horiz_pos_ctrl_6dof)
	PARSE_DOUBLE_MIN_MAX(max_XY_velocity, .1, 10)
	PARSE_DOUBLE_MIN_MAX(max_Z_velocity, .1, 10)

	json_object_put(jobj);	// free memory
	was_load_successful = 1;
	return 0;
}

int settings_print(void)
{
	if(jobj == NULL){
		fprintf(stderr,"ERROR: NULL object passed to settings_print\n");
		return -1;
	}
	printf("settings:\n\n");
	printf("%s", json_object_to_json_string_ext(jobj, \
			JSON_C_TO_STRING_SPACED | JSON_C_TO_STRING_PRETTY));
	printf("\n");
	return 0;
}


I am trying to convert a string to ECPoint using Koblitz's method.
The method stated that:
1. Say we have to send a character 'b'
2. 'b' is first encoded as number 11
3. Choose an auxiliary base parameter, for example
4. For each number
x=mk+1 and try to solve for
5. If you can't do it, then try
x=mk+2 and then
x=mk+3 until you can solve for
6. Now the point
(x,y) is encrypted and decrypted as a message.
I can't understand steps number 4 to 5. Can anyone help explain it to me?
I've figured out how to solve for
y. Use shanks-tonelli algorithm to do it.


You are given a matrix consisting of digits zero and one, its size is n × m. You are allowed to rearrange its rows. What is the maximum area of the submatrix that only consists of ones and can be obtained in the given problem by the described operations?

Let's assume that the rows of matrix a are numbered from 1 to n from top to bottom and the columns are numbered from 1 to m from left to right. A matrix cell on the intersection of the i-th row and the j-th column can be represented as (i, j). Formally, a submatrix of matrix a is a group of four integers d, u, l, r (1 ≤ d ≤ u ≤ n; 1 ≤ l ≤ r ≤ m). We will assume that the submatrix contains cells (i, j) (d ≤ i ≤ u; l ≤ j ≤ r). The area of the submatrix is the number of cells it contains.


Polycarp's phone book contains $$$n$$$ phone numbers, each of them is described by $$$s_i$$$ — the number itself and $$$m_i$$$ — the number of times Polycarp dials it in daily.

Polycarp has just bought a brand new phone with an amazing speed dial feature! More precisely, $$$k$$$ buttons on it can have a number assigned to it (not necessary from the phone book). To enter some number Polycarp can press one of these $$$k$$$ buttons and then finish the number using usual digit buttons (entering a number with only digit buttons is also possible).

Speed dial button can only be used when no digits are entered. No button can have its number reassigned.

What is the minimal total number of digit number presses Polycarp can achieve after he assigns numbers to speed dial buttons and enters each of the numbers from his phone book the given number of times in an optimal way?


This request is a minor thing.
But I have a weekly backup routine that is pretty extensive.
It would be very convenient if I could set, or have Helium remember the location I last backed up to.
In my case E:\Backups\Helium\
Thanks for your feedback. We plan to implement this for our next release.
This feature will be available in our next release.


Fill paragraphs of uniform indentation within the region.
This command divides the region into "paragraphs",
treating every change in indentation level or prefix as a paragraph boundary,
then fills each paragraph using its indentation level as the fill prefix.
There is one special case where a change in indentation does not start
a new paragraph. This is for text of this form:
foo> This line with extra indentation starts
foo> a paragraph that continues on more lines.
These lines are filled together.
When calling from a program, pass the range to fill
as the first two arguments.
Optional third and fourth arguments JUSTIFY and CITATION-REGEXP:
JUSTIFY to justify paragraphs (prefix arg).
When filling a mail message, pass a regexp for CITATION-REGEXP
which will match the prefix of a line which is a citation marker
plus whitespace, but no other kind of prefix. Also, if CITATION-REGEXP is non-nil, don't fill header lines.


I'm going to use your company a conductivity measurement scheme of measuring the conductivity, the link http://www.analog.com/cn/design-center/reference-designs/hardware-reference-design/circuits-from-the-lab/CN0349.html#rd-overview
I'm going to ask the following questions
1: AD5934 using IIC communication plan, but I don't know how much is this device address,
2: ADG715 use method and the internal register address
3: can you send a the two chips code routines, use the keil development.


Tanechka is shopping in the toy shop. There are exactly $$$n$$$ toys in the shop for sale, the cost of the $$$i$$$-th toy is $$$i$$$ burles. She wants to choose two toys in such a way that their total cost is $$$k$$$ burles. How many ways to do that does she have?

Each toy appears in the shop exactly once. Pairs $$$(a, b)$$$ and $$$(b, a)$$$ are considered equal. Pairs $$$(a, b)$$$, where $$$a=b$$$, are not allowed.


Polycarp has decided to do a problemsolving marathon. He wants to solve $$$s$$$ problems in $$$n$$$ days. Let $$$a_i$$$ be the number of problems he solves during the $$$i$$$-th day. He wants to find a distribution of problems into days such that:

- $$$a_i$$$ is an integer value for all $$$i$$$ from $$$1$$$ to $$$n$$$;
- $$$a_i \ge 1$$$ for all $$$i$$$ from $$$1$$$ to $$$n$$$;
- $$$a_{i + 1} \ge a_i$$$ for all $$$i$$$ from $$$1$$$ to $$$n-1$$$;
- $$$a_{i + 1} \le 2 \cdot a_i$$$ for all $$$i$$$ from $$$1$$$ to $$$n-1$$$;
- $$$a_n$$$ is maximized.

Note that $$$a_1$$$ can be arbitrarily large.

What is the largest value of $$$a_n$$$ Polycarp can obtain?


You are given a tree (connected, undirected, acyclic graph) with $$$n$$$ vertices. Two edges are adjacent if they share exactly one endpoint. In one move you can remove an arbitrary edge, if that edge is adjacent to an even number of remaining edges.

Remove all of the edges, or determine that it is impossible. If there are multiple solutions, print any.


I'm using my phone as the "emulator", e.g. running my app from Eclipse to the phone. I'm trying to access the SD card from within the app (create a folder, save a file), but the error I'm getting is almost as if the SD card isn't inserted (write permissions are granted inside manifest, too). What is wrong here?
Are you sure you don't have the SD card mounted through the USB connection? If it is mounted Android can't access it. Unmount it by swiping the top, then click on Unmount USB or similar verbiage.


I'm getting ready to order the VSL solo strings+ extended in a bit since they're currently at a 30% discount for my son, the college student. I kinda also know how those will fit in with my vsl Chamber II for slightly larger sounds.
I can only buy so much of this stuff at a time. I like the Lass demos, but need to hear more of it.
The here's a small demo I wrote for a pitch recently, I've used the the bonus violin which is not a first chair but a proof of concept violin that comes with at least full LASS. It's much drier that the first chairs and this mic position doesn't exist for the other strings: http://www.juhanalehtiniemi.com/upload/Bonus_violin.mp3 (I might remove this mp3 later, so this link won't work forever)


In my previous post on ZFS performance testing I ran through various tests on a particular test system that I had running at the time. That system has come and gone to a better place in the proverbial cloud. This go round, I have a similar server with a different ZFS configuration. Lets dive in to the system and tests.
- Dell PowerEdge 2950
- Xeon Quad Core 1.6GHz
- 8GB RAM
- PERC5 – Total of 5 logical drives with read ahead and write back enabled.
- 2x160GB SATAII 7200 RPM – Hardware RAID1
- 4x2TB SATAII 7200 RPM – Four (4) Hardware RAID0’s (Controller does not support JBOD mode)
- FreeNAS 0.7.2 Sabanda (revision 5543)-ZFS v13
Tests performed from the CLI using good ole’ GNU dd. The following command was used to first write, and then read back:
dd if=/dev/zero of=foo bs=2M count=10000 ; dd if=foo of=/dev/null bs=2M
Results are listed as configuration, write, then read.
- Reference run: 2x160GB 7200 RPM SATAII RAID1
- 85.6 MB/s
- 92.5 MB/s
- ZFS stripe pool utilizing two (2) SATA disks
- 221 MB/s
- 206 MB/s
- ZFS stripe pool utilizing two (2) SATA disks with dataset compression set to “On”
- 631 MB/s
- 1074 MB/s
- ZFS mirror pool utilizing two (2) SATA disks
- 116 MB/s
- 145 MB/s
- ZFS mirror pool utilizing two (2) SATA disks with dataset compression set to “On”
- 631 MB/s
- 1069 MB/s
Notes, Thoughts & Mentionables:
There are a few things worth mentioning about this system:
On the hard disk side of things, the hardware RAID1 was made up of Western Digital Blue disks while the other four (4) disks are Western Digital 2TB Green drives. If you have done your home work, you already know that the WD EARS disks use 4K sectors and masks this as 512byte sectors so that OS’ don’t complain. If disks are not properly formatted and/or sector aligned with this in mind, performance takes a tremendous hit. The reason for such inexpensive disks for this build is simple: This server is configured as a backup destination and as such, size is more important than the reliability that a SAS solution would provide.
Compressions test results were, to say the least, quite interesting. It should be noted that the stripe and mirror pools performed quite similarly. Further testing of these results will be required, but it seems that the maximum score of 1074 MB/s was limited only by the CPU. During the read test all four cores of the quad core CPU were maxed. This becomes even more interesting when you compare the results of this two disk stripe pool with my previous findings on the six disk stripe pool running the same test. The earlier test rig scored much lower and it would appear to be the difference in CPUs that made such a strong difference.


||Offices To Go
- Four shelves (1 fixed and 3 adjustable shelves)
- Door front features a recessed angled full pull
- Bottom pan can be used as a shelf
- Leveling glides included
Lock is included as standard
- Optional additional shelf is available
All company names, product names logos included here may be registered trademarks or service marks of their respective owners.


/*
 * Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "internal.h"

static void *memcpy(void *dst, const void *src, unsigned long len) {
  asm volatile(
    "rep movsb\n\t"
  : //out
    "+D"(dst),
    "+S"(src),
    "+c"(len)
  : //in
  : //clobber
    "cc", "memory"
  );
  return dst;
}

int gatekey_open(char *path, char *authkey) {
  struct gatekey_args args = {
    .op = GATEKEY_OP_OPEN,
    .path = path
  };
  memcpy(&args.authkey, authkey, 64);
  return gatekey_call(&args);
}

int gatekey_create(char *path, char *authkey_out) {
  struct gatekey_args args = {
    .op = GATEKEY_OP_CREATE,
    .path = path
  };
  int res = gatekey_call(&args);
  memcpy(authkey_out, &args.authkey, 64);
  return res;
}


/////////////////////////////////////////////////////////////////////////
// File:        wx/msw/taskbar.h
// Purpose:     Defines wxTaskBarIcon class for manipulating icons on the
//              Windows task bar.
// Author:      Julian Smart
// Modified by:
// Created:     24/3/98
// RCS-ID:      $Id: taskbar.h,v 1.9.2.1 2002/11/09 00:23:23 VS Exp $
// Copyright:   (c) Julian Smart
// Licence:     wxWindows licence
/////////////////////////////////////////////////////////////////////////

#ifndef _TASKBAR_H_
#define _TASKBAR_H_

#ifdef __GNUG__
#pragma interface "taskbar.h"
#endif

#include <wx/event.h>
#include <wx/list.h>
#include <wx/icon.h>

class WXDLLEXPORT wxTaskBarIcon: public wxEvtHandler {
    DECLARE_DYNAMIC_CLASS(wxTaskBarIcon)
public:
    wxTaskBarIcon(void);
    virtual ~wxTaskBarIcon(void);

// Accessors
    inline WXHWND GetHWND() const { return m_hWnd; }
    inline bool IsOK() const { return (m_hWnd != 0) ; }
    inline bool IsIconInstalled() const { return m_iconAdded; }

// Operations
    bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxEmptyString);
    bool RemoveIcon(void);
    bool PopupMenu(wxMenu *menu); //, int x, int y);

// Overridables
    virtual void OnMouseMove(wxEvent&);
    virtual void OnLButtonDown(wxEvent&);
    virtual void OnLButtonUp(wxEvent&);
    virtual void OnRButtonDown(wxEvent&);
    virtual void OnRButtonUp(wxEvent&);
    virtual void OnLButtonDClick(wxEvent&);
    virtual void OnRButtonDClick(wxEvent&);

// Implementation
    static wxTaskBarIcon* FindObjectForHWND(WXHWND hWnd);
    static void AddObject(wxTaskBarIcon* obj);
    static void RemoveObject(wxTaskBarIcon* obj);
    static bool RegisterWindowClass();
    static WXHWND CreateTaskBarWindow();
    long WindowProc( WXHWND hWnd, unsigned int msg, unsigned int wParam, long lParam );

// Data members
protected:
    WXHWND          m_hWnd;
    bool            m_iconAdded;
    static wxList   sm_taskBarIcons;
    static bool     sm_registeredClass;
    static unsigned int sm_taskbarMsg;

    // non-virtual default event handlers to forward events to the virtuals
    void _OnMouseMove(wxEvent&);
    void _OnLButtonDown(wxEvent&);
    void _OnLButtonUp(wxEvent&);
    void _OnRButtonDown(wxEvent&);
    void _OnRButtonUp(wxEvent&);
    void _OnLButtonDClick(wxEvent&);
    void _OnRButtonDClick(wxEvent&);

    DECLARE_EVENT_TABLE()
};

// ----------------------------------------------------------------------------
// wxTaskBarIcon events
// ----------------------------------------------------------------------------

class WXDLLEXPORT wxTaskBarIconEvent : public wxEvent
{
public:
    wxTaskBarIconEvent(wxEventType evtType, wxTaskBarIcon *tbIcon)
        : wxEvent(-1, evtType)
        {
            SetEventObject(tbIcon);
        }

    virtual wxEvent *Clone() const { return new wxTaskBarIconEvent(*this); }
};

BEGIN_DECLARE_EVENT_TYPES()
DECLARE_EVENT_TYPE( wxEVT_TASKBAR_MOVE, 1550 )
DECLARE_EVENT_TYPE( wxEVT_TASKBAR_LEFT_DOWN, 1551 )
DECLARE_EVENT_TYPE( wxEVT_TASKBAR_LEFT_UP, 1552 )
DECLARE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_DOWN, 1553 )
DECLARE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_UP, 1554 )
DECLARE_EVENT_TYPE( wxEVT_TASKBAR_LEFT_DCLICK, 1555 )
DECLARE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_DCLICK, 1556 )
END_DECLARE_EVENT_TYPES()

#define EVT_TASKBAR_MOVE(fn)         DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#define EVT_TASKBAR_LEFT_DOWN(fn)    DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_LEFT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#define EVT_TASKBAR_LEFT_UP(fn)      DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_LEFT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#define EVT_TASKBAR_RIGHT_DOWN(fn)   DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_RIGHT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#define EVT_TASKBAR_RIGHT_UP(fn)     DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_RIGHT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#define EVT_TASKBAR_LEFT_DCLICK(fn)  DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_LEFT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#define EVT_TASKBAR_RIGHT_DCLICK(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_RIGHT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),

#endif
    // _TASKBAR_H_


Feature #14540: Survey platform
Requirements for LimeSurvey
- Storage resources
- What should be backed up
- What should be monitored
- Assignee changed from sajolida to intrigeri
- QA Check set to Ready for QA
- Blueprint changed from https://tails.boum.org/blueprint/survey_platform to https://tails.boum.org/blueprint/survey_platform/#limesurvey-requirements
Oops, I should have used this ticket to track the progress on the requirements.
Answering here to #14768:
Be able to send emails to the outside world; though I might not send any as a start.
We have an email system but I don't know if it's configured well enough for random email servers out there to accept our email. We'll see.
Yes! As a start I bet that I will be the first target for these emails. So don't spend time on this and we'll see how it works.
Other than that, looks good to me.
BTW in the general section (off-topic, yes): why "non-commercial"? (This seems too vague and the way I understand it, LimeSurvey would not qualify.)
I don't think that's interesting to debate now, so I removed this itchy word from this page.


Each cell in this model is one of three states: burnable-green (0), burning-red (1) or burned-black (2). If a burnable cell has a burning neighbor, it will become burning in the next generation with a certain probability. Each burning cell burns for exactly 1 generation, and then changes to burned. Each cell can also be part of a firewall (state 3). Firewalls (blue) remain in a fixed state and can prevent fires from spreading.
The treecell submodel operates similarly to the cell used in the Conway’s Game of Life, computing the next state at each generation (in the “Next_Burning” codechip). The cell neighborhood is computed at the beginning of the simulation and stored as a property; it is referenced in the “Next_Burning” code to determine if a neighbor is burning.
The tabulator plug-in provides state data which is graphed.
Nova Online: Firespread (opens in new tab)
Running this model:
1. Click on the “Capture” button in the tool bar.
2. Click “Load” next to “Capture.”
3. Click “Exec” to run the model through multiple iterations. Click “Stop” to stop the graph.
4. To run the model step by step, click “Capture,” “Load,” “Init,” then “Step.”


This is an interactive problem. In the output section below you will see the information about flushing the output.

On Sunday Leha the hacker took Nura from the house where she lives and went with her to one of the most luxurious restaurants in Vičkopolis. Upon arrival, they left the car in a huge parking lot near the restaurant and hurried inside the building.

In the restaurant a polite waiter immediately brought the menu to Leha and Noora, consisting of n dishes. It is interesting that all dishes in the menu are numbered with integers from 1 to n. After a little thought, the girl ordered exactly k different dishes from available in the menu. To pass the waiting time while the chefs prepare ordered dishes, the girl invited the hacker to play a game that will help them get to know each other better.

The game itself is very simple: Noora wants Leha to guess any two dishes among all ordered. At the same time, she is ready to answer only one type of questions. Leha can say two numbers x and y (1 ≤ x, y ≤ n). After that Noora chooses some dish a for the number x such that, at first, a is among the dishes Noora ordered (x can be equal to a), and, secondly, the value $$|x-a|$$ is the minimum possible. By the same rules the girl chooses dish b for y. After that Noora says «TAK» to Leha, if $$|x-a| \leq |y-b|$$, and «NIE» otherwise. However, the restaurant is preparing quickly, so Leha has enough time to ask no more than 60 questions. After that he should name numbers of any two dishes Noora ordered.

Help Leha to solve this problem!


I’m trying to automate some work in a web application and it worked fine two days ago but since yesterday I always get the following error when I try to click on a UI element. I already tried to change the selector and delay the click but nothing worked. If I disable this click I get the same error two clicks later.
An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
System.AggregateException: One or more errors occurred. ----> System.ArgumentException: Value does not fall within the expected range.
— End of inner ExceptionDetail stack trace —
at UiPath.Core.Activities.ScopeActivity.OnFaulted(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom)
at System.Activities.Runtime.FaultCallbackWrapper.Invoke(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom)
at System.Activities.Runtime.FaultCallbackWrapper.FaultWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
Does anyone know how to fix that?
Many thanks in advance.


Fix: “Upgrade failure: Error 0xc1900101-0x4000d second boot phase migrate-data”
Below are 3 related topics aggregated from across the Spiceworks Community with their most helpful replies.
I recently tried to upgrade a Windows 10 professional machine using the Windows 10 Upgrade Assistant.
It failed to upgrade with the error 0x8007001f but didn't really give any other clue as to what was the problem. I've tried the following:
- Clearing out all the downloaded upgrade files and trying again.
- Uninstalling audio drivers.
- Unplugging any unnecessary peripherals.
- Disabling third party anti-virus. (Does not apply because none is installed).
- Using chkdsk to fix any partition problems.
- Ran sfc /scannow. No issues found
I would like to avoid having to do a clean install since I have two machines with the same issue.
Anyone else have any issues with upgrading Windows 10?
Most helpful reply to this topic
Hi, had the same issues on a few W7 Pro. Checking the error log I noticed that the upgrade stopped while upgrading a user profile.
I deleted the culprit and the upgade went fine.
I know it might not be the reason of the failure but when I looked at the log, it was the error just before the information about rollingback.
Error: 0xc1900101-0x4000d second boot phase migrate-data
Following on from the following question: https://community.spiceworks.com/topic/2243872-windows-upgrde-to-1903-setupdiag-reports-fatal-migrat.. the system is now failing due to migrate -data failure.
In my previous cases, systems that had failed due to this error had locked files, which were stopping the system from upgrading to the latest version and removig those allowed the upgrade(s) to complete successfuly.
The machine in in question is a live production machine and is the only machine left in my entire upgrade project, bringing all machines to the build 1903.
An image of the production system has been cloned to seperate machine for troubleshooting.
In the production env, it's setup as a label printing device, using a mix of the following devices: ZDeisnger TLP 3842 & GX430t which are not attached, but the print profiles remain. No other system using these devices has failed to upgrade - so I don't think it's something to do with those?
Rebuilding the machine is going to take time from our software engineer and it would be good to find out the true cause of the update failure since setup diag is not giving any fruitful information! I would also like to note that this PC has upgraded sucessfuly in the past to it's current build (1607).
SetupDiag was unable to match to any known failure signatures. System Information: Machine Name = 1D020CLONE Manufacturer = LENOVO Model = 3493AZG HostOSArchitecture = 2057 FirmwareType = PCAT BiosReleaseDate = 20140317000000.000000+000 BiosVendor = LENOVO BIOS Rev: F1KT65A 0.0 BiosVersion = F1KT65AUS HostOSVersion = 10.0.16299 HostOSBuildString = 16299.15.x86fre.rs3_release.170928-1534 TargetOSBuildString = 10.0.18362.474 (19h1_release_svc_prod1.191028-1734) HostOSLanguageId = HostOSEdition = Professional RegisteredAV = Windows Defender FilterDrivers = FileInfo UpgradeStartTime = 26/11/2019 15:23:41 UpgradeEndTime = 26/11/2019 15:47:48 UpgradeElapsedTime = 00:24:07 CV = Acc3ynHDXEeVX6h2 ReportId = AF93B473-CB01-4AD5-95FB-EBC5356B1A92
What I've tried:
- Attempted upgrade via ISO (obtaining latest updates during setup), and WSUS all resulting in same issue
- Ran SetupDiag to find out reason for Migrate-Data failure, resulted in no fruitful info
- Stripped the OS to the very minimum, removing ALL user profiles except the default admin, all folders from C: Root. removed from the domain ect.
- Removed AV (BD)
- Update of all system drivers
- Ran system file check commands: SFC /Scannow... DISM Restore health commands... Reset Windows update components ect.
- Clean boot from MS CONFIG
Any suggestions to troubleshooting steps will be deeply appreciated.
Really seem to be hitting a brick wall now with what to try! :-]
Most helpful reply to this topic
Have you tried to do a step-upgrade from 1607 to 1703 or 1709? And then after if that's successful, a step upgrade to 1803 or 1809, and then finally if successful to 1903?
I know you shouldn't have to do this, but...
If you need the ISO's, for any of the versions, I have them and if you PM me a place to upload them (without having to register), I will. Just let me know if you need x86 or x64
This tool will help you pin down why Windows 10 upgrade failed. Very useful in the coming months for those Windows 7 in place upgrades.
SetupDiag works by examining Windows Setup log files. It attempts to parse these log files to determine the root cause of a failure to update or upgrade the computer to Windows 10. SetupDiag can be run on the computer that failed to update, or you can export logs from the computer to another location and run SetupDiag in offline mode.
Most helpful replies to this topic
Thanks for sharing.
Hopefully it works well, trying to scan through a setup log and actually find something can be a feat.
Thankfully we're all W10 as of last year.
This page was compiled from hundreds of thousands of questions and answers posted in our Community.


I dont get it: My liquid Domain is in the shape (shown below) like a bottom of a glass. BUT: When I bake, the liquid fills up a square, outside the domain area as if it’s filling up a cube. any suggestions on how to fix?
The domain of the liquid is the bounding box of the object you set as the domain. You should set your glass to be an obstacle, with a domain around it.
to give more info, a domain is the place a liquid simulation occurs, and it willl always be a cube, no matter what the domain mesh object is (all you can do is scale it). obstaces are the main course you should take for collisions, not domains, since they can be made to any object shape.
And to add to what was allready said. The domain is the boundingbox of the object set as domain.


#ifndef SHIM_SHIM_LOGGER_H_
#define SHIM_SHIM_LOGGER_H_

#include "lib/logger/logger.h"

#include <stdio.h>

Logger* shimlogger_new(FILE* file);

#endif


Super Contraption is a physics-based sandbox construction game in which you construct machines.
Create whatever contraption you can think of!
See what kind of machines you can come up with. Examine how your contraptions perform in various environments, such as on the moon or deep beneath the sea. Experiment with gravity, air resistance, magnetism, and other ideas, with new ones being added all the time.
There is no core goal to the game other than experimenting and being creative.
Make a Rube Goldberg contraption or a basic toy.
Build anything you want, such as a rocket ship with cupcake cannons or a flying blimp stronghold.
Save your inventions and come back to them later.
Play in a variety of worlds, with new planets and objects being introduced on a regular basis.
Because this is a physics simulation game, it should be played on a device that is at least a few years old. When playing Super Contraption on a slower device, the frame rate may be lowered or the game may close.
In the coming upgrades, the ability to share contraptions and view other shared contraptions should be available.
Super Contraption Hack Details:
The mod APK of this game brings you the following additions:
- Unlimited Money hack
Where to Download Super Contraption Mod APK file?
Visit the Downloads section to download the hack APK.


I understand, its a job for a coder but they have retired. Its a really weird thing and i dont know why it happens. The only thing I could think of is maybe theres a problem with the box, since the bug doesnt happen when a staff just makes the item in their bag. But I dunno what that could be. I still want to try and get a video of it just for interests sake, but after that Ill just sell them or use for house deco. Thanks for looking into it tho.


Hi guys I am basically new to solidworks. I learn this software as a part of my syllabus. They don't teach us every feature in college. So I took an initiative and learnt assembly and much more on my own. So I would like to know how to incoporate a design on a 3D model? Thank you.


I was recently asked by a client to give her some advice on expanding overseas and how to approach the setup of the website. People tend to respond better to sites based locally (i.e. Aussies are more likely to click on a .com.au site than a .com site in Google) so how can you have local sites when expanding overseas without dramatically increasing your maintenance costs and what is the best domain structure?
Here are some considerations (by no means an exhaustive list).
One option is to keep the one site and have an overseas domain that takes people to it. This is what we do with our site www.awebsitedesigner.com you will notice when you go there it is exactly the same as http://awebsitedesigner.com.au because it just points directly to it. However as soon as you navigate away from the homepage the true domain is shown. There are other ways you can do this and avoid the real domain from being shown but usually most people want some unique content for their site and give consideration for search engine results so other approaches are preferred.
One site (.com) multiple locations within it
Go to www.electronicarts.com.au you will notice the site takes you to http://www.ea.com/au/ same with www.electronicarts.co.uk takes you to http://www.ea.com/uk. This is one way to handle it. The benefits are you can have all of your one content sitting on the one domain. The downside is it’s not as good for SEO since location specific domains rate higher in location based searches (i.e. .com.au’s will generally rank higher in Google Australia’s searches ‘ particularly if people select “Pages by Australia” which often people do. You still do have to consider the issue of content however. Electronic arts have different content on both locations so its effectively like having 2 websites (depending on how they do it).
2 local domains ‘ one database
With this option you could have www.site.com.au and www.site.co.uk or www.site.com and you could have exactly the same site on both but they could refer to a central database which means you don’t have to maintain 2 sets of content or product catalogues. So when someone purchases the last of a product from www.site.com.au the updated quantity will be reflected on www.site.com or you add a product to www.site.com and it shows up on www.site.com.au as well (because they both look at the same database). Depending on how your site is built this could be possible but also could be tricky because anything that isn’t saved in the database (i.e. images) would somehow have to be copied to both sites. Extra coding would need to be done to make this work.
With the above options you could do tricky stuff to show certain content based on the domain. For example you might have everything in the site exactly the same except for the homepage welcome message. You could have the code look at the domain where it is accessed and then show certain content based on that. However if there is extensive differences between both sites your only real option is to have 2 completely separate sites.
2 Completely separate sites
This is the obvious solution, have 2 completely separate sites for both locations. You have to main 2 sites, 2 lots of content etc. When you change anything it needs to be changed twice. This is more costly but the site ends up being more specific to the location which has its benefits for SEO and for visitors and depending on your business model might be required anyway (i.e. some products only available in some areas, shipping costs being different etc).
There are lots of options and every company takes a slightly different approach but the ones above are the most common ones that spring to mind.
Does anyone know any others?


This content has been marked as final. Show 5 replies
You can install your own cookie handler before you create WebViews. WebView won't replace whatever cookie handler is already installed.
Thank for your reply Peter,
I´ve been pursuing your hint last night, but after some long hours analyzing this not sure if i know what you mean.
How can i replace the cookiehandler, its an abstract class, i can extended it like the default cookiemanager, but i can´t force webview to use it or can i?
Another thing, from this post:
"Vasiliy also explained that WebView will install it's own implementation of the CookieHandler, while retaining cookies put into the default one."
If this true, no matter what i do with the default cookiehandler this will not work, since webview will install it´s own implementation..
It seems that someone forgot that an more than 1 webview instance could run at the same time, because the problem only arises if running in the same VM, in different VM it´s behaves as it should.
If you have more toughts about this please share.
WebView installs its own handler only if the default one is null, otherwise it won't replace the already installed one. CookieHandler is static -- that's why two WebViews share the same instance -- so you don't have to do anything special to make WebView aware of the handler. It will just use whatever handler is installed, as any code that uses HttpURLConnection would do.1 person found this helpful
Still in your custom handler you'll have to somehow distinguish requests coming from two WebViews, that may be tricky given that the interface is simply
Map get(URI uri, Map<String,List<String>> requestHeaders);
Yes, that´s what i understood when i was reading the interface cookiehandler, static.
Very tricky stuff, and its really not my strong, cookies.
But i only want this to work in one website, so i know the ulr for the cookies, i could add some code to differentiate the cookies to be able to have 2 or more of the same, but the problem is how do i get them back in the get method..
Well, will think about this..If any thoughts about how to make this happen let me know.
Thank you again Peter, this was helpful.
I found a way to overcome this problem by implementing a custom version of cookiemanager, although the original problem is not solved, i marked this as answered because it provided an solution to my question.


//
//  INSTaskConfigurationPresentStyleBasedViewController.h
//  INSTomato
//
//  Created by XueFeng Chen on 2021/1/30.
//

#import "INSBaseViewController.h"

@class INSTaskModel;

NS_ASSUME_NONNULL_BEGIN

@interface INSTaskConfigurationPresentStyleBasedViewController : INSBaseViewController

@property (nonatomic, strong) UIPickerView *pickerView;
@property (nonatomic, strong) UILabel *descriptionLabel;

@property (nonatomic, strong) INSTaskModel *taskModel;

- (instancetype)initWithTaskModel:(INSTaskModel *)taskModel;

- (void)clickCloseButton:(id)sender;

@end

NS_ASSUME_NONNULL_END


/*! System call - call to kernel from threads (via software interrupt) */

#define _K_SYSCALL_C_

#include "syscall.h"

#include <kernel/pthread.h>
#include <kernel/device.h>
#include <kernel/errno.h>
#include <kernel/features.h>
#include <kernel/memory.h>
#include <kernel/signal.h>
#include <kernel/time.h>

#include "thread.h"
#include <arch/syscall.h>
#include <arch/interrupt.h>
#include <arch/processor.h>

/*! syscall handlers */
static int (*k_sysfunc[SYSFUNCS]) ( void *params ) =
{
	NULL,

	sys__sysinfo,
	sys__feature,

	sys__set_errno,
	sys__get_errno,
	sys__get_errno_ptr,

	sys__clock_gettime,
	sys__clock_settime,
	sys__clock_nanosleep,

	sys__timer_create,
	sys__timer_delete,
	sys__timer_settime,
	sys__timer_gettime,

	sys__open,
	sys__close,
	sys__read,
	sys__write,
	sys__device_status,
	sys__poll,

	sys__pthread_create,
	sys__pthread_exit,
	sys__pthread_join,
	sys__pthread_self,

	sys__pthread_setschedparam,

	sys__pthread_mutex_init,
	sys__pthread_mutex_destroy,
	sys__pthread_mutex_lock,
	sys__pthread_mutex_unlock,
	sys__pthread_cond_init,
	sys__pthread_cond_destroy,
	sys__pthread_cond_wait,
	sys__pthread_cond_signal,
	sys__pthread_cond_broadcast,

	sys__sem_init,
	sys__sem_destroy,
	sys__sem_wait,
	sys__sem_post,

	sys__mq_open,
	sys__mq_close,
	sys__mq_send,
	sys__mq_receive,

	sys__sigaction,
	sys__pthread_sigmask,
	sys__sigqueue,
	sys__sigwaitinfo,

	sys__posix_spawn
};

/*!
 * Process syscalls
 * (syscall is forwarded from arch interrupt subsystem to k_syscall)
 */
void k_syscall ( uint irqn )
{
	int id, retval;
	void *context, *params;

	ASSERT ( irqn == SOFTWARE_INTERRUPT );

	context = kthread_get_context ( NULL ); /* active thread context */

	id = arch_syscall_get_id ( context );

	ASSERT ( id >= 0 && id < SYSFUNCS );

	params = arch_syscall_get_params ( context );

	retval = k_sysfunc[id] ( params );

	if ( id != PTHREAD_EXIT )
		arch_syscall_set_retval ( context, retval );
}

/*! Stop processor until next interrupt occurs - for idle thread only! */
int sys__suspend ( void *p )
{
	enable_interrupts ();
	suspend ();
	disable_interrupts ();

	return 0;
}


We had a string s consisting of n lowercase Latin letters. We made k copies of this string, thus obtaining k identical strings s1, s2, ..., sk. After that, in each of these strings we swapped exactly two characters (the characters we swapped could be identical, but they had different indices in the string).

You are given k strings s1, s2, ..., sk, and you have to restore any string s so that it is possible to obtain these strings by performing aforementioned operations. Note that the total length of the strings you are given doesn't exceed 5000 (that is, k·n ≤ 5000).


15-day Public Review for Product Life Cycle Support V1.0
The OASIS Product Life Cycle Support (PLCS) TC members  have produced an updated Committee Specification Draft (CSD) and submitted this specification for 15-day public review:
Product Life Cycle Support Version 1.0
Committee Specification Draft 02 / Public Review Draft 02
19 July 2013
The purpose of the OASIS Product Life Cycle Support (PLCS) standard is to establish structured data exchange and sharing capabilities for use by industry to support complex engineered assets throughout their total life cycle. The OASIS Product Life Cycle Support (PLCS) standard is defined by Data Exchange Specifications (DEX) that are based upon ISO 10303 (STEP) Application Protocol 239 Product Life Cycle Support. This draft includes the PLCS library, templates, derived SysML and XML models and associated reference data.
Please note that this Committee Specification Draft is a highly interlinked collection of HTML documents. The navigation links on the top and in the left column provide accesss to the components of the draft. The link to Help on the navigation links includes an explanation of the organization of the material. The Help topic "PLCSlib navigation" explains how to use the interface.
The TC is currently developing templates for deployment of the ISO 10303-239 standard, together with associated SysML and XML models to facilitate implementation. It is intended that the work be adopted by ISO.
Public Review Period:
The public review starts 6 August 2013 at 00:00 GMT and ends 21 August 2013 at 23:59 GMT. The specification was previously submitted for public review .
This is an open invitation to comment. OASIS solicits feedback from potential users, developers and others, whether OASIS members or not, for the sake of improving the interoperability and quality of its technical work.
Due to the complex structure of the material, the TC requests that, when making a comment, you prefix the comment with a label identifying the artifact against which the comment is made:
- For comments against the PLCS Platform Specific Model: EXPRESS information model, use "(plcs-psm.exp)."
- For comments against the PLCS Platform Specific Model: SysML information model, use "(plcs-psm.xmi)."
- For comments against the XML Schema, use "(plcs-psm.xsd)."
- For comments against the Schematron, use "(plcs-psm.sch)."
- For comments against the PLCS Platform Specific Model: OWL Reference Data, use "(plcs-psm-en.owl)."
- For comments against the PLCS OWL Reference Data, use "(plcs-rdl-en.owl)."
- For comments against a template, use "Template: ."
The members of the TC thank reviewers in advance for helping to make the comments traceable.
The prose specification document and related files are available here:
PDF (Cover pages only with links to specification):
ZIP distribution files (complete):
For your convenience, OASIS provides a complete package of the prose specification and related files in a ZIP distribution file. You can download the ZIP file here:
Additional information about this specification and the PLCS TC may be found on the TC's public home page located at:
Comments may be submitted to the TC by any person through the use of the OASIS TC Comment Facility which can be accessed by following the instructions at "Send A Comment" at the top of the TC public home page, or directly at:
Feedback submitted by TC non-members for this work and for other work of this TC is publicly archived and can be viewed at:
All comments submitted to OASIS are subject to the OASIS Feedback License, which ensures that the feedback you provide carries the same obligations at least as the obligations of the TC members. In connection with this public review of "Product Life Cycle Support Version 1.0", we call your attention to the OASIS IPR Policy  applicable especially  to the work of this technical committee. All members of the TC should be familiar with this document, which may create obligations regarding the disclosure and availability of a member's patent, copyright, trademark and license rights that read on an approved OASIS specification. OASIS invites any persons who know of any such claims to disclose these if they may be essential to the implementation of the above specification, so that notice of them may be posted to the notice page for this TC's work.
========== Additional references:
 OASIS Product Life Cycle Support (PLCS) TC
 Previous public reviews:
30-day public review, 27 March 2013: https://lists.oasis-open.org/archives/tc-announce/201303/msg00007.html
Comment resolution log: http://docs.oasis-open.org/plcs/plcslib/v1.0/csprd01/plcs-plcslib-v1.0-c...
RF on Limited Terms Mode


Hey all! I've created an open-source Poketch app for the Apple Watch that attempts to emulate some of the "apps" from the original Poketch in Pokemon Diamond and Pearl!
Anti-spam measures seem to be preventing me from linking to the source code, but you can find the link in the description of the video. The idea behind this project was to recreate as many of the original Poketch's features on the Apple Watch using SwiftUI and WatchOS 8. Since this was my first Swift application, I had to learn on the fly as well as discover all of Xcode's fun little quirks like 100gb memory leaks and such. I'm pretty happy with how it turned out, and I've released all the source code under the MPL license!
Last edited by Idrees,


Search for a funded project
Ultra Low Power Consumption Low Noise Cryogenics and Ambient MMIC for Space Telecommunications in Q-band – Low.IQ
and autonomous applications for the ambient intelligence. Within the framework of this project, low
press, radio and television broadcasts more intelligible, viewable and searchable at a macro-level of
This study concerns the field of Artificial Intelligence, specifically the SAT (satisfiability problem
Technical, economic and environmental feasibility of solide oxyde fuel cells (SOFC) for electricity generation from biogas – PILE-EAU-BIOGAZ
design and integration of systems including intelligent management of energy and finally evaluate the
Study of signal transduction mechanisms through investigation of receptor conformational changes – ARCHITECT
It is crucial to understand the structural bases of membrane receptor function and to link the receptor conformational changes to specific cell responses. In particular, to develop therapeutics with an increased beneficial effect and less side effects, it is necessary to determine how ligands (hormones and neurotransmitters) activate / inactivate their receptor targets and what are the associated cellular signals.
Strong local consistency filtering for weighted constraint networks and other graphical models – FICOLOFO
This project is an essential part of the process of extending the classical Constraint Programming paradigm to optimization problems by defining a Cost Function Programming framework.
We are fitting our Cost Function Network Solver toulbar2 with stronger inference algorithms, global cost functions and making it easier to use through a python/Numberjack interface. Several applications (nurse rostering, protein design, crop allocation problems) are already handled by Cost Function programming.
In order to simulate the energy performance of low energy buildings more precisely, human behaviour can be modeled through multi-agent systems and coupled to dynamical building simulation. Exploiting electrical load profiles or other measured data allows for identification of simplified models of buildings or appliances, and, in return, for better sizing and control of the building systems and appliances.
The SATURN project takes place in this context of
autonomous embedded systems and proposes to revise the actual fundamentals of embedded computing architectures. We propose in this project an original approach compared to the classical centralised approaches based on new computation paradigms. The SATURN project associates researchers from digital embedded systems and artificial intelligence in order to define this architecture
of a new type for smart embedded plateforms.
algorithms and in the design of experimental intelligent vehicles. They have also participated in projects


I started my pyramania with an IceDice set, and I missed the window for the old tube-packaged sets of Treehouse. But now I'd like to get my hands on a copy of the rules from that set. Or maybe someone could even tell me whether it will really answer my need. Here's the scenario.
Pink Hijinks is adorable, but a little frustrating in the face of the terrific flexibility offered by the contents of other pyramid games. E.g. The new Treehouse set explicitly offers itself to play Pharaoh, but it's also ready for IceSickle, Ice Age, and other game options. For a little while, I thought that Pink Hijinks itself was the only game playable with the contents of the Pink Hijinks bag. Then I realized that I could add a Treehouse die, and the kit would be sufficient for a two-handed game of Treehouse.
So I'd like a copy of the rules that will fit in the Hijinks bag, to orient new players. The IceSheet version is too big, but I'm hopeful that the rules from the old Treehouse tubes will do the trick.
There's a scan at boardgamegeek of some older version of the Treehouse rules from the tube:
Yeah, that's just what I need. Thanks!
if you give me your address, I can probably send you one of my dozen sets of classic treehouse rules.
fFunny thing about those. you'd buy a bunch of tubes, and you'd get a whole lot of rules to that one game. I think i still have lots of copies in my bag of stuff.
Terrific. I'm actually having trouble legibly printing out the BGG image file. I'll send you my address. I figured there would be folks with a surplus of old tube rules. Thanks in advance.


One of the big issues that I would like to focus more attention on is python injection.
For the folks that are unaware, much of the EvE client and server are written in a programming language called Python. The usage of Python would normally be fine, though it does have some effect on the speed of the client, but the major problem is that people have been injecting their own python code into the client, in order to do a bunch of different things. Currently, one can easily find the following available:
1) A script that modifies the in game autopilot to warp to 0 km from a gate, instead of the normal 15 km.
2) A script that removes the session change timer when jumping, undocking, joining a fleet, etc.
3) A script that modifies the scanner to add the following features:
A) Load/Save probe positions. Lets say you get a hit on 2 different sigs in one scan. You can save the probe positions, scan one down, then load and work on the 2nd one.
B) Contract/Expand probes around their center point.
C) Load/Save signatures to ignore
D) Center probes around a signature
E) Make it so when people warp off, they stay visible in the direction they warped.
4) Several different bots, some public and some private. These bots can be much more advanced than bots that have to use screen reading technologies.
It does sound like CCP has at least started to crack down on the guys that are using python injection, which is a good sign. They need to be much more aggressive, as well as crack down hard on botting in general.
I realized I left out my last paragraph, about why this stuff is worse than botting. Other than the last one, all of these can be used by regular players to gain unfair advantages both in combat and out of combat.


I am developing a custom plugin for a friends server which limits the growth of wheat to 1 stage per a minecraft day. As far as I can tell there isn't an event for when crops grow, or when the state of a block changes. If there is please do tell. Is there currently a way to do this as a plugin and not as a custom bukkit build? I don't need the plugin made for me, but some pointers in the right direction would help. Thank you for your time.


Last year Bob earned by selling memory sticks. During each of n days of his work one of the two following events took place:

- A customer came to Bob and asked to sell him a 2x MB memory stick. If Bob had such a stick, he sold it and got 2x berllars.
- Bob won some programming competition and got a 2x MB memory stick as a prize. Bob could choose whether to present this memory stick to one of his friends, or keep it.

Bob never kept more than one memory stick, as he feared to mix up their capacities, and deceive a customer unintentionally. It is also known that for each memory stick capacity there was at most one customer, who wanted to buy that memory stick. Now, knowing all the customers' demands and all the prizes won at programming competitions during the last n days, Bob wants to know, how much money he could have earned, if he had acted optimally.


Marina loves Sasha. But she keeps wondering whether Sasha loves her. Of course, the best way to know it is fortune telling. There are many ways of telling fortune, but Marina has picked the easiest one. She takes in her hand one or several camomiles and tears off the petals one by one. After each petal she pronounces alternatively "Loves" and "Doesn't love", at that Marina always starts with "Loves". There are n camomiles growing in the field, possessing the numbers of petals equal to a1, a2, ... an. Marina wants to pick a bouquet with the maximal possible total number of petals so that the result would still be "Loves". Help her do that; find the maximal number of petals possible in the bouquet.


MarkN writes "There's hardly a video game made nowadays that doesn't involve puzzles in some sense. In some games they serve as occasional roadblocks to break up the action, and in the genre of adventure games the whole focus of the game is solving a set of related puzzles. I've written a piece for AdventureClassicGaming describing and categorizing puzzles in adventure games. Adventure games make use of explicitly designed abstract puzzles — they're explicitly designed rather than being randomly or procedurally generated, and abstract in the sense that all you need to do is figure out the right actions to perform, rather than making the performing of those actions be a challenge in and of itself. My classification makes distinctions at two levels: you have self-contained puzzles, which can depend upon using your basic verbs of interaction, solving some minigame based around achieving a particular configuration, or providing an answer to a riddle. On the other side, you have puzzles that require some external key: this could be an item, a piece of information, or an internal change to the game's state triggered somewhere else. From there, I talk about some of the possibilities and pitfalls these puzzles carry, as well as their use in other genres. I'd be interested to hear the community's thoughts on the use and application of puzzles in adventure games, and games in general."


It has came to our attention that about 10% of the Coat of Arms thumbnails are generated incorrectly, with their top and bottom missing. It doesn't seem related to any particular shape or other design setting and we couldn't yet reproduce the issue on our development configs.
If you are affected, we would be very thankful for any additional information you can provide on your configuration either here or through email (bugs at feudums dot com). In particular:
- do you have an integrated graphics card? (or: what kind of gfx card you have?)
- under what resolution have you used the client? (and full screen or windowed?)
- your version of the Windows OS


When I was a kid, thought how great it will be to have my own family since I live in a happy one. But the older we grow, the more scary we are. Everything we are planning to do seems to be a big bet for us because there are too much to consider and once you make the decision, you have to take all the outcomes no matter what.
To live with someone is not an easy thing, and I just realized that couple weeks ago. A lot of things needed to be adjusted, even your living ways because you are not living in your own room any more. Everything has to be shared and there are different rules for different people. Like how to do laundry, how to fold the clothes, how to put the dishes, ......blah blah blah...a lot, a lot needed to be learned and communcation is not really an easy thing to do tho.
On the other hand, you would be afraid of things.....afraid of what will come next.....and the uncertainty hits you from time to time tho. It's scary and you really have no idea if you will be okay or not!!


You can send in entries for the 2017 edition of Roze Filmdagen / Pink Film Days until December 15, 2016.
The Roze Filmdagen, the Amsterdam LGBTQ Film Festival, programs a broad and international range of feature films, shorts, and documentaries that are relevant to the LGBTQ community.
Entries can be from any country, any genre and any format, as long as it's relevant to the LGBTQ community. The Roze Filmdagen does not charge an entry fee.
NOTE: due to the large number of entries received, we can not individually send out messages to all entries when your film is not selected. We're really sorry, but we have a very limited time between the deadline (Dec 15, 2016) and the finalization of the programme. So, if you haven't received word from us by January 31, 2017, that means your entry is not selected.
We actually prefer online entries via a service like Vimeo. If you do, don't forget to include all necessary information, like the password for a private viewing. And please, make sure the resolution is enough to actually judge it.
Also, our programming team uses a variety of computers and operating systems. Platform-neutral services like Vimeo, Youtube and the like are preferred over Silverlight, Flash or other proprietary solutions.
You can also of course send in a DVD. Please, then also fill in the following form, so we know that something is coming in the mail!
The address for physical submissions is:
c/o Werner Borkes
Weteringschans 38 - 3
1017 SH Amsterdam


Prevent this user from interacting with your repositories and sending you notifications.
Learn more about blocking users.
Contact GitHub support about this user’s behavior.
Learn more about reporting abuse.
Allows Rails to manage a second database in your projects (gets you to secondbase)
Extends ActiveRecord validations with reusable and customizable validation methods.
Forked from roidrage/shoulda-addons
Awesome add-ons to make Shoulda more awesome.
Lightning talk about secondbase
Forked from thoughtbot/shoulda-matchers
Collection of testing matchers extracted from Shoulda
Seeing something unexpected? Take a look at the
GitHub profile guide.


You are given a string. Remove all digits from it. When a character is removed from a string, all characters to the right of it are shifted one position to the left.


Эта тема была архивирована. Если вам нужна помощь, задайте новый вопрос.
Firefox Mobile is slow/lags with all operations on Nokia N900
I've been consistently using the Maemo default browser but decided to try FF again after the recent update. I love the Weave integration, and besides being a die-hard ff user, i like being able to have my bookmarks, tabs, passwords, and history synced, as well as having spell check support.
My issue is that ff is so slow on my phone it is nearly unusable. Startup time is usually 15 seconds minimum, and scrolling, or even side screening to get to tabs, or options takes forever, or i have to just stop and wait for 20 seconds until things "catch up" and even then they're still slow. Is there something I'm doing wrong or something I can do to speed things up??
Все ответы (9)
same for me. slow and no zoom. it's just crap
You can zoom by either double tapping on an element or by using ctrl+up/down on the keyboard.
There are a couple issues with the browser that i imagine will be addressed in later versions, such as. The limitations with page scailing and dynamic zoom. N900 long press options not enabled. Lack of flash support without a youtube addon. Generally slow response times.
Firefox hasnt let me down so far with its desktop browser so hopefully they can iron these issues out.
@Taylor - Flash works, just follow these instructions to enable it: http://www.nokiaphoneblog.com/?p=2945
After a week of using the N900, I've found that FF Mobile is pretty unusable, even over wifi.
firefox works perfectly on my n900. so far i havent had issues with it I just like so much! when i downloaded the first time i recall it was really slow. hence i deleted and downloaded again, now it works just fine! you can try reset your device to factory set up and star over. trust me it worths it. peace out.
Yeah works pretty well, now I've enabled flash.
Bear in mind the N900 doesnt have a huge amount of CPU horsepower so if you've got any other CPU hogs running in the background (the media player "tracker" indexer is one that I've been fighting with) it's going to have a detrimental effect on anything else running.
Download htop from the repository and have a look.
For some web pages, Firefox appears to be as fast as the built in Maemo Microb browser, but for other websites it is much slower - for example my Zimbra email login.
I hope they optimize it and release a faster Firefox.
I have n900 working with flash but is very slow, it's a slide show i'm watching. Either they need to put a better cpu or optimize the software. I hope it's just software optimization because if it isn't I'm selling it. I only bought it knowing that it has flash support.


$150K — $200K *
Rally Health™ is all about putting health in the hands of the individual. It’s our mission, and it drives everything we do, which is to empower people with easy-to-use online and mobile tools that help them take charge of their health and health care, from improving their diet and fitness to selecting health benefits, and choosing the right doctor at the right price for their needs.
Our culture is built on a deep and sincere dedication to helping people live healthier lives. To do this, we are committed to innovating continuously at every level. We know that some of the things we do are not going to work, and that’s okay. We’re not trying to build something that is churn and burn. We’re building something that supports people over their lifetime. Every day, we get to work with amazing people on something that directly impacts the lives of millions of people for the better.
At Rally Health, we believe that two heads truly are better than one. Rallyers understand the importance of communication and collaboration, ensuring that we work we produce is the best that it can be. Every opinion is valid and valued, and we share ideas that elevate the way we work. We know that the big picture and the small details are tied together, and we keep both in mind. Everything we do is executed with our users in mind, so we make sure that all of our work has a human touch. Here at Rally, we take advantage of the opportunity to build strong relationships with each other, because it makes us better.
About the Team:
Care solutions lets people find, price, schedule, prepare, recover and pay for care, and rewards them for choosing the appropriate care (medical, medication, dental, vision, behavioral & DME). Our digital focus is fundamentally changing the way consumers interact with their healthcare. Care solutions are available on the web and mobile. Over 50 million consumers have access to our solutions. Our engineers are passionate about building an end-to-end experience that is seamless, performant, and scales to millions of users.
Your day to day:
Valid through: 8/17/2020
$100K — $150K
11 days ago


You are given an array of integers $$$a_1,a_2,\ldots,a_n$$$. Find the maximum possible value of $$$a_ia_ja_ka_la_t$$$ among all five indices $$$(i, j, k, l, t)$$$ ($$$i<j<k<l<t$$$).


I have 32 bit programs that I need to use on my 64 bit laptop. I know there is a program you can download to do this but I can't remember where it is, I did download it and tried to load it on my win 7 home and it told me that I needed win 7 or 8 pro, I now have win 8 pro but I have lost the program .Can you help me find it.
Sadly I think I understand your dilemma. You were originally told you needed Win7 pro because in it is Virtual PC and you get free XP OS to download. That from what I have read online is not being offered with Win8 pro even. Virtual PC yes but NOT XP as Microsoft will not issue something they do not offer support for making it software that can allow a back door for virus and malware to access your computer as a whole.
I suggest you go to Microsoft site and chat with the Answers Desk folk. Ask them if you can downgrade to Windows pro to get the XP virtual PC that way or if you can get a refund especially if Microsoft staff told you about upgrading. Here is the link that sales desk gave me when I asked them just now. I figure best to ask yourself so you know information is first hand not secondhand via me. http://www.microsoftstore.com/store/msusa/en_US/cat/Answer-Desk/categoryID.63433500
Hope you get your problem resolved soon.


New answers tagged wii
I am not aware of anything similar to "verify game cache" on the Wii U or any other console. However, you could try to move the game back to the internal storage to see if that fixes your problem. If moving the game back to internal storage does fix your problem, there might be something wrong with your USB storage. However, if the problem persists, ...
I have the strategy: the ball is at it's peak when the ball is tangent to the net according to your view (just touching) just throw it up a few times and see that the ball just makes contact with the bottom of the net from your view. Hope this helps
Top 50 recent answers are included


Meta Stack Overflow
to customize your list.
more stack exchange communities
Start here for a quick overview of the site
Detailed answers to any questions you might have
Discuss the workings and policies of this site
Is there any reason this isn't redundant code?
I came across this code in some existing codebase: double rad = ComputeCurviness(); double off = Math.Abs(rad); if (rad < 0) off = -off; It seems to be basically just making off equal to rad. ...
Jun 15 '10 at 19:36
newest absolute-value redundancy questions feed
Hot Network Questions
Naming of folders question
Access to the terminal while you are on Vim
Did Kozbi deserve to die?
Is there added value in having your own presentation layout and using it consistently?
Publishing Free Papers by Publishing house: Offer or Scam?
The FizzBuzz challenge in Java 8 written in a short, readable and interesting way
Draw with your CPU
Did not declare jewelry from aruba
What exactly is a number?
Restrict a Linux user to the files he owns
how to get notify while a record id generated in salesforce?
Opened a JPG picture with notepad, pasted all the "text" to a new notepad file, changed to .JPG and it no longer opens?
What recent programmes to alter highly-entrenched mathematical terminology have succeeded, and under what conditions do they tend to succeed or fail?
Loop without 'looping'
Good Versus Evil
What do you call someone who was doing bad things, and he doesn't anymore?
How to extract URIs from files
Apparent Paradox in the Idea of Random Numbers
Dealing with synthesized sounds where only a subset of tones sound good
In the movies - Do wire transfers really work?
How should I handle my manager offering me an unwanted drink?
Is there any way to appear sociable at a work social event without drinking?
Movie where only a man and a woman left astray in a random place, followed by big cloud of darkness
What's waking up my PC?
more hot questions
Life / Arts
Culture / Recreation
TeX - LaTeX
Unix & Linux
Ask Different (Apple)
Geographic Information Systems
Science Fiction & Fantasy
Seasoned Advice (cooking)
Personal Finance & Money
English Language & Usage
Mi Yodeya (Judaism)
Cross Validated (stats)
Theoretical Computer Science
Meta Stack Exchange
Stack Overflow Careers
site design / logo © 2014 stack exchange inc; user contributions licensed under
cc by-sa 3.0


Sadly, the problem setter couldn't think of an interesting story, thus he just asks you to solve the following problem.

Given an array $$$a$$$ consisting of $$$n$$$ positive integers, count the number of non-empty subsequences for which the bitwise $$$\mathsf{AND}$$$ of the elements in the subsequence has exactly $$$k$$$ set bits in its binary representation. The answer may be large, so output it modulo $$$10^9+7$$$.

Recall that the subsequence of an array $$$a$$$ is a sequence that can be obtained from $$$a$$$ by removing some (possibly, zero) elements. For example, $$$[1, 2, 3]$$$, $$$[3]$$$, $$$[1, 3]$$$ are subsequences of $$$[1, 2, 3]$$$, but $$$[3, 2]$$$ and $$$[4, 5, 6]$$$ are not.

Note that $$$\mathsf{AND}$$$ represents the bitwise AND operation.


Let's define the value of the permutation $$$p$$$ of $$$n$$$ integers $$$1$$$, $$$2$$$, ..., $$$n$$$ (a permutation is an array where each element from $$$1$$$ to $$$n$$$ occurs exactly once) as follows:

- initially, an integer variable $$$x$$$ is equal to $$$0$$$;
- if $$$x < p_1$$$, then add $$$p_1$$$ to $$$x$$$ (set $$$x = x + p_1$$$), otherwise assign $$$0$$$ to $$$x$$$;
- if $$$x < p_2$$$, then add $$$p_2$$$ to $$$x$$$ (set $$$x = x + p_2$$$), otherwise assign $$$0$$$ to $$$x$$$;
- ...
- if $$$x < p_n$$$, then add $$$p_n$$$ to $$$x$$$ (set $$$x = x + p_n$$$), otherwise assign $$$0$$$ to $$$x$$$;
- the value of the permutation is $$$x$$$ at the end of this process.

For example, for $$$p = [4, 5, 1, 2, 3, 6]$$$, the value of $$$x$$$ changes as follows: $$$0, 4, 9, 0, 2, 5, 11$$$, so the value of the permutation is $$$11$$$.

You are given an integer $$$n$$$. Find a permutation $$$p$$$ of size $$$n$$$ with the maximum possible value among all permutations of size $$$n$$$. If there are several such permutations, you can print any of them.


You are given a tree T with n vertices (numbered 1 through n) and a letter in each vertex. The tree is rooted at vertex 1.

Let's look at the subtree Tv of some vertex v. It is possible to read a string along each simple path starting at v and ending at some vertex in Tv (possibly v itself). Let's denote the number of distinct strings which can be read this way as $$\operatorname{dif}(v)$$.

Also, there's a number cv assigned to each vertex v. We are interested in vertices with the maximum value of $$\mathrm{dif}(v) + c_v$$.

You should compute two statistics: the maximum value of $$\mathrm{dif}(v) + c_v$$ and the number of vertices v with the maximum $$\mathrm{dif}(v) + c_v$$.