Skip to content

Instantly share code, notes, and snippets.

Avatar

Renato Athaydes renatoathaydes

View GitHub Profile
@renatoathaydes
renatoathaydes / README.md
Created Jan 20, 2022
Typescript api-extractor bug
View README.md

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 / Scracth.java
Created Dec 21, 2021
Demonstration of how Java async methods are misleading, at best.
View Scracth.java
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();
/*
View gist:1d59b1a93d83e97774bbc4fd8cd62929
▶ jdeps --multi-release 11 out/log4j-core-2.16.0.jar
log4j-core-2.16.0.jar -> java.base
log4j-core-2.16.0.jar -> java.compiler
log4j-core-2.16.0.jar -> java.desktop
log4j-core-2.16.0.jar -> java.logging
log4j-core-2.16.0.jar -> java.management
log4j-core-2.16.0.jar -> java.naming
log4j-core-2.16.0.jar -> java.rmi
log4j-core-2.16.0.jar -> java.scripting
log4j-core-2.16.0.jar -> java.sql
View main.dart
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:flutter/material.dart';
import 'dart:math' as math;
void main() => runApp(MyApp());
class Rectangle {
@renatoathaydes
renatoathaydes / Test.java
Last active Oct 24, 2021
Using static variables in local scope in Java.
View Test.java
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
check("a");
check("b");
}
static Pattern compile(String pattern) {
System.out.println("compile(" + pattern + ")");
@renatoathaydes
renatoathaydes / dart-null-safe-final-field-fail.dart
Created Nov 6, 2020
This fails to compile on line 18, but it should work because the field is final so the null check ensures the field can't be null
View dart-null-safe-final-field-fail.dart
// Welcome to the null safety version of DartPad!
// This site has a dev channel release of the
// Dart SDK with null safety enabled. You can
// play around with code of your own, or pick a
// learning exercise from the snippets menu at
// the top-right of this page.
void main() {
}
@renatoathaydes
renatoathaydes / Client.java
Last active May 17, 2020
Taking Project Loom for a spin
View Client.java
package loom;
import rawhttp.core.RawHttp;
import rawhttp.core.RawHttpRequest;
import rawhttp.core.RawHttpResponse;
import rawhttp.core.client.TcpRawHttpClient;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.CountDownLatch;
@renatoathaydes
renatoathaydes / JavaComparison.java
Last active May 4, 2020
Calculating a number from its constituent parts (encoded as ASCII bytes)
View JavaComparison.java
import java.nio.charset.StandardCharsets;
class JavaComparison
{
public static void main(String[] args)
{
System.out.println("CUSTOM");
for (int i = 0; i < 100; i++)
{
custom();
@renatoathaydes
renatoathaydes / Dockerfile
Created Jul 6, 2019
Minimalistic Docker image from a simple Dart application - includes only the AOT-compiled app and dartaotruntime.
View Dockerfile
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
View main.dart
abstract class _State {
T use<T>(
T Function(_ChooseProviderState) useChooseProviderState,
T Function(_LoadingState) useLoadingState,
T Function(_ChooseAccountsState) useChooseAccountState,
T Function(_ImportingState) useImportingState) {
if (this is _ChooseProviderState) {
return useChooseProviderState(this);
}
if (this is _LoadingState) {