duplicates = multiple editions
A Classical Introduction to Modern Number Theory, Kenneth Ireland Michael Rosen
A Classical Introduction to Modern Number Theory, Kenneth Ireland Michael Rosen
using System; | |
using System.Linq; | |
using Autofac; | |
using Autofac.Core; | |
using NLog; | |
using log4net; | |
using LogManager = NLog.LogManager; | |
namespace AutofacIdea | |
{ |
14:02 * josephg reads up | |
14:03 < josephg> koppor, rawtaz: ShareJS does all the actual OT | |
14:03 < josephg> racer is now a wrapper around it which does things like refs, reflists | |
14:03 < josephg> ... it manages subscriptions for you (so if you change pages, you don't have to manually unsubscribe) | |
14:03 < josephg> stuff like that. | |
14:03 < josephg> ShareJS just does the document editing. | |
14:04 < josephg> Redis is currently important for 3 things: | |
14:05 < josephg> - We need to be able to atomically append to the op log. We're using redis's lua scripting to do atomic commits | |
14:05 < josephg> - Redis is also used for pubsub between your backend servers | |
14:05 < josephg> (well, between your servers) |
// TLDR: Oi, Barnes. We'll miss ya. Here's a grimy RNG in your honor. | |
// node oi.js or paste the below into your favorite browser's JS console. | |
// DEFCON CHALLENGE: Break this! | |
function millis() { return Date.now(); } | |
function flip_coin() { n=0; then = millis()+1; while(millis()<=then) { n=!n; } return n; } | |
function get_fair_bit() { while(1) { a=flip_coin(); if(a!=flip_coin()) { return(a); } } } | |
function get_random_byte(){ n=0; bits=8; while(bits--){ n<<=1; n|=get_fair_bit(); } return n; } | |
report_console = function() { while(1) { console.log(get_random_byte()); }} |
// First, load jQuery: | |
var jq = document.createElement('script'); | |
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"; | |
document.getElementsByTagName('head')[0].appendChild(jq); | |
//////////////////////////////////////////////////////////////////////////// | |
// Remove all disliked songs: | |
for (const el of $('ytmusic-responsive-list-item-renderer:has([like-status="DISLIKE"])').get()) { | |
el.dispatchEvent(new MouseEvent('contextmenu')); |