1. 3

    Unlike with a lot of linux distributions, the OpenBSD manpages are well written, and always link to a few similar manpages (for example, when you are looking at the documentation for a program, but you need to know the config file syntax, there will be a reminder at the bottom of the page that there is a manpage just for the configuration file). About a year ago I used mainly the manpages and the IRC channel to get myself situated after reading the FAQ a few times. Back then, there weren’t really tutorials for doing things on OpenBSD on the internet.

    1. 8

      The proposed solutions provided in the article all swarm around the idea of finding a third-party source randomness that everyone can agree on. Almost all the proposed solutions on the reddit thread do the same. (Props to this person for walking to the beat of a different drummer.)

      I think they (or we) can do better! But, I don’t know how, yet.

      I think the solution should be cryptographic in nature… So, I’ll try to get close to the answer by clicking anything in Wikipedia’s Cryptography Portal and connected nodes and sharing anything that looks remotely related.

      These look really promising:

      These look … interesting? Hopefully unnecessary.

      1. 5

        What about this?

        1. Each party generates a secret string
        2. Each party publishes the hash of their string to the entire group
        3. Once all hashes have been published, each party publishes their original string to the entire group
        4. The random number is the hash of the concatenated strings

        There’s nothing in this protocol enforcing that the secret strings be random, but I believe that it’s game-theoretically in each party’s interest to do so, so as to avoid e.g. dictionary attacks. I can’t see how any party gains anything by generating a string that is anything except truly random, ensuring a random hash of the concatenated strings.

        Am I thinking about this correctly?

        EDIT: Ah, I see, this is basically the “commitment scheme” idea mentioned in the Wikipedia article you posted. Cool!

        1. 1

          I came up with a variant of this, but instead of strings, each person picks a number, which is then hashed, then the resulting number is the sum of the chosen numbers, mod 20, plus 1.

          Another thing you could do is send a message, and the millisecond it was received at, mod 20, plus 1, is your number. You would have to trust that the internet makes the timing random enough, and that you can trust your chat system, but usually you can.

        2. 4

          They don’t need to agree on the source of randomness, it just needs to be reasonably beyond manipulation by dev1. Like @asrp says, stuff like Bitcoin IDs will work. You could also hash the fifty first characters of the first article of a newspaper published the day of. Just as long as you announce the method before the event happens, and that the data source is sufficiently out of your control, you’re good.

          1. 2

            It depends on what they mean by their constraint 2. If there’s no input from the other devs or any third party then the only remaining source of information is the first developer and so I think it cannot be done.

          1. 2

            I remember that I absolutely loved games, the internet, and physical toys when I was younger. My friends all felt the same way. Video games were all we talked about at lunch because the only other thing in our lives were school or (for some people) sports. Recess was fifteen minutes at the most, sometimes being an optional part of a half hour lunch period. It was never convenient to invite friends over to play. Video games were really the only thing kids were allowed to do on their own besides drawing or legos.

            I remember that I was always made to do my homework before being allowed to play, even if that meant doing homework until after bedtime, and being forced to bed straight after. When I got older, around early middle school, I was allowed to make my own schedule, which was much better, but I always did my homework. If getting homework done is an issue, it’s not addiction. It’s poor time management.

            There were out-of-control children back when I was younger, but there weren’t smartphones back then.

            There was one time when my mom took away screen time privileges. I was sad about it. I mostly just played legos. I still ignored my mother for the most part, but I sometimes offered to play a board game with her. About nine out of ten times, she said she was too busy, so I suppose she didn’t care about family time either.

            I should stop rambling about my past. Anyway, my opinion is that people are better off with smartphones. Some idiots will manage to misuse them, but those idiots will misuse everything when they have the chance. Fortunately, Being an adult gives me enough freedom and spending money so that I don’t need to distract myself with my phone if I don’t want to.

            1. 5

              Your story about screen time reminds me of when my parents stopped me from using a computer until I did all my homework. 200+ books later and a solid F- in all my classes, my parents gave up.

              1. 4

                I should strive to be as stubborn as you.

                1. 1

                  My parents encouraged me to play more outdoors once by disabling the PSU on the 286 I had in my room and having tight control over the family 386.

                  I was recentful as fuck while reading books and drawing game designs in a notebook under a tree, waking up early to sneak some gaming on the 386 and doing my best to watch as much TV as possible.

                  Say what you want about TV, it wasn’t The Real Housewives of New Jersey we had back then. Anyway, affecting a child’s fundamental personality is hard and the only thing to hope and strive for is that the nerdy traits don’t get mis-channeled to Farmville.

                  Edit: at least they did it out of love and saw it failed.

              1. 6

                The Gopher proxy is neat! Would be good to see a picture, though.

                As someone who has designed hardware I was a little disappointed that “from scratch” means “from an SBC and some off the shelf modules”. I was hoping for another Novena-like project. This is very accessible, though, which is awesome.

                preferably not from China. China < Taiwan < Korea < Japan < USA in terms of reliability

                This seems like an unnecessary generalisation. Yes, you can buy dirt cheap stuff from China and often that stuff is rubbish quality. You can also buy good quality stuff from China (just maybe not on Aliexpress for $0.50 with Free Shipping). You’ll also probably find a lot of the things you order from a “USA” vendor is made in China, or assembled from parts made in China.

                Wire all those batteries in parallel. Soldering them will take some work, but don’t give up. You might break some batteries. Don’t charge or discharge the batteries too much when soldering, or you will reduce the battery life. Watch out for electric shocks, especially considering that soldering irons are conductive. Some people have had better luck with welding the batteries than soldering them.

                I’m glad this worked for you, but telling people to solder Lithium cells (especially in an environment where they may short them) is very dangerous advice. You’re not supposed to ever solder these. At best you may damage the cell, at worst you may damage the cell in a way which leads to a fire.

                Connecting random Li-Ion cells in parallel is also potentially risky. Battery pack manufacturers match the cells closely to avoid mismatch problems. If someone following your instructions hasn’t correctly equalised the cell voltages ahead of time then the connection may lead to dangerously high inrush currents (basically a short) as the cells try to equalise voltage. Differences in internal resistance can lead to uneven charging. Again, I’m glad it worked for you but it’s not safe advice to be handing out. More information can be found here.

                1. 3

                  You’ve got excellent points. You’re right about “China < Taiwan < Korea < Japan < USA in terms of reliability” being a generalization. I’m typing this on a ThinkPad X60T (a Chinese product), which is one of the best laptops I’ve ever had, but that is the exception and not the rule. I included the advice because I would have liked to hear it repeatedly before multiple electronics projects. I would have saved money by getting stuff that worked from the get-go.

                  I used batteries from another battery pack, which was still functioning, but didn’t have the thing it powered anymore. The battery cells still had the nickel strips on them, but they were not in the arrangement I needed. Your advice is correct, and I shouldn’t assume that people have that optimal setup. Maybe I should just tell people to cut away what they need from an ebike battery or something. I will definitely add that the cells should be from the same batch, as that is something I forgot to mention.

                  I would love to make a laptop that is really “from scratch” one day. I’m thinking of making something like an e-ink display, but instead of being eletrostatic, it would be magnetic (I don’t know if it would even work). Send me an email if you want details (dabmancer@dread.life). Since keyboards are pretty simple; I would probably get away with a good pcb without spending too much money. A motherboard, on the other hand, is something I don’t know how to cheaply get just one of. If you know some place that could do it, please email me (dabmancer@dread.life). I don’t suspect to get this done within the next few years.

                  Edit: It is much more important that the batteries are the same type when putting them in series than in parallel, though you still have a point.

                1. 5

                  I really liked this laptop someone made for commuting, also Raspberry Pi based but with a unique form factor making it easier to use in tight spots.

                  1. 3

                    I like the design and the fact they use an LVDS screen (which opens up the possibility of using a decent driver board. The plywood chassics looks like it would be flimsy, and the boder around the keys doesn’t go all the way up, which means that if you drop the keyboard, you scuff the keys, and maybe pop off some plywood.

                    There is an easier solution to the bus ergonomics issue than making a computer. You just put a keyboard behind a regular tablet on your lap. It’s ergonomically very good. I drew a picture (pardon my artistic ability). http://dread.life/pics/arrangement.png

                    1. 1

                      I did this quite some time with an iPad mini and a Bluetooth keyboard but the neck position was really aweful… Maybe having something to fix the tablet on top of the keyboard would help.

                    2. 1

                      It’s a cool build, but I can’t see how you would use that for more than a few minutes without being painfully contorted.

                      1. 1

                        Yeah, it looks a little lacking on the ergonomic side of things. I’d wonder if a flip up or maybe goose neck attached screen would make it more comfortable.

                    1. 3

                      Is there a good reason you added additional batteries to the USB charger circuitry? I have several of these that will run a Pi for 8 hours, & if you stick them in series you can get them to run for at least 12 on a full charge. (This is what I did for my wearable computer project, which had a smaller display and therefore probably drew much less power, but I’ve never had a professionally-manufactured laptop whose battery life was much more than 2 hours at best.)

                      1. 2

                        I originally decided to use an allwinner A80-powered banana pi M3, which is known for regularly consuming more than 2 AMPS. Also, a 13.3” panel consumes quite a bit of power (Usually, the backlight consumes a similar amount of power as the CPU). If I wanted to get a decent battery life, I needed to get a lot of batteries. Also, I like a lot of battery life. I did not actually use the multiple 18650s in a single battery charger in a practical application yet. I’m getting another lobste.rs user to try that out soon (so I don’t have to spend more money). If by sticking the battery chargers “in series,” you mean having one charge the other, which charges the other, and so on, then that would be “in parallel,” electrically speaking. It would also waste a small amount of power, since lithium-ion batteries will only give out about 3/4 the power put in.

                        Your project looks cool. What display did you use for it? What display would you use if you were going to do it again today?

                        1. 2

                          It would also waste a small amount of power, since lithium-ion batteries will only give out about 3/4 the power put in.

                          Yup. But, since I was mostly concerned with battery life & avoiding soldering, this made sense to me. I do the same with UPSes.

                          What display did you use for it? What display would you use if you were going to do it again today?

                          Adafruit used to sell low-end video glasses for about a hundred bucks. I modded them – basically, removed one of the two displays and re-mounted it in a pair of welding goggles. This changed the distance between my eye and the display, but I found that if I mounted the lens inside the googles and the display outside and then mounted the lens backward I got approximately the same visual clarity as I had with the original mount. It took about an hour to perform the mod, and I managed to do it on my first try, so it’s an easy one.

                          Unfortunately, I discovered that maintaining a different focus with one eye than with another is difficult – in other words, if I was walking around and looking at the world in front of me, I couldn’t at the same time see the display. I also found that the display was hard to read if I was in a bright environment without the other eye occluded.

                          The version I have now uses a Glyph as a display (which is a lot more expensive, but is at least rain resistant and has its own battery power) and the newer smaller Raspberry Pi. The Glyph occludes both eyes, but I found that was basically necessary to use the thing anyway. It’s more comfortable (marginally), has approximately the same visual clarity (although it actually has optical adjustments), and doesn’t have the same problem with fogging in high-humidity situations as the goggle-mount display did because the area between the head and the display isn’t enclosed.

                      1. 14

                        Hi, dabmancer.

                        I want to tell you a story… I skimmed your laptop.txt and found no pictures. I went to back to the parent… menu, still didn’t find any pictures.

                        So I decided to contact you and ask for pics! I was just about to ssh into a tilde and weechat into the local ircd to ask who knows much about gopher when I realized that whoever responded would just browse your whole hole to find contact information–and I can do that, the floodgap proxy works fine from work.

                        AND, your guestbook works. :) My message was delivered already, well before I tapped out this rambling, pointless message. Cheers! p.s. send laptop pics

                        1. 6

                          I didn’t realize I was reading this through a Gopher proxy until I read this comment. I just though I was on a mailing list reader.

                          I really should setup a gopher server to serve up all the content on my website, in a Docker container, just because I can.

                          1. 6

                            I wrote my own gopher server mainly to mirror my blog to gopherspace. It wasn’t that hard.

                            1. 4

                              Oh shit, it was a Gopher! Given a prior thread, I guess this one should be on list for coolest, modern Gophersites. The FloodGap homepage is itself really neat, too.

                              1. 3

                                Running a gopher hole is pretty easy. I run mine off pygopherd, which is nice in that it will turn directories into gophermaps with type hinting, but if you plan to write your own maps a gopher server is only a handful of lines of code.

                                1. 2

                                  Making your own gopher server is an afternoon of work or so. That’s what I did for the server.

                              2. 6

                                Now that you mention it, I do need to take pictures. My email is dabmancer@dread.life, for anyone interested (I did not get your email if you sent one already). I’ll try to respond to every email that I get (and also be helpful). I’m glad the stuff works. The whole point of gopher is that it’s too simple to go wrong.

                                1. 3

                                  I don’t really understand but I still suspect this is the most awesome thing I’ll read all week.