Full-stack observability with actually useful AI | Grafana Cloud
Our generous forever free tier includes the full platform, including the AI Assistant, for 3 users with 10k metrics, 50GB logs, and 50GB traces.
Built on open standards like Prometheus and OpenTelemetry, Grafana Cloud includes Kubernetes Monitoring, Application Observability, Incident Response, plus the AI-powered Grafana Assistant. Get started with our generous free tier today.
Create free account
Earn up to 16% annual interest with Nexo.
Let your crypto work for you
Put idle assets to work with competitive interest rates, borrow without selling, and trade with precision. All in one platform.
Geographic restrictions, eligibility, and terms apply.
ShellCheck is a GPLv3 tool that provides warnings and possible suggestions for bash/sh shell scripts. ShellCheck finds bugs in your shell scripts. You can cabal, apt, dnf, pkg or brew install it locally right now. ShellCheck highlights and clarifies typical beginner's syntax mistakes and issues that cause a shell to give a cryptic error message. It shows typical intermediate level semantic problems that cause a shell to behave in a abnormally and counter-intuitively. It can also discover...
Unused identifies unused code in Rails, Phoenix, and other types of applications, improving developer productivity. By default, unused leverages a different memory allocator called mimalloc. For my local benchmarks, it speeds up execution by a significant amount (which is documented in the commit introducing mimalloc), but currently runs into sporadic issues on Apple M1 devices.
Parsing, analyzing, and comparing source code across many languages
semantic is a Haskell library and command line tool for parsing, analyzing, and comparing source code. Run semantic --help for complete list of up-to-date options. Semantic uses tree-sitter to generate parse trees, but layers in a more generalized notion of syntax terms across all supported programming languages. We'll see why this is important when we get to diffs and program analysis, but for now let's just inspect some output.