Update plan generator, speakers: add Josef Tetek
This commit is contained in:
rodič
c1950e833b
revize
f7b78a11fa
|
@ -21,6 +21,19 @@
|
|||
- práce
|
||||
- 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
|
||||
type: panel
|
||||
name: NFT a Metaverse [TBD]
|
||||
|
@ -223,6 +236,8 @@
|
|||
Aneb příběh o tom, jak jsem mohl být BTC milionář, ale nejsem :)
|
||||
tags:
|
||||
- Bitcoin
|
||||
fixed:
|
||||
stage: rajska-zahrada
|
||||
|
||||
- id: kdyz-byl-bitcoin-jeste-divoky-zapad
|
||||
type: talk
|
||||
|
@ -389,6 +404,8 @@
|
|||
tags:
|
||||
- regulace
|
||||
- daně
|
||||
fixed:
|
||||
stage: rajska-zahrada
|
||||
|
||||
- id: jan-krypto-zmenilo-zabehle-firemni-struktury
|
||||
type: talk
|
||||
|
@ -901,6 +918,8 @@
|
|||
- finanční svoboda
|
||||
- volný trh
|
||||
- soukromí
|
||||
after:
|
||||
- eticky-vekslak
|
||||
|
||||
- id: bezpecnost-workshop
|
||||
type: workshop
|
||||
|
@ -1030,8 +1049,6 @@
|
|||
speakers: [ m0xt, petr-klein, radek-svarz ]
|
||||
duration: 50
|
||||
difficulty: beginner
|
||||
after:
|
||||
- apus
|
||||
tags:
|
||||
- půjčky
|
||||
- DeFi
|
||||
|
@ -1046,7 +1063,7 @@
|
|||
duration: 50
|
||||
difficulty: beginner
|
||||
after:
|
||||
- uvod-do-near
|
||||
- uvod-near
|
||||
tags:
|
||||
- NEAR
|
||||
|
||||
|
@ -1153,6 +1170,8 @@
|
|||
- Metaverse
|
||||
- NFT
|
||||
- VR
|
||||
after:
|
||||
- somnium-space-talk
|
||||
|
||||
- id: btc-full-node-workshop
|
||||
type: workshop
|
||||
|
@ -1634,7 +1653,6 @@
|
|||
track: zaklady
|
||||
speakers: [ vladimir-pinker ]
|
||||
duration: 30
|
||||
difficulty: beginner
|
||||
tags:
|
||||
- letectví
|
||||
|
||||
|
@ -1643,11 +1661,18 @@
|
|||
name: Žijeme bez fiatu
|
||||
track: zaklady
|
||||
speakers: [ vladimir-pinker ]
|
||||
duration: 55
|
||||
difficulty: beginner
|
||||
duration: 60
|
||||
tags:
|
||||
- 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í
|
||||
# ==========================
|
||||
|
|
Binární soubor nebyl zobrazen.
Za Šířka: | Výška: | Velikost: 32 KiB |
|
@ -952,3 +952,11 @@
|
|||
|
||||
Č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 ]
|
||||
|
|
|
@ -9,41 +9,41 @@
|
|||
- id: sloupcovy-sal
|
||||
types: [ talk, lightning-series ]
|
||||
times:
|
||||
- '1/09:30-13:00'
|
||||
- '1/09:30-13:30'
|
||||
- '1/14:00-19:00'
|
||||
- '2/10:00-13:00'
|
||||
- '2/10:00-13:30'
|
||||
- '2/14:00-18:30'
|
||||
|
||||
- id: lustrovy-sal
|
||||
types: [ talk, panel, lightning-series ]
|
||||
times:
|
||||
- '1/09:30-13:00'
|
||||
- '1/09:30-13:30'
|
||||
- '1/14:00-19:00'
|
||||
- '2/10:00-13:00'
|
||||
- '2/10:00-13:30'
|
||||
- '2/14:00-18:30'
|
||||
|
||||
- id: exit-room
|
||||
types: [ talk ]
|
||||
times:
|
||||
- '1/09:30-13:00'
|
||||
- '1/09:30-13:30'
|
||||
- '1/14:00-19:00'
|
||||
- '2/10:00-13:00'
|
||||
- '2/10:00-13:30'
|
||||
- '2/14:00-18:30'
|
||||
|
||||
- id: knihovna
|
||||
types: [ workshop ]
|
||||
times:
|
||||
- '1/09:30-13:00'
|
||||
- '1/09:30-13:30'
|
||||
- '1/14:00-19:00'
|
||||
- '2/10:00-13:00'
|
||||
- '2/10:00-13:30'
|
||||
- '2/14:00-18:30'
|
||||
|
||||
- id: white-workshop-room
|
||||
types: [ workshop ]
|
||||
times:
|
||||
- '1/09:30-13:00'
|
||||
- '1/09:30-13:30'
|
||||
- '1/14:00-19:00'
|
||||
- '2/10:00-13:00'
|
||||
- '2/10:00-13:30'
|
||||
- '2/14:00-18:30'
|
||||
|
||||
- id: campfire-outdoor
|
||||
|
|
|
@ -46,16 +46,16 @@ class UTXOPlanner {
|
|||
stage.timesFull = stage.times.map((st) => this.parsePeriod(st));
|
||||
}
|
||||
for (const ev of this.events) {
|
||||
const haveAfter = this.events.find((e) =>
|
||||
e.after === ev.id || e.rightAfter === ev.id
|
||||
);
|
||||
ev.priority = haveAfter ? 10 : (ev.after || ev.rightAfter ? 5 : 0);
|
||||
const haveAfter = this.events.filter((e) => {
|
||||
return ((e.after && e.after.includes(ev.id)) || e.rightAfter === ev.id)
|
||||
});
|
||||
ev.priority = haveAfter.length > 0 ? 10 : (ev.after || ev.rightAfter ? 5 : 0);
|
||||
|
||||
if (ev.type === "lightning-series") {
|
||||
let sarr = [];
|
||||
for (
|
||||
const sp of this.eventsAll.filter((e) => e.parent === ev.id).map(
|
||||
(e) => e.speakers
|
||||
(e) => e.speakers,
|
||||
)
|
||||
) {
|
||||
sarr = sarr.concat(sp);
|
||||
|
@ -149,6 +149,18 @@ class UTXOPlanner {
|
|||
}
|
||||
|
||||
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"
|
||||
if (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 ev = events[rand];
|
||||
|
||||
const availStages = this.stages.filter((st) => st.types.includes(ev.type))
|
||||
.map((s) => s.id);
|
||||
if (availStages.length === 0) {
|
||||
if (!this.tries[ev.id]) {
|
||||
this.tries[ev.id] = 0;
|
||||
}
|
||||
this.tries[ev.id]++;
|
||||
if (this.tries[ev.id] > 30) {
|
||||
this.events.splice(this.events.indexOf(ev), 1);
|
||||
this.unscheduled.push(ev.id);
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!this.tries[ev.id]) {
|
||||
this.tries[ev.id] = 0;
|
||||
}
|
||||
this.tries[ev.id]++;
|
||||
if (this.tries[ev.id] > 10) {
|
||||
const availStages = this.stages.filter((st) => st.types.includes(ev.type))
|
||||
.map((s) => s.id);
|
||||
if (availStages.length === 0) {
|
||||
this.events.splice(this.events.indexOf(ev), 1);
|
||||
this.unscheduled.push(ev.id);
|
||||
return null;
|
||||
|
|
Načítá se…
Odkázat v novém úkolu