[arXiv]
Authors: Gengmo Zhou, Zhifeng Gao, Zhewei Wei, Hang Zheng, Guolin Ke
We revisit the benchmark after simple traditional algorithms beat deep learning methods in conformation generation.
Data
[arXiv]
Authors: Gengmo Zhou, Zhifeng Gao, Zhewei Wei, Hang Zheng, Guolin Ke
We revisit the benchmark after simple traditional algorithms beat deep learning methods in conformation generation.
Data
#!/bin/sh | |
if [ "$(whoami)" != "root" ]; then | |
echo "Please run this script as root." | |
exit | |
fi | |
printf "This script will\n\n- Remove Snap\n- Install the deb version of Firefox\n- Install Flatpak\n- Optionally replace Ubuntu Desktop with GNOME\n\n" | |
read -p "Continue? (Y/n) " start_prompt | |
case $start_prompt in | |
[nN] | [nN][oO] ) | |
exit |
A lot of people mentioned other immutable JS libraries after reading my post. I thought it would be good to make a list of available ones.
There are two types of immutable libraries: simple helpers for copying JavaScript objects, and actual persistent data structure implementations. My post generally analyzed the tradeoffs between both kinds of libraries and everything applies to the below libraries in either category.
Libraries are sorted by github popularity.
const addFrameConsciousEvent = (obj, event, handler) => { //adapted from: https://developer.mozilla.org/en-US/docs/Web/Events/resize#Example | |
let isRunning = false; | |
const handlerWrapper = (e)=> { | |
if (!isRunning){ | |
isRunning = true; | |
requestAnimationFrame(()=>{ //throttling so only execute when the browser is ready to re-render | |
isRunning = false; | |
handler(e); | |
}) |
/** | |
* Concatenates N arrays without dups. | |
* If an array's item is an Object, compare by `value` | |
* @param {*} k | |
*/ | |
export const concatWithoutDups = (...key) => { | |
const result = (...args) => { | |
const newArr = [], | |
existingObj = {}; |
const removeStyleProp = (elm, prop) => | |
elm.style.cssText = elm.style.cssText // cssText automatically (luckily) adds spaces between declarations | |
.split('; ') | |
.filter(p => !p.startsWith(prop) ) | |
.join(';'); |
/***** ceil ******/ | |
/* For a value between 0 - 1, where 1 is the maximum possible */ | |
--ceil: clamp(0, calc((1 - var(--value)) * 100), 1); | |
/***** floor ******/ | |
/* For a value between 0 - 1, where 1 is the maximum possible, use a value just a tiny bit below the maximum for the | |
math to work, so the output will be either positive or negative when magnified by a factor of 999999*/ |
-- show running queries (pre 9.2) | |
SELECT procpid, age(clock_timestamp(), query_start), usename, current_query | |
FROM pg_stat_activity | |
WHERE current_query != '<IDLE>' AND current_query NOT ILIKE '%pg_stat_activity%' | |
ORDER BY query_start desc; | |
-- show running queries (9.2) | |
SELECT pid, age(clock_timestamp(), query_start), usename, query | |
FROM pg_stat_activity | |
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%' |