#Programming languages can be split into three categories: static (e.g. Java, C#), dynamic (e.g. Python, Ruby), and cosplay static (e.g. TypeScript, Python-with-typing).
In java, is there a simple, idiomatic, standard-library built-in way to iterate a Stream n elements at a time? E.g., in pairs, using a BiConsumer or similar two-argument Function?
"If the authors of computer programming books wrote arithmetic textbooks..."
A colleague used this image to describe the documentation of a library. Meaning that the documentation was the example with the rabbits, but they have to use the library as the second part of the image. #programming
I’ve just released v0.14.0 of Tinboard, my #Pinboard client for the #Terminal. This release adds the start of an application settings dialog, with the first couple of options letting you set the default value for the "private" and “read-later" state of new bookmarks.
I wonder if anyone has ever written an embedded #RDBMS in which there is no run-time #SQL interpreter, and all SQL queries are translated into machine code at compile time.
Kinda like #Rust sqlx, except queries are fully compiled at compile time, not just checked for correct syntax and types.
I'm guessing this would be extremely specific to one #programming language, and outright impossible in most programming languages.
Want to check duplicate values across columns of a data.frame? Well you can do that in a basic way with TidyDensity and the check_duplicate_rows() function, or you can go through todays blog post for some other ideas with #BaseR#dplyr and #datatable
📝 Group and Sort Data in Latte Templates Like a Pro
In the latest update of Latte, we are introducing several significant enhancements that will simplify and make more efficient the work with data in your templates.
#TodayInHistory 1984 - Ashton-Tate introduces the dBase III relational #database program for IBM PC-compatible computers.
dBase was one of the first database management systems for microcomputers and the most successful in its day. The dBase system included the core database engine, a query system, a forms engine, and a #programming language that tied all of these components together.
A clean Git history is the key to successful teamwork and quick bug fixes. Errors can only be successfully tracked down if it is always possible to trace when and where code was changed by whom and for what reason.
🥴 However, in the rush of the battle, the changes that are packaged in a commit are sometimes not taken very seriously. Who has never experienced this? A change that is actually unrelated to the current work package has made it into the commit because the file has already been saved temporarily.
💡The solution: With an "interactive add" (git add -i), you can pack partial changes ("hunks") into a commit and specify line by line what should be included in the next commit.
All this time I've been using the return value of snprintf as the number of characters actually written, when it's in fact the number of characters that would be written if the max size passed in were large enough.
In fact: "If the resulting string would be longer than n-1 characters, the remaining characters are discarded and not stored, but counted for the value returned by the function."
usually, it is used to define methods, but in function arguments, it serves as syntactic sugar so you don't have to name generic types... but in a return type, it has a meaning that is slightly different, and actually expresses a semantic not even vanilla haskell can represent!
basically, instead of being able to return any type implementing a trait, it states that it can return at least one type that implements a trait.
in haskell terminology, specifying a generic type parameter is "forall a", while returning an "impl" is "exists a".