« first day (3141 days earlier)      last day (1093 days later) » 

4:06 PM
laters o/
oh he's that guy
good instinct
As far as I'm concerned 14492 is kick-on-sight until (s)he can behave themselves a bit more.
Maybe not on-sight. On first message that isn't an apology.
it's like a virtual version of shoot-to-kill :D :D :D
4:28 PM
6 hours ago, by mr5
await ShowLoader(); // show stopper (UI)
await SomeLongRunningTask();
await HideLoader(); // show stopper (UI)
This is a boilerplate in our code and I am still thinking for a solution to elegantly refactor it.
Hey, I think there are lots of cool people in JS room
I wish I am working in JS now so I can go there :D
But JS suck though
You could use an IDisposable.
using (var LoaderShower = new Loader())
@Grace that's clever :)
but it's hacky :(
> Interact with games via touchscreen, steering wheel buttons & XBox/PS controllers
This is in no way a bad idea.
O I interpreted it wrong
4:50 PM
Why is it hacky, this is the whole point of IDisposable
use a wrapper
public async Task<R> WhileLoaded<R>(Func<Loader, Task<R>> action)
Plus, this way you get cleaned up even if your long running task throws an exception
WhileLoaded(async loader => {
    await SomeLongRunningTask();
then use a try-finally inside WhileLoaded or use an IDisposable inside WhileLoaded
@Grace semantically, HideLoader doesn't seem to dispose any resources. Technically, it's disposing a UI though
The name isn't ideal, but you can use it for anything that has a specified lifetime.
4:54 PM
@Wietlol how can I pre and post execute the loaders there?
I've used the same pattern for locks and semaphores, even though those don't get disposed either.
At least it's not calling it a "context manager"
    try {
        // some pre execution
        return await action();
    } finally {
        // some post execution
@mr5 ^
Well, it would be now tricky as I need to convert this UI loaders into instance-based rather than inherited from base class
iirc, this is called the execute-around pattern
it should be much better than disposables
since you dont get to have any other way of using an instance of Loader other than using the function WhileLoaded
and that function handles the disposing stuff
if you simply have an IDisposable, you have to know it is an IDisposable
it took me a long while until i found out that DbContext (EF) is IDisposable
@Wietlol where did you get this name from?
4:59 PM
my memory
that is what "iirc" means
My in Memory modules need to be replaced
@Grace well, I was indoctrinated that you must dispose semaphores and mutexes so...
A: What is the "Execute Around" idiom?

Jon SkeetBasically it's the pattern where you write a method to do things which are always required, e.g. resource allocation and clean-up, and make the caller pass in "what we want to do with the resource". For example: public interface InputStreamAction { void useStream(InputStream stream) throws I...

@Wietlol this looks great! I'll try to implement it in our current projectses
and might as well in our upcoming projects if that performs well
this is what we use pretty much everywhere instead of SqlClient
5:03 PM
but the name sounds wrong I think
what does it mean to be deterministic?
OpenConnection(connectionString, connection =>
    connection.RunCommand(commandString, command =>
        command.ExecuteToIEnumerable(reader =>
            new Record(
for example
The Google definition is very profound. I feel like I'm reading a poet
After finding out its meaning, I think Thanos should have said that word somehow in his script.
@Wietlol it becomes harder to read IMO
it depends
I think because it is unfamiliar to you
for (int i = 0; i < list.Count; i++) {
    // some code
for example this snippet
this is extremely complex code
but we all understand it
I can understand the code but it requires me to focus on it
because it is familiar
5:09 PM
@mr5 I would call it "releasing" a lock, mutex or semaphore, but same thing
when you get used to a particular style of code, you can easily read it
about the "loaded" name, I dont really know what the context of it is, so naming it would be rather difficult for me
@Wietlol I wouldn't call this complex at all. Complexity is when there is too much nesting of the code that you need to carefully read each line to understand the meaning of it
@Grace fair enough
@mr5 complexity is when you combine different levels of abstraction
at least... 80% of complexity is
I feel arrogant when the word "fair enough" comes from me. Does it sound cocky for native English speaker or that's okay?
it obscures the meaning of code and requires you to understand multiple things at the same time
@mr5 I think its a pretty common expression
where you see the point someone else makes and agree upon it enough to give him/her credit
i think...
5:16 PM
It's like shutting the argument down, or you don't care about what he says lol
> used to admit that something is reasonable or acceptable.
@mr5 i'd love to disagree upon that
Yeah maybe I feel like it because of our culture :)
culture is a swine
or... was it culture swine?
I think it's swine flu
@Wietlol well you pretty much describe your previous example lol
Because we usually read top-down left to right
I read it as:
open the connection -> run this command -> execute this command -> transform data
run and then execute?
maybe the name could be improved :)
but also... the names are copied from their actions
it could also be that.... i dont recall the names correctly
CreateCommand might make more sense
ExecuteToEnumerable/ExecuteToList is an alternative to ExecuteScalar or ExecuteNonQuery
it uses ExecuteReader in the background
and passes the (disposable) reader to its body function
ExecuteToEnumerable uses yield, ExecuteToList does not (which makes ExecuteToEnumerableAsync a bit impossible until C#8)
or, C# must use a better version of yield and disposable composition
which would be useful anyway
5:24 PM
How long have you been working in EF?
not long enough
o look a bird
 /\ /\
It's an owl
do you think EF needs a rewrite or refactor?
or redesign
I think it needs an alternative point of view
It needs point of view of Bill Gates
Write it in procedural style
EF has a quite good and interesting principal design
but the edge cases are hideous
migrations, acceptance and behavior of expressions, etc
5:31 PM
Do you think we need to add more into the syntax? Like there's still missing attribute?
Oh yeah, I remember, they forgot to include the documentation again. (in the on-hover event)
At least in VS for Mac
attributes might be enough
havent really had issues with them iirc
apart from one moment where [Required] assumes empty strings are null
I hate those attribute data validation
We have encountered a lot of issue from it, one example is one of the developers set the MaxLength of the comment property into 40 so we substring as a quick fix
we didnt put much validation on it, only Required or not
for null awareness
is it for serialization optimization?
we dont do optimization :)
we assume performance :)
null awareness is probably one of the best things you can have at this moment in C#
C#8's Nullable would ensure this
currently, we assume everything is non-null
if you want an optional value, we use IOptional<T>
which we carefully curated
which would be the equivalent of Nullable<T> but then for structs and classes
5:47 PM
@Wietlol well, in mobile apps, reducing your API response is a critical part
I dont really care much for mobile development really
maybe I should...
I'm excited to use the nullable reference types
but havent yet done much with it
what is the basic difference between wpf page and window? sorry I didn't search it on google just asking an expert to understand the basic concepts by talking...
you made one mistake tho
you assumed we were experts
5:52 PM
I am here from very long but I have switched my track on android past 2-3 years so I have forgotten some basics...so I know very well who lives here :-)
well... I cant help you much, since I have never done wpf...
OK no offence.
none taken...
i think
6:51 PM
Hello all
I'm trying to run my docker project but with data persisting
I have succeeded in getting the netcore api and mySQL db containers created
Even managed to link the mySQL created to the api
But I keep getting errors like -
the table hellofresho.Recipes does not exist
I believe it has to do with the config in my docker-compose file
This is my docker-compose file -
version: '3.1'


  # Application container

    image: mysql
      - datafiles:/var/lib/mysql
      - ./sql-scripts/hellofreshgo.sql :/docker-entrypoint-initdb.d/hellofreshgo.sql
    #command: mysqld --default-authentication-plugin=mysql_native_password
    restart: always
      MYSQL_DATABASE: 'hellofreshgo'
      MYSQL_USER: 'root'
      MYSQL_PASSWORD: 'hellofreshgo'
      MYSQL_ROOT_PASSWORD: 'hellofreshgo'
        - '3306:3306'
In the root of my Project, I created a folder called sql-scripts and it is the script which contains database schema and data from when I tested locally (ie without docker)
Please how do I resolve this?
PS - Dockerfile is:
FROM microsoft/dotnet:2.2-aspnetcore-runtime

COPY dist /app

EXPOSE 80/tcp

ENTRYPOINT ["dotnet", "HelloFreshGo.dll"]
I'm getting this error and I'm not sure what to do Project-level conditional compilation constant 'DEBUG ^^ ^^ TRACE' is not valid: Character is not valid. "DEBUG ^^ ^^ TRACE" doesn't appear anywhere in any file in the solution folder. Google refuses to search on that string. It just gives me back results that have "DEBUG" and "TRACE".
the file it gives is "vbc" which doesn't exist.
Apparently vbc is "Visual Basic Command line compiler". I have no idea why that would even be in use since I never touch Visual Basic.
2 hours later…
9:09 PM
@gbade_ is #command: mysqld --default-authentication-plugin=mysql_native_password a comment, and is that intentional?
the # character in compose files, that is
and this line ` - ./sql-scripts/hellofreshgo.sql :/docker-entrypoint-initdb.d/hellofreshgo.sql` I don't know docker-compose at all but the syntax of this line looks a little strange, like something is concatenated together by mistake; is that right?
9:50 PM
just out of curiosity...
2 hours later…
11:44 PM
hey ois any1 threre
like at all
