Search This Blog

Information Does Not Exist

"We proffer an epistemological, ontological, and ecumenical analysis of the informatics zeitgeist surrounding librarians and so-called information scientists. A fuzzy systems tautomerism and transformative hermeneutic lexiae with stemming metadata shows that behind an axiometric normalization of mutually reinforcing moieties, institutionalized metaphors, and naïve liturgical dogmas lies nothing more than gormandized aphorisms and pseudoscientific quanta. This endemic helix permeates the koans of nacirema determinates and quidditative paradigms alike. The operationalized gestalt is collapsed, as with its photonic counterpart, via an interaction among the cromulent a priori of epiphenomenal knowledge management and the parsimonious lorem ipsum of atomistic artificial intelligence and its ilk. Neither the nascent yet positivist hyperliteracy movement nor the transactive pedagogical convergence of jingoistic multiliteracies possess the constituent wherewithal for explicating the existence of information per se or affirming the verstehende of contemporary librarianship; you can't eat your cake and have it too. Ramifications for string theory and consciousness studies are also addressed."

In which I port a snazzy little JavaScript audio web app to Dart, discover a bug, and high-five type annotations. Here's what I learned.

[As it says in the header of this blog, I'm a seasoned Dart developer. However, I certainly don't write Dart every day (I wish!). Don't interpret this post as "Hi, I'm new to Dart". Instead, interpret this post as "I'm applying what I've been documenting."]

This post analyzes two versions of the same app, both the original (JavaScript) version and the Dart version. The original version is a proxy for any small JavaScript app, there's nothing particularly special about the original version, which is why it made for a good example.

Three new language features just landed in the latest dev channel build of the Dart! Collectively known as null-aware operators, these new features will help you reduce the code required to work with potentially null objects.

I'm excited for these new abilities, because typing less is always a good thing. Read on to learn more, and be sure to try these new features on Dart Pad.

??
Use ?? when you want to evaluate and return an expression IFF another expression resolves to null.

exp ?? otherExp
is similar to

((x) => x == null ? otherExp : x)(exp)
??=
Use ??= when you want to assign a value to an object IFF that object is null. Otherwise, return the object.

obj ??= value
is similar to

((x) => x == null ? obj = value : x)(obj)
?.
Use ?. when you want to call a method/getter on an object IFF that object is not null (otherwise, return null).