Skip to content

Latest commit

 

History

History
805 lines (527 loc) · 48.5 KB

2021-03-20.md

File metadata and controls

805 lines (527 loc) · 48.5 KB

< 2021-03-20 >

2,470,880 events, 1,227,868 push events, 1,734,699 commit messages, 138,592,266 characters

Saturday 2021-03-20 00:23:38 by Jean-Paul R. Soucy

New data: 2021-03-19. See data notes.

Revise historical data: cases (BC, MB, ON, SK).

Note regarding deaths added in QC today: “11 new deaths, for a total of 10,587 deaths: 1 death in the last 24 hours, 5 deaths between March 12 and March 17, 4 deaths before March 12, 1 death at an unknown date.” We report deaths such that our cumulative regional totals match today’s values. This sometimes results in extra deaths with today’s date when older deaths are removed.

Recent changes:

2021-01-27: Due to the limit on file sizes in GitHub, we implemented some changes to the datasets today, mostly impacting individual-level data (cases and mortality). Changes below:

  1. Individual-level data (cases.csv and mortality.csv) have been moved to a new directory in the root directory entitled “individual_level”. These files have been split by calendar year and named as follows: cases_2020.csv, cases_2021.csv, mortality_2020.csv, mortality_2021.csv. The directories “other/cases_extra” and “other/mortality_extra” have been moved into the “individual_level” directory.
  2. Redundant datasets have been removed from the root directory. These files include: recovered_cumulative.csv, testing_cumulative.csv, vaccine_administration_cumulative.csv, vaccine_distribution_cumulative.csv, vaccine_completion_cumulative.csv. All of these datasets are currently available as time series in the directory “timeseries_prov”.
  3. The file codebook.csv has been moved to the directory “other”.

We appreciate your patience and hope these changes cause minimal disruption. We do not anticipate making any other breaking changes to the datasets in the near future. If you have any further questions, please open an issue on GitHub or reach out to us by email at ccodwg [at] gmail [dot] com. Thank you for using the COVID-19 Canada Open Data Working Group datasets.

  • 2021-01-24: The columns "additional_info" and "additional_source" in cases.csv and mortality.csv have been abbreviated similar to "case_source" and "death_source". See note in README.md from 2021-11-27 and 2021-01-08.

Vaccine datasets:

  • 2021-01-19: Fully vaccinated data have been added (vaccine_completion_cumulative.csv, timeseries_prov/vaccine_completion_timeseries_prov.csv, timeseries_canada/vaccine_completion_timeseries_canada.csv). Note that this value is not currently reported by all provinces (some provinces have all 0s).
  • 2021-01-11: Our Ontario vaccine dataset has changed. Previously, we used two datasets: the MoH Daily Situation Report (https://www.oha.com/news/updates-on-the-novel-coronavirus), which is released weekdays in the evenings, and the “COVID-19 Vaccine Data in Ontario” dataset (https://data.ontario.ca/dataset/covid-19-vaccine-data-in-ontario), which is released every day in the mornings. Because the Daily Situation Report is released later in the day, it has more up-to-date numbers. However, since it is not available on weekends, this leads to an artificial “dip” in numbers on Saturday and “jump” on Monday due to the transition between data sources. We will now exclusively use the daily “COVID-19 Vaccine Data in Ontario” dataset. Although our numbers will be slightly less timely, the daily values will be consistent. We have replaced our historical dataset with “COVID-19 Vaccine Data in Ontario” as far back as they are available.
  • 2020-12-17: Vaccination data have been added as time series in timeseries_prov and timeseries_hr.
  • 2020-12-15: We have added two vaccine datasets to the repository, vaccine_administration_cumulative.csv and vaccine_distribution_cumulative.csv. These data should be considered preliminary and are subject to change and revision. The format of these new datasets may also change at any time as the data situation evolves.

https://www.quebec.ca/en/health/health-issues/a-z/2019-coronavirus/situation-coronavirus-in-quebec/#c47900

Note about SK data: As of 2020-12-14, we are providing a daily version of the official SK dataset that is compatible with the rest of our dataset in the folder official_datasets/sk. See below for information about our regular updates.

SK transitioned to reporting according to a new, expanded set of health regions on 2020-09-14. Unfortunately, the new health regions do not correspond exactly to the old health regions. Additionally, the provided case time series using the new boundaries do not exist for dates earlier than August 4, making providing a time series using the new boundaries impossible.

For now, we are adding new cases according to the list of new cases given in the “highlights” section of the SK government website (https://dashboard.saskatchewan.ca/health-wellness/covid-19/cases). These new cases are roughly grouped according to the old boundaries. However, health region totals were redistributed when the new boundaries were instituted on 2020-09-14, so while our daily case numbers match the numbers given in this section, our cumulative totals do not. We have reached out to the SK government to determine how this issue can be resolved. We will rectify our SK health region time series as soon it becomes possible to do so.


Saturday 2021-03-20 00:30:09 by Philip Patsch

feat(socket): Add a native daemon/client protocol

tl;dr: varlink bad, serde good, use LORRI_BACKEND=native to make lorri daemon and lorri internal ping use the serde-based protocol. All the other commands to follow.


This re-adds a slightly modified version of the native communication
protocol between lorri server and client(s) that was removed in
b0cbe27c4b762bef8d820cd146da75392e1880c5 in favor of a varlink-based
RPC format.

I was skeptical back when it was introduced, since the arguments in
favor of varlink where mostly “we don’t have to maintain any custom
socket code” and “RPC is better than whatever the current socket
protocol does”, without actually trying to work with the existing
socket code first.

As it turns out, varlink has multiple weaknesss that make working with
it a pain in the ass:

1. It is JSON-based.

Thus is cannot encode arbitrary bytes like filepaths. lorri is full of
filepaths. Every event that happens contains filepaths. Also program
output. Which is also random bytes.

Which lead to hundreds of `TryFrom` instances which convert paths to
utf-8, crashing lorri in case they are not utf-8 clean. Also all these
conversions from and to strings were written by hand.

There is a format that can encode arbitrary rust structs and enums,
and it’s used by most rust code that does any serialization, it’s
called serde. It has a binary representation and also a json one if
you really need the debuggability. Which brings us to

2. Varlink is a format made for public interfaces

It is based on the assumption that there is external consumers of the
API which want to auto-generate some code to talk to it. But the lorri
server/client protocol is not that. It’s internal. We don’t want to
talk to other tools through this API, we want to talk to a lorri
client/daemon of exactly the same version.

Yes, we have `lorri internal stream-events`, which is a prototype of
an external interface to the build events, and which currently uses
varlink, but that is entirely an implementation detail. In fact, how
the client (`stream-events`) talks to the server (`lorri daemon`) and
how it prints those messages to the user should probably be different
data types in the first place anyway, so that we can maintain
backwards-compat while being able to refactor internally.

3. Varlink does not understand ADTs and rust enums

Json does not do enums. There is a bunch of encodings for them, and
they can also be done manually, but varlink is a “protocol” written by
go programmers, who do not know how ADTs work generally. Thus it does
not have any good enum type. Thus we need to manually encode/decode
enums into the format it understands. There is a rust library which
does this automatically, serde.

4. Varlink has bad documentation, no specification, and little users

Initially when we introduced it, it might have looked as if varlink
was picking up steam, but the simple fact is that varlink
documentation is very sparse, and hasn’t been improved since we first
introduced it in 2019. Probably because there is a bunch of formats
with better adoption out there that actually can encode public APIs
and have tooling to support things like versioning, like protobuf or
thrift.

Also the part that varlink uses a custom format, and the EBNF is the
best you get, no examples of usage, no patterns, no FAQ.

Q: So why not switch to protobuf?

A: It was an idea, and may yet be a good idea, but only for the public
interface of lorri. For the internal interface where we essentially
have a unix socket that `accept()`s in a loop, and can require users
to keep the version of the server and client in exact sync, there is
little reason to introduce manual encoding and parsing steps that come
with the benefit of backward/forward compat.

Q: Why is this so much code?

A: The code, as the one that was originally replaced, has a module
that describes a generic typesafe
reader/writer (`src/socket/read_writer.rs`), and a higher-level module
with a server and a client implementation that uses
it (`src/socket/communicate.rs`).

The read/writer module is handling the type-based serialization and
reading/writing typed messages to a socket via the serde bincode
format. It supports timeouts, which complicates the code slighly but
is reqiured for not blocking indefinitly. The code should be
relatively easy to understand.

The communicate module implements the meat of the communication, and
it also defines all different communications that can happen between
the various clients and the server, using the underlying read/writer.
There is a bit of trait wrangling to make sure that a communication
always binds the same two request/response types together, and a bit
of code to define a typesafe listener and clients for all handlers.

The most messy module right now is `src/socket.rs`, which implements
the actual accept loop, and tries its best to not run out of threads
while doing that. lorri might run for a long time and be called many
times (e.g. via `lorri direnv`), so we don’t want to generate too many
thread zombies. We could opt for a thread pool instead, which doesn’t
have this problem.

Q: This is just the ping event, right?

Yes, this commit only goes to the point of where the code was when it
was first replaced with varlink, which is the ping event. The rest of
the events is going to be implemented in (a) following commit(s).

Let’s look forward to dropping varlink in a bit.

---
## [Kazkin/sojourn-station](https://github.com/Kazkin/sojourn-station)@[99917f67c6...](https://github.com/Kazkin/sojourn-station/commit/99917f67c636a924675546ac4d8011e29d6e119b)
#### Saturday 2021-03-20 00:53:20 by Kazkin

Bugfixes and Custom Kaz content

-Added the "jolly co-operation" tool, a modified munchkin in the guild recipes that is superior in every single way. Good luck getting/finding a munchkin to make it guildies.
-Janitor and miner no longer have cargo shuttle access, but can still open cargo doors.
-Marshal officers can now access forensics per request, allowing them to perform forensics when lacking a ranger.
-Sec vendors and weapon vendors now contain tomahawks. May require hacking.
-Fixed issues with the cigar case not updating its sprite when removing cigars or zippo spites sticking inside the case when removed.
-Added the blackshield counter-siege triage kit. Holds 18 items and comes preloaded with a fuckton of shit. Has a 25% chance to spawn in corpsman lockers.
-Axe type items now have work noises.
-Cargo is now **VASTLY IMPROVED** with cargo areas being far more functional (cabinets, ATMs, and more ease of access added in general for technicians to do paperwork/change money) in addition to a warehouse style random shit on shelves and lockers + more crates to be used.  Most of its junk, but you'll occassional get gold stuff to sell. Prospector access to the best loot area has been removed and the windows reinforced. You know why.
-Cargo tech lockers now contain a metric ton of random shit, making them worthwhile to claim and then check. Most of the time you'll get drugs and a bag, but very rarely you'll get something truly legendary to sell or use.
-Fixed the issue with platinum not processing in the material processor.
-Added some currently unused sprites for guns to code later down the line.
-The hunting lodge now has a honey extractor and an apiary, this will likely be later expanded into hunting lodge specific mead (that will absolutely give you boosts like tatonka/tangu milk does).
-Scrap void suit helmets can now be crafted stand alone.

---
## [Minefly/frontend](https://github.com/Minefly/frontend)@[33fed928ba...](https://github.com/Minefly/frontend/commit/33fed928ba982ab880b09eb0c032e3d56e0c05c8)
#### Saturday 2021-03-20 06:01:37 by Lukas

Bassiclly actually adds a readme lol

Please note a few things:

- This is an unfinished pull, so I want feedback. Be harsh, but keep it constrictive!
- Not sure if the images fit? Should I just provide links to them, make them smaller, or remove them entirely? 
- Btw yes, HTML does work in md files. Learned smth new today.
- For the love of god, pls don't hit the big green merge button the second you see this kiko (no offense)

ALSOOO, really worried my instructions are messed up lmao, so please check them!!!!!!!

---
## [kleinerm/Psychtoolbox-3](https://github.com/kleinerm/Psychtoolbox-3)@[af9a8e5bf1...](https://github.com/kleinerm/Psychtoolbox-3/commit/af9a8e5bf17c8a140097f7e149087d7fbd0127b7)
#### Saturday 2021-03-20 07:56:33 by kleinerm

PsychVulkan: Disable Direct-To-Display mode on macOS.

Disable Direct-To-Display mode, it is buggy as hell due to
some problems that seem to stem from (a lack of proper) event
processing on the Cocoa main-thread. Apparently there is some
interaction between Cocoa event handling on the applications main
thread and macOS Metal's present scheduling and timestamping,
due to what i can only suppose is bad design in the Metal framework.
Ofc. this interaction is not documented, because why would they?

In practice, Metal timestamping seems to mostly work under Metal,
but present scheduling mostly doesn't, causing hangs of presentation
and massive malfunctions.

At least in Direct-to-Display mode: If we intentionally prevent this optimization
by asking PsychVulkanCore to allocate its swapChains (== Metal drawables)
in an unsuitable format for direct scanout, so all presentation is forced to go
through the macOS display compositor / Window server, then the whole
machinery seems to mostly work -- with the occassional glitch, especially
after graphics was idle for a few seconds.

Fun facts:

Running this under octave in command-line mode, DToD mostly works,
with occassional glitching. Running under Octave with its Qt GUI enabled,
it mostly fails.

Running under Matlab in desktop mode with its Java based GUI, it fails
 - unless one prints something -- anything! -- into the command window,
e.g., fprintf('Hello World!\n'), in which case things get unstuck and mostly
work again. Why? I suspect, the printing triggers some kind of Cocoa
event processing on Matlab's main application thread (aka Cocoa GUI thread),
and that gets things going. All attempts to drive event processing ourselves
to get this fixed in a less insane way failed in over 10 hours of trying, googling
the non-existent documentation etc., so i give up for the moment.

Now in theory not using DToD is bad for performance and adds 1 frame extra
lag. In practice, at least on macOS 10.15.7 with AMD Radeon Pro 560 under
MoltenVK 1.1.1, DToD is broken anyway, not getting rid of the 1 frame lag, as
described in an earlier commit. Iow. we don't lose performance, because of
what are likely other Apple macOS Metal bugs, things are already so bad
that this new problem doesn't make them worse...

---
## [yogstation13/Yogstation](https://github.com/yogstation13/Yogstation)@[414f79a63b...](https://github.com/yogstation13/Yogstation/commit/414f79a63bdd736c98db731e25f986b6f3b9b375)
#### Saturday 2021-03-20 09:01:30 by alao3alao3

Thickens the Tear in the Fabric of Reality border by 3 (#11173)

* I love oneliners

* you're fucking next bs locker

* hope nobody figures out the useless exploit I couldnt patch

---
## [Oasis-SS13/Oasis-SS13](https://github.com/Oasis-SS13/Oasis-SS13)@[66b3fac1b4...](https://github.com/Oasis-SS13/Oasis-SS13/commit/66b3fac1b4633575385f3fa60a7d83bf2adfac92)
#### Saturday 2021-03-20 10:25:46 by PolyTheParrot-PR

[MIRROR] Fixes a battle royale typo (#1005)

* fuck your typos (#3929)

removes a single m

* Fixes a battle royale typo

Co-authored-by: yyzsong <[email protected]>

---
## [mrakgr/The-Spiral-Language](https://github.com/mrakgr/The-Spiral-Language)@[29bbee1e97...](https://github.com/mrakgr/The-Spiral-Language/commit/29bbee1e979934d90f2179684cbea567bc7c9c35)
#### Saturday 2021-03-20 11:16:09 by Marko Grdinić

"9:25am. I am up.

Let me chill a bit and then I will start. What I will do in the morning session is go through the Kivy crash course. After taking hours just to do a scroll view label, my motivation to actually sit down and learn has gone up significantly.

9:55am. Let me start. It is time for that crash course.

During the night I've realized something - rather than applying for job, if I am really serious I should start a company and pretend to be multiple people. People would balk at paying 200k per year to one person, but 50k for 4 people would be quite palatable.

I rarely see this kind of power move being encouraged, but this is something I would do.

Right now, in Python I am good as 0.5 people so no way could I sustain that. .NET would be fine, but Python is another ballgame and I am missing too many things at the moment.

As for Spiral, it will be the last time I will do something in anticipation of the future. If I had started work on 2005 and finished it in a few years, I'd have time to build up my prestige. Then I could conquer the AI chip market. But right now, that is just a delusion.

Ultimately, this is an arms race and I should not be obligated to speed up the pace at which my adversaries can reach the Singularity. I do not have an obligation to make a library only for the company to go belly up and waste my time.

I'll do things at my own pace.

10:05am. https://www.youtube.com/playlist?list=PLdNh1e1kmiPP4YApJm8ENK2yMlwF1_edq

Let me start going through this list. Once I build up some proficiency in making UIs with Kivy, my work will get a lot easier.

The ramp up phase will take a while. I still do not know much about Python concurrency either. But .NET is not really a viable platform for ML due to lack of ref counting. It is superior in every other aspect compared to this one, but this one is the one that really matters.

10:10am. I really want to get familiar with the ways of doing concurrency in Python. I do not have Hopac unfortunately, but I want to get my proficiency up as much as possible regardless.

All this will take a while. Let me get to it. At some point I will be good enough.

10:20am. https://youtu.be/ZmteLworB4E?list=PLdNh1e1kmiPP4YApJm8ENK2yMlwF1_edq&t=368

Hmmm, this is not so bad. It feels fairly expressive.

10:45am. https://youtu.be/2Gc8iYJQ_qk?list=PLdNh1e1kmiPP4YApJm8ENK2yMlwF1_edq&t=256

This is worth watching. I am learning a lot about how Kivy works.

11:10am. https://www.youtube.com/watch?v=ChmfVOu9aIc&list=PLdNh1e1kmiPP4YApJm8ENK2yMlwF1_edq&index=11

I should just about have time to finish this before breakfast. It has been worth it so far.

11:50am. https://youtu.be/xx-NLOg6x8o?list=PLdNh1e1kmiPP4YApJm8ENK2yMlwF1_edq&t=574

Hmmm, maybe it would be worth it to use the screen manager to switch between the menu and the current ongoing game.

One thing I've been unsure is how during the duration of the game I could deal with managing the replay buffer.

Like in poker apps, you can look at hand histories while the game is ongoing. I've been feeling that my current way of thinking lacks flexibility. I thought aobut using tabs, but maybe this thing would be better.

https://www.youtube.com/watch?v=oXlwWbU8l2o
OpenCV Course

I just noticed this on the sidebar.

Yeah, OpenCV is on my TODO list. When I do the reverse UIs, I can't afford to hardcode all the positions. Instead, the agent will require some ability to understand the desktop. But actually training a CNN to interpret my own moves would be way too expensive. Though classical computer vision is getting obsoleted by CNNs, this might be one area where it could shine.

I won't do study this right now, but a few months down the road. Right now I need to improve my UI and ML skills. That will be my focus.

12:10pm. Time for breakfast. I am thinking about random things. I think I am going to consider the case where an UI component is dedicated to a single game. I'll make a view just for that. And then move towards towards implementing it.

That should be my goal for today. A fancy control center can wait until I've build up enough experience. I'll do things step by step without rushing. That is the way to establish a proper foundation.

One language feature I am sorely missing right now are interpolated strings. It is really killing me to use macros for that right now. Along with standard library structures, this is really a hole that needs filling at some point

12:15pm. Let me stop. Time to chill.

My anime backlog keeps growing because I keep reading RI. At this point, maybe I will catch up completely in a few weeks."

---
## [initialed85/mqtt_things](https://github.com/initialed85/mqtt_things)@[910b759c8a...](https://github.com/initialed85/mqtt_things/commit/910b759c8afcd06976d398aa0462dead842bdd1f)
#### Saturday 2021-03-20 11:49:46 by Edward Beech

Gotcha you cheeky fuck- mental note to self: be even more careful w/ manually unlocking mutexes (vs deferred unlocks)- loops and ifs love to fuck you without so much as a cigarette afterwards

---
## [dalgwen/mycroft-core](https://github.com/dalgwen/mycroft-core)@[ca1f03aad9...](https://github.com/dalgwen/mycroft-core/commit/ca1f03aad97cef18460dd06b3753e9b4c42a01db)
#### Saturday 2021-03-20 15:16:08 by dalgwen

 Ability to play sound instead of utterance

==== Fixed Issues ====
 issue-2755 - Ability to play sound instead of an utterance :
Ability to use sound for all "final" dialog, and not only error one. Several sounds could be used (all listed in the "sounds" parameter)
This PR is also extended to allow skill developer  to use their own sound

====  Tech Notes ====

    Add a new method report_outcome for skills to declare if an utterance is final. With parameter ("outcome_type"). The possible values are constrained by those available in the "sounds" dictionnary parameter in mycroft.conf.
    With the second parameter "custom_sound" (path to a wav or mp3),  skills can use their own sound, and not only the basic "sounds" from Mycroft. Note : I thought about merging the two parameters, but I think they serve different purposes (one is more a meta information about the utterance, the other is a custom sound for broader use). But I could change this, of course.
    Add corresponding new method parameters in the speak method

    Add a new error sound. (quite horrible, sorry. It's the wakeword sound, reversed)

    Change some TTS because I changed the tts execute signature : they originally overrode a method they should not, in my opinion. If my guess is good they should override the inner _execute method and not the main public one.

====  Documentation Notes ====
Two new parameters can force Mycroft to do feedback with a brief sound instead of a complete utterance :
skills.skills_pref_sound: a list of skills who should use sound. Use the class name.
always_pref_sound: boolean to force Mycroft to use sound for feedback, wherever it is possible.
Skill developers must use the "report_outcome" method, or the speak method with the "outcome_type" or "custom_sound" to use this functionality

==== Localization Notes ====
NONE

==== Environment Notes ====
NONE

==== Protocol Notes ====
NONE

---
## [ignasoler/Coursera_Capstone](https://github.com/ignasoler/Coursera_Capstone)@[d56d9509be...](https://github.com/ignasoler/Coursera_Capstone/commit/d56d9509be44bd0bd954b654623123a274175ce2)
#### Saturday 2021-03-20 16:01:38 by ignasoler

Business Proposal

The Battle of Neighborhoods | Business Proposal | Introduction
Introduction:
The purpose of this Project is to help people in exploring better facilities around their neighborhood. It will help people making smart and efficient decision on selecting great neighborhood out of numbers of other neighborhoods in Scarborough, Toranto.

Lots of people are migrating to various states of Canada and needed lots of research for good housing prices and reputated schools for their children. This project is for those people who are looking for better neighborhoods. For ease of accessing to Cafe, School, Super market, medical shops, grocery shops, mall, theatre, hospital, like minded people, etc.

This Project aim to create an analysis of features for a people migrating to Scarborough to search a best neighborhood as a comparative analysis between neighborhoods. The features include median housing price and better school according to ratings, crime rates of that particular area, road connectivity, weather conditions, good management for emergency, water resources both freash and waste water and excrement conveyed in sewers and recreational facilities.

It will help people to get awareness of the area and neighborhood before moving to a new city, state, country or place for their work or to start a new fresh life.

Problem Which Tried to Solve:
The major purpose of this project, is to suggest a better neighborhood in a new city for the person who are shiffting there. Social presence in society in terms of like minded people. Connectivity to the airport, bus stand, city center, markets and other daily needs things nearby.

Sorted list of house in terms of housing prices in a ascending or descending order
Sorted list of schools in terms of location, fees, rating and reviews
The Location:
Scarborough is a popular destination for new immigrants in Canada to reside. As a result, it is one of the most diverse and multicultural areas in the Greater Toronto Area, being home to various religious groups and places of worship. Although immigration has become a hot topic over the past few years with more governments seeking more restrictions on immigrants and refugees, the general trend of immigration into Canada has been one of on the rise.

Foursquare API:
This project would use Four-square API as its prime data gathering source as it has a database of millions of places, especially their places API which provides the ability to perform location search, location sharing and details about a business.

Work Flow:
Using credentials of Foursquare API features of near-by places of the neighborhoods would be mined. Due to http request limitations the number of places per neighborhood parameter would reasonably be set to 100 and the radius parameter would be set to 500.

Clustering Approach:
To compare the similarities of two cities, we decided to explore neighborhoods, segment them, and group them into clusters to find similar neighborhoods in a big city like New York and Toronto. To be able to do that, we need to cluster data which is a form of unsupervised machine learning: k-means clustering algorithm

Libraries Which are Used to Develope the Project:
Pandas: For creating and manipulating dataframes.

Folium: Python visualization library would be used to visualize the neighborhoods cluster distribution of using interactive leaflet map.

Scikit Learn: For importing k-means clustering.

JSON: Library to handle JSON files.

XML: To separate data from presentation and XML stores data in plain text format.

Geocoder: To retrieve Location Data.

Beautiful Soup and Requests: To scrap and library to handle http requests.

Matplotlib: Python Plotting Module.

---
## [mrakgr/The-Spiral-Language](https://github.com/mrakgr/The-Spiral-Language)@[2746700b74...](https://github.com/mrakgr/The-Spiral-Language/commit/2746700b74e40a34577b9f94e60113bc56464437)
#### Saturday 2021-03-20 18:40:56 by Marko Grdinić

"1:25pm. Done with breakfast. Just a bit more chilling and I'll move to the chores. After that I'll get the human player going.

2:35pm. The chores really took a while. Phew.

2:40pm. Let me start my daily dose of programming.

2:45pm.

```
open kivy
open lithe

union msg =
    | Clicked

type state (a : * -> * -> *) (b : * -> * -> *) = {
    p1 : nodes.player_funs a leduc.card leduc.action f64
    p2 : nodes.player_funs b leduc.card leduc.action f64
    text : string
    }

inl model (s : state _ _) = function
    | Clicked =>
        open nodes
        inl Empty = player {probSelf=to_log_prob 1; observations=Nil; state=agent.stateless()} |> dyn
        inl r = leduc.game (nodes.cps.nodes_2p (s.p1, s.p2)) ((Empty,Empty),dyn id)
        inl ts = $"f\"Reward for player one is {!r}.\\n\"" : string
        {s with text#=fun t => $"!t + !ts"}

inl view dispatch (state : rx.observable (state _ _)) =
    inl (~+) x = +state x
    boxlayout [
        -orientation Vertical
        children [
            scrollview [
                -do_scroll_x false
                -do_scroll_y true
                children [
                    label [
                        -size_hint_y None
                        @on_texture_size (fun (l,(_,v)) => $"!l.height = !v")
                        +text fun {text} => text
                        ]
                    ]
                ]
            boxlayout [
                -orientation Horizontal
                -size_hint_y (Some: 0.2)
                children [
                    button [
                        -text "Start Game."
                        @on_press (fun _ => dispatch Clicked)
                        ]
                    ]
                ]
            ]
        ]

inl main () =
    inl app = appm.create()
    inl p1 = agent.neural_random.create()
    inl p2 = agent.uniform_random.create()
    inl text = ""
    inl _ = rx.subscribe (loop {p1 p2 text} model view) (appm.root app)
    appm.run app
```

I touched this up a bit, but let me leave it as so. Let me turn off the router otherwise I will not pry myself off /a/.

2:50pm. What is the next step?

I had a bit of inspiration during the break. Maybe it is because of my 2016 experience, but I am not thinking of UIs in modular enough fashion.

Because if that I keep dithering between various choices. I am trying to go forward, but I am encountering too much friction.

2:55pm. It is a difficult thing to make a single step.

The reason why I've managed to come this far is because I know that even a single step, no matter how insignificant it seems in isolation bring me closer to my ultimate goal.

But with UIs, I am carrying a mentality of it being one big object. I think I never shook off the mentality with the NetMQ examples that I did either.

I spent too much time on those in hindsight.

But it is just like with Spiral's editor support. My first attempt was a failure, my second was a partial success and my most recent was a complete success.

This whole thing of making a RL agent + am UI depends mostly on my UI skills. UIs are the big bottleneck. It does not matter if this next part takes me a few months. I could make huge gains if I can master this.

Right now I am strugling, but the future me could sit down and knock it all out in a day or two.

What will take me weeks, the future me will need only a day.

3:05pm. I am thinking about string interpolation right now. I can't really use the generic design F# and Python have.

I can't really just plug in vars of arbitrary types into it. Instead as a compromise, I should just type them as strings. That would be a decent compromise. I could always build on that solution later. Nevermind this for now.

I went through the docs, I went through the course. I have basic skills in Kivy. I need to keep going forward. Eventually I'll cover all the widgets and internalize them.

Let me just dwell on this next part for a bit. What exactly do I want? I know what I want, but not exactly.

4:15pm. Let me go take a bath. I am still thinking about it.

5:55pm. Done with lunch. Today I did not do much after all.

Rather than a glorious pursuit it feels more like the first half of 2020. Back then I spent an enormous amount of time just getting myself to the starting line of even being able to work on Spiral.

Today I could have done that human player UI. I could have done string interpolation. Instead I am just swaying in this chair or on the bed, gathering my thoughts.

6:05pm. This is a sign that I am too pressured right now.

Yeah, a deadline of 3 months is not enough. I am just not feeling it. I should give myself as much time as needed to cultivate my Python UI and concurrency skills properly.

I am going into this with a combative mindset, but the kind of work I need to be doing is more like art.

To explain what my problem is, I am pulled in two different directions. The first vector is pulling me in the direction of 2018. That is - finish Spiral, then with into RL as soon as possible. I've been intending to go on this trajectory.

But the second impulse is to cultivate UIs and concurrency skills.

6:10pm. Today my goal was to do the human UI.

That is fine. I'll be able to use it as a component in a bigger UI that will allow me to manage players and replay buffers.

But what should the human UI component be like?

It can just be a label with the trace printed out on it and a few button for action selection.

6:10pm. Today when I watched one of the videos, there was a neat demo showing Kivy animations.

My emotion at that time was interest.

In fact, if I had to implement the human UI, instead of a text printout of the trace, why not diplay the stack size and the card like on a real poker table.

Animations for cards, proper graphics. I could even add a little back button to wind back the last move.

6:15pm. That would be good to have and yet here I am trying to push the fast forward button on my development. I barely want to make time to do string interpolation.

I want to go forward, but these thoughts are at the back of my mind pressuring me.

6:20pm. In order to develop skills it is not enough to just run forward. You need to be like a little kid and play.

Kids become adults, and adults supposedly get things done, but that is not true. Those who play around are much stronger long term than those who just do what they must.

Thought most of that time was wasted, what I did in 2020 was a show of strength. Strained as it were, I did the right thing by overcoming my past inhibitions. I did the right thing by taking the time to do that.

6:25pm. Right now I am strained again. My failure to apply to AI chip companies is just one of the symptoms of me being in a delusional state.

I spent six years programming to get to this point, Spiral v2 is done. I want to want to keep shouting and show the world how great my skills are. But somehow the world is not cooperating and giving me the chance that I want.

Instead the message I am getting back is that it does not really matter whether I am good or not. Note that this is distinct of it saying that I am bad.

6:30pm. The old me would have approved of my current skills and my never ending effort. But I am not sure that he would have approved of my obsession to make money. Society beat this into me, and I need to beat it out.

Society knows jack shit about skill development. Culture the way it is now is a turd on the side of the road. It is 2000 year old Christian values, perverted and degenerated. Beggars are kings, degeneracy is virtue, rebellion is stability, druggies and drunkards are the pillars of society and technology is just some tool. Life is a cycle. Happiness is true meaning. Everything can be forgiven. Schools are useless. Proofs certainly aren't simple to understand explanations that can be traced.

6:40pm. My desire to make money is partly with how distasteful I find science to be. The current science caste does not deserve its position of prestige. If somebody stumbles on a breakthrough AI discovery in the 20s, it will be by accident rather than clear thinking.

Playing around is not just for the sake of playing around. The kids aren't the ones wasting time.

6:45pm. I should just play. It is the height of idiocy to make career plans in the present age. What is the point of investing in the stock market when it might not even be around in a decade?

I know that it is going to happen, but I am not acting like I 100% believe in it. Maybe I believe 90% in it. I like my hedging bets. This is better than the maybe 0-10% belief of the people on the ML sub.

Forget money. Focus on absolute power.

6:50pm. Forget my current age and circumstances. Living on the edge means giving up opportunities.

I am going to abandom my plans of doing the RL agents as soon as possible. Forget that goal. Forget the AI chips. Forget making money through Spiral or gathering donations.

Instead I should focus on making my UI experience as great as possible.

Nevermind that I am doing it for Leduc poker. It does not matter if I do art or music along the way or spent an inordinate amount of time on the design. It does not matter if I take the time to put in language feature like string interpolation.

6:55pm. I am sick of ML. I am sick of language development. I am sick of racing towards success.

I want my programming to be art from here on out. I want things to be easy and for it to come to me naturally. I want to properly abstract ML into proper components. I do not want to be rushed.

I want to consolidate all of my skills.

7pm. Ultimately, I'll still be going where I want. I'll still do the human UI next.

But I need to accept - I cannot do what I want if my goal is to make that DREAM agent as soon as possible.

If my goal is to get back into ML as soon as possible, I should not be working on the UIs in the first place.

If my goal is to get into ML as soon as possible - my 2018 experience was the ideal undertaking! I fired up my brain, pushed myself to the limit and got nowhere for it. I failed!

So why I am I trying to keep that failed ideal alive?

Isn't my new belief that user experience is worth exercising for its own sake?

If cultivating UX skills is my primary goal, then why am I pressuring myself to start RL as soon as possble?

I have time. Maybe somebody else will cause the Singularity in the 20s. Maybe I will need 20-30 more years myself at this rate. Maybe a few Simulacrum readers will be disappointed that my 2022 prediction did not pan out. Screw them. They aren't my power. Neither is anybody reading this journal.

7:10pm. The UX skills are what will evetually make ML easy enough to be tractable.

So I am going to go wild with them. It does not matter how long it takes. Let me make a proper Leduc poker game. Graphics, animations, sounds, keyboard input, time rewinding, charts, replay buffer analysis.

```
inl ts = $"f\"Reward for player one is {!r}.\\n\"" : string
```

As a matter of principle I will stop using Python's string interpolation macros. Until Spiral has its own native string interpolation, I'll at least put them in a list and then join them. This here is just nasty.

7:15pm. In 2016 I only spent a month working on that poker app before giving up. Maybe if I'd put in more effort, I'd realized how good Rx is in the end.

Just how many months of grinding the VS Code API took me to arrive at those epiphanies?

The amount of effort I put into Spiral v2 for the sake improving the user experience is astonishing. I should show this same dedication when making the games for my agents.

If there exists a God, I'd bet it took him more effort to create the universe than to evolve humans. Once the universe was there, intelligent life sprung up on its own. I should learn from that.

7:20pm. Besides the above, I want to resume going through Processing tutorials tomorrow. That is how I should split my time.

Though I did those players and have set everything up, I somehow really dislike the observation traces.

Instead of doing the human UI, I should do the plain UI.

I should display the cards, the stacks and the actions. That is what the state should be. Not some trace. Forget the agents. The UI is what should be central to my consideration.

7:25pm. I am wrong with my current approach. Right now I am still trying to pare things down and abstract things. Instead like with Spiral's editor support, I should keep information around. Or I should make up my mind and make an interpreter for the traces, since I do not want to put game state directly in the nodes.

Right now I am still missing something. I need to be aggressive, but I need to aim in the right direction as well.

I should forget the Leduc game itself and try doing the UI in isolation.

7:30pm. In addition to Processing, I really should check out more Python concurrency. I keep yearning for that Hopac feeling.

7:35pm. Let me just stop here.

Tomorrow, I will do the smallest possible moves until I get the feeling that I want. At some point I will overcome the weaknesses that Python imposes on me and will be able to benefit from its strengths. I won't be arrogant about this work. Yesterday I spent the entire day trying to get the scroll view to work. I should do more of that. That was the way to go."

---
## [ImCodist/Friday-Night-Funkin-Gamemaker-Remake](https://github.com/ImCodist/Friday-Night-Funkin-Gamemaker-Remake)@[842be2cf77...](https://github.com/ImCodist/Friday-Night-Funkin-Gamemaker-Remake/commit/842be2cf77ade38a919b775ad2721312e85270ef)
#### Saturday 2021-03-20 18:52:59 by Yoshubs

this might just bomb the devlog

I added lofight, which was just a thing I wanted to do idk if that will be used or anything and is only showing up here as a side effect of me having to push to get kade input, and also remove the fix codist made because it doesn't actually fix anything :( or at least my fix is kinda simpler lmao nothing against you dude you're cool but like fuck you haha why do I do this very unprofessional patch notes

---
## [JaredFitz/mookibot](https://github.com/JaredFitz/mookibot)@[b701b133fc...](https://github.com/JaredFitz/mookibot/commit/b701b133fc194ecb7363c0dd9a9023056c7b8fd8)
#### Saturday 2021-03-20 19:10:29 by Jared Fitzpatrick

Merge pull request #3 from JaredFitz/mookipoints

fuck youwu

---
## [KaindorfCTF/ctf-gameserver](https://github.com/KaindorfCTF/ctf-gameserver)@[22effe62fa...](https://github.com/KaindorfCTF/ctf-gameserver/commit/22effe62fa10519a7fd88fc4e6edfc10b4d5ec27)
#### Saturday 2021-03-20 19:48:46 by Felix Dreißig

Web: Block changes during updates in (internal) Service History

Prevent multiple ongoing updates by making all fields read-only and
showing a progress spinner during updates.

"progress_spinner.gif" is "Indicator Big 2" from
http://www.ajaxload.info.
As per the site's footer, "[g]enerated gifs can be used, modified and
distributed under the terms of the Do What The Fuck You Want To Public
License" (http://www.wtfpl.net).

Closes: https://github.com/fausecteam/ctf-gameserver/issues/56

---
## [Dilara26-cyber/My-Basic-JS-Projects](https://github.com/Dilara26-cyber/My-Basic-JS-Projects)@[e872d20850...](https://github.com/Dilara26-cyber/My-Basic-JS-Projects/commit/e872d20850cfff17a3410fc966d7b0838fbae312)
#### Saturday 2021-03-20 20:42:24 by Dilara Aksoy

I made my girlfriend angry.

This is a project for telling that I am sorry to my girlfriend.

---
## [Dilara26-cyber/My-Basic-JS-Projects](https://github.com/Dilara26-cyber/My-Basic-JS-Projects)@[38ad5f42d0...](https://github.com/Dilara26-cyber/My-Basic-JS-Projects/commit/38ad5f42d0a4b76cc059a05a6134236b44a5a297)
#### Saturday 2021-03-20 20:42:37 by Dilara Aksoy

Merge pull request #7 from Dilara26-cyber/Project-Sorry

I made my girlfriend angry.

---
## [Klaynie/Medical_Insurance_Project](https://github.com/Klaynie/Medical_Insurance_Project)@[5dcd01fadf...](https://github.com/Klaynie/Medical_Insurance_Project/commit/5dcd01fadf79238c16a8458363df4340367652ae)
#### Saturday 2021-03-20 21:34:49 by nikkibeach

new file added

So here I added my own file, its nothing more than a proposal to think about... my main questions are:
1) does this somehow work with what Chris proposed? I suppose with pandas you dont need any Classes and functions and all that stuff??! could your idea of the project work as a great extension to the codecademy-intended one?
2) we still have plenty of time to work on it, I just would like to hear your thoughts on this
3) i know doc strings should contain any explanations on code, i have no idea about formalities and conventions in general, so please lets decide on all this stuff at some later point!
4) bla bla bla, sorry im getting tired lol

---
## [ThunderStorms21th/Galaxy-S10](https://github.com/ThunderStorms21th/Galaxy-S10)@[55e74b3948...](https://github.com/ThunderStorms21th/Galaxy-S10/commit/55e74b39484210e6af36f396d265bcef522d100f)
#### Saturday 2021-03-20 22:40:51 by Linus Torvalds

Revert "x86/apic: Include the LDR when clearing out APIC registers"

[ Upstream commit 950b07c14e8c59444e2359f15fd70ed5112e11a0 ]

This reverts commit 558682b5291937a70748d36fd9ba757fb25b99ae.

Chris Wilson reports that it breaks his CPU hotplug test scripts.  In
particular, it breaks offlining and then re-onlining the boot CPU, which
we treat specially (and the BIOS does too).

The symptoms are that we can offline the CPU, but it then does not come
back online again:

    smpboot: CPU 0 is now offline
    smpboot: Booting Node 0 Processor 0 APIC 0x0
    smpboot: do_boot_cpu failed(-1) to wakeup CPU#0

Thomas says he knows why it's broken (my personal suspicion: our magic
handling of the "cpu0_logical_apicid" thing), but for 5.3 the right fix
is to just revert it, since we've never touched the LDR bits before, and
it's not worth the risk to do anything else at this stage.

[ Hotpluging of the boot CPU is special anyway, and should be off by
  default. See the "BOOTPARAM_HOTPLUG_CPU0" config option and the
  cpu0_hotplug kernel parameter.

  In general you should not do it, and it has various known limitations
  (hibernate and suspend require the boot CPU, for example).

  But it should work, even if the boot CPU is special and needs careful
  treatment       - Linus ]

Link: https://lore.kernel.org/lkml/156785100521.13300.14461504732265570003@skylake-alporthouse-com/
Reported-by: Chris Wilson <[email protected]>
Acked-by: Thomas Gleixner <[email protected]>
Cc: Bandan Das <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>

---
## [stephenbpurkiss/holochain-gym.github.io](https://github.com/stephenbpurkiss/holochain-gym.github.io)@[100bd6be73...](https://github.com/stephenbpurkiss/holochain-gym.github.io/commit/100bd6be73c23ad4d55be8d3275fc3bec762252a)
#### Saturday 2021-03-20 23:26:54 by Stephen B Purkiss

Today's updates

Creating a pull request now as it's late and there's an interesting forum post I want to reply to.

A "major" change here is I'm getting confused by the custom field being called "content", I feel it's too much like a reserved name. I'm so confused I'm not even sure if my changes will affect the code, specifically:

      call: ({ create_entry }) => ({ greeting_text }) => {
        return create_entry({ greeting_text, entry_def_id: "greeting" });

which was:

      call: ({ create_entry }) => ({ content }) => {
        return create_entry({ content, entry_def_id: "greeting" });

I have got to a certain point in the text and will continue, I've changed all references to "content" to "greeting_text" and from "Hello World" to "Holo, World!", I thought it would be kinda cool / missed opportunity given the tone of your writing I thought it would fit in. On the subject of tone I've toned a few bits down to keep it concise - no need to say "well zomes don't do much but they do even when you're not looking" etc. - I found this a little confusing and distracting so hope the new text sounds ok and keeps your "character" but is just a little "tighter" ;)

I'll propose two changes on the developer-exercises repo with regards to the content->greeting_text and "Hello World" -> "Holo, World!", I'm sorry my memory fails me with git so I'm just doing it through the web UI at the moment, branching & stuff doing my head in. Flippin annoying having "learning difficulties", I can seemingly do some complicated things no problem but when it comes to relatively simple things my brain fails me hah!

Cheers,

sbp

---

# [<](2021-03-19.md) 2021-03-20 [>](2021-03-21.md)