gophers
HomeBrew
gophers | HomeBrew | |
---|---|---|
4 | 1,286 | |
30 | 39,617 | |
- | 1.4% | |
3.7 | 10.0 | |
about 2 months ago | about 18 hours ago | |
Ruby | ||
GNU General Public License v3.0 or later | BSD 2-clause "Simplified" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
gophers
-
Rust cli example #2: Ferris hunts errors
fn get_gopher(gopher: String) -> Result { println!("Try to get {} Gopher...", gopher); let url = format!("https://github.com/scraly/gophers/raw/main/{}.png", gopher); let response = minreq::get(url) .send() .expect("Fail to get response from server"); if response.status_code == 200 { let file_name = format!("{}.png", gopher); let mut output_file = File::create(&file_name).expect("Fail to create file"); output_file .write_all(response.as_bytes()) .expect("Fail to write file"); Ok(format!("Perfect! Just saved in {}", &file_name)) } else { Err(Error::GopherNotFound(format!( "Gopher {} not exists", gopher ))) } }
-
Rust cli example: Ferris fetches Go gopher postcards
use std::fs::File; use std::io::stdout; use std::io::Write; use structopt::clap::{crate_name, crate_version, Shell}; use structopt::StructOpt; #[derive(StructOpt, Debug)] #[structopt(name = "rust-gopher-friend-cli", version = crate_version!(), about = "Gopher CLI application written in Rust.")] enum Command { /// This command will get the desired Gopher Get { /// Gopher type #[structopt()] gopher: String, }, /// Generate completion script Completion { /// Shell type #[structopt(possible_values = &["bash", "fish", "zsh", "powershell", "elvish"])] shell: Shell, }, } fn get_gopher(gopher: String) { println!("Try to get {} Gopher...", gopher); let url = format!("https://github.com/scraly/gophers/raw/main/{}.png", gopher); let response = minreq::get(url) .send() .expect("Fail to get response from server"); if response.status_code == 200 { let file_name = format!("{}.png", gopher); let mut output_file = File::create(&file_name).expect("Fail to create file"); output_file .write_all(response.as_bytes()) .expect("Fail to write file"); println!("Perfect! Just saved in {}", &file_name); } else { eprintln!("Gopher {} not exists", gopher); } } fn main() { let cmd = Command::from_args(); match cmd { Command::Get { gopher } => get_gopher(gopher), Command::Completion { shell } => { Command::clap().gen_completions_to(crate_name!(), shell, &mut stdout()) } } }
-
Learning Go by examples: part 3 - Create a CLI app in Go
var getCmd = &cobra.Command{ Use: "get", Short: "This command will get the desired Gopher", Long: `This get command will call GitHub respository in order to return the desired Gopher.`, Run: func(cmd *cobra.Command, args []string) { var gopherName = "dr-who.png" if len(args) >= 1 && args[0] != "" { gopherName = args[0] } URL := "https://github.com/scraly/gophers/raw/main/" + gopherName + ".png" fmt.Println("Try to get '" + gopherName + "' Gopher...") // Get the data response, err := http.Get(URL) if err != nil { fmt.Println(err) } defer response.Body.Close() if response.StatusCode == 200 { // Create the file out, err := os.Create(gopherName + ".png") if err != nil { fmt.Println(err) } defer out.Close() // Writer the body to file _, err = io.Copy(out, response.Body) if err != nil { fmt.Println(err) } fmt.Println("Perfect! Just saved in " + out.Name() + "!") } else { fmt.Println("Error: " + gopherName + " not exists! :-(") } }, }
-
Learning Go by examples: part 2 - Create an HTTP REST API Server in Go
package main import ( "fmt" "log" "net/http" "github.com/go-openapi/loads" "github.com/go-openapi/runtime/middleware" "github.com/scraly/learning-go-by-examples/go-rest-api/pkg/swagger/server/restapi" "github.com/scraly/learning-go-by-examples/go-rest-api/pkg/swagger/server/restapi/operations" ) func main() { // Initialize Swagger swaggerSpec, err := loads.Analyzed(restapi.SwaggerJSON, "") if err != nil { log.Fatalln(err) } api := operations.NewHelloAPIAPI(swaggerSpec) server := restapi.NewServer(api) defer func() { if err := server.Shutdown(); err != nil { // error handle log.Fatalln(err) } }() server.Port = 8080 api.CheckHealthHandler = operations.CheckHealthHandlerFunc(Health) api.GetHelloUserHandler = operations.GetHelloUserHandlerFunc(GetHelloUser) api.GetGopherNameHandler = operations.GetGopherNameHandlerFunc(GetGopherByName) // Start server which listening if err := server.Serve(); err != nil { log.Fatalln(err) } } //Health route returns OK func Health(operations.CheckHealthParams) middleware.Responder { return operations.NewCheckHealthOK().WithPayload("OK") } //GetHelloUser returns Hello + your name func GetHelloUser(user operations.GetHelloUserParams) middleware.Responder { return operations.NewGetHelloUserOK().WithPayload("Hello " + user.User + "!") } //GetGopherByName returns a gopher in png func GetGopherByName(gopher operations.GetGopherNameParams) middleware.Responder { var URL string if gopher.Name != "" { URL = "https://github.com/scraly/gophers/raw/main/" + gopher.Name + ".png" } else { //by default we return dr who gopher URL = "https://github.com/scraly/gophers/raw/main/dr-who.png" } response, err := http.Get(URL) if err != nil { fmt.Println("error") } return operations.NewGetGopherNameOK().WithPayload(response.Body) }
HomeBrew
-
Essential Tools & Technologies for New Developers
Before we start installing anything, if you are a Mac user, you need to install homebrew, a package manager for Mac that will help you install software quickly and easily from this article.
-
How to set up a new project using Yarn
First, we are going to need Node.js. I use nodenv to manage multiple Node.js installations on my machine. The easiest way to install it on a Mac is to use Homebrew (check their Installation documentation if you’re on a different platform):
-
Tools that keep me productive
Homebrew - The Missing Package Manager for macOS (or Linux)
-
Top Homebrew Alternative: ServBay Becomes the Go-To for Developers
Homebrew is a highly popular package manager on macOS and Linux systems, enabling users to easily install, update, and uninstall command-line tools and applications. Its design philosophy focuses on simplifying the software installation process on macOS, eliminating the need for manual downloads and compilations of software packages.
-
Software Engineering Workflow
Homebrew - package manager for linux-based OSs.
-
Simulate your first Lightning transaction on the Bitcoin regtest network Part 1 (MacOS)
Package Manager: Homebrew
-
Tools for Linux Distro Hoppers
Hopping from one distro to another with a different package manager might require some time to adapt. Using a package manager that can be installed on most distro is one way to help you get to work faster. Flatpak is one of them; other alternative are Snap, Nix or Homebrew. Flatpak is a good starter, and if you have a bunch of free time, I suggest trying Nix.
-
SQLite Schema Diagram Generator
Are you using SQLite that ships with macOS, or SQLite installed from homebrew?
I had a different problem in the past with the SQLite that ships with macOS, and have been using SQLite from homebrew since.
So if it’s the one that comes with macOS that gives you this problem that you are having, try using SQLite from homebrew instead.
https://brew.sh/
-
How to install (Ubuntu 22.10 VM) vagrant on Mac M1 ship using QEMU
Before we begin, make sure you have Homebrew installed on your Mac. Homebrew is a package manager that makes it easy to install software and dependencies. You can install Homebrew by following the instructions on their website: https://brew.sh/
-
Perfect Elixir: Environment Setup
I’m on MacOS and erlang.org, elixir-lang.org, and postgresql.org all suggest installation via Homebrew, which is a very popular package manager for MacOS.
What are some alternatives?
rust-simple_logger - A rust logger that prints all messages with a readable output format.
spack - A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
asdf - Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
Visual Studio Code - Visual Studio Code
winget-cli - WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).
osxfuse - FUSE extends macOS by adding support for user space file systems
Chocolatey - Chocolatey - the package manager for Windows
Docker-OSX - Run macOS VM in a Docker! Run near native OSX-KVM in Docker! X11 Forwarding! CI/CD for OS X Security Research! Docker mac Containers.
ohmyzsh - 🙃 A delightful community-driven (with 2,300+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.
nvm - Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
chromebrew - Package manager for Chrome OS [Moved to: https://github.com/chromebrew/chromebrew]
Scoop - A command-line installer for Windows.