Hacker Newsnew | past | comments | ask | show | jobs | submit | phailhaus's commentslogin

> Each board director could ask for a particular thing they require, or a briefing themself, eliminating human intermediary

You are missing the point of board briefings. The CEO serves as a critical filter of information, deciding what to tell the board and how to frame it. If you take the CEO out of it, you're giving the board full access to the company's state. There's enough going on day-to-day that each member can tell themselves the story they want to believe. The CEO is there to advocate for the company and present a unified front, you can't take them out of the equation.


Isn't the CEO taking themselves out of the equation in this demo?

No, because they are not blindly passing on the briefing to the board. It's a starting point, and presumably they're going to tweak it.

Why would a board refuse to use this tool? Why would a board want to allow the CEO to filter and frame?

Because it opens them up to liability. The most experienced board members will leave the board deck behind so they don’t have a copy. They sure won’t go searching for things that aren’t presented in the board meeting. It’s better for them to blame and fire the CEO.

Voter registration already requires proof of citizenship. What is the point of requiring that high bar of proof on the day of voting as well?

In my state it doesn’t require that. You just need someone else that’s registered the vouch for you. A registered person can vouch for up to 8 people:

https://www.sos.mn.gov/elections-voting/register-to-vote/reg...


I've lived in 3 states and none of them have required proof of citizenship to register to vote. You basically check a box that acknowledges that you are a US Citizen with the right to vote and that illegal registration carries penalties.

How is it a high bar of proof if it is already required? Edit: and already met

How many documents can be used to prove your citizenship? How many times do people have to go back to the DMV because they forgot something or another? Now imagine that everyone has one shot to get that right on voting day.

That’s not how this would work in practice. You get an id that proves citizenship once. So one day at the dmv, Not every Election Day.

It's not a requirement in most places. This would be a significant change in practice.

Why have voter registration?

In the United States at least, voter registration will include your place of residence which will place you in a specific precinct. In other words: "I am so and so, and I live here. Votes that affect this area include me, and I get a say."

When voters are voting for things, for example a tax levy to fund a new school, or for who will be their state or federal congressional representatives, it's important that the voters in that school district or in that congressional district are the ones voting for their representatives or for the bills or initiatives that affect them. This isn't quite as important for national elections, gubernatorial races, or for the senate at the federal level, but it's obviously incredibly important the more local you get.

Without voter registration, that model breaks down. Even mundane things like how much staff and equipment should be at a polling location is not easy to figure out when you don't know how many voters you'll have. If you haven't worked as a poll worker it's really enlightening to learn about how the process works and a great way to meet your neighbors.


One of the issues is that the US, unlike most of Europe, for example, doesn't require registering your address with your locality or police when you move.

Bash syntax is anything but simple or logical. Just look at the insane if-statement syntax. Or how the choice of quotes fundamentally changes behavior. Argument parsing, looping, the list goes on.


if statements are pretty simple

if $command; then <thing> else <thing> fi

You may be complaining about the syntax for the test command specifically or bash’s [[ builtin

Also the choice of quotes changing behavior is a thing in:

1. JavaScript/typescript 2. Python 3. C/C++ 4. Rust

In some cases it’s the same difference, eg: string interpolation in JavaScript with backticks


> Also the choice of quotes changing behavior is a thing in:

In those languages they change what's contained in the string. Not how many strings you get. Or what the strings from that string look like. ($@ being an extreme example)


> $@ being an extreme example

From the bash man page via StackOverflow:

> @ Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, each parameter expands to a separate word. That is, "$@" is equivalent to "$1" "$2" ... If the double-quoted expansion occurs within a word, the expansion of the first parameter is joined with the beginning part of the original word, and the expansion of the last parameter is joined with the last part of the original word. When there are no positional parameters, "$@" and $@ expand to nothing (i.e., they are removed).

That’s…a lot. I think Bash is interesting in the “I’m glad it works but I detest having to work with it” kind of way. Like, fine if I’m just launching some processes or tail’ing some logs, but I’ve rarely had a time when I had to write an even vaguely complex bash script where I didn’t end up spending most of my time relearning how to do things that should be basic.

Shellcheck was a big game changer at least in terms of learning some of the nuance from a “best practice” standpoint. I also think that the way bash does things is just a little too foreign from the rest of my computing life to be retained.


Complex and bash script should not be in the same sentence. If a script you have is becoming complex, that’s an hint to use an anemable programming language with proper data types and structures.

Shell scripts is for automating shell sessions.


Are taxes simple?

Why does Bash syntax have to be "simple"? For me, Bash syntax is simple.


Uh, reading a bash script shouldn't be as hard as doing your taxes. Bash syntax has to be simple because bash code is going to be read and reasoned by humans. Reading just a simple if statement in bash syntax requires a TON of knowledge to avoid shooting yourself in the foot. That's a massive failure of usability just to save a couple of keystrokes.

This is like saying "what's wrong with brainfuck??? makes sense to me!" Every syntax can be understood, that does not automatically make them all good ideas.


You could make a list of WTFs about any language.

Bash syntax is the pinnacle of Chesterton's Fence. If you can't articulate why it was done that way, you have no right to remove it. Python would be an absolutely unusable shell language.


I didn't say that there wasn't a reason. I said it was absolute trash to use. It's so bad that the moment I need even the slightest bit of complexity, I will switch away from bash. Can't really say that for any other language.


This is a Very Bad Idea. Two people working with the same language will be unable to reason about each other's code, because it requires understanding their bespoke syntax and its nuances.


No it won't? That's exactly the point -- each of those people will be viewing the code in their own preferred syntax. If there is semantic nuance in the writer's syntax, the reader will see it presented in the best way their preferred syntax's representation can provide.

Imagine all the hours saved that are currently spent on tired tabs vs spaces debates, or manicuring .prettierrc, etc etc. The color of the bike shed might matter (sometimes a lot) to some people, I know, but it's storing bikes away from the elements and thieves that is the goal, not obsessing over optimizing something that is demonstrably a subjective matter of taste.


Those are both formatting examples though? You're suggesting totally different syntaxes, which means you can't even point to the same line in a codebase when talking about a PR. This throws up massive hurdles around communication when you could just agree on one standard and move on.


  class Bean {
    private boolean sprouted;

    public void sprout() {
      this.sprouted = true;
      // ...
    }
  }
or

  data Bean = Dormant | Sprouted
  
  sprout :: Bean -> Bean
  sprout Dormant = Sprouted
  sprout Sprouted = -- aw, beans, we could have modeled
                    -- this state as impossible to construct,
                    -- but you chose runtime checks, so
                    -- here we are.
As for pointing to the source line, I think JavaScript people solved that one for us with source maps. Just because we download and execute a single 4Mb line of minified code, doesn't mean we can't tell which line of the original source caused the error. :)


Oh lord, yeah this convinces me even more that this is a bad idea. I can't even tell at a glance if those do the same thing. Just pick one and move on, you're requiring everyone to pass around sourcemaps literally everywhere they go, one for every single pair of syntaxes. You can't even talk about the code with the same language with each other. Is Bean a "class" or a "datatype"? If I'm using one syntax, how do I tell you to fix a bug in your syntax?


> If I'm using one syntax, how do I tell you to fix a bug in your syntax?

How about "Hey, your Bean ain't sprouting"? :)

I'm sorry, I feel like I'm not communicating this properly. Um, have you ever discussed with someone a book or a TV show that was translated into your language? Did you have problems referring to the exact parts you liked or disliked? :)


I love TRMNL for this exact type of usecase! Only ~$150, and you can self-host if you want.


I got the battery extension and it lasted more than 10 months (I have it on a 30 minute refresh). Highly recommend TRMNL if you want something to hack on without fussing with hardware.


glad to hear this. we made a couple more power savings improvements this week, publishing something on the blog about it ~tmrw.


When I write the code myself, I'm not worried that I snuck a `git reset --hard` somewhere.


Do you only run code you wrote yourself?


I depend on the community to vet libraries that I add to my stack. The community of people.

When I use AI to write code, I have absolutely no guarantee about what it just did, so I have to read through it all carefully.


> Okay, so they did all that and then posted an apology blog almost right after ? Seems pretty strange.

You mean double down on the hoax? That seems required if this was actually orchestrated.


Complex numbers are just a field over 2D vectors, no? When you find "complex solutions to an equation", you're not working with a real equation anymore, you're working in C. I hate when people talk about complex zeroes like they're a "secret solution", because you're literally not talking about the same equation anymore.

There's this lack of rigor where people casually move "between" R and C as if a complex number without an imaginary component suddenly becomes a real number, and it's all because of this terrible "a + bi" notation. It's more like (a, b). You can't ever discard that second component, it's always there.


We identify the real number 2 with the rational number 2 with the integer 2 with the natural number 2. It does not seem so strange to also identify the complex number 2 with those.


If you say "this function f operates on the integers", you can't turn around and then go "ooh but it has solutions in the rationals!" No it doesn't, it doesn't exist in that space.


You can't do this for general functions, but it's fine to do in cases where the definition of f naturally embeds into the rationals. For example, a polynomial over Z is also a polynomial over Q or C.


Sure, you can say that complex numbers are 2-tuples with a special rule for multiplication (a, b) * (c, d) = (ac - bd, ad + bc). Same way you can define rationals as 2-tuples with a special rule for addition (a, b) + (c, d) = ((ad + cb) / gcd(b, d), bd / gcd(b, d)).

But I think this way you'd lose insight as to where these rules really come from. The rule for complex multiplication is the way it is, precisely because it gives you an algebra that works as if you were manipulating a quantity that squared to -1.


The movement from R to C can be done rigorously. It gets hand-waved away in more application-oriented math courses, but it's done properly in higher level theoretically-focused courses. Lifting from a smaller field (or other algebraic structure) to a larger one is a very powerful idea because it often reveals more structure that is not visible in the smaller field. Some good examples are using complex eigenvalues to understand real matrices, or using complex analysis to evaluate integrals over R.


I hate when people casually move "between" Q and Z as if a rational number with unit denominator suddenly becomes an integer, and it's all because of this terrible "a/b" notation. It's more like (a, b). You can't ever discard that second component, it's always there. ;)


Yes, you're right. You can't say your function operates in Z "but has solutions in Q". That's what people are doing when they take a real function and go "ooh look, secret complex solutions!"


Great writeup! Looks like this is going to be relevant very soon.

> Tools do not make a culture; the people engaging on it do

Absolutely, but it's also important to keep in mind that the tool has a big impact on culture by virtue of what behaviors it encourages and what limitations it has. "The medium is the message" is very true here, so think carefully about which tool you hop onto.


Falling sand games bring back a lot of nostalgia. If you're interested, you should check out dan-ball's version which is one of the progenitors of the genre. Over the years he's added a ton of features, elements, and interactions, to the point where it now has a fluid mechanics simulation for air!

https://dan-ball.jp/en/javagame/dust/


Ha55ii's powder game is perhaps the best of the genre, and the ease of sharing made for a pretty cool online community circa 15 years ago. I remember various calculators / computers created in powder game, along with a bunch of artistic efforts.


If you didn't know, Dan-ball has a variety of fun free mobile games that are all great.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: