This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// separator is what to put between each link. Examples: | |
// - New line: '\n' | |
// - Comma: ', ' | |
// - Pipe: ' | ' | |
const separator = '\n'; | |
// The link for the URL. It must contain a slash at the end. | |
// You cannot use the [List123] links. | |
const listURL = 'https://rateyourmusic.com/list/echance/a-state-of-trance-1/'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let done; | |
do { | |
done = true; | |
Array.from(document.getElementsByClassName('box')) | |
.sort((a, b) => { | |
const [x, y] = [a.innerText, b.innerText]; | |
const cmp = x.localeCompare(y); | |
if (cmp < 0) { | |
done = false; | |
document.getElementById(a.id).parentNode.insertBefore(document.getElementById(a.id), document.getElementById(b.id)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ready on 127.0.0.1:3210 | |
connected | |
query: SELECT current_setting('server_version_num') as ver_num FROM singlerow; | |
response: vsql.Result{ | |
columns: ['VER_NUM'] | |
rows: [vsql.Row{ | |
offset: 0 | |
data: {'VER_NUM': vsql.Value{ | |
typ: CHARACTER VARYING | |
f64_value: 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"fmt" | |
"github.com/elliotchance/gedcom" | |
) | |
func main() { | |
// 1. Load gedcom files. | |
leftGedcom, err := gedcom.NewDocumentFromGEDCOMFile("file1.ged") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class DirtyRead(TransactionTest): | |
def run(self): | |
result1 = self.client1.fetch_record(id=1) | |
self.client2.update_record(id=1, name="Joe 2") | |
result2 = self.client1.fetch_record(id=1) | |
return result1 != result2 | |
class NonRepeatableRead(TransactionTest): | |
def run(self): | |
result1 = self.client1.fetch_record(id=1) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class TransactionTest: | |
def __init__(self, transaction_type): | |
self.table = Table() | |
client = self.table.new_transaction(ReadCommittedTransaction) | |
client.add_record(id=1, name="Joe") | |
client.add_record(id=3, name="Jill") | |
client.commit() | |
self.client1 = self.table.new_transaction(transaction_type) | |
self.client2 = self.table.new_transaction(transaction_type) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class SerializableTransaction(RepeatableReadTransaction): | |
def __init__(self, table, xid): | |
Transaction.__init__(self, table, xid) | |
self.existing_xids = self.table.active_xids.copy() | |
def record_is_visible(self, record): | |
is_visible = ReadCommittedTransaction.record_is_visible(self, record) \ | |
and record['created_xid'] <= self.xid \ | |
and record['created_xid'] in self.existing_xids | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class LockManager: | |
def __init__(self): | |
self.locks = [] | |
def add(self, transaction, record_id): | |
if not self.exists(transaction, record_id): | |
self.locks.append([transaction, record_id]) | |
def exists(self, transaction, record_id): | |
return any(lock[0] is transaction and lock[1] == record_id \ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class RepeatableReadTransaction(ReadCommittedTransaction): | |
def record_is_locked(self, record): | |
return ReadCommittedTransaction.record_is_locked(self, record) or \ | |
self.table.locks.exists(self, record['id']) | |
def record_is_visible(self, record): | |
is_visible = ReadCommittedTransaction.record_is_visible(self, record) | |
if is_visible: | |
self.table.locks.add(self, record['id']) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ReadCommittedTransaction(Transaction): | |
def record_is_locked(self, record): | |
return record['expired_xid'] != 0 and \ | |
row['expired_xid'] in self.table.active_xids | |
def record_is_visible(self, record): | |
# The record was created in active transaction that is not our | |
# own. | |
if record['created_xid'] in self.table.active_xids and \ | |
record['created_xid'] != self.xid: |
NewerOlder