news
Programming Leftovers
-
Chris Done ☛ Applicative-wired monad pattern
In Haskell API design, you sometimes want to model a computation that looks like a monad, i.e. some things depend on other things, and make use of do-notation, but you want to be able to statically inspect the resulting structure, too.
-
Alley Chaggar: YAML Research
Intro
Hi everyone, sorry for the late post. Midterms are this week for GSoC, which means I’m halfway through GSoC. It’s been an incredible experience so far, and I know it’s going to continue to be great.
API vs. ABI
What is the difference between an application programming interface versus an application binary interface? In the beginning, this question tripped me out and confused me, because I wasn’t familiar with ABIs. Understanding what an ABI is has helped me decide which libraries I should consider using in the codegen phase. When talking about Vala, Vala is designed to use a C Hey Hi (AI) First, let’s understand what an API and ABI are separately and then compare them.
API
Personally, I think the understanding of Hey Hi (AI) is more popular and well-known than ABIs. An API is usually, at a high level, defined by two software components or computers communicating with each other using a set of definitions and protocols. This definition I always thought was pretty vague and expansive. When dealing with code-level APIs, I like to understand it as Hey Hi (AI) are existing entities in the user code (source code) that have functions, constants, structures, etc. You can think of it as when you write code, you access libraries through an Hey Hi (AI) For example, when you write
print('hello world')
in Python,print()
is a part of Python’s standard library API. -
KDAB ☛ API Stability: To change or not to change?
This blog examines balancing API stability and flexibility. Internal Hey Hi (AI) should remain adaptable for ongoing improvements, while external Hey Hi (AI) need stability through versioning (e.g., SemVer) and source compatibility guarantees to avoid breaking clients. It also covers ABI stability for libraries and suggests using a buffer layer to isolate internal changes from public interfaces.
-
Rlang ☛ Organizing R development using srcpkgs
Overview
This is an introduction on organizing R projects using source packages (powered by my R package srcpkgs). It is based on notes for a talk I have on 2024-05-27 for the Swiss Institute of Bioinformatics Vital-IT group Analysts meeting.
-
Rlang ☛ Tagging Bioconductor packages with EDAM
The EDAM ontology is used to provide conceptual organization of resources in major initiatives like ELIXIR bio.tools and Galaxy.
Bioconductor’s methods and data are tagged using an ad hoc terminologic hierarchy called biocViews.
-
R / R-Script
-
Rlang ☛ Organizing R development using srcpkgs
This is an introduction on organizing R projects using source packages (powered by my R package srcpkgs). It is based on notes for a talk I have on 2024-05-27 for the Swiss Institute of Bioinformatics Vital-IT group Analysts meeting.
The objective is to organize R projects in order to:
reuse code
share code
increase robustness
enable analysis (code) reproducibility
-
-
Shell/Bash/Zsh/Ksh
-
Thoughtbot Inc ☛ Enough unix to get by
Rather than go in depth on everything a unix-like operating system contains, this is instead a baseline of commands and concepts that you need to navigate your command-line shell in a professional environment.
You should know these concepts: [...]
-
-
Golang
-
Anton Zhiyanov ☛ Expressive tests without testify/assert
Many Go programmers prefer using if-free test assertions to make their tests shorter and easier to read. So, instead of writing if statements with t.Errorf: [...]
-