Re: Beerconf June 2023

2023-07-04 Thread Steven Schveighoffer via Digitalmars-d-announce

On 6/22/23 10:34 PM, Steven Schveighoffer wrote:
YuQian has asked that I post the abstract for the talk being given. A 
reminder that the talk is on Saturday at 19:00 UTC.



## Stop inheriting data fields!


Hi everyone, I recorded this presentation and put a video about it on 
youtube (with YuQian's permission). If you missed it during beerconf you 
can watch it here.


https://www.youtube.com/watch?v=8Ck0SgLKNcc

-Steve


Re: Beerconf June 2023

2023-06-24 Thread Adam D Ruppe via Digitalmars-d-announce

On Saturday, 24 June 2023 at 22:52:01 UTC, Chris Katko wrote:
Will there be a YouTube/whatever mirror of the conference 
afterward?


most the weekend is just a handful of random people coming and 
going at random times and talking about random stuff


more of just like a online hang out than anything formal.


Re: Beerconf June 2023

2023-06-24 Thread Steven Schveighoffer via Digitalmars-d-announce

On 6/24/23 6:52 PM, Chris Katko wrote:

On Saturday, 24 June 2023 at 22:43:50 UTC, Steven Schveighoffer wrote:

On 6/24/23 9:01 AM, Richard (Rikki) Andrew Cattermole wrote:

Linkity link link https://meet.jit.si/Dlang2023JuneBeerConf


Unfortunately, we were getting some spam joiners. So if you want to 
join, the password is now `DlangRox`




Will there be a YouTube/whatever mirror of the conference afterward?


I have recorded the talk, and I will post a video at some point. But 
it's just the talk that was presented.


-Steve


Re: Beerconf June 2023

2023-06-24 Thread Chris Katko via Digitalmars-d-announce
On Saturday, 24 June 2023 at 22:43:50 UTC, Steven Schveighoffer 
wrote:

On 6/24/23 9:01 AM, Richard (Rikki) Andrew Cattermole wrote:

Linkity link link https://meet.jit.si/Dlang2023JuneBeerConf


Unfortunately, we were getting some spam joiners. So if you 
want to join, the password is now `DlangRox`


-Steve


Will there be a YouTube/whatever mirror of the conference 
afterward?


Re: Beerconf June 2023

2023-06-24 Thread Steven Schveighoffer via Digitalmars-d-announce

On 6/24/23 9:01 AM, Richard (Rikki) Andrew Cattermole wrote:

Linkity link link https://meet.jit.si/Dlang2023JuneBeerConf


Unfortunately, we were getting some spam joiners. So if you want to 
join, the password is now `DlangRox`


-Steve


Re: Beerconf June 2023

2023-06-24 Thread Steven Schveighoffer via Digitalmars-d-announce

On 6/22/23 10:34 PM, Steven Schveighoffer wrote:

On 6/11/23 4:48 PM, Steven Schveighoffer wrote:

# BEERCONF!

Beerconf for June is happening 2 weeks from now, on the 24-25.


A reminder that this is happening in 2 days!

YuQian has asked that I post the abstract for the talk being given. A 
reminder that the talk is on Saturday at 19:00 UTC.


Just a reminder that this talk is happening, in about 5 minutes.

-Steve



Re: Beerconf June 2023

2023-06-24 Thread Richard (Rikki) Andrew Cattermole via Digitalmars-d-announce

Linkity link link https://meet.jit.si/Dlang2023JuneBeerConf


Re: Beerconf June 2023

2023-06-23 Thread Steven Schveighoffer via Digitalmars-d-announce

On 6/22/23 10:34 PM, Steven Schveighoffer wrote:

On 6/11/23 4:48 PM, Steven Schveighoffer wrote:

# BEERCONF!

Beerconf for June is happening 2 weeks from now, on the 24-25.


A reminder that this is happening in 2 days!

YuQian has asked that I post the abstract for the talk being given. A 
reminder that the talk is on Saturday at 19:00 UTC.


YuQian also would like to mention that the work presented is patent 
pending as disclosed in the original paper pdf: 
https://github.com/joortcom/DDIFI/blob/main/ddifi.pdf


-Steve


Re: Beerconf June 2023

2023-06-22 Thread Steven Schveighoffer via Digitalmars-d-announce

On 6/11/23 4:48 PM, Steven Schveighoffer wrote:

# BEERCONF!

Beerconf for June is happening 2 weeks from now, on the 24-25.


A reminder that this is happening in 2 days!

YuQian has asked that I post the abstract for the talk being given. A 
reminder that the talk is on Saturday at 19:00 UTC.


See you there!

-Steve

## Stop inheriting data fields!

A new design pattern DDIFI (Decoupling Data Interface From data 
Implementation) as a clean and general solution to multiple inheritance


### Abstract

Traditionally in class based OOP languages, both the fields and methods 
from the super-classes are inherited by the sub-classes. However this 
may cause some serious problems in multiple inheritance, e.g. most 
notably the diamond problem. In this paper, we propose to stop 
inheriting data fields as a clean and general solution to such problems. 
We first present a design pattern to cleanly achieve multiple 
inheritance in C++, which can handle class fields of the diamond problem 
exactly according to the programmers’ intended application semantics. It 
gives programmers flexibility when dealing with the diamond problem for 
instance variables: each instance variable can be configured either as 
one joined copy or as multiple independent copies in the bottom class.


The key ideas are:

1. decouple data interface from data implementation;
2. in the regular methods implementation use virtual property methods 
instead of direct raw fields; and
3. after each semantic branching add (and override) the new semantic 
assigning property.


Then we show our method is general enough, and also applicable to any 
OOP languages that natively support multiple inheritance (e.g. C++, 
Python, Eiffel, etc.), or single inheritance languages that support 
default interface methods (e.g. Java, C# etc.).


For example, in the diamond inheritance problem of Faculty, and ResearchAssistant>,
we want to achieve the ideal application semantics: each 
ResearchAssistant should only have:

*  one (joined) copy of `_name` field, but
*  two (separated) different address fields:
   - one `_student_addr` ("dorm") as Student to takeRest(), and
   - one `_faculty_addr` ("lab") as Faculty to doBenchwork()

Our new design pattern can achieve this.

Also it works for the current D! although it's a bit hackish. With 
default interface methods it will be better (less convoluted).

(ref: https://github.com/joortcom/DDIFI/blob/main/d/MI.d)

### Speaker Bio

Ph.D Oxford Univ.; previous Google engineer; startup founder.


Re: Beerconf June 2023

2023-06-19 Thread Steven Schveighoffer via Digitalmars-d-announce

On 6/11/23 4:48 PM, Steven Schveighoffer wrote:

# BEERCONF!

Beerconf for June is happening 2 weeks from now, on the 24-25.


Just a quick update for this weekend's Beerconf, YuQian Zhou has 
contacted me about presenting on a new design pattern called DDIFI - 
Decoupling Data Interface From data Implementation. Presented as a clean 
and general solution to multiple inheritance. There is demo code for 
both C++ and Java, and the hope is that D can find use for it.


YuQian has agreed to join us for Beerconf and show the presentation on 
Saturday at 19:00 UTC!


I'll ping again this week to remind everyone, and ping again when this 
presentation starts.


See you then!

-Steve


Beerconf June 2023

2023-06-11 Thread Steven Schveighoffer via Digitalmars-d-announce

# BEERCONF!

Beerconf for June is happening 2 weeks from now, on the 24-25.

Wow, only a couple more months until dconf, can't wait to see everyone 
again! If you haven't booked yet, the early bird window is closing! 
https://dconf.org/2023/index.html


Want a beerconf T shirt? We know you do. 
https://www.zazzle.com/store/dlang_swag/products?cg=196874696466206954


## What is beerconf?
Check out the [wiki article](https://wiki.dlang.org/Beerconf).

## Presentations?

As always, I'm interested in having people present some topic. If you 
have something you want to reserve a time for, please send me a message 
in any of the channels (here, email, discord, slack, etc.) and I'll make 
sure to announce it.


Last month was a nice Q session with Mike talking about the IVY 
system. Thanks to him for coming on and sharing!


Cheers! 

-Steve