HackerTrans
TopNewTrendsCommentsPastAskShowJobs

bulatb

no profile record

comments

bulatb
·il y a 2 mois·discuss
> nothing in the stack wants you to do that

Meaning treat semantic markup as a principle. Most modern tools are not that interested in 2010s ideas about separation of design and content.
bulatb
·il y a 2 mois·discuss
HyperText Markup Language is semantic. You're marking up a document to show what information it contains, where it contains it, and how it relates to other documents or information. Reading markup causes browsers to display things, but that's incidental.

In theory.

In practice, no one cares about semantics and the choice of tags is based on how a target set of browsers happens to display them.

Your question about who interprets markup is exactly right. In theory, you have no idea. Maybe it's a browser, maybe it's assistive software, maybe it's a browser printing, maybe it's some custom knowledge base with different views of documents for different users. In theory, you're supporting all of that by only marking up semantics and allowing the consumer to interpret them, because there isn't one right answer.

In practice, your client is Chrome.

In theory, that's irrelevant because you're using CSS to style semantic markup so it works in Chrome and still makes sense to other clients.

In practice, you're writing a web application, using a framework, and nothing in the stack wants you to do that.
bulatb
·il y a 2 mois·discuss
Too late to edit now, but I should mention putting titles in a list like that isn't valid. It's just to shorten the example.
bulatb
·il y a 2 mois·discuss
A <ul> is a list of things whose order makes no difference to its meaning. Rearranging a <ul> would change the presentation, not the information. Rearranging an <ol> would change both.

  <ul> Players
    <li> Alice
    <li> Bob
    <li> Carol
  </ul>

  <ol> Leaderboard
    <li> Bob
    <li> Alice
    <li> Carol
  </ol>
bulatb
·il y a 5 mois·discuss
We're taking about different things. To take responsibility is volunteering to accept accountability without a fight.

In practice, almost everyone is held potentially or actually accountable for things they never had a choice in. Some are never held accountable for things they freely choose, because they have some way to dodge accountability.

The CEOs who don't accept accountability were lying when they said they were responsible.
bulatb
·il y a 5 mois·discuss
There's nothing to prove. Responsibility means you accept the consequences for its actions, whatever they are. You own the benefit? You own the risk.

If you don't want to be responsible for what a tool that might do anything at all might do, don't use the tool.

The other option is admitting that you don't accept responsibility, not looking for a way to be "responsible" but not accountable.
bulatb
·il y a 5 mois·discuss
"People don't learn lessons" is a lesson that people don't learn.
bulatb
·il y a 9 mois·discuss
It can. SQLAlchemy has good support for types since 2.0, which helps a lot.
bulatb
·il y a 9 mois·discuss
You would have an API that makes the query shape, the query instance with specific values, and the execution of the query three different things. My examples here are SQLAlchemy in Python, but LINQ in C# and a bunch of others use the same idea.

The query shape would be:

  active_users = Query(User).filter(active=True)
That gives you an expression object which only encodes an intent. Then you have the option to make basic templates you can build from:

  def active_users_except(exclude):
      return active_users.filter(User.id.not_in(exclude)
...where `exclude` is any set-valued expression.

Then at execution time, the objects representing query expressions are rendered into queries and sent to the database:

  exclude_criterion = rude_users()  # A subquery expression
  polite_active_users = load_records(
      active_users_except(exclude_criterion)
  )
With SQLAlchemy, I'll usually make simple dataclasses for the query shapes because "get_something" or "select_something" names are confusing when they're not really for actions.

  @dataclass
  class ActiveUsers(QueryTemplate):
      active_if: Expression = User.active == true()

      @classmethod
      excluding(cls, bad_set):
          return cls(
              and_(
                  User.active == true(),
                  User.id.not_in(bad_set)
              )
          )

      @property
      def query(self):
          return Query(User).filter(self.active_if)

  load_records(
      ActiveUsers.excluding(select_alice | select_bob).query
  )
bulatb
·l’année dernière·discuss
> That is almost certainly user error on my part

If an interested and reasonably savvy person can't get a program to work as it claims, the problem is the program, not the user.
bulatb
·il y a 3 ans·discuss
I think this illustrates the problem: when it's framed in terms of rights, the conversation needs such careful wording and so many asterisks that it distracts from the point. I'm leaving out a bunch of things I want to say because it takes too long to say them.

When someone says that X should be a right, is making it a right the ultimate goal? (What specifically does "should be a right" even mean? What do they think rights are? What do I?) Usually there's something else that making X a right implies, a goal for which the right is just an instrument. If making X a right results in Y, and Y is good, and that's why X should be a right, then why not argue directly for Y?

Otherwise you make a purely moral argument that only works on people who already share your values. What if they don't? That happens all the time with moral framings. One side doesn't understand the other doesn't care about their values and repeating or restating them in different ways won't change that.

Calling X a right is a position statement, not an argument. If you want to use it as a premise in an argument that "X is a right, therefore Y," you have to make a separate argument that X is actually a right. You can't just assert it.

Borrowing the moral weight of humans rights most people recognize, attaching it to an asserted right most people don't, and using that to argue for an outcome based on their support for "human rights" is turning human rights into a stick to hit them with. The more it's used, the more they learn to roll their eyes at arguments invoking "human rights." What happens when they start to roll their eyes at human rights?
bulatb
·il y a 3 ans·discuss
"The concept" is referring to rights. I can see how it could be unclear.
bulatb
·il y a 3 ans·discuss
Invoking rights like this creates a bridge between the normative (what ought to be) and the descriptive (what will be, whether it ought to or not). Often, yeah, to borrow the obvious "truth" of a normative statement so a false descriptive one looks true.

It lets you say "I really, really think that X is good" but act as if you're just reporting "Everyone agrees with me that we should do whatever 'X is good' implies." It muddles the meaning of rights, tarnishes the concept by equating the support for rights in general with a specific, controversial position many people will reject, and all to make an argument that won't stand up to scrutiny and makes your audience feel cheated.

It's confusing even trying to describe what's normative and what's descriptive in the headline. Arguing descriptively that something is a right, which isn't widely thought to be a right, because it ought to be a right, because then your claim would be accepted, is too convoluted. It's making a descriptive claim about what normatives I do accept that's actually a normative claim about what normatives I ought to behave as if I accept. What?

If you want argue for specific action, just do it. Don't try to tell the audience what they believe.

The framing also means that people argue about rights instead of whatever the point was, like we're about to do here.