472 subscribers
6 photos
1 video
2 files
550 links
python, go, code quality, security, magic

Website and RSS:
https://itgram.orsinium.dev

Source:
https://github.com/orsinium/itgram

Author:
@orsinium
https://orsinium.dev/
Download Telegram
no-color.org is a small initiative to motivate software to use one standartized way to disable colored output. In particular, it says "Please, disable color when NO_COLOR env var is set". So, please, when you'll make a new CLI tool, add support for NO_COLOR. And I promise to do the same.

#cli
The Go compiler needs to be smarter — a short article why Go compiler sucks. Well, things not so bad, don't listen to me. Go is fast and cool, every release brings a lot of performance improvements, especially for garbage collector. However, there are still many things to do, especially if compare to old big compilers like gcc or clang. For instance, PGO and JIT are hard to implement but can give an amazing speed improvement, and there are no such things in Go yet. Well, there is gccgo compiler for go but it is slower than gc.

#golang
Simple techniques to optimise Go programs — a few tricks on how to allocate less memory. Good stuff.

#golang
High Performance Go — materials from Dave Cheney's workshop on how to measure performance in Go and write a faster code. So hardcore.

#golang
Numbers that aren't numbers is a great article about things that are named "numbers" but cannot be correctly represented as integers. Yeah, I know, the real world is so messy and should be adjusted to let us write a beautiful simple software. Humans spoil everything.
🔧 esbuild is a fast JS/TS bundler and minifier, kind of webpack alternative. No, it's really fast, like 10-100 times faster than webpack. It is a new project and supports not all JS (frontenders name it ECMAScript) features, so it can be used not for all projects. But give it a try! Oh, and it is written on our lovely golang.

#js #golang
📄 Write code that is easy to delete, not easy to extend is a guide (an essay?) on when it's good to copy-paste a code and when it's not, when it's good to split a code by pieces and when it's better to keep all things together. These are hard questions but we should think and talk about it.
📄 penglab — Google Colab notebook with a few hash cracking tools in case you need it on a CTF.

📄 colabcat — Google Colab notebook with hashcat only but syncing with Google Drive.

And of course, remeber about our best friend, SecLists. It is a collection of common credentials, filenames, urls, and so on. Maybe, not big enough to crack something serious but good enough for CTFs and Hack The Box.
🎥 Clean Code lectures from Uncle Bob ("Coding Better World Together") are amazing. It's a great walkthrough on writing maintainable code, ethics of programming, testing, refactoring, automating things, keeping balance between "fast" and "good". Examples are on Java but ideas in all other languages are pretty much the same. Definitely must-watch.
🐚 Recursively find all git repos with uncommited or unpushed changes:

find . -type d -iname '.git' -exec sh -c 'cd "${0}/../" && git status | grep -q -E "(diverged|Changes|is ahead of)" && pwd' "{}" \;


In case if you forgot to push something before changing a laptop (or a company).

#git #shell
ITGram
The Zen of Go — 10 good ideas from Dave Cheney on how to write better Go code. Short and useful. #golang
Go Proverbs is another collection of cool ideas on how to Go better. This time, from Rob Pike and more Go-specific.

#golang
I've made and printed Gram Cards. This is a short collection of cards with phrases that (I hope so) would make me a better developer.

A side note: I had hard times diving into ImageMagick but having graphic as a code definitely worth it.
# Learning Go

There are resources that I find helpful for learning #golang, from easy to hard:

+ An Introduction to Programming in Go is a great start, especially if this is your first language. I learned Go by this book and it was enough to make my first projects.

+ An intro to Go for non-Go developers provides a good motivation on learning Go with a lot of links and examples. However, it assumes that you already have a programming experience.

+ Go by Example is a great thing for "just show me the code" type of people (who you, most probably, are). Google often leads me on this resource when I search something practical like "golang read json". So, maybe not perfect for learning but helpful as a cheat sheet for basics.

+ Learn Go with Tests will make you familiar not only with Go but with TDD as well. it's a great way to get started with immediate result. Nothing is so motivating as immediately seeing that your first code works and does the magic.

Your best guide for more resources is gopher-reading-list. It is a collection of links on learning materials, grouped by topic and experience level.

#golang
Ah jira, here we go again... I joined a new team, and there is Jira for tracking tasks. So, let's re-learn how to survive.

🐚 go-jira is a CLI client for Jira. It can do a lot: browse, search, create, manage, assign tasks.

🐚 micro is like nano but a bit bigger. It is a CLI text editor with friendly hotkeys and interface. I haven't used to vim, and work with go-jira is a bit faster if you edit the text without leaving the terminal. Of course, you can just use gedit/pluma/vscode as your $EDITOR.

#cli
🐚 git-extras is a huge collection of additional commands for git to get the project stat, automatize work with branches, help to solve common issues with commit history.
📚 Some fundamental theorems of matematics is a collection of 232 theorems from different fields of math, with a bit of context, some even with proofs. Some of them are understandable without remembering much about math, some of them are pretty hardcore. References list has 661 articles!

#math
# Algebraic effects

1. One year ago I posted 📄 Algebraic Effects for the Rest of Us (the post is here 🇷🇺)

2. On the last weekend I read 📄Why PLs Should Have Effect Handlers. It's a bit older article but simpler and shorter. And it remind me about the topic...

3. Today I released eff — a small and simple Python library to work with algebraic effects. It is a true "pythonic" library, with context managers, metaclasses, type annotations, and global variables 🙃
https://github.com/orsinium-labs/eff

It's a part of "orsinium-labs" where I do quick experiments. Maybe, someone will find this experiment interesting and maybe even helpful. Since it's a very small library, I consider it "production ready". Have fun!

#python
📄SQLite as a document database is a short article about JSON support in one of the latest releases of SQLite. Sounds fun! It provides a noticeable data duplication but for a small pet project, why not.
🐚 tldr is a quite famous and big collection of human-friendly documentation for different CLI tools (not only Linux). It provides a website with search and lots of CLI clients on different languages, just pick which one you like more.

#cli