« first day (1914 days earlier)      last day (3062 days later) » 
01:00 - 20:0020:00 - 00:00

8:07 PM
@LightnessRacesinOrbit yes
both
 
8:19 PM
nerd
i mean, ok :)
(perhaps if I don't use notify-reply, he won't see that eh.....)
 
probably not
 
Is there a Japanese word for just about everything that is a good idea?
Nemawashi (根回し) in Japanese means an informal process of quietly laying the foundation for some proposed change or project, by talking to the people concerned, gathering support and feedback, and so forth. It is considered an important element in any major change, before any formal steps are taken, and successful nemawashi enables changes to be carried out with the consent of all sides. Nemawashi literally translates as "going around the roots", from 根 (ne, root) and 回す (mawasu, to go around [something]). Its original meaning was literal: digging around the roots of a tree, to prepare it for a...
 
@ThomasOwens Japanese is really good at coming up with concise words for relatively abstract but specific ideas
 
@Ixrec A lot aren't new words, either.
They are sufficiently abstract to be useful in a variety of situations, but specific enough to have a relevant and useful meaning.
 
yep, that's one of my favorite things about the language
 
8:32 PM
> If they find out about something for the first time during the meeting, they will feel that they have been ignored, and they may reject it for that reason alone.
There's a pretty poor downside though.
 
@Ampt I don't understand how that's a downside. It seems like, culturally, you shouldn't just initiate a change or project.
Before you pull everyone together and spend the time of a dozen people, you go to the people briefly before hand and get input and feedback to make your plan better.
 
@ThomasOwens There's no way to introduce an idea without first talking to every single stakeholder one on one.
that's a time consuming process
 
@Ampt So? If you prioritize who you talk to, you could find out that it's really a terrible idea.
 
What if I'm on a tight timeline?
 
@Ampt Why would you be on a tight timeline to make such a drastic change?
 
8:36 PM
@ThomasOwens LOL
I'm a consultant. Use your imagination
Hell, the client could want to release a month early for no reason at all, and most of the time we'll bend over backwards to make it happen because $$$$$
And nothing in that wiki article says it needs to be done for a drastic or major change, but for any change. Edit: It does say that in the second sentence.
 
> It is considered an important element in any major change, before any formal steps are taken
 
ok, but really, you can't imagine a scenario where you don't have time to talk to every single stakeholder?
really?
 
Hansei is a constant and continuous awareness and improvement.
 
what a charmed life you must live in that ivory tower
 
8:39 PM
It's a cultural thing. Major changes aren't necessary as often because you're continuously making small changes.
 
And small changes don't need that level of effort. But sometimes, in life or work, you do need a major, radical, change.
 
@ThomasOwens like that time you ate bran flakes instead of grape nuts. That day was like whoa wasn't it? I bet it sent all your engineering senses a tingling.
;P
 
@JimmyHoffa I've been eating the same cereal for months now. Wegmans brand "Fitness Crunch".
 
@JimmyHoffa he needs to consult his plumbers before he can change his diet like that you ignorant fool.
 
8:43 PM
projects fail when working with international teams for reasons exactly like this. while annoying, you can't just write off things that other cultures highly value as irrelevant when trying to work with them...
 
I hear shaking hands in the morning is something you allocate time for in France
like literally 90 minutes of your day go to walking around shaking hands.
 
@ThomasOwens I just watched the movie Chaos Theory again last night so now I'm just going to be stuck picturing you writing lists on index cards from now on.. You have to see that movie if you haven't.
 
@JimmyHoffa IS it on Netflix, Google Play, or Amazon?
If so, I'll watch it.
 
I'm sure you can rent it through google play or amazon prime; whether it's on as a free choice I don't know
 
Although that explains a lot about the japanese culture of being the last to leave the office when you have to talk to literally everyone about every decision.
 
8:46 PM
Also, another interesting thing culturally is when people or companies try to take ideas without understanding them. There's the recent best-selling book about tidying your home that I mentioned earlier. US companies have also tried to implement the Toyota Production Method (and many do it poorly and fail). The reason is that many of the concepts are heavily rooted in the culture.
 
@ThomasOwens ... is that what TPS stands for?!?!?!?!?!
 
@Ampt Don't call the Japanese culture slow, though. Toyota can develop changes to cars in less than 20 months. American car manufacturers? 36 months.
Even with these things culturally, they learned from the Americans that went there (many after WWII) and adopted things into the business culture and their home lives that are really impressive.
 
user55340
This appears to be a good time to use one stack with a polymorphic object in there. Directly accessing memory isn't something you should need to do given that you are working in C++. That said, you might also want to get into Programmers Chat (The Whiteboard) where we could work through what design of your software is a bit more interactively and then update the question appropriately. — MichaelT 8 mins ago
 
user55340
what do you mean with polymorphic objects, unions? — Coder3000 7 mins ago
 
8:52 PM
@JimmyHoffa: I got your little DSL working with the Micro Rules Engine; it's happily processing rules and returning a boolean result. I've even figured out how I might walk the expression tree and visit each node, if I need to. What I haven't quite figured out is how to get it to print out each expression from the expression tree as it is executing, along with the result of each rule.
 
@RobertHarvey public static Func<TIn, TOut> LogInputAndOutput<TIn, TOut>(Func<TIn, TOut> operationToLog) { return new Func<TIn, TOut>(input => { _log.Trace(string.Format("Input: \"{0}\"", input.ToString())); var result = operationToLog(input); _log.Trace(string.Format("Result: \"{0}\"", result.ToString())); return result; }); }
something like that off hand can work
Haskell currying would make that work against any function, but C# you'd need to make various versions based on the number of inputs to the methods you want to wrap in a log
there's other ways to do it that would likely be easier and clearer - but I don't really know how your execution/visitation looks. If it's genericized properly you could just make the logging attached on there in a single method and be done
 
@JimmyHoffa you know, I was just joking when I made fun of your haskell riddled mind, but now.... now I'm worried about you.
 
9:08 PM
@JimmyHoffa It's just an expression tree that this point. The Rules Engine merely converts those rules you made a DSL for into an ordinary expression tree.
Then you hand the expression tree your class to examine, it executes and returns a boolean result.
        public void HoffaConditionalLogic()
        {
            var order = GetOrder();
            var rule = Rule.Equal("Customer.LastName", "Doe")
            .AndAlso
            (
                Rule
                    .Equal("Customer.FirstName", "John")
                    .Or(Rule.Equal("Customer.FirstName", "Jane"))
            );
            Engine engine = new Engine();
            var compiledRule = engine.CompileRule<Order>(rule);
            bool passes = compiledRule(order);
            Assert.IsTrue(passes);
 
@RobertHarvey oh, then when it does the conversion, make it create some Expression.Blocks that have Expression.MethodCalls to call the logging before and after executing the comparison bit.
 
That's kinda what I thought. The logging has to be part of the expression tree.
 
Either in the expression tree, or in the expression tree execution - but since you're using .NET's expression trees you don't have access to the execution piece
just make a .Log method on Rule that behaves like the .Equal and .Or methods etc, and then you can make .Or and .Equal call it to return a version of their node wrapped in the logging piece
@RobertHarvey also note: you can log the pre-compiled code string of the expression tree and it's very similar to outright C#; kinda looks like a mishmash of C# and IL
 
Ah, so the logging portion becomes just another rule? I kinda like that idea.
@JimmyHoffa Oh, so that didn't work because I ToString()'d the compiled rule, not the precompiled rule.
 
sounds right; I don't remember the precise call to generate the string, but I remember when working with Expression Trees I got used to using it for debugging to see exactly what the code the tree was going to execute would look like.
 
9:39 PM
@RobertHarvey the compiled rule is a binding site - not an expression tree (if I remember correctly)
 
9:51 PM
Does anyone know if I can deploy web services written in .NET on a linux server?
 
@MichaelMahony Can you use Mono?
 
Mono is a development environment that allows me to use C# and deploy on Linux, is that correct?
 
@MichaelMahony it's an oversimplification but it's true
 
Although .NET Core runs on Linux now.
So maybe you don't need Mono?
 
believe that's accurate
 
9:57 PM
I have been looking up what is required to deploy .NET REST services on a Linux server and so far I am coming up empty (other than Mono).
 
@MichaelMahony do you know much about .NET? It's broad name used to refer to multiple things: The .NET runtime which compiles CIL code into machine code JIT and handles all the library resolution and marshalling at run time. The .NET framework which is a set of libraries for use by applications which execute in the .NET runtime. Also often times the languages that have compilers written to generate CIL from them; namely C#, VB.NET and the numerous others
@MichaelMahony google for linux OWIN host - or Node.JS .NET interop
 
yes, been using .NET to write applications for over 10 years
cool thanks for the tips on what to search for...checking nwo
now
 
@MichaelMahony ah well then, because OWIN's an open spec - I would think there's an OWIN host that'll run on linux by now. The "service" piece will be the trickiest part because depending on how you mean; throughout windows, you typically have services living in the WM spaces of the OS which don't exist in linux
 
right...this is simply a restful API.
 
psr
@Ampt Flu season must be impressive.
 
10:02 PM
Ah, so.
 ((Param_0.Customer.LastName == "Doe") AndAlso ((Param_0.Customer.FirstName == "John") Or (Param_0.Customer.FirstName == "Jane")))
Result of expression.ToString()
 
After reading the on-topic guidelines for programmers se, maybe it would be on-topic there? I hesitate to say so, because someone else might point out a reason it's not suitable. — Maximillian Laumeister 1 min ago
 
10:15 PM
@JimmyHoffa OK, so I now have
    public Rule Log(params Rule[] rulesToLog)
    {
        return new Rule
        {
            Operator = "Log",
            Rules = new[] {this}.Concat(rulesToLog).ToList()
        };
    }
And now I guess I need a Log method to bind to that Operator parameter.
Which looks like it needs to go into the Rules Engine GetExpressionForRule method.
 
10:31 PM
Ack. Having trouble composing it.
It looks like it's going to be similar to this:
        if (r.Operator == "IsMatch")
        {
            return Expression.Call(
                typeof(Regex).GetMethod("IsMatch",
                    new[] { typeof(string), typeof(string), typeof(RegexOptions) }),
                propExpression,
                Expression.Constant(r.TargetValue, typeof(string)),
                Expression.Constant(RegexOptions.IgnoreCase, typeof(RegexOptions))
            );
        }
But I don't know how to get the return value of the computed expression into the logger.
I guess I would just put the expression into a variable, log it, and then return the expression as usual.
Or maybe an Expression.Lambda()
 
@LightnessRacesinOrbit The chat room at dsp.stackexchange.com would probably appreciate that.
 
@RobertHarvey If that chat room were anything other than a holographic projection, I may have linked it there
I usually don't wear shoes while at work, only on the way to it and home. Everyone in my family and friends would say that this is unacceptable where they work and in their field. But they do not work in my field and they do not work where I do. You might want to remember that (if it is indeed the case) they do not work where you do. Feeling like you blend in with the team, clothes wise, can be a big point of starting to feel being part of the team. — PlasmaHH 12 hours ago
dafuq - workplace.SE strikes again
I even know this particular gentleman (from C++ chatz on IRC last decade)
 
Does he have a grey beard?
 
11:04 PM
@RobertHarvey doubtful
 
11:18 PM
@RobertHarvey this is why I was saying expression.block - they allow you to do multiple statements in a row including assignment expressions.
 
OK. I'll have a look at that. Though I think I'll have to extensively modify the engine to make that work.
Because every rule will now have to be an expression.block.
Actually, maybe I can wrap the final expression in the BuildExpression method into an Expression.Block.
@JimmyHoffa Maybe something like this:
    public Expression WithLog(Expression exp)
    {
        return Expression.Block(exp, Expression.Call(
            typeof (Engine).GetMethod("Log",
                new[] {typeof (string)}),
            new[] {exp}));
    }
Hmm, Log method needs to be static.
 
01:00 - 20:0020:00 - 00:00

« first day (1914 days earlier)      last day (3062 days later) »