road to refactor

This commit is contained in:
tree🌴 2024-02-12 10:30:05 +01:00
parent 6adc5a9eb7
commit b282afbdbe
6 changed files with 185 additions and 0 deletions

41
.github/workflows/deploy.yml vendored Normal file
View File

@ -0,0 +1,41 @@
name: Build and Deploy
on:
push:
branches:
- main # Set a branch to deploy
pull_request:
permissions:
contents: write
jobs:
build-and-deploy:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: denoland/setup-deno@v1
with:
deno-version: v1.x
- uses: szenius/set-timezone@v1.0
with:
timezoneLinux: "Europe/Prague"
- name: Build bundle
run: make
#- name: Add custom domain
# run: "touch dist/CNAME && echo \"data.web3privacy.info\" >> dist/CNAME"
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
if: ${{ github.ref == 'refs/heads/main' }}
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
dist

2
Makefile Normal file
View File

@ -0,0 +1,2 @@
all:
deno run --allow-all utils/build.js

28
src/2024/week05.md Normal file
View File

@ -0,0 +1,28 @@
### Research
* [Privacy Spreadsheet](https://privacyspreadsheet.com/messaging-apps) comparing different messengers on their privacy properties ([src](https://twitter.com/russian_bot_69/status/1754051913182478683))
* [Passkeys wallet on the EVM](https://medium.com/@salvayre.yoan/passkeys-wallet-on-the-evm-69d4930ea4af) by @slovaye ([src](https://twitter.com/slovaye/status/1754138804909158708))
### Ecosystem
* [Nym x Zcash grant](https://forum.zcashcommunity.com/t/revised-nym-for-zcash-network-level-privacy/46688)
* [Horswap](https://1.horswap.eth.limo/): Uniswap frontend without censorship or interface fees, by @MicahZoltu ([src](https://twitter.com/MicahZoltu/status/1753416705983074668))
* IllumineX (confidental EVM DEX) [launched Mainnet](https://oasisprotocol.org/blog/illuminex-mainnet-oasis-sapphire) on Oasis Sapphire network ([src](https://twitter.com/oasisprotocol/status/1754562811462922606))
### Government
* [NSA Admits Secretly Buying Your Internet Browsing Data without Warrants](https://thehackernews.com/2024/01/nsa-admits-secretly-buying-your.html)
### Breaches
* [Mother of all breaches](https://cybernews.com/security/billions-passwords-credentials-leaked-mother-of-all-breaches/) (MOAB) reveals 26 billion records
### Events
* MoneroKon 2024 started [selling tickets](https://shop.monerokon.org/monerokon/2024/) ([src](https://twitter.com/MoneroKon/status/1752928601299730871))
* ETHBerlin4 [Hacker application](https://visas.ethberlin.org/ethberlin/4/) & [volunteer application](https://office.ethberlin.org/form/#/2/form/view/Jg-FHZYy2RKg7XTJ9pULHii0du1kVQ2QwawZdjkmgCY/) open ([src](https://twitter.com/ETHBerlin/status/1753791403690246348))
### Videos
* [The Great Privacy Awakening](https://www.youtube.com/watch?v=NvyqPec7G-c) by @JackRhysider ([src](https://twitter.com/JackRhysider/status/1752013494810198079))
* [Breaking Bitlocker](https://www.youtube.com/watch?v=wTl4vEednkQ) - Bypassing the Windows Disk Encryption ([src](https://twitter.com/wilderko/status/1754198973303165187))

41
src/2024/week06.md Normal file
View File

@ -0,0 +1,41 @@
---
curator: Tree
---
### Research
* [Week in the Privacy News](https://news.web3privacy.info/): new weekly summary of the most important news from ecosystem
* Pavol Lupták: [Brave is not a true privacy-oriented browser](https://twitter.com/wilderko/status/1755724309371158612)
* Zac Williamson: thread about visions of a [dystopian future when we fail](https://twitter.com/Zac_Aztec/status/1755309412435259657)
* Wired: [experience with Passkeys](https://web.archive.org/web/20240211021321/https://www.wired.com/story/stopped-using-passwords-passkeys/#intcid=_wired-tag-right-rail_be4cde38-940c-4c15-8796-37cb1513d6ae_popular4-1)
### Ecosystem
* Logos, Nomos, Waku, Codex, Status and others now federated under the [Institute of Free Technology](https://free.technology/)
* Binance [Will Delist XMR](https://www.binance.com/en/support/announcement/binance-will-delist-ant-multi-vai-xmr-on-2024-02-20-f73b083ba6834771b07dbe5319917ae5) on 2024-02-20 ([src](https://twitter.com/wilderko/status/1754857029892538430))
* [Binance delisting sparks privacy concerns](https://archive.is/20240209130053/https://www.ft.com/content/971ac694-f250-412c-9fe0-f956378a751a): Financial Times article on Monero delisting
* [Brave Nightly support Zcash](https://twitter.com/brave/status/1756138102395973834) in their integrated wallet (only unshielded transactions for now)
* WalletConnect launches Web3Modal Analytics, showing that they [doesn't mind tracking own users](https://twitter.com/hazae41/status/1755379493609374113)
* Session team announced upcoming [upgrade from Oxen Network to Session Network](https://getsession.org/upgrading-to-session-network)
* Skiff was [acquired by Notion](https://twitter.com/skiffprivacy/status/1756093174806974831) and will wind down its services in 6 months ([src](https://twitter.com/gweicz/status/1756110645064306703))
### Releases
* Brume Wallet [v0.5](https://github.com/brumewallet/wallet/releases/tag/v0.5.0): UI enhancements, added features, faster startup, content creation introduction
### Podcasts
* [War on privacy in Web3?](https://www.podpage.com/epic-web3-podcast/war-on-privacy-in-web3-with-zach-williamson-co-founder-ceo-at-aztec-protocol/): with Zach Williamson, CEO at Aztec Protocol
* [Function of privacy in DeFi](https://twitter.com/therollupco/status/1755052382633787690): @robbie_rollup and Lou Waroo from Houdini Swap, crosschain DEX and liquidity agreggator
* [Drama is the Prime Indicator of Decentralisation](https://www.youtube.com/watch?v=PLJ1DYdae7o&t=1050s): with Dr. Nick Almond from Factory DAO ([src](https://twitter.com/wuipod/status/1756743521296347418))
### Community
* [DAO Privacy](https://twitter.com/i/spaces/1ZkKzjvBLXwKv): X space with Gnosis Guild, Safe, Shutter Network, ShapeShift & Fractal ([src](https://twitter.com/fractalappxyz/status/1753886789402575131))
### Other
* Defunkt: The co-founder and former CEO of GitHub has been [banned from GitHub](https://twitter.com/defunkt/status/1754610843361362360) (without explanation) ([src](https://twitter.com/vpavlin/status/1754792610898587700))
* Citrea: [Bitcoin's first ZK Rollup](https://www.blog.citrea.xyz/introducing-citrea/) ([src](https://twitter.com/citrea_xyz/status/1754883284893356368))
* [Liberation Travel Hacks 02/2024](https://liberation.travel/?mailpoet_router&endpoint=view_in_browser&action=view&data=WzEwLCI0ZjU4NjA1ZWIxMzQiLDAsMCw1LDFd) from Liberation Travel ([subscribe](https://liberation.travel/new-liberation-travel-hacks-month-letter/))
* Canada moves to [ban Flipper Zero](https://gizmodo.com/canada-moves-to-ban-the-flipper-zero-over-car-hacking-f-1851242790) over car hacking fears ([src](https://twitter.com/wilderko/status/1756719463406211357))

72
utils/build.js Normal file
View File

@ -0,0 +1,72 @@
import { join } from "https://deno.land/std@0.208.0/path/mod.ts";
import { emptyDir } from "https://deno.land/std@0.196.0/fs/empty_dir.ts";
import { setWeek, nextMonday, format, addDays } from 'npm:date-fns';
import { marked } from 'npm:marked';
import matter from 'npm:front-matter';
const SRC_DIR = "./src";
const DEST_DIR = "./dist";
async function build() {
const issues = [];
for await (const dirEntry of Deno.readDir(SRC_DIR)) {
if (!dirEntry.isDirectory || !dirEntry.name.match(/^\d{4}$/)) {
continue;
}
//const [fn, ext] = dirEntry.name.split(".");
const year = dirEntry.name;
const yearDir = join(SRC_DIR, year);
console.log(`Processing year: ${year}`);
for await (const dirEntry of Deno.readDir(yearDir)) {
const [fn, ext] = dirEntry.name.split(".");
const weekMatch = fn.match(/^week(\d{2})$/)
if (!weekMatch || ext !== "md") {
continue;
}
const week = weekMatch[1]
const mdPath = join(SRC_DIR, year, dirEntry.name);
const source = await Deno.readTextFile(mdPath);
const issue = {
week: `${year}-${week}`,
period: calcPeriod(year, week),
}
await renderData(issue, source)
issues.push(issue)
}
}
await emptyDir(DEST_DIR);
const outputFn = join(DEST_DIR, "index.json");
await writeJSONFile(outputFn, issues);
}
async function renderData(issue, source) {
const fm = matter(source);
const parsed = marked.parse(fm.body);
return Object.assign(issue, fm.attributes, { newsMd: fm.body, newsHtml: parsed });
//const fm = matter(issue.source)
//console.log(fm)
//console.log(parsed)
//return
}
function calcPeriod(year, week) {
const weekStart = setWeek(nextMonday(new Date(Number(year), 0, 4)), Number(week), {
weekStartsOn: 1,
firstWeekContainsDate: 4,
});
const weekEnd = addDays(weekStart, 6);
return [ weekStart, weekEnd ];
}
async function writeJSONFile(fn, data) {
console.log(`File written: ${fn}`);
return Deno.writeTextFile(fn, JSON.stringify(data, null, 2));
}
build();