DaSpood
Show HN: Enioka Scan 2.4, Zebra DataWedge support and camera improvements
https://github.com/enioka-Haute-Couture/enioka_scan/releases
Enioka Scan is an open source Android library that makes the integration of barcode scanners in your Android applications easy while avoiding vendor lock-in.It provides a common layer of abstraction on top of a scanner's SDK, which is often specific to its vendor and sometimes proprietary, allowing the use of a single application and API to communicate with any compatible scanner.The library...
For a python project for example, you could set pre-commit to check formatting, linting and typing, which means that when your code reaches the remote repository, before any CI is even started or any PR is openned (before you even push really), you know your code follows the rules that have been set for the project. Thus everyone knows you don't need to spend time in the code review looking for these mistakes and instead focus on the actual features.
pre-commit does not even need to be pushed to remote to work, so if your company has no plan to enforce it but it still helps you, you can still use it, unlike a CI.
As for this: > And if, god forbid, I miss one, just get over it. It can be fixed later. It's not nearly as important as having correct functionality in our app, and I'm pretty busy!
It's true that one mistake is easy to fix later, but it's just as easy to fix now. If you postpone it once you will postpone it again when it's not highlighted in a PR diff, it's just a recipe for never fixing it. Every language has automatic linters/formaters that check (and even fix) your code according to rules you define, turning the work of finding these mistakes into a simple `lint ./src/` command. It's takes a small amount of time to setup but saves you a lot of time down the line.
The library provides a common layer of abstraction on top of a scanner's SDK, which is often specific to its vendor and sometimes proprietary, allowing the use of a single application and API to communicate with any compatible scanner. Some of the supported scanners still require proprietary SDKs that cannot be bundled with the library for licensing reasons, but most scanners are compatible as-is with provided open-source SDKs part of the library.
The library is currently compatible with a wide range of scanners from major vendors like Athesi, Honeywell, Zebra and more. It is designed in a way that makes plugging in your own driver SDK easy, allowing you to add compatibility with other vendors.
The library just released in its 2.0.0 version, bringing significant improvements to the exposed APIs, and support for a bunch of new scanners. Any feedback, bug report or suggestion is welcome!
Show HN: Enioka Scan, an open-source Android library for barcode scanners
Even if you wanted to keep a library of all watched movies or series from the past year you'd sit at much lower than 30TB. Do you really need to keep all this data ? How many times in your life will you rewatch all those movies and would it not be faster to find a new download then with the slight risk that it won't be available anymore ? You can probably safely remove/redownload the most popular shows and only keep the more niche ones that may become hard to find, or purge your movie library every few months for stuff that you never rewatch (you can probably even automate that). With decent internet and preferences for popular movies you could even argue that you'd just have to keep around the torrents and re-download your movies on the fly, trading a few minutes of waiting for a much cheaper setup.
There's also ways to optimize the uptime of your server which is essentially a NAS for movies. You could have the big machine off most of the time and use a Raspberry Pi to send Wake On Lan packets when you need it. It's may take an extra minute before it's usable but you would lower your bills significantly.
That $1200 upfront and $55/month sound like at least double what it should be. For a server that may double as a backup for your own files the upfront investment can be seen as worth it. And with the many streaming platforms relying more and more on exclusives, region-locked content that require VPNs that may not even work, time-limited content and increasing pricings your reduced electricity bill may not be far off from what legally viewing the content might cost you.
- Because it's good for their personal culture to know that this field exists and have a rough idea of how it works, and programming is the type of job that everyone knows it exists but not many people really know what it really is.
- Because it's the type of knowledge you don't get to build on your own unless your parents work in that field so many kids might actually enjoy it but would never know it until they try it. I see many comments saying "if they're not interested then they shouldn't do it", but how can they know they're not interested if they've never tried it ? They can't, they'd base their assumptions on stereotypes, which learning programming would help breaking and maybe encourage more people, especially girls, to give it a go if they like it instead of thinking it's just dark magic for nerds.
- Because in the age of everything-computers and everywhere-internet, understanding basic code and basic algorithms helps demystify the myth of "it's all the Algorithm, that magic black box that nobody can control" that companies love to use to not have to explain to their customers what they do with their data. I'd argue knowing the basics of how a computer works in 2022 is as important as learning how to pay taxes or how to cook (which we also do not learn in school), because it's everywhere in your life and you WILL interact with it no matter what.
The result of that is looking down on poor people as "they just aren't good at the game" except it's their life at play, not a high score or virtual currency. People who enjoy "janitor simulators" would very likely not enjoy having to scrub toilets all day long for minimum wage, people who enjoy bus driving simulators would very likely not enjoy having to deal with grumpy and sometimes violent passengers in real life, but they don't realize that, they look at the game and think "it's not so bad it's even fun I could totally do that for real". I don't think we need people to start thinking "being poor is kinda fun lol it's just about management".
A game that accurately portrays poverty would not be fun to play, and nobody would be playing it, because there's no end game and no win for a lot of people in poverty and many simply stay in that situation their whole life. Otherwise, just play GTA, that's as fun as it gets for a "start poor become billionaire" game.
I ended up selling it. I'll probably get a standalone headset like the Quest 2 at some point because "pick up and use with no setup" sounds convenient enough to be bale to use it anytime, but I'm eager to wait for better tech especially in screen resolutions and controller-less tracking.
Personally I look at websites this way, if it's ".com", ".org", or ".<country>" it's probably a business or organization, if it's ".io" it's probably a young startup, if it's ".net" it's probably old and not up to date/relevant, and if it's anything else it's either a blog or a scam.
As for your question, if the entire source code of your application, including the CI, is open-source and anyone can read it, anyone can see whether the system really is closed with no option for backdoor or exploit, or if there's actually a way to corrupt it.
Remember 0-risk does not exist, therefore 100% reliability does not exist either and 100% trust should not exist. As soon as the program is even slightly complex all it takes is one tiny well-hidden unintentional bug to introduce a vulnerability that makes your service exploitable.