235 karma · joined July 18, 2008
On the slightly more useful side...
gotermimg to play gifs in the terminal: https://github.com/moshen/gotermimg
I'll certainly tuck it into my toolbox. Thanks :)
As far as AI goes, not sure.
One to learn golang that plays gifs - https://github.com/moshen/gotermimg
And one in perl - https://github.com/moshen/Image-Term256Color
https://cosmo.zip/ Also contains a python build https://cosmo.zip/pub/cosmos/bin/python , though I'm not sure if the problems mentioned in the article are solved.
make
sqlite3 < analyze.sql
file_avg python_avg python_x_times_slower_single_cli
-------------------- ----------------- --------------------------------
0.000874874856301821 0.179884610224334 205.611818568799
file_avg python_avg python_x_times_slower_bulk_cli
------------------ ------------- ------------------------------
0.0231715865881818 0.69613745142 30.0427184289163Maybe it's my general malaise, or disillusionment with the software industry, but when I wrote that I was really just expecting more.
I also appreciate the use of ONNX here, as I'm already thinking about using another version of the runtime.
Do you think you'll open source your F1 benchmark?
Though, I absolutely agree with you. I think realistically it's better to do this kind of thing in a library rather than shell out to it at all. I was just trying to get an idea on how it generally compares.
Another note, I was trying to be generous to `magicka` here because when it's single file identification, it's about 160-180ms on my machine vs <1ms for `file`. I realize that's going to be quite a bit of python startup in that number, which is why I didn't go with it when pushing that benchmark up earlier. I'll probably push an update to that gist to include the single file benchmark as well.
I did try the python cli, but it seems to be about 30x slower than `file` for the random bag of files I checked.
I'll probably take some time this weekend to make a couple of issues around misidentified files.
I'll definitely be adding this to my toolset!
To make matters worse, there is some business software out there that will actually bastardize the PDF format and put garbage before the PDF file header. So for some things you end up writing custom validation and cleanup logic anyway.
FILE_45:
./src/file -m magic/magic.mgc ../../OpenCalc.v2.3.1.apk
../../OpenCalc.v2.3.1.apk: Android package (APK), with zipflinger virtual entry, with APK Signing Block By open-sourcing Magika, we aim to help other software improve their file identification accuracy and offer researchers a reliable method for identifying file types at scale.
Which implies a production-ready release for general usage, as well as usage by security researchers. hyperfine ./magika.bash ./file.bash
Benchmark 1: ./magika.bash
Time (mean ± σ): 706.2 ms ± 21.1 ms [User: 10520.3 ms, System: 1604.6 ms]
Range (min … max): 684.0 ms … 738.9 ms 10 runs
Benchmark 2: ./file.bash
Time (mean ± σ): 23.6 ms ± 1.1 ms [User: 15.7 ms, System: 7.9 ms]
Range (min … max): 22.4 ms … 29.0 ms 111 runs
Summary
'./file.bash' ran
29.88 ± 1.65 times faster than './magika.bash'Though I have to say when looking at the Node module, I don't understand why they released it.
Their docs say it's slow:
https://github.com/google/magika/blob/120205323e260dad4e5877...
It loads the model an runtime:
https://github.com/google/magika/blob/120205323e260dad4e5877...
They mark it as Experimental in the documentation, but it seems like it was just made for the web demo.
Also as others have mentioned. The model appears to only detect 116 file types:
https://github.com/google/magika/blob/120205323e260dad4e5877...
Where libmagic detects... a lot. Over 1600 last time I checked:
https://github.com/file/file/tree/4cbd5c8f0851201d203755b76c...
I guess I'm confused by this release. Sure it detected most of my list of sample files, but in a sample set of 4 zip files, it misidentified one.
[1]: https://www.networkworld.com/article/3688288/amd-gains-share...
[2]: https://www.statista.com/statistics/263444/sales-of-apple-ma...
Xero is one of the fastest growing software-as a-service companies globally. We lead the New Zealand, Australian, and United Kingdom cloud accounting markets, employing a world-class team of 4,000+ people. The future of our growth is in the Americas and as the Product Development Hub for Xero North America we're continuing to rapidly grow and expand and have roles available, in both a hybrid and fully remote capacity, across almost every department. In terms of tech, we build in .NET and Node on the backend, React on the front-end and run everything in AWS. We're looking for engineers and engineering leads who are enthusiastic about solving problems at scale to come build the future of Xero in North America.
Selected open Remote roles:
- Software Engineer
- Machine Learning Engineer
- Senior Android Engineer
- Senior iOS Engineer
More information here:Remote Roles: https://jobs.lever.co/xero?lever-via=XwiHpkoGYx&location=Rem...
Hybrid, Ontario Roles: https://jobs.lever.co/xero?lever-via=XwiHpkoGYx&location=Tor...
Please apply directly through Lever above or feel free to reach out directly at colin [dot] kennedy [at] xero [dot] com