Closed aaron-kylm closed 3 years ago
What architecture?
I’ll have to take a closer look over the next few days, I have both M1 and Intel Macs, but the M1 is not currently set up as it runs headless and has moved.
I did just try the latest binary from GitHub and it worked on Intel, so I guess you’re on an M1?
On 7 Jun 2021, 15:20 +0100, aaron-kylmanen @.***>, wrote:
Getting the below error on OS X 11.4 when trying to run Pingnoo.. Application Specific Information: dyld: launch, loading dependent libraries Dyld Error Message: Library not loaded: @rpath/QtWidgets.framework/Versions/5/QtWidgets Referenced from: /Applications/Pingnoo.app/Contents/MacOS/Pingnoo Reason: no suitable image found. Did find: /Applications/Pingnoo.app/Contents/MacOS/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets: mach-o, but wrong architecture — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.
Yes it was an M1.. It was ran by someone else ( I have an intel Mac ).
I did test it earlier, it is broken on the M1, I’ll take a look, I don’t know what happened.
Thanks for the report. On 8 Jun 2021, 15:51 +0100, aaron-kylm @.***>, wrote:
I'm pretty sure it was an M1.. It was ran by someone else ( I have an intel Mac ). I'm trying to verify.. — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
For some reason the CI system is not correctly building the deployable image. I manually ran the exact same commands from a terminal and the resulting image was then working with both M1 and Intel based macs.
Please give this version a go.
Thank you! Will try asap....
I got my hands on a MBA M1 ( with 11.2 ) and got the below error.. It might have had something to do with using favorites. They seem to load slow and I was opening them rather quickly ( only 3 favorites though ) I also got a popup error, linked below for screenshot. I'm upgrading to 11.4 now... Will repost after I test with that..
Popup Window https://www.dropbox.com/s/fbpvp4vx0z6b8lx/Screen%20Shot%202021-06-09%20at%2011.03.58%20AM.png?dl=0
Error: https://www.dropbox.com/s/i311dwf9pnk4m0l/2021-06-09--1108.txt?dl=0
I got my hands on a MBA M1 ( with 11.2 ) and got the below error.. It might have had something to do with using favorites. They seem to load slow and I was opening them rather quickly ( only 3 favorites though ) I also got a popup error, linked below for screenshot. I'm upgrading to 11.4 now... Will repost after I test with that..
Popup Window https://www.dropbox.com/s/fbpvp4vx0z6b8lx/Screen%20Shot%202021-06-09%20at%2011.03.58%20AM.png?dl=0
Error: https://www.dropbox.com/s/i311dwf9pnk4m0l/2021-06-09--1108.txt?dl=0
Thanks, I'll have a look. When does the popup window occur?
I think I need to have a bit of a debug session on the M1, I just tried opening favourites quickly and didn't get any weird behaviour.
When you say, slow to load, do you mean that the "Editor" appears, but takes a wile before the hops show and the route starts being analysed? If so, could you run a traceroute from the terminal to one of these hosts and also do the same in pingnoo. If you can provide me with the duration of each that would be good.
If you have a lot of a hops that don't respond, it will be slow as it figures the route out sequentially. I could add some settings to allow the user to to change the timeout duration for a hop which might help, but performing the analysis in parallel would be much quicker, but, earlier versions of pingnoo I did actually do that and I saw issues with hops going missing, my ISP's first couple of hops seem to have some sort of "DDOS" protection or something, if you ping them (or through them) too quickly, the hops stop reporting. Throttle back the number of pings or the interval and the hop starts working again.
I appreciate the reports, hopefully we can fix these up pretty quickly, I don't think it's anything major.
No idea why it just closed this.
This is what happens when I run multiple pings or ping too quickly!
(btw you don't need to host images on dropbox, you can insert them directly here or paste them straight from your clipboard)
Thank you for the response and help. Noted on the the images suggestion..
I did a traceroute to 8.8.8.8 from both terminal and pingnoo today
Terminal was roughly 30 seconds to completion Pingnoo was roughly 38-40 seconds to display information
After I sat for a second yesterday I wondered if it was just a delay in getting all the information before displaying. I'm not sure this is a big deal... From my perspective....
Yesterday I opened 4 tabs and let it run. The last time I looked around 5 hours after and everything was still running. When I looked this morning all 4 tabs were still open, but 2 of them seemed to have froze. When I closed tab #2 ( reading from left to right ) tabs 2, 3, and 4 all closed. I'm not sure the use cases for letting it run for close to 20 hours or more... Just thought I'd let you know.
I'm a little confused also on the chart and information section. I noticed that on the graph for a tab pinging 8.8.8.8 the top two hops are internal to my home network. Those both show a high packet loss percent. But in terminal pinging the same internal IPs there is none. On my intel mac it shows 0 packet loss to the same IP and internal path.
And, sorry if this is something I missed in the Docs, the cur column is that the most recent return? Is there a way to add in a Standard Deviation value?
I did a traceroute to 8.8.8.8 from both terminal and pingnoo today
Terminal was roughly 30 seconds to completion Pingnoo was roughly 38-40 seconds to display information
Cool. I can definitely improve this or at least make it much more configurable. The issue is picking a suitable "timeout" for a hop that doesn't result in false positives, the route engine is it's own module and is pretty simple as it uses functionality from other libraries and modules.
After I sat for a second yesterday I wondered if it was just a delay in getting all the information before displaying. I'm not sure this is a big deal... From my perspective....
It's been on my todo list for a while, it didn't seem that big a deal to me (although I knew it wasn't a great user experience), it's not clear to end users that it's actually doing anything.
I've just made a handful of changes to allow me to display the partial route as it is discovered, it's not going to take long to finish that up, it will give a much better user experience, but, the actual analysis will only happen when the whole route has finished being discovered.
Yesterday I opened 4 tabs and let it run. The last time I looked around 5 hours after and everything was still running. When I looked this morning all 4 tabs were still open, but 2 of them seemed to have froze. When I closed tab #2 ( reading from left to right ) tabs 2, 3, and 4 all closed. I'm not sure the use cases for letting it run for close to 20 hours or more... Just thought I'd let you know.
I'll set it going and see if I can reproduce it. I wonder, does your machine go to sleep? That's not a condition I've specifically handled or tested, my guess is that it may not handle that situation gracefully. Were all the tabs to different targets or the same one?
I'm a little confused also on the chart and information section. I noticed that on the graph for a tab pinging 8.8.8.8 the top two hops are internal to my home network. Those both show a high packet loss percent. But in terminal pinging the same internal IPs there is none. On my intel mac it shows 0 packet loss to the same IP and internal path.
WiFi? There's no particular reason why those 2 hops would show high packet loss and not other hops, as I mentioned earlier, some hops may just drop ICMP if they see too many packets, it's possible that your internal network does what I posted above with the graph. Can you try 1 ping target and monitor that for a minute, then try 2 ping targets, check those hops, then 3, then 4 and see if the packet loss occurs when more than 1 ping is running.
You can also try that with the standard ping command from the terminal, just start multiple terminals and run a ping in each of them.
If you're still seeing it, then I'll have to think a bit more.
And, sorry if this is something I missed in the Docs, the cur column is that the most recent return?
Yes.
Is there a way to add in a Standard Deviation value?
Short answer no.
But only because the mechanism isn't actually there. All I actually need to do is expose an interface to allow components to provide a column to the list, as a ping result comes in, the data would be passed to the plugin and would return the string to display in the column.
Leave it with me, this is a great idea, I didn't consider custom columns in the table.
The laptop is plugged in to power. The monitor shuts off, but the hard drive is not configured to go to sleep. Today I set the monitor to never shut, and put a screen saver to start after 20 minutes to see what happens.
Yes I am on WiFi at home. I had terminal up and pinging both IPs that were showing packet loss in Pingnoo. No packet loss in the terminal windows...
I'm hoping to get some work ( both work work and lab work ) done tonight. If I do, I'll do these tests with each internal IP in Pingnoo and post results. If not I should be able to get to it tomorrow..
thank you
The laptop is plugged in to power. The monitor shuts off, but the hard drive is not configured to go to sleep. Today I set the monitor to never shut, and put a screen saver to start after 20 minutes to see what happens.
Yes I am on WiFi at home. I had terminal up and pinging both IPs that were showing packet loss in Pingnoo. No packet loss in the terminal windows...
I'm hoping to get some work ( both work work and lab work ) done tonight. If I do, I'll do these tests with each internal IP in Pingnoo and post results. If not I should be able to get to it tomorrow..
thank you
As an experiment, can you run the ping both from the terminal, but like this:
ping -m <ttl> <ip>
So, if you're saying that hops 1 & 2 are showing packet loss in pingnoo, then we want to ping the target with the TTL set to 2, if the targets were 1.1.1.1 and 8.8.8.8 then:
Terminal 1
ping -m 2 1.1.1.1
Terminal 2
ping -m 2 8.8.8.8
We should expect to see the following ping output from both pings (obviously with the appropriate IP for each ping command you've executed).
PING 1.1.1.1 (1.1.1.1): 56 data bytes
92 bytes from <redacted>.static.virginmediabusiness.co.uk (<redacted>): Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 b03c 0 0000 01 01 4de9 172.29.13.101 1.1.1.1
Request timeout for icmp_seq 0
92 bytes from <redacted>.static.virginmediabusiness.co.uk (<redacted>): Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 256a 0 0000 01 01 d8bb 172.29.13.101 1.1.1.1
Request timeout for icmp_seq 1
92 bytes from <redacted>.static.virginmediabusiness.co.uk (<redacted>): Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 1bff 0 0000 01 01 e226 172.29.13.101 1.1.1.1
Request timeout for icmp_seq 2
92 bytes from <redacted>.static.virginmediabusiness.co.uk (<redacted>): Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 822f 0 0000 01 01 7bf6 172.29.13.101 1.1.1.1
Request timeout for icmp_seq 3
92 bytes from <redacted>.static.virginmediabusiness.co.uk (<redacted>): Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 19e4 0 0000 01 01 e441 172.29.13.101 1.1.1.1
Request timeout for icmp_seq 4
92 bytes from <redacted>.static.virginmediabusiness.co.uk (<redacted>): Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 da20 0 0000 01 01 2405 172.29.13.101 1.1.1.1
Request timeout for icmp_seq 5
92 bytes from <redacted>.static.virginmediabusiness.co.uk (<redacted>): Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 e0d0 0 0000 01 01 1d55 172.29.13.101 1.1.1.1
--- 1.1.1.1 ping statistics ---
7 packets transmitted, 0 packets received, 100.0% packet loss
Here it's showing that the packet timed out (which is what you'd see if the target was not replying), but additionally, we are seeing Time to live exceeded packets which are coming from hops 1 & 2, this is the crucial bit and it will be interesting to see what the output is from the 2 simultaneous ping sessions running from the terminals. If we start seeing packets without TTL exceeded, then it matches up with pingnoo, if not....I'm going to have to scratch my head a little.
This is subtlety different to just running pings without setting the TTL and this is what pingnoo actually does, for every ping it sends at its prescribed interval, it's actually sending n pings with the ttl set to a different value, where n is the number of hops that were discovered during the initial delay. The intermediate hops will return TTL exceeded if they handled the packet or we'll get a timeout if they don't.
When you just execute a ping normally from the terminal, the TTL is probably set to something like 64 (OS dependant and the value can be changed anyway), so it passes straight through the intermediate hops without any response from them, we only expect a response from the target (if it's set to allow ICMP echo's, otherwise we get nothing back from our ping)
@aaron-kylm Hi, I'm wondering if you managed to perform the tests?
I have spent all day removing std::chrono from the application, when I started using it at the beginning it seemed like a good idea, but as time has gone on, it's just become more of a hindrance than a help.
I ended up removing it (I'd thought about doing it before, but it was going to be a pretty big task) when adding in the base for displaying the route as it is discovered (along with the extra feedback I showed above), because that was using chrono I decided now was the time to do it.
It has taken me all day to do this, but now I can finish up the real-time route list now which should be trivial.
I'm sorry I had an emergency on Saturday and didn't get to work at all yesterday or today. Just sitting down now..:(
I'm pretty sure you were asking me to ping the two internal hops that were showing the packet loss. But I did 4 setting the ttl to 2 just to be safe. Please see below for the two internal ones, and the following two that are way beyond the two hops. Hope this is what you were looking for and helps.
Internal Hop 1:
ping -m 2 10.0.0.1
PING 10.0.0.1 (10.0.0.1): 56 data bytes
64 bytes from 10.0.0.1: icmp_seq=0 ttl=64 time=14.422 ms
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=14.857 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=16.898 ms
^C
Internal Hop 2:
ping -m 2 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=63 time=16.323 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=63 time=7.540 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=63 time=16.859 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=63 time=15.797 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=63 time=17.185 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=63 time=16.584 ms
Ping to 8.8.8.8:
ping -m 2 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
92 bytes from 192.168.1.1: Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 48d6 0 0000 01 01 560b 10.0.0.185 8.8.8.8
Request timeout for icmp_seq 0
92 bytes from 192.168.1.1: Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 e511 0 0000 01 01 b9cf 10.0.0.185 8.8.8.8
Request timeout for icmp_seq 1
92 bytes from 192.168.1.1: Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 f6a4 0 0000 01 01 a83c 10.0.0.185 8.8.8.8
Request timeout for icmp_seq 2
92 bytes from 192.168.1.1: Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 206f 0 0000 01 01 7e72 10.0.0.185 8.8.8.8
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss
Ping to apple.com
ping -m 2 apple.com
PING apple.com (17.253.144.10): 56 data bytes
92 bytes from 192.168.1.1: Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 f6c8 0 0000 01 01 1621 10.0.0.185 17.253.144.10
Request timeout for icmp_seq 0
92 bytes from 192.168.1.1: Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 e8ca 0 0000 01 01 241f 10.0.0.185 17.253.144.10
Request timeout for icmp_seq 1
92 bytes from 192.168.1.1: Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 5751 0 0000 01 01 b598 10.0.0.185 17.253.144.10
Request timeout for icmp_seq 2
92 bytes from 192.168.1.1: Time to live exceeded
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 af37 0 0000 01 01 5db2 10.0.0.185 17.253.144.10
^C
--- apple.com ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss
houzz-test@hzzMBA-FVFDX0UEQ6LW ~ %
ah, sorry, I hope everything is ok, I’m used to (medical) emergencies myself, whenever you get the chance to do these tests is cool, in the meantime I’ll have a think: I have rewritten a portion of this code which impacts the time calculations, and also some thread issues, it’s possible I’ve fixed it.
I will finish up the code to display the route being discovered, I really should have added this earlier but nobody seemed to find too much, although it did annoy me a little, so I appreciate the prod with a stick to do something
No, the test was not directly pinging the internal IP’s, rather pinging the external IP but with a TTL of 2, which is subtly different, as you can see from your result.
You are correctly getting the TTL exceeded, I’m just curious that if you were to run it for the same sort of duration as you did with pingnoo, whether the packet loss also happens via ping commands with the TTL set.
i’m really baffled by why you’re seeing packet loss if the above test doesn’t show any from the ping command over a longer duration.
another test (and this should probably be the one to run to help diagnose) would be to repeat what you did in pingnoo, but additionally also fire the kings (with a TTL of 2 l) to see if you get packetloss in the terminal as well.
I really appreciate the report and detail you are providing me with, I hope that I can work with you to fix any issues you are having.
Tonight hop one packet loss stayed at 0, Hop 2 is updating and displaying packet loss currently in the mid 40's % ... Please see below. One from tonight and the other from the day.
Thank you - I have to log off
Tonight hop one packet loss stayed at 0, Hop 2 is updating and displaying packet loss currently in the mid 40's % ... Please see below. One from tonight and the other from the day.
Thank you - I have to log off
ok, the problem you're seeing is with your network, you can see in your bottom right ping command your running is displayed RequestTimeout as well, this is the same behaviour you're seeing in Pingnoo, again this is subtly different to pinging that actual endpoint, this "problem" appears only when the TTL expires.
I see this behaviour myself on the first hop outside of my network, the ISP's hardware there seems to rate limit ICMP packets or something, if I ping at a slow rate, I never see the lost packets. When I ping a 1s intervals and with other ping traces going, I start seeing lost packets.
What also happens is that when I run a test in this particular scenario (it's actually a useful thing for development!) I see the "dropped packet" sometimes switch, that is to say, that pingnoo might be showing all the dropped packets but the ping command is happing receiving. Then it'll switch, and I'll see the response in pingnoo but then see "RequestTimeout" occurring in the ping command running in the terminal, a short while later it'll flip again.
I should probably go and see if I can find out how often this behaviour appears and whether it happens for a specific reason. I can tell you that when I first started experiencing this early in development, it really confused me.
Thanks for running the tests, I wonder what else we can do to try and figure out exactly why this happens.
I've nearly finished the discovery progress code. I will build a mac version and post the link here to try. Now the user gets visual feedback that something is happening, rather than a blank window until the route discovery is completed.
It's nearly 1am here and I'm off to sleep.
that's fantastic.. thank you!
Had to go out of town for some business. Just got back Saturday and thought I'd touch base here again to see how things were going and if there was any more testing I can help with.
Keeping me on my toes eh?
Well.....
I haven't built new distributable binaries yet, but I have completed the work regarding the "feedback/progress" when starting a trace, it's much nicer now, especially as you can see that it's actually doing something rather than being presented with a blank page.
There may still be edge cases that I haven't yet finished testing, I suspect that closing a trace before it's finishing being discovered may well cause a crash due to the multithreaded nature, I will have a look at this in a little more depth over the coming week.
The important bit is that the code is in. Because of the way the actual route discovery works, I think I mentioned that I decided to remove std::chrono from nearly every place it's used in pingnoo. I initially used it because it does on paper seem like a really nice solution to dealing with time values where the units are implicit, however, as I got deeper and deeper into the rabbit hole it became worse and worse, extremely convoluted and not at all logical, simple things became much more complicated than they should have been because the code isn't intuitive.
This was a fairly hefty piece of code to remove from the application because the application is based around time, it took a couple of days to actually remove it and to check that everything still worked as it should, it stayed inside the application far longer than it probably should have because every time I considered moving it (usually after suffering the pain of interacting with it) the thought of actually doing it put me off, so it stuck around.
If the route discovery can determine the number of hops at the start, then the progress bar will reflect how far through the discovery process we are. As this is dependant on ICMP echo replies from the target, it will only show deterministic progress in that case. If the target does not reply to ICMP packets, then it will show an infinite progress bar.
What else?
Well, I also took the time to reorganise some constants in the software in preparation for adding in scripting and user-definable keystrokes and so on. At the same time, I have started to add in other ribbon pages, you will now see that there is a Home ribbon page, currently, this contains two groups.
The first group is to do with host masking.
The route analyser component exposes its own SDK, part of that SDK is the ability to "redact" information that is displayed to the user, be that on screen, in output files or printouts. When troubleshooting problems, people will often show information about their internet connection to other parties in public forums/groups/Reddit channels and so on. Tech-savvy people will normally redact information that they don't want public, this could be an FQDN or an IP address, just to limit how much they expose about their connection to the world.
Generally, people either screenshot or cut and paste sections of text, they then have to remember to redact any information in the "documents" that they don't want to be out in the public domain. Pingnoo solves this with host maskers, these are components that follow a protocol that redacts host addresses and hostnames.
I have supplied two host masker engines in the application at the moment, one of which is a public IP host masker, this uses an online service to discover the public IP that is in use. The other host masker is very powerful, it uses regular expressions to allow the user to mask the address, hostname or both if match conditions are satisfied. These conditions could be an expression that matches a specific range of IP addresses, or a corporate server name or whatever, if it has an IP or a hostname, you can redact it.
The configuration is extensive, you can match on hop number(s), addresses, hostnames, domain names and so on.
There were a few little issues with the regular expression masker, so I've also fixed this (it was actually earlier this evening I completed the work) and now that the ribbon bar allows the redactions to be globally switched on or off for a given context, it's incredibly useful!
I'm just pondering extending it once more, currently, it replaces the portion you want to redact with a custom message that you can supply in the substitution, but I'm also considering adding a checkbox that will allow the entry to be obfuscated with the "low res blocks" over the text, I think this is will probably look nicer overall.
There's also the start of the fleshing out of the clipboard behaviour (which inches us further towards the saving + loading of previous sessions, the clipboard copy function will allow the user to select exactly what format they want to copy as, again, this is useful when posting images online.
There are probably more things that I've tweaked, fixed or added, but for the moment they escape me.
If you want to have a play with the new version, you will currently have to build from the source code. I'm really tired right now, but I'll build a new version tomorrow and make it available here for download.
I'm interested in your feedback (you can see the behaviour) from the video that is attached here which shows the discovery process, whether it's what you envisioned as an end-user, whether I've completely missed the target on my implementation or just good feedback on what you think could improve it.
It's really great having end-users like yourself pushing the application forward, programmers (like myself) often have tunnel vision when it comes to development, what we think might be cool or easy to use, might be the complete opposite to how users in the real work use the application.
Cheers.
That looks great. This is a lot of fun. I can wait till you create the new build and will test asap. I'll put it on my machine, it's a Intel MBP, and on a M1 Air I have sitting next to me.
Thank you
@aaron-kylm i’ll try to get it done today after work, it great to have a tame user who is willing to test and work with me on the design. I really appreciate it, I’ll be happy to give you credit for your help.
I am wondering whether you would be happy to install a minimal qt installation and Xcode command line tools, git, and Python3 on your mac(s). I say this because if you have these installed it would be very easy and quick for you to test versions it features, but a couple of commands which could be wrapped up into a tiny shell script.
I have a few other outstanding issues:
1.) The “system tray icon” (or on macOS the menu bar icon), I’ve actually implemented everything here, but I need to plot real data and decide how exactly the user will select what graphs appear in the drop down.
2.) Saving and Loading data, I put this on the back burner because I couldn’t see the best way of storing it, SQLite, Json, XML, ZIP with all the the above! I still don’t known!
3.) markers, these go with the saving a loading. I’m thinking there should be a ribbon group, buttons to move between markers, edit them, create new ones, zoom to fit markers. Additionally I think you should have the option if creating a market that can have text and/or voice, or other metadata, say a screen shot from another application - this would be useful for diagnosing application level problems, so when one occurs you can attach as much information as you need so that you (or another party) can review this later.
4.) another of your suggestions I’ve run with. Add the ability to add a custom field to the table, the mechanism is already there to do something similar with graph plots, the jitter chart is actually not part of the route analyser, it’s a separate plugin that implements an interface that the route analyser exposes.
Your example was standard deviation, again as a component the standard deviation plugin could expose both a standard deviation for a columb in the table as well as a chart along with all the other plots.
5.) Timed capture mode, automatically run a session at a press deterninrd time. This may or may not be more suitable as a script.
6.) a scripting engine. nodeJS? Python? Both are pretty easy to integrate into an application, I’ve already integrated Python into another application as a test.
7.) Remote mode. The scope for this is large, essentially a service worker could run on a remote machine, this would allow pings to a target could be performed on a different source network to the one running the GUI instance of pingnoo. This is also useful for testing the return route from a target which may have a different path to the outgoing packages.
MQTT publishing of ping results would be good as well, it would allow you in real-time to share the results if your ping trace with other parties, useful for diagnosing issues by an ISP for example.
8.)
9.) HUD. Just so I don’t forget this one:
And a million other things. I’m trying to prioritise things that will have a bigger impact to the end user, users rarely care how clever your code is, only that they can use the software efficiently.
I’m trying to fill out the ribbon bars with useful tools that will make the software easier to use as it grows, and it’s quite an enjoyable project to work on (I have insomnia) in the early hours of the morning.
That looks great. This is a lot of fun. I can wait till you create the new build and will test asap. I'll put it on my machine, it's a Intel MBP, and on a M1 Air I have sitting next to me.
Thank you
Hi Aaron,
I've built a new macOS binary for the current develop branch, this includes the modifications to show the route as it is being discovered. It also includes the Host Maskers ribbon group which will allow you to toggle specific host maskers on and off.
If you can have a play with all this stuff and give me feedback, and I can then squash any problems you encounter.
I will be very surprised if you can't make it crash! There has been a some substantial work in places in the code that are ripe for crashing if not implemented correctly.
I tested the binary quickly on x86_64 and apple silicon. I need to investigate why it doesn't deploy correctly when done from my CI system so that I can go back to fully automated builds.
Let me know how you get on.
@aaron-kylm one other thing, can you close this issue when you have read it and open a new one with something like:
feedback for macOS release 2021.06.22
or something similar if you can come up with a better name, we can then take this discussion there around the work currently being done.
Downloading new build and will start testing today.
Closing issue
Getting the below error on OS X 11.4 when trying to run Pingnoo..
Application Specific Information: dyld: launch, loading dependent libraries Dyld Error Message: Library not loaded: @rpath/QtWidgets.framework/Versions/5/QtWidgets Referenced from: /Applications/Pingnoo.app/Contents/MacOS/Pingnoo Reason: no suitable image found. Did find: /Applications/Pingnoo.app/Contents/MacOS/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets: mach-o, but wrong architecture