Does microwaving a die significantly alter its balance?

I saw a rumor online a long time ago that stated by microwaving a die on a specific face it would be more likely to land on said face and have been looking for science by which to either prove or disprove this method for creating a set of loaded dice for use in a d20 campaign.

I’m looking for answers with at least some form of testing involved utilizing a microwave to significantly alter a die’s balance. Answers with an accompanying chi-squared test or a Saltwater float test to determine balance after the experimentation has been done would be preferred.

Testing with multiple types of dice would also be appreciated. (to make fudge damage dice)

Note: Microwaving dice will likely destroy them and should only be attempted by people who have many spare dice. Microwaving of plastics in the microwave also carries the risk of melting said dice if the time spent in the microwave exceeds a certain time, so for your own safety please don’t touch dice with your bare hands without some form of safety precautions.

Alter an ASCII character without detection?

If it were possible to alter an ASCII character without detection–that could only be “seen” by the intended receiver of a message–it would be ciphertext heaven.

Consider Bacon’s Bilateral Cipher (example taken from here):

ITS A BEAUTIFUL DAY IN THE NEIGHBORHOOD

then the message (RHODES) is hidden as:

…..R…..H…….O……..D……E…….S

baaaa aabbb abbab aaabb aabaa baaab

ITSAB EAUTI FULDA YINTH ENEIG HBORH

Hidden according to this preshared table:

A aaaaa B aaaab C aaaba D aaabb E aabaa F aabab G aabba H aabbb I abaaa K abaab L ababa M ababb N abbaa O abbab P abbba Q abbbbR baaaa S baaab T baaba V baabb W babaa X babab Y babba Z babbb

When the proper spacing is put back in:

ITS A BEAUTIFUL DAY IN THE NEIGHBORHOOD.

So, is it possible to alter an ASCII character so that the receiver would know that it had been changed, but no one else?

Does changing regional timezone settings alter the “Modified” and “Created” fields on every list to fit that new timezone?

I realized that I was entering data into Sharepoint when the timezone settings was PST rather than EST. I changed it, but now it’s taking a while for the automatic datetime fields (“Modified” and “Created”) to reflect that change in the lists. I really do not want to have to reenter all my data so that they reflect the new standard.

I’m not just asking about new entries, but also entries that have already been made.

Alter table default character set modifies the rows in MySQL 5.6

I am using MySQL 5.6 and I want to modify the default encoding of one table (from latin1 to utf8) WITHOUT modifying the existing columns and rows. Based on documentation I have tried the following command:

ALTER TABLE mytable DEFAULT CHARACTER SET utf8; 

It modified the default character set encoding of my table and did NOT modify the collation of the columns, as expected, BUT I was really surprised to see: Query OK, 32141 rows affected (6.31 sec) Records: 32141 Duplicates: 0 Warnings: 0

Except “32141 rows affected”, the results are as expected as you can see below:

MySQL> select count(*) from mytable; +----------+ | count(*) | +----------+ |    32141 | +----------+ 1 row in set (0.01 sec) 
MySQL> show table status like 'mytable'; +-----------------------+--------+---------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-----------------+----------+----------------+---------+ | Name                  | Engine | Version | Row_format | Rows  | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation       | Checksum | Create_options | Comment | +-----------------------+--------+---------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-----------------+----------+----------------+---------+ | mytable | InnoDB |      10 | Compact    | 16723 |          20798 |   347815936 |               0 |     21561344 |  15728640 |           NULL | NULL        | NULL        | NULL       | utf8_general_ci |     NULL | partitioned    |         | +-----------------------+--------+---------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-----------------+----------+----------------+---------+  
MySQL> show create table mytable; CREATE TABLE `mytable` (   `ID` varchar(255) NOT NULL,   `COL1` double DEFAULT NULL,   `COL2` longtext CHARACTER SET latin1,   `COL3` datetime DEFAULT NULL,   `COL4` varchar(255) CHARACTER SET latin1 DEFAULT NULL,   `COL5` int(11) DEFAULT NULL,   `COL6` datetime DEFAULT NULL,   `COL7` varchar(255) CHARACTER SET latin1 DEFAULT NULL,   `COL8` datetime(3) NOT NULL,   `COL9` int(11) NOT NULL DEFAULT '-1',   `COL10` int(11) DEFAULT '0',   `COL11` double DEFAULT '0',   PRIMARY KEY (`ID`,`COL9`),   KEY `idx1` (`COL7`,`COL3`,`COL6`),   KEY `idx2` (`COL1`,`COL4`,`COL3`,`COL6`),   KEY `idx3` (`ID`,`COL3`,`COL6`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 /*!50100 PARTITION BY RANGE (`COL9`) (PARTITION p0 VALUES LESS THAN (1) ENGINE = InnoDB,  PARTITION p1 VALUES LESS THAN (2) ENGINE = InnoDB,  PARTITION p2 VALUES LESS THAN (3) ENGINE = InnoDB,  PARTITION p3 VALUES LESS THAN (4) ENGINE = InnoDB,  PARTITION p4 VALUES LESS THAN (5) ENGINE = InnoDB,  PARTITION p5 VALUES LESS THAN (6) ENGINE = InnoDB,  PARTITION p6 VALUES LESS THAN (7) ENGINE = InnoDB,  PARTITION p7 VALUES LESS THAN (8) ENGINE = InnoDB,  PARTITION p8 VALUES LESS THAN (9) ENGINE = InnoDB,  PARTITION p9 VALUES LESS THAN (10) ENGINE = InnoDB,  PARTITION p10 VALUES LESS THAN (11) ENGINE = InnoDB,  PARTITION p11 VALUES LESS THAN (100) ENGINE = InnoDB,  PARTITION p12 VALUES LESS THAN (101) ENGINE = InnoDB,  PARTITION p13 VALUES LESS THAN (102) ENGINE = InnoDB,  PARTITION p14 VALUES LESS THAN (103) ENGINE = InnoDB,  PARTITION p15 VALUES LESS THAN (104) ENGINE = InnoDB,  PARTITION p16 VALUES LESS THAN (105) ENGINE = InnoDB,  PARTITION p17 VALUES LESS THAN (106) ENGINE = InnoDB,  PARTITION p18 VALUES LESS THAN (107) ENGINE = InnoDB,  PARTITION p19 VALUES LESS THAN (108) ENGINE = InnoDB,  PARTITION p20 VALUES LESS THAN (109) ENGINE = InnoDB,  PARTITION p21 VALUES LESS THAN (110) ENGINE = InnoDB,  PARTITION p22 VALUES LESS THAN (111) ENGINE = InnoDB,  PARTITION p23 VALUES LESS THAN (200) ENGINE = InnoDB,  PARTITION p24 VALUES LESS THAN (201) ENGINE = InnoDB,  PARTITION p25 VALUES LESS THAN (202) ENGINE = InnoDB,  PARTITION p26 VALUES LESS THAN (203) ENGINE = InnoDB,  PARTITION p27 VALUES LESS THAN (204) ENGINE = InnoDB,  PARTITION p28 VALUES LESS THAN (205) ENGINE = InnoDB,  PARTITION p29 VALUES LESS THAN (206) ENGINE = InnoDB,  PARTITION p30 VALUES LESS THAN (207) ENGINE = InnoDB,  PARTITION p31 VALUES LESS THAN (208) ENGINE = InnoDB,  PARTITION p32 VALUES LESS THAN (209) ENGINE = InnoDB,  PARTITION p33 VALUES LESS THAN (210) ENGINE = InnoDB,  PARTITION p34 VALUES LESS THAN (211) ENGINE = InnoDB,  PARTITION p35 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */ 
MySQL> show full columns from mytable; +--------------------------+--------------+-------------------+------+-----+---------+-------+---------------------------------+---------+ | Field                    | Type         | Collation         | Null | Key | Default | Extra | Privileges                      | Comment | +--------------------------+--------------+-------------------+------+-----+---------+-------+---------------------------------+---------+ | ID                       | varchar(255) | latin1_swedish_ci | NO   | PRI | NULL    |       | select,insert,update,references |         | | COL1                     | double       | NULL              | YES  | MUL | NULL    |       | select,insert,update,references |         | | COL2                     | longtext     | latin1_swedish_ci | YES  |     | NULL    |       | select,insert,update,references |         | | COL3                     | datetime     | NULL              | YES  |     | NULL    |       | select,insert,update,references |         | | COL4                     | varchar(255) | latin1_swedish_ci | YES  |     | NULL    |       | select,insert,update,references |         | | COL5                     | int(11)      | NULL              | YES  |     | NULL    |       | select,insert,update,references |         | | COL6                     | datetime     | NULL              | YES  |     | NULL    |       | select,insert,update,references |         | | COL7                     | varchar(255) | latin1_swedish_ci | YES  | MUL | NULL    |       | select,insert,update,references |         | | COL8                     | datetime(3)  | NULL              | NO   |     | NULL    |       | select,insert,update,references |         | | COL9                     | int(11)      | NULL              | NO   | PRI | -1      |       | select,insert,update,references |         | | COL10                    | int(11)      | NULL              | YES  |     | 0       |       | select,insert,update,references |         | | COL11                    | double       | NULL              | YES  |     | 0       |       | select,insert,update,references |         | +--------------------------+--------------+-------------------+------+-----+---------+-------+---------------------------------+---------+ 

My connection parameters are as follows:

MySQL> show variables where variable_name like '%char%' or variable_name like '%collation%'; +--------------------------+--------------------------------------------------+ | Variable_name            | Value                                            | +--------------------------+--------------------------------------------------+ | character_set_client     | utf8mb4                                          | | character_set_connection | utf8mb4                                          | | character_set_database   | utf8mb4                                          | | character_set_filesystem | binary                                           | | character_set_results    | utf8mb4                                          | | character_set_server     | utf8mb4                                          | | character_set_system     | utf8                                             | | collation_connection     | utf8mb4_general_ci                               | | collation_database       | utf8mb4_general_ci                               | | collation_server         | utf8mb4_general_ci                               | +--------------------------+--------------------------------------------------+ 

Note that the data was created: – from a java application – at the time of data creation, the connection parameters were set to latin1 Also note that there are no FK linked with this table.

When I try to reproduce with some newly created tables, it seems that the rows are not modified. See below “0 rows affected”:

MySQL> select count(*) from mytesttable; +----------+ | count(*) | +----------+ |        3 | +----------+ 3 row in set (0.10 sec) 
MySQL> alter table mytesttable character set utf8; Query OK, 0 rows affected (0.03 sec) Records: 0  Duplicates: 0  Warnings: 0 

I tried to changed my connection parameters back to latin1 during the data creation but it didn’t change the result: still “0 rows affected”.

So my questions: 1) Is my understanding of the command correct? (that it shouldn’t modify the rows) 2) What could explain that the rows are affected in the 1st case?

Thanks a lot for your help

Does the spell Alter Self potentially change the effective hit dice of the caster for the purpose of targeted spells?

In this question, one of the answers claims that using Alter Self might effectively reduce the caster’s hit dice to match the form chosen, thus making a higher-hd creature/character vulnerable to effects with hit dice limitations.

Does Alter Self have that potential effect?

How does this scenario involving polymorph and alter self play out?

We had an interesting scenario pop up at our table. A dwarven runesmith (Races of Stone p.118) with caster level 9, getting ready for a big battle, did the following:

  1. He set all his equipment out on the ground so nothing would be eaten by polymorph
  2. He cast Polymorph and turned into a Behir
  3. He cast Girralon’s Blessing (Spell Compendium p.106) to gain a pair of arms
  4. He cast Fearsome Grapple (Spell Compendium p.90) to gain 2 pairs of tentacles
  5. He cast Fuse Arms (Spell Compendium p.100) for +20 untyped str from the Behir’s 2 extra pairs of claws + everything gained from his spells
  6. He then cast Alter Self and turned back into a dwarf
  7. He put on all his armor and cast Stone Fist for a +6 enhancement bonus to strength
  8. He cast Enlarge Person on himself to become large and get +2 size bonus to strength

All told, he claimed to be a Large Dwarf with 54 strength, 11 dexterity, and 21 constitution.

Does that work? The argument was that alter self transforms you based on your “normal form” which is a dwarf, but it explicitly doesn’t affect any of your ability scores, which are obscenely high from the polymorph. And since he assumed the form of that creature (a humanoid dwarf), it changed his type back from magical beast so he could still cast enlarge person. Is he correct?

How to conditionally alter search api relevance score?

I must be missing some core concept of search API somehow, but I am stuck. The goal is to alter search API results depending on a flag, like Give flagged products in search API a higher search score? however this time without SOLR, but with database backend instead.

I can see all flagged fields properly indexed, so there is a line that associates the content entity id with the user who flagged, and now I want to increase the relevance score of the results, so that items flagged by the current user are always shown first.

I have hijacked the SearchApiDbService class and I did add the following line in postQuery (I also wonder why this hook does not exist, but that is not relevant for now):

drupal_alter('search_api_db_query_results', $  results, $  query); 

This should allow me to alter the search results right before search_api_db hands them over to the search API right?

So now I use the alter hook as follows:

function mymodule_search_api_db_query_results_alter(&$  results, SearchApiQueryInterface $  query) {   global $  user;   $  uid = $  user->uid;    // Fetch a list of content entities that the user has flagged.   $  drupal_db_q = db_select('search_api_db_MY_FLAG_FIELD_TABLE', 'f')     ->fields('f')     ->condition('value', $  uid);   $  items = $  drupal_db_q->execute()->fetchCol();    // Iterate over results and multiply score of flagged items.   foreach ($  results['results'] as $  key => &$  result) {     if (in_array($  key, $  items)) {       $  result['score'] *= 10;     }   }  dpm($  results);  } 

In $ results I can see that the scores have changed, but the order of the items on my views results page has not, even though I am sorting by relevance.

It has to be something simple, or I am completely misunderstanding how the score value works somehow?

p.s. Since this is conditionally I don’t think altering the search api query directly makes sense because I found no way to boost any field scores there. Directions on how to achieve that are welcome too.