Skip to content

Instantly share code, notes, and snippets.

View renatoathaydes's full-sized avatar

Renato Athaydes renatoathaydes

View GitHub Profile
@renatoathaydes
renatoathaydes / MyFunctions.groovy
Created January 20, 2024 21:08
Example code sharing in Gradle
// add this to buildSrc/src/main/groovy/foo/MyFunctions.groovy
package foo
class MyFunctions {
static String hello() { 'hello' }
}
@renatoathaydes
renatoathaydes / kate.shortcuts
Created January 15, 2024 13:09
Kate keyboard shortcuts on MacOS
[Shortcuts]
Next Editing Line=Ctrl+Shift+E
Previous Editing Line=Ctrl+E
add_bom=none
backspace=Backspace; Shift+Backspace
beginning_of_document=Ctrl+Home
beginning_of_line=Meta+A; Ctrl+Num+Left
bookmarks_clear=none
bookmarks_next=Alt+PgDown
bookmarks_previous=Alt+PgUp
@renatoathaydes
renatoathaydes / chart.svg
Created January 14, 2024 15:51
DLang - comparison with Java, Rust and Common Lisp
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@renatoathaydes
renatoathaydes / gist:fd8752ed81b0cf792ed7ef5aa3d68acd
Created January 13, 2024 12:50
trace.log (DLang profiler from dencoder)
------------------
1009 _D3std10functional__T6safeOpVAyaa1_3cZ__TQuTmTiZQBbFNaNbNiNfKmKiZb
_D3std10functional__T6safeOpVAyaa1_3cZ__T8unsafeOpTmTiZQoFNaNbNiNfmiZb 1009 946 946
------------------
52214 _D3std10functional__T6safeOpVAyaa1_3cZ__TQuTyiTmZQBcFNaNbNiNfKyiKmZb
_D3std10functional__T6safeOpVAyaa1_3cZ__T8unsafeOpTyiTmZQpFNaNbNiNfyimZb 52214 6329 6329
------------------
1009 _D3std9algorithm10comparison__T3maxTmTiZQjFNaNbNiNfmiZm
_D3std10functional__T6safeOpVAyaa1_3cZ__TQuTmTiZQBbFNaNbNiNfKmKiZb 1009 2184 1238
1009 _D3std10functional__T6safeOpVAyaa1_3cZ__T8unsafeOpTmTiZQoFNaNbNiNfmiZb
@renatoathaydes
renatoathaydes / webServer.groovy
Last active October 23, 2023 15:28
A simple web server written in Groovy that provides static and code-generated content
#!/usr/bin/env groovy
import org.eclipse.jetty.server.Server
import org.eclipse.jetty.servlet.*
import groovy.servlet.*
@Grab(group='org.eclipse.jetty.aggregate', module='jetty-all', version='7.6.15.v20140411')
def startJetty() {
def server = new Server(8080)
@renatoathaydes
renatoathaydes / create_github_pages_branch.sh
Created October 29, 2018 20:12
Use git worktree to maintain GitHub Pages branch
# Initialize a gh-pages branch... GitHub expects this branch to exist to publish a project website from it.
git checkout --orphan gh-pages
git reset --hard
git commit --allow-empty -m "Initializing gh-pages branch"
git push origin gh-pages
git checkout master
# Define a directory where the static website files will reside
WEBSITE_DIR=target
@renatoathaydes
renatoathaydes / main.dart
Created August 23, 2022 11:11
Dart - processing stream of JSON documents
import 'dart:convert';
main() async {
const jsons = '{"foo": "Ø"}\n{"bar": false}';
final bytes = utf8.encode(jsons);
// partitions breaking the bytes between invalid UTF-8 boundaries
final partitions =
Stream.fromIterable([bytes.sublist(0, 10), bytes.sublist(10)]);
@renatoathaydes
renatoathaydes / README.md
Created January 20, 2022 10:36
Typescript api-extractor bug

This project demonstrates a problem with api-extractor.

My objective is the following:

  • I have a Typescript file which defines a basic API.
  • I want this file to be used for generating a declarations TS file (.d.ts file).
  • I don't want to generate actual JS files as those are not relevant.
  • Use the .d.ts file to generate markdown docs for my API.

The source file is in the ts-project directory, so I tell tsc:

@renatoathaydes
renatoathaydes / Dockerfile
Created July 6, 2019 11:28
Minimalistic Docker image from a simple Dart application - includes only the AOT-compiled app and dartaotruntime.
FROM google/dart AS dartc
WORKDIR /app
ADD pubspec.* /app/
RUN pub get
ADD bin/ /app/bin/
ADD lib/ /app/lib/
RUN pub get --offline
RUN dart2aot /app/bin/main.dart /app/main.aot
@renatoathaydes
renatoathaydes / Scracth.java
Created December 21, 2021 17:11
Demonstration of how Java async methods are misleading, at best.
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executors;
class Scratch {
public static void main(String[] args) throws Exception {
var singleThreadedExecutor = Executors.newSingleThreadExecutor();
var startTime = System.currentTimeMillis();
/*