JuliaCon / JuliaCon.jl

JuliaCon. Everywhere.
MIT License
75 stars 9 forks source link

Proposal to include `speaker` into `conference_schedule` #27

Closed roflmaostc closed 1 year ago

roflmaostc commented 3 years ago

Hey,

as discussed in #25 here a proposal to include a filter for speaker.

Unfortunately, the pretty printing seems to be hard coded into today which makes it hard to easily add the functionality.

Therefore, I thought it would be OK to include that into the raw get_conference_schedule:

julia> JuliaCon.today(speaker="Felix")

Wednesday 28 July 2021

Purple
╭───────┬────────────────────────────────────────────────┬──────┬────────────────╮
│ Time  │ Title                                          │ Type │ Speaker        │
├───────┼────────────────────────────────────────────────┼──────┼────────────────┤
│ 19:10 │ DeconvOptim.jl: Microscopy Image Deconvolution │  L   │ Felix Wechsler │
╰───────┴────────────────────────────────────────────────┴──────┴────────────────╯

Currently running talks are highlighted in yellow.

T = Talk, L = Lightning Talk, S = Sponsor Talk, K = Keynote, 
W = Workshop, M = Minisymposium, BoF = Birds of Feather, 
E = Experience, P = Virtual Poster

Check out https://live.juliacon.org/agenda for more information.

julia> JuliaCon.tomorrow(speaker="Carsten")

Thursday 29 July 2021

BoF/Mini Track
╭───────┬─────────────────────────────────────┬──────┬────────────────────────────────────────────────────────────────
│ Time  │ Title                               │ Type │ Speaker                                                       ⋯
├───────┼─────────────────────────────────────┼──────┼────────────────────────────────────────────────────────────────
│ 18:30 │ Julia in High-Performance Computing │ BoF  │ Valentin Churavy, Michael Schlottke-Lakemper, Simon Byrne et  ⋯
╰───────┴─────────────────────────────────────┴──────┴────────────────────────────────────────────────────────────────
                                                                                                      1 column omitted

T = Talk, L = Lightning Talk, S = Sponsor Talk, K = Keynote, 
W = Workshop, M = Minisymposium, BoF = Birds of Feather, 
E = Experience, P = Virtual Poster

Check out https://live.juliacon.org/agenda for more information.

julia> JuliaCon.get_conference_schedule(speaker="Felix")
4×7 SubDataFrame
 Row │ start                      duration    title                              speaker                           
     │ ZonedDat…                  Compound…   String                             Array…                            
─────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1 │ 2021-07-28T17:10:00+00:00  10 minutes  DeconvOptim.jl: Microscopy Image…  ["Felix Wechsler"]
   2 │ 2021-07-29T16:30:00+00:00  30 minutes  InvertibleNetworks.jl - Memory e…  ["Philipp A. Witte", "Mathias Lo…
   3 │ 2021-07-30T19:30:00+00:00  10 minutes  FourierTools.jl | Working with t…  ["Rainer Heintzmann", "Felix Wec…
   4 │ 2021-07-30T17:15:00+00:00  3 minutes   IndexFunArrays.jl | Fun with ind…  ["Felix Wechsler", "Rainer Heint…
                                                                                                     3 columns omitted

Is that something you like?

Cheers,

Felix

carstenbauer commented 3 years ago

Unfortunately, the pretty printing seems to be hard coded into today which makes it hard to easily add the functionality.

Can't you just centralize it into a function, say, _print_today_tables(....; output) and use it in both today and talks_by?

roflmaostc commented 3 years ago

The issue with today is that it only prints one day, right? So currently to filter the full schedule and printing it in a nice way would require to call today from the first day until the last day, wouldn't it?

roflmaostc commented 3 years ago

Short summary:

Thursday 29 July 2021

BoF/Mini Track ╭───────┬─────────────────────────────────────┬──────┬──────────────────────────────────────────────────────────────────╮ │ Time │ Title │ Type │ Speaker │ ├───────┼─────────────────────────────────────┼──────┼──────────────────────────────────────────────────────────────────┤ │ 18:30 │ Julia in High-Performance Computing │ BoF │ Valentin Churavy, Michael Schlottke-Lakemper, Simon Byrne et al. │ ╰───────┴─────────────────────────────────────┴──────┴──────────────────────────────────────────────────────────────────╯


* refactored some parts like `legend` to external methods
* added `get_tracks` method to get a list of all possible tracks which can be passed to `today(track="Green")`.
carstenbauer commented 3 years ago

Personally, I wouldn't call / link this to today at all. This seems to just complicate things. In my eye, talks_by and today are orthogonal functions. One filters by time, the other by speaker. If they have common printing, put it in a separate function. If not, then not. Essentially, just put what you wrote in the issue into a talks_by function and print it more nicely than just returning the DataFrame. You don't have to use any fancy PrettyTables.jl for the printing (like today). You could do what now does just with a for loop that prints the filtered talks for example.

But if you think your current approach is better for some reason, I can also take a look at it later (will head for a lunch break now 😄).

roflmaostc commented 3 years ago

I'll try to come up with something (again) :smiley:

roflmaostc commented 3 years ago

Hm, changes quite a bit now.

Maybe we postpone that to after JuliaCon to prevent crashing anything? At least I'm doing fine with my local version :laughing: