Making malware
https://github.com/MrTuxx/OffensiveGolang Here’s a collection you can check out. I recommend Ben Kurtz’s Defcon talk he links to as well.
https://github.com/MrTuxx/OffensiveGolang Here’s a collection you can check out. I recommend Ben Kurtz’s Defcon talk he links to as well.
https://github.com/theHamdiz/it A collection of helpful error handling, performance measuring, execution retrial, benchmarking & other useful patterns for golang under one package. Because we kinda need this shit daily and we know it! I don’t think anything i post here would do the project justice outside of just copying the read me.
What I find hilarious is all these companies doing this shit after all the advancements in programming languages and paradigms in the last few years. Thanks to tools like Node.js, React, Flask, Reflex, OpenAPI Gen, GoLang, and more, people that are fed-up and have the know-how can stand up competing technology in record time. I look forward to see what comes out of this corporate power grab. Hopefully there’s not a lot of pain and suffering alkng the way.
I had the impression Rust doesn’t handle concurrency particularly well, at least no better than Python, which does it badly (i.e. with colored functions). Golang, Erlang/Elixir, and GHC (Haskell) are way better in that regard, though they each have their own unrelated issues. I had believed for a while that Purescript targeting the Erlang VM and with all the JS tooling extirpated might be the answer, but that was just a pipe dream and I don’t know if it was really workable.
I don’t know what you’re running there mate, Forgejo is a golang app.
Golang is almost never the best choice
While I was adding Golang to the PATH my terminal (Konsole) suddenly stopped recognizing basic commands like nano and ls. I restared my PC and after logging back in (X11) KDE started throwing errors because it wasn’t able to find any program I tried to launch. Konsole is gone. I can’t open any program whatsoever (Firefox, Discover etc.). Trying to log in into Wayland just throws a black screen. After a few more reatarts I decided to use the terminal from the login screen, but it is broken as well. ls not found, nano and vim don’t exist. So far I can use pwd and cd. What the hell is wrong here? Is it hardware failure (bad SSD)? Is there anything I can attempt to recover the system?
Especially an interesting stance, because I’ve heard the same said about Golang, that it quickly makes you feel like you’ve mastered it, but that’s because it solves very little of the complexity of real-world programs.
I have a friend who does dev work and swears by Apple, but he does use Linux on the side as his main machine. Ever thought of diving into NixOS? I’ve used it for a few months and really enjoyed it once I could read and write nixlang. I don’t dev that much, but apparently it can run reproducible environments for nearly every OS and you can have multiple environments via flakes. Need one for Golang? Need one for React? It can do it. You can even access it from your mac. I don’t know much about that side of it, though, just that it can.
Comments
Lihat kiriman asli pada platform media sosial terkait.
Background Imagine you’re building a Todo application using Go. Each task in your application has a status associated with it, indicating whether it’s “completed”, “archived” or “deleted”. As a developer, you want to ensure that only valid status values are accepted when creating or updating tasks via your API endpoints. Additionally, you want to provide clear error messages to users if they attempt to set an invalid status apart from the valid ones. Of course, you will say enums, right? But the bad news is Go doesn’t provide enums and the good news is we can still implement it. In this blog, we’ll explore how to effectively manage enums in Golang, including validation techniques to ensure data integrity and reliability. Whether you are a beginner or an experienced developer, this guide aims to demystify enums and empower you to leverage their power in your Go projects. What is Enum? Enum is a short form of enumeration, which represents a distinct set of named constants. While languages like Java and C++ offer native support for enums, Go takes a different approach. Instead of a dedicated enum type, Go developers use constants or custom types with iota to emulate enum-like behavior. Let’s begin! Why Enums? Enums make code more readable by providing descriptive names for values, rather than using raw integer or string constants. This enhances code clarity and makes it easier for other developers to understand and maintain the codebase. Enums provide compile-time checking, which helps catch errors early in the development process. This prevents invalid or unexpected values from being assigned to variables, reducing the likelihood of runtime errors. By restricting the possible values a variable can hold to a predefined set, enums help prevent logic errors caused by incorrect or unexpected values. Defining Enums with Constants Constants are a straightforward way to define enums in Go. Let’s consider a basic example where we define enum constants representing different days of the week. package main import "fmt" const ( SUNDAY = "Sunday" MONDAY = "Monday" TUESDAY = "Tuesday" WEDNESDAY = "Wednesday" THURSDAY = "Thursday" FRIDAY = "Friday" SATURDAY = "Saturday" ) func main() { day := MONDAY fmt.Println("Today is ", day) // "Today is Monday" } Simulating Enums with Custom Types and iota While constants work well for simple enums, custom types with iota provide a more idiomatic approach in Go. What is iota? iota is a special identifier in Go that is used with const declarations to generate a sequence of related values automatically. It simplifies the process of defining sequential values, particularly when defining enums or declaring sets of constants with incrementing values. When iota is used in a const declaration, it starts with the value 0 and increments by 1 for each subsequent occurrence within the same const block. If iota appears in multiple const declarations within the same block, its value is reset to 0 for each new const block. package main import "fmt" const ( SUNDAY = iota // SUNDAY is assigned 0 MONDAY // MONDAY is assigned 1 (incremented from SUNDAY) TUESDAY // TUESDAY is assigned 2 (incremented from MONDAY) WEDNESDAY // WEDNESDAY is assigned 3 (incremented from TUESDAY) THURSDAY // THURSDAY is assigned 4 (incremented from WEDNESDAY) FRIDAY // FRIDAY is assigned 5 (incremented from THURSDAY) SATURDAY // SATURDAY is assigned 6 (incremented from FRIDAY) ) func main() { fmt.Println(MONDAY, WEDNESDAY, FRIDAY) // Output: 1 3 5 } Let’s rewrite the previous example using a custom type(int). package main import "fmt" type Day int const ( Sunday Day = iota Monday Tuesday Wednesday Thursday Friday Saturday ) func main() { day := Monday fmt.Println("Today is ", day) // Output: Today is 1 } In this example, we define a custom-type Day and use iota to auto-increment the values of the constants. This approach is more concise and offers better type safety. Optionally, we can also use like iota + 1 , if we want our constants to start from 1. To read the full version, please visit Canopas Blog. Feedback and suggestions are most welcome, add them in the comments section. Follow Canopas to get updates on interesting articles! Keep exploring and innovating!!
Comments
Hi all, I have been pretty frustrated with how I had to bring together bunch of different tools together, so I built a CLI tool that brings together data ingestion, data transformation using SQL and Python and data quality in a single tool called Bruin: https://github.com/bruin-data/bruin Bruin is written in Golang, and has quite a few features that makes it a daily driver: it can ingest data from many different sources using ingestr it can run SQL & Python transformations with built-in materialization & Jinja templating it runs Python fully locally using the amazing uv, setting up isolated environments locally, mix and match Python versions even within the same pipeline it can run data quality checks against the data assets it has an open-source VS Code extension that can do things like syntax highlighting, lineage, and more. We had a small pool of beta testers for quite some time and I am really excited to launch Bruin CLI to the rest of the world and get feedback from you all. I know it is not often to build data tooling in Go but I believe we found ourselves in a nice spot in terms of features, speed, and stability. Looking forward to hearing your feedback!
Lihat kiriman asli pada platform media sosial terkait.
Comments
Comments
Started sending job applications. It’s kind of hard to figure out what I’m good at, especially since it’s almost impossible to find local golang programming jobs, and the tech job market is kinda weird right now. And then theres the whole “being visibly trans at a new workplace”-set of worries! Would also be nice if they could reply to my applications.
I’m pretty sure “sick of Java abstractions” was one of the motivations behind Golang.
go (sometimes called golang)