>You need to stay on top of things and communicate regularly, even if your client doesn't.
you have to tell them that they have to communicate regularly too. otherwise, how can business be done. how can issues be sorted out. they will blame you for the issues later, although they did not discuss them with you. aka cya syndrome.
if they continue not to do it, you should fire them. or use reverse signoff protocol.
"we mutually agreed at the start of this engagement, that if you don't sign off on acceptance of a given deliverable within x days, it is understood that you have accepted it and will pay for it".
If it happens more than once, leave them. it indicates they don't take you seriously.
all such terms should be put in the contract, initially.
if they don't agree to such mutually protective terms, don't sign the contract at all.
>I would absolutely not offer freebies. That telegraphs desperation. Instead, offer a free initial consultation for a 1 hour meeting,
that is still a freebie, though, by definition. if you offer anything for free, it is a freebie.
and, offering a freebie does not necessarily signal desperation. i am not saying that one should not offer freebies, or even that one should. it all depends. and many variations are possible.
I'm not super familiar with Raku, but if RakuAST is what you had in mind it looks a bit different:
use experimental :rakuast;
my $ast = RakuAST::Call::Name.new(
name => RakuAST::Name.from-identifier("say"),
args => RakuAST::ArgList.new(
RakuAST::StrLiteral.new("Hello world")
)
);
Looks more like "low-level programming an AST" (which I believe other languages offer as well), rather than using a bidirectional transform. I don't know how you'd get Raku code back out, for example.
Edit: I should have looked deeper, `DEPARSE` does exactly this:
https://news.ycombinator.com/item?id=47856361
reply