schollz / find3-cli-scanner

The command-line scanner that supports Bluetooth and WiFi
https://www.internalpositioning.com/doc/tracking_your_computer.md
149 stars 55 forks source link

Some notes #46

Open cxtal opened 4 years ago

cxtal commented 4 years ago

This is a very cool project and hopefully it is still being developed! I would like to add some notes (summarized here) since I have been struggling with the setup quite a bunch and perhaps it will provide a milestone for others struggling.

If you are using a Raspberry Pi (armf arch), you need to build the image yourself, although I suggest Raspberry Pi’s just built natively above.

First, building the image via Docker fails with a non-zero code and sadly Docker spews the entire shell command out such that it is difficult to track where the problem may be in the whole command chain.

Compiling natively fails on all Go versions I have tried (about 4 versions; patience is my new redeeming virtue) except 1.13 which succeeds to compile find3-client-scanner on a Raspberry Pi W running Raspbian Jessie. The command used to successfully compile was:

GO111MODULE=on go get -v github.com/schollz/find3-cli-scanner

Note that this command seems to change a lot throughout the documentation, sometimes it is: go get -v github.com/schollz/find3-cli-scanner, other times it is GO111MODULE=on go get -v github.com/schollz/find3-cli-scanner/v3 (which does not exist?) and the above command is what did it but only with golang version 1.13 and on Raspbian jessie.

Running the Docker image seems to be the way to go and tends to work properly out of the box.

And some remarks:

dashboard_toggle_learning

Clicking "Stop" does not remove the entries and I have tried to dig into the sqlite3 database and locate these entries manually to delete them to no avail. Perhaps the form is not performing sufficient sanity checks on what can be entered on the "Toggle learning" form?

Overall, the project is great and I am having a lot of fun with it. It is very useful and seems like the best option for my usage case out there. The only major major issue is just getting the tools to compile properly. Otherwise, once compiled, everything works a treat. Thanks!

nash-stokes commented 4 years ago

I agree the documentation could use some cleaning up. I reached out to the creator about this. He was very open to the idea of open sourcing this. My biggest hurdle was overcoming the initial installation steps, like you mentioned. Creating clear, consistent instructions between the github page and the project website would be helpful. I've gotten the project to work with passive and active scanning, but it was a painful process. Let me know if you would like to work together on this.

cxtal commented 4 years ago

I am very happy to contribute. My biggest gripe is that I am impartial to Go and have never programmed anything in Go (some long-standing alternatives there from Perl, Ruby through Python and up to Node.js and not sure where Go fits in). I can do others and with some help of the fellow contributors that I work with we have managed to fix the ESP8266 / ESP32 component since the API is very clear on the payloads sent back and forth between the client and the server.

The major issue that I see is that the project is alright even with the mentioned issues but also quite old in terms of requirements. I had to install Debian Jessie (2 stable releases back, at the time of writing) just to get proper compatibility with all the libraries that Go needs. I am not sure whether "just updating" is an easy fix or whether a hefty re-write is necessary.