Update plan generator, speakers: add Josef Tetek

This commit is contained in:
tree 2022-05-15 04:00:34 +02:00
rodič c1950e833b
revize f7b78a11fa
5 změnil soubory, kde provedl 74 přidání a 29 odebrání

Zobrazit soubor

@ -21,6 +21,19 @@
- práce - práce
- finanční nezávislost - finanční nezávislost
- id: btc-vs-altcoiny
type: panel
name: Bitcoin vs. altcoiny [TBD]
speakers:
- josef-tetek
- david-stancel
duration: 85
difficulty: beginner
track: btc
tags:
- Bitcoin
- Ethereum
- id: nft-metaverse-panel - id: nft-metaverse-panel
type: panel type: panel
name: NFT a Metaverse [TBD] name: NFT a Metaverse [TBD]
@ -223,6 +236,8 @@
Aneb příběh o tom, jak jsem mohl být BTC milionář, ale nejsem :) Aneb příběh o tom, jak jsem mohl být BTC milionář, ale nejsem :)
tags: tags:
- Bitcoin - Bitcoin
fixed:
stage: rajska-zahrada
- id: kdyz-byl-bitcoin-jeste-divoky-zapad - id: kdyz-byl-bitcoin-jeste-divoky-zapad
type: talk type: talk
@ -389,6 +404,8 @@
tags: tags:
- regulace - regulace
- daně - daně
fixed:
stage: rajska-zahrada
- id: jan-krypto-zmenilo-zabehle-firemni-struktury - id: jan-krypto-zmenilo-zabehle-firemni-struktury
type: talk type: talk
@ -901,6 +918,8 @@
- finanční svoboda - finanční svoboda
- volný trh - volný trh
- soukromí - soukromí
after:
- eticky-vekslak
- id: bezpecnost-workshop - id: bezpecnost-workshop
type: workshop type: workshop
@ -1030,8 +1049,6 @@
speakers: [ m0xt, petr-klein, radek-svarz ] speakers: [ m0xt, petr-klein, radek-svarz ]
duration: 50 duration: 50
difficulty: beginner difficulty: beginner
after:
- apus
tags: tags:
- půjčky - půjčky
- DeFi - DeFi
@ -1046,7 +1063,7 @@
duration: 50 duration: 50
difficulty: beginner difficulty: beginner
after: after:
- uvod-do-near - uvod-near
tags: tags:
- NEAR - NEAR
@ -1153,6 +1170,8 @@
- Metaverse - Metaverse
- NFT - NFT
- VR - VR
after:
- somnium-space-talk
- id: btc-full-node-workshop - id: btc-full-node-workshop
type: workshop type: workshop
@ -1634,7 +1653,6 @@
track: zaklady track: zaklady
speakers: [ vladimir-pinker ] speakers: [ vladimir-pinker ]
duration: 30 duration: 30
difficulty: beginner
tags: tags:
- letectví - letectví
@ -1643,11 +1661,18 @@
name: Žijeme bez fiatu name: Žijeme bez fiatu
track: zaklady track: zaklady
speakers: [ vladimir-pinker ] speakers: [ vladimir-pinker ]
duration: 55 duration: 60
difficulty: beginner
tags: tags:
- finanční nezávislost - finanční nezávislost
- id: students-for-liberty-campfire
type: campfire
name: Students for liberty CZ campfire [TBD]
track: spolecnost
speakers: []
duration: 60
tags: []
# Ostatní # Ostatní
# ========================== # ==========================

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 32 KiB

Zobrazit soubor

@ -952,3 +952,11 @@
Člen týmu firmy ChainKeepers, spolupracuje na tvorbě lineupu technické sekce brněnského blockchain meetupu. Člen týmu firmy ChainKeepers, spolupracuje na tvorbě lineupu technické sekce brněnského blockchain meetupu.
- id: josef-tetek
name: Josef Tětek
twitter: SatsJoseph
bio: Ekonom s dlouhodobým zájmem o podstatu peněz a bitcoin
orgs: |
Bitcoin ambassador @ [Trezor](https://trezor.io/), přispěvatel do [Bitcoin Magazine](https://bitcoinmagazine.com/)
country: cz
tracks: [ btc ]

Zobrazit soubor

@ -9,41 +9,41 @@
- id: sloupcovy-sal - id: sloupcovy-sal
types: [ talk, lightning-series ] types: [ talk, lightning-series ]
times: times:
- '1/09:30-13:00' - '1/09:30-13:30'
- '1/14:00-19:00' - '1/14:00-19:00'
- '2/10:00-13:00' - '2/10:00-13:30'
- '2/14:00-18:30' - '2/14:00-18:30'
- id: lustrovy-sal - id: lustrovy-sal
types: [ talk, panel, lightning-series ] types: [ talk, panel, lightning-series ]
times: times:
- '1/09:30-13:00' - '1/09:30-13:30'
- '1/14:00-19:00' - '1/14:00-19:00'
- '2/10:00-13:00' - '2/10:00-13:30'
- '2/14:00-18:30' - '2/14:00-18:30'
- id: exit-room - id: exit-room
types: [ talk ] types: [ talk ]
times: times:
- '1/09:30-13:00' - '1/09:30-13:30'
- '1/14:00-19:00' - '1/14:00-19:00'
- '2/10:00-13:00' - '2/10:00-13:30'
- '2/14:00-18:30' - '2/14:00-18:30'
- id: knihovna - id: knihovna
types: [ workshop ] types: [ workshop ]
times: times:
- '1/09:30-13:00' - '1/09:30-13:30'
- '1/14:00-19:00' - '1/14:00-19:00'
- '2/10:00-13:00' - '2/10:00-13:30'
- '2/14:00-18:30' - '2/14:00-18:30'
- id: white-workshop-room - id: white-workshop-room
types: [ workshop ] types: [ workshop ]
times: times:
- '1/09:30-13:00' - '1/09:30-13:30'
- '1/14:00-19:00' - '1/14:00-19:00'
- '2/10:00-13:00' - '2/10:00-13:30'
- '2/14:00-18:30' - '2/14:00-18:30'
- id: campfire-outdoor - id: campfire-outdoor

Zobrazit soubor

@ -46,16 +46,16 @@ class UTXOPlanner {
stage.timesFull = stage.times.map((st) => this.parsePeriod(st)); stage.timesFull = stage.times.map((st) => this.parsePeriod(st));
} }
for (const ev of this.events) { for (const ev of this.events) {
const haveAfter = this.events.find((e) => const haveAfter = this.events.filter((e) => {
e.after === ev.id || e.rightAfter === ev.id return ((e.after && e.after.includes(ev.id)) || e.rightAfter === ev.id)
); });
ev.priority = haveAfter ? 10 : (ev.after || ev.rightAfter ? 5 : 0); ev.priority = haveAfter.length > 0 ? 10 : (ev.after || ev.rightAfter ? 5 : 0);
if (ev.type === "lightning-series") { if (ev.type === "lightning-series") {
let sarr = []; let sarr = [];
for ( for (
const sp of this.eventsAll.filter((e) => e.parent === ev.id).map( const sp of this.eventsAll.filter((e) => e.parent === ev.id).map(
(e) => e.speakers (e) => e.speakers,
) )
) { ) {
sarr = sarr.concat(sp); sarr = sarr.concat(sp);
@ -149,6 +149,18 @@ class UTXOPlanner {
} }
eventSlotValidator(ev, slot, stage) { eventSlotValidator(ev, slot, stage) {
// check "after"
if (ev.after) {
for (const tId of ev.after) {
const target = this.schedule.find(si => si.event === tId)
if (!target) {
return false;
}
if (target.period.end.getTime() > slot.start.getTime()) {
return false;
}
}
}
// check "rightAfter" // check "rightAfter"
if (ev.rightAfter) { if (ev.rightAfter) {
const target = this.schedule.find((si) => si.event === ev.rightAfter); const target = this.schedule.find((si) => si.event === ev.rightAfter);
@ -210,19 +222,19 @@ class UTXOPlanner {
const rand = Math.floor(Math.random() * events.length); const rand = Math.floor(Math.random() * events.length);
const ev = events[rand]; const ev = events[rand];
const availStages = this.stages.filter((st) => st.types.includes(ev.type)) if (!this.tries[ev.id]) {
.map((s) => s.id); this.tries[ev.id] = 0;
if (availStages.length === 0) { }
this.tries[ev.id]++;
if (this.tries[ev.id] > 30) {
this.events.splice(this.events.indexOf(ev), 1); this.events.splice(this.events.indexOf(ev), 1);
this.unscheduled.push(ev.id); this.unscheduled.push(ev.id);
return null; return null;
} }
if (!this.tries[ev.id]) { const availStages = this.stages.filter((st) => st.types.includes(ev.type))
this.tries[ev.id] = 0; .map((s) => s.id);
} if (availStages.length === 0) {
this.tries[ev.id]++;
if (this.tries[ev.id] > 10) {
this.events.splice(this.events.indexOf(ev), 1); this.events.splice(this.events.indexOf(ev), 1);
this.unscheduled.push(ev.id); this.unscheduled.push(ev.id);
return null; return null;