SUPPORT – Wire deleted | NewProxyLists

Warning on winnings: All articles published here are simply based on individual opinions, and they do not expressly or imply those of NewProxyLists or its owner. It is hereby clarified that NewProxyLists does not endorse, support, endorse or guarantee any opinion, program and / or business opportunity published here. NewProxyLists does not give and / or offer any investment advice to any member and / or reader. All members and readers are advised to independently consult their own consultants, lawyers and / or families before making any investment and / or commercial decisions. This forum is just a place for general discussion. It is hereby agreed by all members and / or readers that NewProxyLists is in no way liable and / or liable for damages and / or losses suffered by anyone of you.

doodstream ?? what happened to the wire?

is there any special reason why the doodstream thread went missing?

wire guard does not listen on port after starting

I suppose this is done under Linux, because not stated otherwise and because of the context of the container.

The description of lsof says:

THE DESCRIPTION

Lsof revision 4.91 lists on its standard output file information about files opened by processes for the following UNIX dialects:

  • Apple Darwin 9 and Mac OS X 10. (567)
  • FreeBSD 8. (234), 9.0 and 1 (012) .0 for AMD64-based systems
  • Linux 2.1.72 and higher for x86 systems
  • Solaris 9, 10 and 11

On Linux, WireGuard is not a standard process, but a network driver managed by the kernel. Even if at the end it could create a kernel thread appearing in the list of processes, this "process" would be special and would not give any information available on its open file descriptors (if such a concept anyway made sense for a kernel thread).

So lsof cannot find this information and always returns an empty result.

However, an order like netstat -nul | grep -w 7456 or ss -nul sport = :7456 would always display it, where it was created (see below), because it only queries the kernel network APIs (resp. /proc/net/udp{,6} or netlink / sock_diag) to find out the listening ports, rather than crossing the kernel information process API with network API thsoe.

That being said, this is only valid if the order wg-quick up wg0 was executed in the specific container in which the interface is used after. If it was run on the host, and after that, creating a container "stole" it, all bets are turned off. Indeed, WireGuard is designed to work along network namespaces (i.e. containers). It is entirely possible and documented to create the WireGuard interface in a network namespace (for example the initial host namespace) and move it to another network namespace:

Ready for containers

WireGuard send and receive encrypted packets using the network
namespace in which the WireGuard interface was originally created
.
This means that you can create the WireGuard interface in your
the namespace of the network, which has Internet access and then move it
in a network namespace belonging to a Docker container like the one
single container interface. This ensures that the only possible way
this container is able to access the network via a secure network
Encrypted WireGuard tunnel.

This means that if the interface is moved, the listening port will remain in the previous network namespace (probably the original host) and will be invisible in the namespace. network where the interface arrives. In this case, the listening port 7456 / UDP would not be visible in the container, but would be on the host (or where it was originally created). Also note that WireGuard will only listen (still only in the original network namespace) if the interface is administratively active (ip link set wg0 up). Lowering it temporarily removes the listening port.

dnd 5th – How can I wire players that the fortress is on alert because they let the guards escape?

One of my favorite tools as a DM is to allow players to discover text that hints at more important or global events. It allows players to understand things without having to say it directly.

In your particular case, I would say that the goblin garrison would either send scouts to keep an eye on the movements and activities of the hostile party that has surrendered, or send a raid party to hunt or capture them. .

While the party is in camp, ask them to notice some strange creaks in the brush a little far away. If they investigate, they might find a small number (maybe even just one) scout. Don't tell them it's a scout. Scare the scout away but, in his haste to leave, he forgets his spy glass and his satchel. The spyglass indicates that she was watching the party. The bag can contain Command Hobbes the Hobgoblin (or anyone) orders that read:

Forward sentries have been led astray by a small team of warriors. They managed to escape with their lives. Keep an eye on them and report their activity to me.

For added flavor, you could also have the bag hold some paper with writing that details the party's actions and is used to indicate that the scout they hunted or killed was in the process of to report to the garrison.

Dusk. The tank needs to take a shower. I can smell it from here.

Moonrise. The camp is calm. The magic carries a long wooden stick. It could be worth something once we kill her.

Midnight. They changed watches. The thief likes to spin his dagger while guarding the sentry. Mine is bigger. Should be an easy brand.

Sunset. The priest is a dirty dwarf. Seems to have sharp senses. He looks in my direction. . .

If the group does not act on the possibility that a scout spies on them, force the problem and ask a force reconnaissance team to move to attack instead (I would give them a surprise combat round ).

Essentially, you put "noise in the bushes" into the scene. You can use this noise to reveal the presence of the scout or a member of the reconnaissance team, depending on how you want to play or how much your players enjoy the fight. If you think "I'm going to make the noise come from a scout" and they don't bite, you can flip the scout behind the screen and use the scout ; team to attack instead. Players will not be wiser than you have changed things on the fly.

If you go there with the attacking reconnaissance team, keep in mind that the purpose of this encounter would not be to pose a real threat to the group. It is to act as a vehicle that allows the party to intercept the commander's orders, thereby revealing the fact that the goblin garrison knows they are there.

Mechanically, this means that you would choose creatures with an XP budget suited to an easy to medium difficulty difficulty at most. If you give them a surprise round, remember that this increases the difficulty of the encounter above the face value.

npm – wire installation in a docker container that connects to a private registry

I'm trying to run yarn install during the construction phase of a docker container.

COPY ./.yarnrc ../

RUN yarn install --production --verbose

the .yarnrc is below and points to a private registry:

registry "https://blah/blah.blah"

When I execute docker construction, I use the --network=host option

docker image build 
    --rm 
    -f ./Dockerfile 
    -t $tag 
    --network=host 
    --no-cache 
    .

But when I get this error:

connect EHOSTUNREACH 666.66.66.666:443

Why would this happen if I use the host network and everything works on the host?

plotting – How to draw a cubic wire mesh in 2D

I need to draw a rectangular wire mesh in Graphics (not Graphics3D). My attempt produces ugly corners. Is there a cure for this problem?

a = {0, 0}; 
b = {2, 0};
c = {2, 1.5};
d = {0, 1.5};
g = Graphics(
  {{Black, FaceForm(None), 
    EdgeForm({AbsoluteThickness(8), CapForm("Round")}), 
    Polygon({a, b, c, d}) , Polygon(.5 + {a, b, c, d})}, {Black, 
    FaceForm(None), 
    EdgeForm({AbsoluteThickness(6), CapForm("Round")}), 
    Polygon({a, a + .5, d + .5, d}), 
    Polygon({c, c + .5, b + .5, b}) }}, 
  PlotRange -> {{-1, 3}, {-.5, 2.6}})

applications – Is it possible to start an Android smartphone without battery with the charging wire on?

The title of this article seems like a fun challenge. But frankly, there are many valid points involved in this issue.

If an Android phone supports fast charging. If its battery is removed, but the USB charging line is connected. Then press the power button. Is it possible to launch it normally?

I have a Huawei Honor 9, it is a phone in good condition.

I open its back closure and lift the motherboard. Then the bottom of the battery is exposed. I use a credit card to turn the battery against the glue. After that, I detach the battery wire from the motherboard.

Then I put the motherboard back in and put the back cover on. I connected the charge line.

After pressing the power button. The flash boot logo appears. However, this state lasts a long time (much longer than the normal situation).

When he told me to enter the password. The thing goes wrong. He said that several services (Google service, Huawei service and user interface) were not launched properly. When I enter my password. There is only one blank screen with only a wallpaper and a notification bar.

The notification bar indicates that there is 2% battery. No application can launch.

Is this the result of the Android system protection mechanism? (Because when the battery exceeds a certain percentage, the system turns off automatically).

How does the Android smartphone determine the remaining battery charge today?
As the charging voltage is higher than the fully charged voltage.

Is this the normal condition that the system cannot start correctly without a battery? Or is it because I could break part of the circuit when I take this smartphone apart?

installation – wire installation error:

wire installation v1.21.1
package-lock.json warning found. Your project contains lock files generated by tools other than Yarn. It is advisable not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To remove this warning, remove package-lock.json.
(1/5) Validation of package.json …
(2/5) Solving packages …
(3/5) Retrieving packages …
info fsevents@1.2.11: The "linux" platform is incompatible with this module.
info "fsevents@1.2.11" is an optional dependency and the compatibility check has failed. Exclude it from the installation.
(4/5) Linking dependencies …
the warning "> @ magento / eslint-config @ 1.5.2" has an incorrect peer dependency "eslint-plugin-react-hooks@^1.6.0".
the warning "> @ magento / babel-preset-peregrine @ 1.0.1" has an unsatisfied dependency "@ babel / core @ ~ 7.3.4".
the warning "> @ magento / babel-preset-peregrine @ 1.0.1" has an unsatisfied dependency "@ babel / plugin-proposition-class-properties @ ~ 7.3.4".
the warning "> @ magento / babel-preset-peregrine @ 1.0.1" has an unsatisfied dependency "@ babel / plugin-proposition-object-rest-spread @ ~ 7.3.4".
the warning "> @ magento / babel-preset-peregrine @ 1.0.1" has an unsatisfied dependency "@ babel / plugin-syntax-dynamic-import @ ~ 7.2.0".
the warning "> @ magento / babel-preset-peregrine @ 1.0.1" has an unsatisfied dependency "@ babel / plugin-syntax-jsx @ ~ 7.2.0".
warning "> @ magento / babel-preset-peregrine @ 1.0.1" has an unsatisfied peer dependency "@ babel / plugin-transform-react-jsx @ ~ 7.3.0".
the warning "> @ magento / babel-preset-peregrine @ 1.0.1" has an unsatisfied dependency "@ babel / plugin-transform-runtime @ ~ 7.4.4".
the warning "> @ magento / babel-preset-peregrine @ 1.0.1" has an unsatisfied dependency "@ babel / preset-env @ ~ 7.3.4".
the warning "> @ magento / babel-preset-peregrine @ 1.0.1" has an unsatisfied dependency "@ babel / runtime @ ~ 7.4.2".
the warning "> @ magento / babel-preset-peregrine @ 1.0.1" has an unsatisfied dependency "babel-plugin-dynamic-import-node@~2.2.0".
the warning "> @ magento / babel-preset-peregrine @ 1.0.1" has an unsatisfied homologous dependency "babel-plugin-graphql-tag@~2.0.0".
the warning "> @ magento / babel-preset-peregrine @ 1.0.1" has an unsatisfied peer dependency "react-hot-loader@~4.12.17".
the warning "> graphql-cli-validate-magento-pwa-queries@1.2.0" has an unsatisfied dependency "graphql-cli @ ^ 3".
the warning "> @ magento / peregrine @ 5.0.0" has an unsatisfied dependency "@ apollo / react-hooks @ ~ 3.1.2".
the warning "> @ magento / peregrine @ 5.0.0" has an unsatisfied dependency "@ babel / runtime @ ~ 7.4.2".
the warning "> @ magento / peregrine @ 5.0.0" has an unsatisfied peer dependency "apollo-client@~2.6.4".
the warning "> @ magento / peregrine @ 5.0.0" has an unsatisfied dependency "peer@~2.11.17".
the warning "> @ magento / peregrine @ 5.0.0" has an unmet peer dependency "react@~16.9.0".
the warning "> @ magento / peregrine @ 5.0.0" has an unmet peer dependency "react-dom@~16.9.0".
the warning "> @ magento / peregrine @ 5.0.0" has an unmet peer dependency "react-redux@~7.1.1".
the warning "> @ magento / peregrine @ 5.0.0" has an unsatisfied peer dependence "react-router-dom@~5.1.0".
the warning "> @ magento / peregrine @ 5.0.0" has an unsatisfied peer dependency "redux@~4.0.4".
the warning "> @ magento / peregrine @ 5.0.0" has an unsatisfied dependency "redux-actions@~2.6.5".
the warning "> @ magento / pwa-buildpack @ 5.0.0" has an unsatisfied dependency "babel-loader@~8.0.5".
the warning "> @ magento / pwa-buildpack @ 5.0.0" has an unsatisfied dependency "css-loader@~2.1.1".
the warning "> @ magento / pwa-buildpack @ 5.0.0" has an unsatisfied dependency "terser-webpack-plugin@~1.2.3".
the warning "> @ magento / pwa-buildpack @ 5.0.0" has an unmet peer dependency "webpack@~4.38.0".
the warning "> @ magento / pwa-buildpack @ 5.0.0" has an unmet peer dependency "workbox-webpack-plugin@~4.2.0".
the warning "> @ magento / upward-js @ 4.0.0" has an unsatisfied dependency "express@^4.16.4".
the warning "> @ magento / venia-ui @ 2.0.0" has an unmet peer dependency "apollo-cache-inmemory@~1.6.3".
the warning "> @ magento / venia-ui @ 2.0.0" has an unmet peer dependency "apollo-cache-persist@~0.1.1".
the warning "> @ magento / venia-ui @ 2.0.0" has an unsatisfied dependency "apollo-client@2.6.4".
the warning "> @ magento / venia-ui @ 2.0.0" has an unsatisfied peer dependency "apollo-link-http@~1.5.11".
the warning "> @ magento / venia-ui @ 2.0.0" has an unsatisfied dependency "braintree-web-drop-in@~1.16.0".
the warning "> @ magento / venia-ui @ 2.0.0" has an unmet peer dependency "react@~16.9.0".
the warning "> @ magento / venia-ui @ 2.0.0" has an unmet peer dependency "react-redux@~7.1.1".
the warning "> @ magento / venia-ui @ 2.0.0" has an unmet peer dependency "react-router-dom@~5.1.0".
the warning "> @ magento / venia-ui @ 2.0.0" has an unmet peer dependency "redux@~4.0.1".
the warning "> @ magento / venia-ui @ 2.0.0" has an unmet peer dependency "webpack@~4.41.2".
the warning "workspace -gregator-4d7f1716-16a5-4d05-83b9-41e41f5ec283> @ magento / pwa-buildpack> graphql-playground-middleware-express@1.7.12" has an unsatisfied peer dependency "express@^4.16 .2 ".
warning "workspace-aggregator-4d7f1716-16a5-4d05-83b9-41e41f5ec283> @ magento / venia-concept> react-hot-loader@4.12.18" has a counterpart dependence not satisfied "@ types / react @ ^ 15.0. 0 || ^ 16.0.0 ".
warning "workspace-aggregator-4d7f1716-16a5-4d05-83b9-41e41f5ec283> @ magento / venia-ui> @ apollo / react-hooks @ 3.1.3" has an unsatisfied peer dependency "@ types / react @ ^ 16.8 .0. "
warning "workspace-aggregator-4d7f1716-16a5-4d05-83b9-41e41f5ec283> @ magento / venia-ui> @ apollo / react-hooks @ 3.1.3" has an unsatisfied peer dependency "react-dom@^16.8. 0 ".
the warning "workspace -gregator-4d7f1716-16a5-4d05-83b9-41e41f5ec283> @ magento / venia-ui> react-head@3.1.1" has an unmet peer dependency "react-dom @> = 16.3 ".
warning "workspace-aggregator-4d7f1716-16a5-4d05-83b9-41e41f5ec283> @ magento / venia-ui> react-slick@0.25.2" has an unmet peer dependency "react-dom@^0.14.0 | | ^ 15.0.1 || ^ 16.0.0 ".
warning "workspace-aggregator-4d7f1716-16a5-4d05-83b9-41e41f5ec283> @ magento / venia-ui> @ apollo / react-hooks> @ apollo / react-common @ 3.1.3" has an unsatisfied dependence on peers "@ types / react @ ^ 16.8.0".
warning "workspace -gregator-4d7f1716-16a5-4d05-83b9-41e41f5ec283> @ magento / venia-ui> @ apollo / react-hooks> @ apollo / react-common @ 3.1.3" has an unfulfilled peer dependency "apollo -utilities @ ^ 1.3.2 ".
warning "workspace-aggregator-4d7f1716-16a5-4d05-83b9-41e41f5ec283> graphql-cli-validate-magento-pwa-queries> graphql-cli> apollo-codegen> apollo-codegen-core@0.20.1" has a incorrect peer dependency "graphql@^0.11.0 || ^ 0.12.0 || ^ 0.13.0".
the warning "workspace -gregator-4d7f1716-16a5-4d05-83b9-41e41f5ec283> graphql-cli-validate-magento-pwa-queries> graphql-cli> graphql-cli-prepare> graphql-import@0.4.5" has incorrect peer dependency "graphql@^0.11.0 || ^ 0.12.0 || ^ 0.13.0".
the warning "workspace-aggregator-4d7f1716-16a5-4d05-83b9-41e41f5ec283> graphql-cli-validate-magento-pwa-queries> graphql-cli> graphql-cli-prepare> graphql-static-binding @ 0.9.3 "is incorrect peer dependency" graphql@^0.11.0 || ^ 0.12.0 || ^ 0.13.0 ".
warning "workspace-aggregator-4d7f1716-16a5-4d05-83b9-41e41f5ec283> graphql-cli-validate-magento-pwa-queries> graphql-cli> tmp-graphql-config-extension-openapi> @ kbrandwijk / swagger-to -graphql @ 2.4.3 "has an incorrect peer dependency" graphql@^0.12.0 || ^ 0.13.0 ".
(5/5) Build new packages …
(8/12) ⠂ iltorb
(- / 12) ⠂ wait …
(3/12) ⠂ iltorb
(4/12) ⠄ net
error / home / aspire1030 / pwa-studio / node_modules / sharp: the command failed.
Exit code: 1
Command: (node ​​install / libvips && node install / dll-copy && prebuild-install) || (reconstruction of node-gyp && node install / dll-copy)
arguments:
Directory: / home / aspire1030 / pwa-studio / node_modules / sharp
Production:
info sharp Download https://github.com/lovell/sharp-libvips/releases/download/v8.8.1/libvips-8.8.1-linux-x64.tar.gz
BE MISTAKEN! Pointed tunneling socket could not be established, statusCode = 503
info sharp Attempt to generate from source via node-gyp but this may fail due to the above error
info sharp Please see https://sharp.pixelplumbing.com/page/install for required dependencies
info gyp it worked if it ends with ok
info gyp using node-gyp@3.8.0
gyp info using node@10.16.3 | linux | x64
gyp info spawn / usr / bin / python2
gyp info spawn args (& # 39; /home/aspire1030/pwa-studio/packages/venia-concept/node_modules/node-gyp/gyp/gyp_main.py&#39 ;,
gyp info spawn args & # 39; binding.gyp & # 39 ;,
gyp info spawn args & # 39; -f & # 39 ;,
gyp info spawn args & # 39; make & # 39 ;,
gyp info spawn args & # 39; -I & # 39 ;,
gyp info spawn args & # 39; /home/aspire1030/pwa-studio/node_modules/sharp/build/config.gypi&#39 ;,
gyp info spawn args & # 39; -I & # 39 ;,
gyp info spawn args & # 39; /home/aspire1030/pwa-studio/packages/venia-concept/node_modules/node-gyp/addon.gypi&#39 ;,
gyp info spawn args & # 39; -I & # 39 ;,
gyp info spawn args & # 39; /home/aspire1030/.node-gyp/10.16.3/include/node/common.gypi&#39 ;,
gyp info spawn args & # 39; -Dlibrary = shared_library & # 39 ;,
gyp info spawn args & # 39; -Dvisibility = default & # 39 ;,
gyp info spawn args & # 39; -Dnode_root_dir = / home / aspire1030 / .node-gyp / 10.16.3 & # 39 ;,
gyp info spawn args & # 39; -Dnode_gyp_dir = / home / aspire1030 / pwa-studio / packages / venia-concept / node_modules / node-gyp & # 39;
gyp info spawn args & # 39; -Dnode_lib_file = / home / aspire1030 / .node-gyp / 10.16.3 / <(target_arch) /node.lib&#39 ;,
gyp info spawn args & # 39; -Dmodule_root_dir = / home / aspire1030 / pwa-studio / node_modules / sharp & # 39;
gyp info spawn args & # 39; -Dnode_engine = v8 & # 39 ;,
gyp info spawn args & # 39; – depth =. & # 39 ;,
gyp info spawn args & # 39; – no-parallel & # 39 ;,
gyp info spawn args & # 39; – generator-output & # 39 ;,
gyp info spawn args & # 39; build & # 39 ;,
gyp info spawn args & # 39; -Goutput_dir =. & # 39; )
make: Enter the directory & # 39; / home / aspire1030 / pwa-studio / node_modules / sharp / build & # 39;
gyp info spawn do
gyp info spawn args (& # 39; BUILDTYPE = Release & # 39 ;, & # 39; -C & # 39 ;, & # 39; build & # 39;)
TOUCH Release / obj.target / libvips-cpp.stamp
CXX (target) Release / obj.target / sharp / src / common.o
../src/common.cc:25:22: fatal error: vips / vips8: no file or directory of this type
compilation completed.
sharp.target.mk:127: the target recipe & # 39; Release / obj.target / sharp / src / common.o & # 39; has failed
make: Exit the directory & # 39; / home / aspire1030 / pwa-studio / node_modules / sharp / build & # 39;
make: *** (Release / obj.target / sharp / src / common.o) Error 1
gyp ERR! construction error
gyp ERR! Battery error: make failed with exit code: 2
gyp ERR! stack to ChildProcess.onExit (/home/aspire1030/pwa-studio/packages/venia-concept/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack to ChildProcess.emit (events.js: 198: 13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal / child_process.js: 248: 12)
gyp ERR! Linux 4.15.0-76-generic system
gyp ERR! command "/ usr / bin / node" "/home/aspire1030/pwa-studio/node_modules/.bin/node-gyp" "rebuild"
gyp ERR! cwd / home / aspire1030 / pwa-studio / node_modules / sharp

apache 2.2 – DNS_PROBE_FINiSHED_NXDOMAIN wire error after installing SSL

I had this problem after installing ssl someone told me it was a DNS problem so I checked the name servers and it is correct and exists in the domain panel, this error does not display 100% every time you open the website and this is not the case exists before SSL and HTTPS, I run laravel 6 on AWS light sail Ubuntu 18 with Apache 2 no idea what this error is and how to fix it

Cutting Lens Filter / Accessory Wire – Photography Stack Exchange

In addition to the filter diameter, you must specify the no thread, the linear (axial) distance of the filter, screw, etc., moves during one (or more) complete rotation of the thread. For SAE threads (or SAE derivatives), the pitch is generally specified in number of threads per inch. For example, the 1/4 "–20 bracket and tripod screw have a thread pitch of 20 threads per inch (TPI). Equivalently, you could say that the pitch is 1/20" per thread revolution.

Metric threads are always specified per thread turn. Today's retail business filter diameters between approximately 30 mm and 86 mm have a thread pitch of 0.75 mm. Below the filter diameter of 30 mm, the thread pitch is 0.5 mm; above 86 mm in diameter, the thread pitch is 1 mm. Note that these upper and lower filter diameter limits are not hard; some filter threads larger than 30 mm have a thread pitch of 0.5 mm and some filter threads smaller than 30 mm have a thread pitch of 0.75 mm. But generally speaking, most of the lenses readily available in this range will have a thread pitch of 0.75mm.

The thread profiles of the lens filter are cut in accordance with the ISO metric thread standard. This standard determines the depth of internal and external threads, the thread angle (60 °), etc. Taking into account the nominal diameter and the thread pitch, all other dimensions are specified by the standard.

Threading machines use what is called Change speed to connect the wire cutter (a tap if you cut female fillets; a pass away when cutting male threads) rotation in linear advance required by thread pitch. Change gear sets can be changed to suit different thread pitches.

If a machinist does not have specific experience in threading and tooling, find another machinist. In addition, if a machinist does not explicitly support ISO metric threading, I would find another machinist. With some exceptions, SAE thread steps and metric thread steps cannot be swapped. If the wire commitment (number of threads corresponding to two parts) is low, sometimes some SAE and metric threads can be mixed, but it depends very on the situation.

For example, even with properly sized filter nets, aluminum filter supports can stick to each other quite easily. If a 0.75mm pitch aluminum wire at the end of a lens is coupled to the nearest equivalent custom or DIY SAE pitch filter also cut into aluminum, they will likely be glued each other. Unless you have also machined knurling or grip reliefs on the outside of the filter, you may find it difficult to separate them without having to cut the filter from the lens.

The list of supports available for Schnieder Kreuznach filters presents a fairly complete list of different filter sizes, as well as the thread pitch, thread length, total dimensions of the filter, etc. Typical retail filters probably use their "SH Mount".


If you make custom accessories for your own use, there is no risk with custom machined filter thread accessories. However, if you start selling your accessories, even in low volumes, I do not recommend cutting the wires yourself. The risk of damaging the wires on customer lenses is quite high, and depending on your location and / or customer location, you may run into product liability issues to damage their equipment.

As mentioned above, a skilled machinist will know about ISO metric threading.