# boolean

Published articles for boolean.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## CAA DNS Issuer-Critical Flags Are Confusing to Configure

DevFeed: [CAA DNS Issuer-Critical Flags Are Confusing to Configure](<https://devfeed.tech/articles/a-bit-of-dns-28502.md>)

Original publisher: [Read original article](<https://thedailywtf.com/articles/a-bit-of-dns>)

Author: Remy Porter

Published: 2026-09-10T06:30:00Z

Content type: opinion

Language: en

Sources: [The Daily WTF](<https://devfeed.tech/sources/the-daily-wtf.md>)

Topics: [certificates](<https://devfeed.tech/topics/certificates.md>), [domain](<https://devfeed.tech/topics/domain.md>)

Tags: [bits](<https://devfeed.tech/tags/bits.md>), [boolean](<https://devfeed.tech/tags/boolean.md>), [certificates](<https://devfeed.tech/tags/certificates.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [feature-articles](<https://devfeed.tech/tags/feature-articles.md>), [flag](<https://devfeed.tech/tags/flag.md>), [https](<https://devfeed.tech/tags/https.md>), [readability](<https://devfeed.tech/tags/readability.md>)

### AI overview

The article examines confusion around the issuer-critical flag in DNS CAA records. It explains that the flag is defined as a bitmask, while many users interpret the documentation as requiring the integer 1 instead of the value representing the specified bit, creating a dilemma for certificate issuers such as LetsEncrypt.

### Source excerpt

I'm not a DNS person, in that I appreciate that it exists but am not up on the inner workings. It solves a lot of problems with dark magic I don't fully understand, and fortunately don't need to. But Lucio noticed something that I do think is interesting, within the scope of the CAA record type. The CAA record started with RFC6844, which was obsoleted by RFC8659. Both RFCs lay out the same core idea: you can add a CAA record to your DNS entries to say, "hey, this domain over here is allowed to issue certificates for me". That's the sort of thing that enables LetsEncrypt to hand out certs, and is an important part of why we can run HTTPS everywhere these days. Now, RFC6844 has this in it: Issuer Critical: If set to '1', indicates that the corresponding property tag MUST be understood if the semantics of the CAA record are to be correctly interpreted by an issuer. Issuers MUST NOT issue certificates for a domain if the relevant CAA Resource Record set contains unknown property tags that have the Critical bit set. The issuer critical flag means that the certificate issuer needs to validate your CAA record before it issues a certificate for you. There's more in the RFC about what exactly that means, but we don't care about those details for right now. The rule here is "set a flag to 1". A little later in the RFC, the flag is described in more detail- as a bitmask. Specifically, bit 0 is the issuer critical flag. Bits 1-7 are reserved for future use. Now, here's where we get into trouble, because programmers don't understand bits, and because the CAA record expects you to put an integer in this field. So, if you want issuer critical enabled, what value to you put in this field? 128, obviously. That's 10000000. Except, if you don't understand bits, that's not obvious. A lot of people read this and decided that the documentation meant they needed to put 1 in the field- aka 00000001. This is wrong. The updated RFC tries to explain it a bit more clearly: Bit 0, Issuer Critic

## Two's Complement and Group Theory

DevFeed: [Two's Complement and Group Theory](<https://devfeed.tech/articles/two-s-complement-and-group-theory-40465.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2023/07/10/twos-complement-and-group-theory/>)

Published: 2023-07-10T07:00:00Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [math](<https://devfeed.tech/topics/math.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Computer science](<https://devfeed.tech/topics/computer-science.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [abelian-groups](<https://devfeed.tech/tags/abelian-groups.md>), [arithmetic](<https://devfeed.tech/tags/arithmetic.md>), [bits](<https://devfeed.tech/tags/bits.md>), [boolean](<https://devfeed.tech/tags/boolean.md>), [circuits](<https://devfeed.tech/tags/circuits.md>), [computer-science](<https://devfeed.tech/tags/computer-science.md>), [group-actions](<https://devfeed.tech/tags/group-actions.md>), [groups](<https://devfeed.tech/tags/groups.md>), [math](<https://devfeed.tech/tags/math.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [programming](<https://devfeed.tech/tags/programming.md>), [quotients](<https://devfeed.tech/tags/quotients.md>), [symmetry](<https://devfeed.tech/tags/symmetry.md>), [twos-complement](<https://devfeed.tech/tags/twos-complement.md>)

### AI overview

The article explains two's-complement signed integer arithmetic using group theory. It presents signed and unsigned n-bit integers as representations of the quotient group of integers modulo 2^n, clarifying why the same arithmetic circuits can operate on both.

### Source excerpt

Before I discovered math, I was a first year undergrad computer science student taking Electrical Engineering 101. The first topic I learned was what bits and boolean gates are, and the second was the two's complement representation of a negative n-bit integer. At the time two's complement seemed to me like a bizarre quirk of computer programming, with minutiae you just had to memorize. If the leading bit is 1, it's negative, and otherwise it's positive.

## A Condition is a Field

DevFeed: [A Condition is a Field](<https://devfeed.tech/articles/a-condition-is-a-field-28929.md>)

Original publisher: [Read original article](<https://blog.jooq.org/a-condition-is-a-field/>)

Author: lukaseder

Published: 2022-08-24T09:09:11Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [boolean](<https://devfeed.tech/tags/boolean.md>), [boolean-type](<https://devfeed.tech/tags/boolean-type.md>), [condition](<https://devfeed.tech/tags/condition.md>), [data-type](<https://devfeed.tech/tags/data-type.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-3-17](<https://devfeed.tech/tags/jooq-3-17.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [logic](<https://devfeed.tech/tags/logic.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [predicate](<https://devfeed.tech/tags/predicate.md>), [sql](<https://devfeed.tech/tags/sql.md>), [three-valued-logic](<https://devfeed.tech/tags/three-valued-logic.md>)

### AI overview

The article explains that, starting with jOOQ 3.17, the Condition type extends Field<Boolean>, allowing conditions to be projected directly and used wherever boolean value expressions are accepted. It describes compatibility differences between PostgreSQL and Oracle and jOOQ's emulation of the feature while preserving three-valued logic.

### Source excerpt

Starting with jOOQ 3.17, the Condition type extends the Field<Boolean> type. Because, that's what the SQL standard thinks it is, in sorts: The exact definition contains intermediate rules, but you get the idea. A <predicate> (which is a Condition in jOOQ) can be used wherever a <boolean value expression> can be used, which again can ... Continue reading A Condition is a Field ->

## Boolean not

DevFeed: [Boolean not](<https://devfeed.tech/articles/boolean-not-38642.md>)

Original publisher: [Read original article](<https://krossovochkin.com/posts/2020_10_31_boolean_not/>)

Published: 2020-10-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [Vasya Drobushkov](<https://devfeed.tech/sources/vasya-drobushkov.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Code](<https://devfeed.tech/topics/code.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [function](<https://devfeed.tech/topics/function.md>)

Tags: [boolean](<https://devfeed.tech/tags/boolean.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [logic](<https://devfeed.tech/tags/logic.md>), [operator](<https://devfeed.tech/tags/operator.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [xor](<https://devfeed.tech/tags/xor.md>)

### AI overview

This Kotlin tutorial explains Boolean negation, focusing on the not() method and the readability of different ways to express negative conditions. It recommends positive function names in general, with negative forms added when they represent common business logic, and explains that not() is an operator function.

### Source excerpt

Introduction Boolean is one of the essential types in programming and probably one of the simplest because it has only two values: true and false. Boolean are usually used as flags for control flow, specifically, conditions. if (string.isEmpty()) { println("String is empty") } It is not much interesting in Boolean, but in Kotlin there is one thing which might be confusing if used - it is method not(). Negate Boolean If we look at declaration of Boolean class in Kotlin we'll see five methods, four of which are pretty obvious: and, or, xor and compareTo. And the fifth is not:

## Top 10 Kotlin Stack Overflow questions, pt 2 - the big ones

DevFeed: [Top 10 Kotlin Stack Overflow questions, pt 2 - the big ones](<https://devfeed.tech/articles/top-10-kotlin-stack-overflow-questions-pt-2-the-big-ones-27090.md>)

Original publisher: [Read original article](<https://zsmb.co/top-10-kotlin-stack-overflow-questions-2/>)

Author: Márton Braun

Published: 2018-05-01T08:00:00Z

Content type: tutorial

Language: en

Sources: [zsmb.co](<https://devfeed.tech/sources/zsmb-co.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Stack Overflow](<https://devfeed.tech/topics/stackoverflow.md>), [Java](<https://devfeed.tech/topics/java.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [boolean](<https://devfeed.tech/tags/boolean.md>), [function](<https://devfeed.tech/tags/function.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [interface](<https://devfeed.tech/tags/interface.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [lambda](<https://devfeed.tech/tags/lambda.md>), [marton-braun](<https://devfeed.tech/tags/marton-braun.md>), [series](<https://devfeed.tech/tags/series.md>), [stack-overflow](<https://devfeed.tech/tags/stack-overflow.md>), [zsmb](<https://devfeed.tech/tags/zsmb.md>), [zsmb-co](<https://devfeed.tech/tags/zsmb-co.md>), [zsmb13](<https://devfeed.tech/tags/zsmb13.md>), [zsmbco](<https://devfeed.tech/tags/zsmbco.md>)

### AI overview

The second article in a three-part series explains common Kotlin SAM conversion issues, including click-listener syntax, discarded anonymous instances, listener references, and lambda return-type mismatches.

### Source excerpt

In the second part of the series, I'm covering various possible issues with using SAM conversions, as well as how to create "static" things in Kotlin.

## NP-hard does not mean hard

DevFeed: [NP-hard does not mean hard](<https://devfeed.tech/articles/np-hard-does-not-mean-hard-40418.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2017/12/29/np-hard-does-not-mean-hard/>)

Published: 2017-12-29T13:30:23Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Algorithms, Complexity](<https://devfeed.tech/topics/algorithms-complexity.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [algorithms](<https://devfeed.tech/tags/algorithms.md>), [boolean](<https://devfeed.tech/tags/boolean.md>), [completeness](<https://devfeed.tech/tags/completeness.md>), [complexity-theory](<https://devfeed.tech/tags/complexity-theory.md>), [logic](<https://devfeed.tech/tags/logic.md>), [mario](<https://devfeed.tech/tags/mario.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [np-completeness](<https://devfeed.tech/tags/np-completeness.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [problems](<https://devfeed.tech/tags/problems.md>), [real-world](<https://devfeed.tech/tags/real-world.md>), [regular-languages](<https://devfeed.tech/tags/regular-languages.md>), [solve](<https://devfeed.tech/tags/solve.md>), [time](<https://devfeed.tech/tags/time.md>)

### AI overview

This article explains that NP-hardness is a worst-case mathematical property, not a claim that a problem is always difficult for humans or algorithms. Using Super Mario as an example, it shows how game levels can encode boolean logic and why solving the game in full generality would encompass hard computational problems, while ordinary real-world levels may still be solvable efficiently.

### Source excerpt

When NP-hardness pops up on the internet, say because some silly blogger wants to write about video games, it's often tempting to conclude that the problem being proved NP-hard is actually very hard! "Scientists proved Super Mario is NP-hard? I always knew there was a reason I wasn't very good at it!" Sorry, these two are unrelated. NP-hardness means hard in a narrow sense this post should hopefully make clear. After that, we'll explore what "hard" means in a mathematical sense that you can apply beyond NP-hardness to inform your work as a programmer.

## Boolean Logic in Polynomials

DevFeed: [Boolean Logic in Polynomials](<https://devfeed.tech/articles/boolean-logic-in-polynomials-40414.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2017/07/24/boolean-logic-in-quadratic-polynomials/>)

Published: 2017-07-24T09:00:38Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [polynomials](<https://devfeed.tech/topics/polynomials.md>), [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>)

Tags: [boolean](<https://devfeed.tech/tags/boolean.md>), [boolean-satisfiability](<https://devfeed.tech/tags/boolean-satisfiability.md>), [logic](<https://devfeed.tech/tags/logic.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [polynomials](<https://devfeed.tech/tags/polynomials.md>)

### AI overview

This tutorial shows how to represent Boolean logic formulas with polynomials by using multiplication for conjunction and 1 minus a variable for negation. It explains how the construction relates Boolean satisfiability to the hardness of multivariable polynomial root-finding and constrained polynomial optimization.

### Source excerpt

Problem: Express a boolean logic formula using polynomials. I.e., if an input variable $ x$ is set to $ 0$, that is interpreted as false, while $ x=1$ is interpreted as true. The output of the polynomial should be 0 or 1 according to whether the formula is true or false as a whole. Solution: You can do this using a single polynomial. Illustrating with an example: the formula is $ \neg[(a \vee b) \wedge (\neg c \vee d)]$ also known as

## Zero Knowledge Proofs for NP

DevFeed: [Zero Knowledge Proofs for NP](<https://devfeed.tech/articles/zero-knowledge-proofs-for-np-40402.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2016/08/01/zero-knowledge-proofs-for-np/>)

Published: 2016-08-01T08:00:53Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Zero-knowledge proof](<https://devfeed.tech/topics/zkp.md>), [zero-knowledge](<https://devfeed.tech/topics/zero-knowledge.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [boolean](<https://devfeed.tech/tags/boolean.md>), [circuit](<https://devfeed.tech/tags/circuit.md>), [computational-complexity](<https://devfeed.tech/tags/computational-complexity.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [graph-isomorphism](<https://devfeed.tech/tags/graph-isomorphism.md>), [interactive](<https://devfeed.tech/tags/interactive.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [np](<https://devfeed.tech/tags/np.md>), [np-hard](<https://devfeed.tech/tags/np-hard.md>), [one-way-functions](<https://devfeed.tech/tags/one-way-functions.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>), [random-number-generators](<https://devfeed.tech/tags/random-number-generators.md>), [variables](<https://devfeed.tech/tags/variables.md>), [zero-knowledge](<https://devfeed.tech/tags/zero-knowledge.md>)

### AI overview

This tutorial explains how zero-knowledge proofs extend beyond graph isomorphism to problems in NP, using cryptography to let a prover convince a verifier without revealing the secret knowledge behind the claim. It introduces examples including boolean formulas, subset sums, graph 3-coloring, and boolean circuits, and describes an implementation of a proof for graph 3-colorability.

### Source excerpt

Last time, we saw a specific zero-knowledge proof for graph isomorphism. This introduced us to the concept of an interactive proof, where you have a prover and a verifier sending messages back and forth, and the prover is trying to prove a specific claim to the verifier. A zero-knowledge proof is a special kind of interactive proof in which the prover has some secret piece of knowledge that makes it very easy to verify a disputed claim is true.

## A problem that is not (properly) PAC-learnable

DevFeed: [A problem that is not (properly) PAC-learnable](<https://devfeed.tech/articles/a-problem-that-is-not-properly-pac-learnable-40356.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2014/04/21/an-un-pac-learnable-problem/>)

Published: 2014-04-21T10:00:16Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Learning](<https://devfeed.tech/topics/learning.md>), [math](<https://devfeed.tech/topics/math.md>), [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [boolean](<https://devfeed.tech/tags/boolean.md>), [boolean-satisfiability](<https://devfeed.tech/tags/boolean-satisfiability.md>), [classes](<https://devfeed.tech/tags/classes.md>), [computational-complexity](<https://devfeed.tech/tags/computational-complexity.md>), [computational-learning-theory](<https://devfeed.tech/tags/computational-learning-theory.md>), [learning-theory](<https://devfeed.tech/tags/learning-theory.md>), [logical](<https://devfeed.tech/tags/logical.md>), [math](<https://devfeed.tech/tags/math.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [misconceptions](<https://devfeed.tech/tags/misconceptions.md>), [np](<https://devfeed.tech/tags/np.md>), [np-completeness](<https://devfeed.tech/tags/np-completeness.md>), [pac-learning](<https://devfeed.tech/tags/pac-learning.md>), [reduction](<https://devfeed.tech/tags/reduction.md>), [rp](<https://devfeed.tech/tags/rp.md>)

### AI overview

This technical learning-theory article presents a standard example of a problem that is not learnable under the previously introduced PAC model, then explains how a more expressive hypothesis class changes that result. Its addendum clarifies that 3-term DNF formulas are not shown to be unlearnable under the standard PAC definition, only under the earlier restricted definition.

### Source excerpt

In a previous post we introduced a learning model called Probably Approximately Correct (PAC). We saw an example of a concept class that was easy to learn: intervals on the real line (and more generally, if you did the exercise, axis-aligned rectangles in a fixed dimension). One of the primary goals of studying models of learning is to figure out what is learnable and what is not learnable in the various models.

## The Java IAQ

DevFeed: [The Java IAQ](<https://devfeed.tech/articles/the-java-iaq-40570.md>)

Original publisher: [Read original article](<http://norvig.com/java-iaq.html>)

Published: 2005-08-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Peter Norvig](<https://devfeed.tech/sources/peter-norvig.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [boolean](<https://devfeed.tech/tags/boolean.md>), [class](<https://devfeed.tech/tags/class.md>), [equals](<https://devfeed.tech/tags/equals.md>), [java](<https://devfeed.tech/tags/java.md>), [object](<https://devfeed.tech/tags/object.md>), [subclass](<https://devfeed.tech/tags/subclass.md>)

### AI overview

A collection of infrequently answered Java questions covering finally-block execution, runtime class identity, and common errors in implementing equals for use with Hashtable.

### Source excerpt

Infrequently Answered Questions for Java