Saigonauticon

joined 1 year ago
[–] Saigonauticon@voltage.vn 3 points 8 months ago

Yeah, I hate that. Forcing me to input special characters makes my password slightly less secure. Of course I'll include them by default, but now an attacker can eliminate all passwords without special characters. Most people just put the number 1 or a period at the end of their existing, frequently re-used password anyway. Or capitalize the first or last letter. So it doesn't make it really harder to crack dumb passwords.

It's like we've optimized passwords to be hard for humans to remember, but easy for humans to guess!

[–] Saigonauticon@voltage.vn 1 points 8 months ago

Well, you can create your own job, if you like. It's not for everyone, but it is flexible -- there's no employer looking to squeeze every ounce of productivity out of your hours. I can describe a little bit what that would look like in case it's helpful.

I think most businesses at their core have one of a limited set of problems. For the people I encounter, it's either content, marketing, sales, or customer service. Even though I operate a tech company, the problem is almost never technology (probably there's a lesson somewhere in that). Sales and customer service often don't leave you much downtime if it's a busy company, so let's ignore them.

Marketing: A lot of businesses just need someone reliable to set up Google Adwords and stuff. You won't make a fortune, but it's easy to learn how to do, and once it's set up there is very little maintenance. We're not talking Coca Cola here -- small businesses that need some help getting local search traffic by paying for search ads. One of my clients just hired someone to do exactly that, who walked into their business and just outright suggested it -- although they've been pretty awful at it to be honest. Anyway, the bar is pretty low and Google wants you to do this so there's tons of learning material out there.

You can identify customers by walking down the street and searching for every small business, and seeing which ones are hard to find.

Content: Businesses that sell online often need a bunch of product photography and website updates that they don't have time to do. Often this is non-technical work -- there's a UI you add the photo and description to, then press 'update'. Often their business profile isn't set up right on google maps and stuff and they need help fixing it.

Content can also be copy writing, video reviews, social content... but honestly I find all of these harder sells than just "your website is out of date, want to pay me a small fee to fix it, then keep it current?".

Put together a list of services and print it out so you look organized. Don't worry about looking like a fool -- it's OK to look like a fool sometimes, as long as you also sometimes succeed.

Try to avoid charging minimum wage. Start with a more moderate cost and work downward if you need to. The customers that pay the least, typically demand the most. I'd structure it as a setup fee and then a fixed amount per month, paid quarterly in advance, for maintenance. Send them a report of what you did every month (google adwords makes this easy).

I've got a couple of people I do this for and I bill 250$ a month, paid quarterly in advance, for 10 hours a month. You might earn less than this at the start and that's OK -- I'm just volunteering a data point. It's not rocket surgery, it's boring stuff, but it keeps my bills paid while I harass bigger clients to pay theirs.

[–] Saigonauticon@voltage.vn 1 points 8 months ago* (last edited 8 months ago) (6 children)

Sure. You can either increase the dictionary of possible words, or increase the number of words or both. Eventually it will become unwieldy. I don't bother with passphrases though.

I generate passwords of sufficient entropy (random ASCII), store them securely (encrypted, key memorized, on dedicated hardware), and never re-use them. I don't trust password managers unless open-source. I don't need convenience -- to some extent, it's my job to manage other people's secrets. Since I'm being paid, no need for shortcuts.

[–] Saigonauticon@voltage.vn 4 points 8 months ago

Dear police officers: I'm sure you're excited to begin your journey learning all about electronic engineering and product design!

If you have any questions, drop by any time and I'll be happy to help. I hope you find these hobbies as rewarding as I do.

[–] Saigonauticon@voltage.vn 19 points 8 months ago

Being able to chalk off the often embarrassing or cruel lessons of childhood as something personal, rather than something someone saved in video, to hound you with for the rest of your life.

[–] Saigonauticon@voltage.vn 1 points 8 months ago

Neat! Despite immigrating here 12 years ago, I've only been to Ha Noi once! Everyone here in HCMC made a big fuss about warning me about scams, but everyone I met was fine, and no such thing occurred. Perhaps ironically, my inlaws hometown is near Ha Noi :P

That was also the first time I had egg coffee, which I really enjoy these days. Sword lake was pretty nice too. I'd go back one day for sure!

[–] Saigonauticon@voltage.vn 1 points 8 months ago

OK, fair enough! I did not know that the size varied so much. I'll probably still keep using it though -- the Python-esque syntax means I don't have to learn a bunch of stuff I don't have the time to right now, and I'm very bad at UI, so it's a good solution for me :)

Incidentally, a lot of my best apps are very small as well. Under 1k usually (AVR Assembly).

[–] Saigonauticon@voltage.vn 2 points 8 months ago (2 children)

I've only encountered one other! I might still be the only VN Lemmy instance, but probably not. I used to be.

[–] Saigonauticon@voltage.vn 5 points 8 months ago

Well, usually competition creates more efficient prices. So I guess somehow your telecoms companies are using strategies to avoid competing somehow.

On our end, we still have quite some parts of the economy that are planned. For example, I applied for my business license according to a particular 5-year plan, and there are only certain areas of the economy I'm allowed to participate in. I can't just one day pick up and decide that I'm going to start a butter factory or something.

The best Internet provider is literally the Army, but they weren't granted a monopoly. The post office and three or four other major providers exist in every city. So there's actually quite a healthy competition for customers, it seems this too was planned for. Things don't always work out this well, but at least for Internet it worked out pretty great.

As an aside, back when there wasn't enough money to fund State organs, they would sometimes be granted profitable businesses to stay afloat. Some bits of this are left -- you can stay at a beach hotel run by the police department in at least one city. It always seemed to me a smart way to get the country out of a bad situation. This is why the Army or the Post Office are licensed to to a bunch of profitable consumer services.

[–] Saigonauticon@voltage.vn 13 points 8 months ago

Ooh, study for 14 hours straight and forget to eat! That's usually what I do. Wild times.

[–] Saigonauticon@voltage.vn 15 points 8 months ago

Well, Tunak Tunak Tun of course.

[–] Saigonauticon@voltage.vn 6 points 8 months ago

North America is insane with their internet costs.

Here in VN, I can get unlimited 4G for 40$ a year, and 100mbps symmetrical fiber for about 50$ a year. The biggest provider is the Army. Their customer service is actually pretty fast and good too!

 

So, there are these great 32700 LiFePO4 batteries that showed up in my local industrial market. For like USD 2$!

However, there are no LiFePO4 chargers available. The vendors assure me I can "totally use" a 4.2V Li-ion charger, but I don't believe them (although the cells test as being in good shape).

I whipped up a 5V system with a buck converter managed by an MCU. It turns off the buck converter that charges the battery, measures the battery voltage, and if it's under 3.6V it enables the buck converter. Repeats every few 100s of milliseconds.

Did I overengineer this? Could I have just used a linear voltage regulator that outputs 3.6V (or a Zener), and a current-limited 5v power supply?

Charge speed is not really important in my application. Anything under 4 hours is great. Frankly, I'm just trying to phase out the less safe kinds of lithium cell in my lab.

 

I've always considered the nature of living to be to grow, to become more -- and the nature of dying to be reduced, to become less. Sort of like taking the derivative of what you are, the rate of change..

This has the unusual consequence that when people tell me to 'live a little' e.g. with idle pastimes, it feels to me like they are asking me to 'die a little'.

What do you consider the difference?

 

Disclaimer: this is not specifically for a commercial product, but various things I design sometimes get commercialized. I mention this so that you may decide whether you want to weigh in. If it's commercialized, I will probably make very little money but a bunch of university students may get a neat STEM program in the countryside :D

That out of the way, I've designed some boards for a Wi-Fi controlled robot with mechanum wheels. So 4 independent motor drivers, one for each wheel, allow omnidirectional motion. It's built around a Pi Pico W, 4 SOIC-8 9110S motor drivers, and some buck/boost converters to give the system a 5V and 12V line. It's very basic, mostly made to be cheap. Here's a photo:

Right now it just receives UDP communications (a little app written in Godot) and activates the motors in different combinations -- very "hello world". I'm planning to add some autonomy to move around pre-generated maps, solve mazes, and so on.

I have foolishly used 2-pin JST connectors for the motors, so using motors with rotary encoders would be a pain without ordering new boards. I'll probably fix that in a later board revision or just hack it in. Also the routing is sloppy and there's no ground plane. It works well enough for development and testing though :D

What I'm thinking about right now, is how to let the robot position itself in a room effectively and cheaply. I was thinking of adding either a full LiDAR or building a limited LiDAR out of a servo motor and two cheap laser ToF sensors -- e.g. one pointed forward, the other back, and I can sweep it 90 degrees. Since the LiDAR does not need to be fast or continuously sweep, I am leaning toward the latter approach.

Then the processing is handled remotely -- a server requests that the robot do a LiDAR sweep, the robot sends a minimal point cloud back to the server, which estimates the robot's current location and sends back some instructions to move in a direction for some distance -- probably this is where the lack of rotary encoders is going to hurt, but for now I'm planning on just pointing the forward laser ToF sensor towards a target and give the instruction "turn or move forward at static speed X until the sensor reads Y", which should be pretty easy for the MCU To handle.

I'm planning to control multiple robots from the same server. The robots don't need to be super fast.

What I'm currently wondering is whether my approach really needs rotary encoders in practice -- I've heard that mechanum wheels have high enough mechanical slippage that they end up inaccurate, and designers often add another set of unpowered wheels for position tracking anyway. I don't want to add more wheels in this way though.

On the other hand, it would probably be easier to tell the MCU to "move forward X rotary encoder pulses at a velocity defined by Y pulses per second, and then check position and correct at a lower speed" than to use a pure LiDAR approach (e.g. even if rotary encoders don't give me accurate position, on small time scales, they give me good feedback to control speed). I could possibly even send a fairly complex series of instructions in one go, making the communications efficient enough to eliminate a local server and control a ton of robots from a cloud VPS or whatever.

Anyone have some experience with encoders + mechanum wheels that can offer a few tips my way? At this stage the project doesn't have clear engineering goals and this is mostly an academic exercise. I've read that using a rigid chassis and minimizing the need for lateral motion can reduce slippage, reading through a few papers didn't get me any numerical indication of what to expect.

 

You those software projects that have no defined scope, budget, or timeline? Yet somehow land on your desk?

For those times, I built a Lemmy bot that does an I Ching divination (https://en.wikibooks.org/wiki/I_Ching) using a hardware random number generator.

It doesn't help, but it makes me feel better.

If it would make you feel better too, you can use it too by sending a DM to @kong_ming@voltage.vn.

The message can't be length zero. You should not consider the messaging secure :D

It also may break, bug out, catch on fire, get unplugged, or get overloaded with requests. If none of those things happen, you'll get a response in a couple of minutes.

It's also literally build from scrap, and is sitting precariously on the edge of my desk in Vietnam. Still, it's the state-of-the-art in software consulting!

 

So I wanted to design a children's toy, where the electronics could last 100 years (ignoring mechanical abuse). I figured some people here might be interested.

I settled on a CR2032-powered night light, using an attiny10 microcontroller, where the flash is rated for 100 years unless you're writing to it (which I am not). I did some pretty heavy power optimization. The firmware is hand-optimized assembly.

When you turn it upside-down, a tilt switch toggles an LED @ 3mA via a pretty intense debouncing routine.

A watchdog timer has it auto power off in 30 minutes.

When off, it consumes less than 1 uA. So it has about 25 years of standby time, although the battery is only rated for 10 years (it is replaceable though).

If a child uses it every day, then the battery should last about 4.5 months.

I made custom boards for it -- I kept is simple with few components as possible (resistor is for scale):

I kept assembly simple. A better design would snap right in to the pins of the CR2032 holder, but that's an addition I'll make another day. I also should have added one more ground pad to solder to, but forgot. Still, an OK result I think.

I used some spay-on lacquer to protect the traces a bit after assembly.

 

What I've done is take a large 2n3055 BJT NPN power transistor, and decap it (it is a large metal-can type). Then I carefully removed any coating from the exposed silicon (it typically has a dab of silicone potting compound on it).

Then, I had a weak alpha source at ~5MeV lying around the lab from previous work. This was inserted into the can with the beam facing downward towards the exposed silicon, and the can reattached and made lightproof.

Then I threw together the circuit shown here using the modified transistor (the base is left floating). What I expected to happen was that at TP1 (relative to GND), with my scope AC-coupled, I should see small voltage spikes followed by a decay. This is caused by alpha particles impacting the silicon and knocking loose enough electrons to permit some current flow.

However, I just see... more or less nothing, maybe some electrical noise from fluorescent lamps in the room next door. Certainly not the spike+decay curve I've seen with other detectors.

Did I make a wrong assumption somewhere? It's been a while since I worked with discrete transistors much, and I feel like I am missing something silly.

Or is this more or less right, and I should maybe question whether my alpha source is still good? Or whether the signal strength is in a voltage domain I can even clearly see without amplification? Or maybe I should suspect that a thin passivating glass layer is added to big BJTs these days, enough to block the alpha?

The source is past expiry, but not by that much. I'm mostly interested in characterizing and documenting the detector as an academic exercise.

 

I've wondered this occasionally over the years, but never got it working.

I tried just putting a dried piece of chicken bone pressed between two plates (mild compressive stress perpendicular to the bone), and using an inverter just like I would use a crystal. It did not work. Maybe I need a really thin segment?

I have no practical application in mind. I might make a CPU from it for Halloween I guess?

I'm not sure if I would classify it as electronics or necromancy, but I thought it was an interesting question to ask here :)

 

This is a story about something that was entirely unlikely to turn our wholesome, but somehow did.

I was digging around the yard a few years ago, when I found some old artillery shells (not usually the start of a good day). One interesting local term for this in Vietnam is 'fruits of democracy', like it's literally a tree that drops fruit! Although these are from WWII, not the American War -- so these were supplied by the US and date to the 1940s from the serial.

My concern about unexploded ordnance faded as I realized they had already been completely disarmed, hollowed out, and carefully hammered into flower vases. They were just the brass outside of the shell with nothing inside (the shell of the shell?).

Then they had been forgotten for decades and were completely corroded. So I did the only logical thing -- I bought a few liters of hydrochloric acid, donned some goggles and gloves, and cleaned them up!

So we have something designed to kill people, being instead transformed into something to hold flowers, and then being forgotten and buried during more conflict. Decades later, it is found, restored, and again holds flowers -- an artillery shell became an unlikely allegory for the enduring idea of peace.

 

I'm sure someone was complying maliciously here, but I'm not sure who.

Everything in the store was on 'sale'. What they do is mark up the price, then discount it back to the normal price. For every single item in the store. So there are hundreds of these little printed standee signs everywhere next to each little thing.

Looks like management forgot to define a markup+discount to an item, and a programmer and/or sales staff just abided by the ridiculous 'everything must be on (fake) sale' directive.

 

This is sometimes my example for 'why paying attention to documentation is important'. I didn't take the photo myself, a colleague sent it to me years back.

 

So I once made the mistake permitting a client to store some (say a dozen) boxes of financial records in my home for a couple of weeks. By 'permit', I mean they just dumped them there, and I didn't physically restrain them from leaving. This is in Vietnam, where you are required by law to keep your corporate records for 35 years. The government already had a copy of these records, this was the company's copy. It's things like tax invoices, contracts, audits, expenses, and so on -- you hold on to them to protect yourself from incorrect claims.

Two weeks turned into over a year, they had accumulated quite a collection of unpaid invoices, and I had halted all work for them long ago. Needless to say, I was not pleased with the boxes all over my house and the lack of responses about it. As you may know, in Vietnam our houses are not so big -- I think mine is under 25 square meters. So this was beyond absurd.

Eventually, I was gloriously told "to just do whatever", in writing. So rather than go to the dumpster, I sold the boxes of paper to a scrap dealer for VND 10,000 (about USD 0.50 at the time). Not because I'm petty or anything -- it's important to recycle and save the planet, right?

Fast forward a couple of years, I see their company license has been revoked -- they failed to pay some tax or other. Probably because they didn't keep any records to work out what taxes to pay...

If the director ever steps foot in the country again, newer laws permit the authorities to withhold their passport until taxes are paid -- and the authorities can quote any amount they want, since they have the only copy of the financials :)

I see no need to volunteer that particular piece of information. Time makes fools of us all, but some people faster than others.

 
view more: next ›