The two best things about it are:
- It's easy to install if I can access pip in the container
- It makes a compelling screenshot (which helps me communicate with coworkers.)
With those two lessons in mind: Here is Sping!
Purpose: Help observe and diagnose latency issues at layer 4+ (TCP/HTTP/HTTPS)
Two good things about it:
- It's easy to install if you have pip. (Available at [service-ping-sping](https://pypi.org/project/service-ping-sping/) on PyPi)
- It makes a compelling screenshot.
Not sure if this is the kind of thing that anyone else would be interested in. But I've enjoyed making it and intend to keep using it.
(i.e. # HTTP monitoring with interactive UI sping google.com )
sping johnqdeveloper.com
Usage: sping [OPTIONS] URL
Try 'sping --help' for help.
╭─ Error ──────────────────────────────────────────────────────────────────────╮
│ Invalid value for '--palette': <ColorPalette.SUNSET: 'sunset'> is not one of │
│ 'sunset', 'ocean', 'forest', 'volcano', 'galaxy', 'arctic', 'neon', │
│ 'monochrome'. │
╰──────────────────────────────────────────────────────────────────────────────╯
Would you mind telling me what environment you found this behavior in, and how you installed the app?
I've been testing in ubuntu containers doing:
pip3 install service-ping-sping --break-system-packages
Thank you so much!!*EDIT:*
I think this is to do with me not being specific about what version of typer I depend upon... working on it now!
This is now fixed in 0.2.11. Thanks @johnQdeveloper
This idea is also very useful for host/dig DNS queries which I would also often previously do a one-liner for, but recently had a gpt script me a tool for it:
https://gist.github.com/jgbrwn/7dd4b262c544f750cb0291161b2ec...
I would add a link to the gitlab to the page also, clicking the LICENCE brings me to the source code but other than that there did not seem to be a link .
Out of curiosity, did you use LLM's to code this? My gut feeling tells me at minimum the readme was written by one, or maybe it's normal to use emojis everywhere :-) Also I am not meaning to judge it as good or bad, I'm just curious.
I think one thing that LLM's and coding agents enables, is creating these customised solution which solve a specific problem, in a specific way. Some might consider it wasteful. I bet many thinks your effort would have been better spent contributing to one of the existing ones instead of doing yet another tool, but I find fascinating that we can finally tell our computers what we need and the will do it.
If you hand-wrote everything, then apologies for the unrelated rant :-)
Consider rewriting the program in Go, then you’ll have a statically linked binary that’s much easier to install (less dependencies) and will be much faster too.
Makes no sense. This is a relatively small program that can easily be rewritten by a large large model like ChatGPT, Claude, Gemini, etc. in a day session.
I used ChatGPT to design the solution that I wanted and Claude Sonnet to do most of the coding.
I'm trying to figure out what works for me in the brave new world of AI enabled development, so that I can make recommendations to my team.
A few things that really helped me here were:
- Having the gitlab cli (glab) installed and configured was very helpful because it allowed me to do things like lint the CI file and inspect the build output in the LLM context.
- Having the zereight/gitlab-mcp installed was useful as well. Even though I can make Issues and MRs using the CLI, the LLM frequently made escaping mistakes when writing long comment sections. The mcp tool was great for this.
- Almost all of my process started with me describing a bug or feature, then asking the LLM to investigate the feature and create an Issue. From there I tried as much as possible to keep the scope of my work small and exclusively tied to an issue branch.
I'm a reasonably good programmer - I've been at it for 30 years. I think there's no question that LLMs expand my "radius of capability." Just like everyone else, I'm trying to figure out the best way to safely maximize this new world of tools.
pip install service-ping-sping
was how it was installed
Thanks for fixing.