Skip to content

Instantly share code, notes, and snippets.

View renatoathaydes's full-sized avatar

Renato Athaydes renatoathaydes

View GitHub Profile
@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();
/*
@renatoathaydes
renatoathaydes / gist:1d59b1a93d83e97774bbc4fd8cd62929
Created December 16, 2021 07:23
Log4j2-core jar jdeps output
▶ 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
@renatoathaydes
renatoathaydes / main.dart
Created December 4, 2021 10:25
Skyline problem implementation in Flutter. Based on https://briangordon.github.io/2014/08/the-skyline-problem.html
// 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 October 24, 2021 08:36
Using static variables in local scope in 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 November 6, 2020 19:39
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
// 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 16:50
Taking Project Loom for a spin
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 18:19
Calculating a number from its constituent parts (encoded as ASCII bytes)
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 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
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) {
@renatoathaydes
renatoathaydes / index.html
Created April 18, 2019 18:50
CheerpJ index.html file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CheerpJ test</title>
<script src="https://cjrtnc.leaningtech.com/1.3/loader.js"></script>
</head>
<body>
</body>
<script>