Skip to content

Instantly share code, notes, and snippets.

View 0x8f701's full-sized avatar
🎯
The internet is sick

CJ 0x8f701

🎯
The internet is sick
View GitHub Profile
@0x8f701
0x8f701 / blake3.basm
Created February 23, 2024 05:57 — forked from cf/blake3.basm
Blake3 for the Bitcoin VM
This file has been truncated, but you can view the full file.
// Blake 3 for Bitcoin Core
/*
Copyright 2024 Carter Feldman
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WIT
/*
Multiplication using U15 Arithmetic
X = a*2^15 + b
Y = c*2^15 + d
Z = X*Y = e*2^45+f*2^30+g*2^15+h
Solve for e,f,g,h such that e,f,g,h are each less than 2^15
h = (b*d).lo
g = ((a*d).lo+(b*d).hi)+(b*c).lo
@0x8f701
0x8f701 / cell-tests.rs
Created October 25, 2023 13:10 — forked from jonhoo/cell-tests.rs
cell-refcell-rc
// these aren't _quite_ functional tests,
// and should all be compile_fail,
// but may be illustrative
#[test]
fn concurrent_set() {
use std::sync::Arc;
let x = Arc::new(Cell::new(42));
let x1 = Arc::clone(&x);
std::thread::spawn(move || {
@0x8f701
0x8f701 / cmu_course.md
Created July 17, 2023 10:30 — forked from Ulu2005/cmu_course.md
CMU CS Course Info

#CMU Course Info 整理自一亩三分地

##08722 – Data Structurefor application programmers 这门课主要是开给EBIZ和MISM的,在MISM那边的课号是95772. 但是很多ECE, INI的同学,以及咱ME转CS帮都在上这门课。这门课只有半学期,一共6个credits,相当于1.5学分。内容非常基础,但是我觉得帮助挺大的,对于非CS科班出身想转CS的同学非常建议上一下, 基础越弱收获越大,要是基础比较硬的话就不用上了。LZ上的其它CS的课几乎都是各种牛校的PHD出身,这门课的老师好像都没有PHD学位,肯定没法去上15的课,但是讲课挺用心,讲的也很清楚。讲课这东西真的不是老师自己越牛就讲的越好。尤其数据结构这种比较基础的内容。这门课从最简单的内容讲起,包括array, arraylist, linked list, stack, queue,sorting(bubble, selection, insertion, merge, quick, heap), hashTable, hashMap,hashSet, BST, TreeMap, TreeSet, Huffman coding, Heap. 每周一次quiz, lab, homework。讲的时候内容都围绕Java Collection 来讲,还涉及与collection有关的comparator, iterator 等内容。这门课完全就是针对面试的,作业要求先手写代码(虽然大部分时候都是先ECLIPSE敲好再抄到纸上的)。

6次homework,前面的非常简单,后面稍微麻烦一点,难度都不大,就是让你去熟悉这些数据结构能自己implement,也能用JAVA COLLECTION。

  1. 自己implement 一个 arraylist 实现各种要求
  2. Queue, stack 的implement和应用
@0x8f701
0x8f701 / no_std-guide.md
Created February 24, 2023 06:22 — forked from tdelabro/no_std-guide.md
How to easely port a crate to `no_std`?

What is Rust's standard library?

One of the Rust programming language promises is "zero-cost abstraction". Therefore the language itself is pretty conservative about what it incorporates. Types that are basics in other languages, such as string, or features, such as async, cannot be part of the language itself because they are costly abstractions. The user may not need them at all, or he may prefer other alternative implementations. To make those types and functions available nonetheless, they are available as part of the Rust standard library, known as std. Part of this library, known as the prelude is imported by default in each .rs file so you don't have to repeat yourself too much.

Why would you want a no_std version of your crate?

Most of the time having this standard library available is not a problem because you run your code on a pretty standard environment: your own computer or a Linux server somewhere in the cloud. However, somet

@0x8f701
0x8f701 / Keplr.tsx
Last active December 25, 2022 13:47
cosmjs-homework
import {
assertIsDeliverTxSuccess,
SigningStargateClient,
} from '@cosmjs/stargate'
import type { ChainInfo } from '@keplr-wallet/types'
import React, { useEffect, useState } from 'react'
import osmo from '../config/osmosis'
function Keplr() {
const [chain, setChain] = useState<ChainInfo>(osmo)
@0x8f701
0x8f701 / macos_on_ubuntu.md
Created February 13, 2021 12:23 — forked from tieubao/macos_on_ubuntu.md
Install macOS in a VirtualBox machine on Ubuntu

Important: I'm writing this when the last version of macOS (and the one I have installed) is Mojave. There is already a script which installs Mojave in a virtual machine here https://github.com/img2tab/okiomov. But if you are curios how to do everything manually to install High Sierra, then this guide may be useful.

After reading a few articles I ended up with these steps:

  1. On macOS, download the High Sierra installer (even if you have Mojave installed): https://itunes.apple.com/us/app/macos-high-sierra/id1246284741?ls=1&mt=12
  2. If the High Sierra Installer starts, quit it.
  3. Open "Disk Utility".
  4. Click on "File" > "New Image" > "Blank image...". Or just press cmd+N.
@0x8f701
0x8f701 / RA and Rustc mbe Design.md
Created December 30, 2020 01:13 — forked from edwin0cheng/RA and Rustc mbe Design.md
RA and rustc macro by examples design

RA

  • ra do not have a TokenStream object
  • ra do not have a SyntaxExtension object
    • SyntaxExtension is a rustc enum, representing the different kinds of syntax extensions.
    • link
  • The current parser implementation about MacroCall:
    • When it see a MACRO_CALL, it just bump all lexer's SyntaxKind to rowan and build a rowan::SyntaxNode
    • Although we have a ra_tt::TokenTree (not confused with ra_tt::TokenTree), we only generate it during macro parsing and expansion.
@0x8f701
0x8f701 / db_backup_commands.md
Created October 12, 2020 19:17 — forked from AtulKsol/db_backup_commands.md
Commands to backup & restore database
  1. pg_dump is a nifty utility designed to output a series of SQL statements that describes the schema and data of your database. You can control what goes into your backup by using additional flags.
    Backup: pg_dump -h localhost -p 5432 -U postgres -d mydb > backup.sql

    Restore: psql -h localhost -p 5432 -U postgres -d mydb < backup.sql

    -h is for host.
    -p is for port.
    -U is for username.
    -d is for database.

@0x8f701
0x8f701 / countries.sql
Created August 21, 2020 12:35 — forked from ereli/countries.sql
Sql dump of all the Countries, Country Codes, Phone codes. PostgreSQL compatible
CREATE SEQUENCE country_seq;
CREATE TABLE IF NOT EXISTS country (
id int NOT NULL DEFAULT NEXTVAL ('country_seq'),
iso char(2) NOT NULL,
name varchar(80) NOT NULL,
nicename varchar(80) NOT NULL,
iso3 char(3) DEFAULT NULL,
numcode smallint DEFAULT NULL,
phonecode int NOT NULL,