litchralee

joined 2 years ago
[–] litchralee@sh.itjust.works 28 points 3 days ago (1 children)

I've even seen people vibe code ethernet drivers for freeBSD.

Please make sure to read what considerations that developer had before undertaking that effort using an LLM: https://github.com/Aquantia/aqtion-freebsd/issues/32#issuecomment-3997341698

Specifically, they (the human) were kept in the loop for the entire process, which included referencing the working Linux driver to do a clean-room reimplementation. This already means they have some experience with software engineering to spot any issues in the specifications that the LLM might generate.

Also, Aquantia (before the merger) already had a published FreeBSD driver but it hasn't been updated. So this port wouldn't have to start from zero, but would be a matter of addition support for new NICs that have been released since, but Aquatia hadn't updated the driver.

This is very much not an example of an Ethernet NIC driver being "vibe coded" from scratch, but a seasoned engineer porting Linux support over to FreeBSD, a kernel that already has a lot of support for easily adding new drivers in a fairly safe manner, and then undertaking a test plan to make sure the changes wouldn't be abject slop. That's someone using their tools with reasonable care. In the industry, this is called engineering.

Admiration for what people can do with the right tools must always be put into the right context. Even with the finest tools, it's likely that neither you nor I could build a cathedral.

[–] litchralee@sh.itjust.works 12 points 3 days ago

I don't think they can be force applied to everyone who contributes

This is certainly an opinion, but here is a list of major projects that have a code of conduct: https://opensourceconduct.com/projects . How well those projects enforce their CoCs, idk. But they are applied, otherwise they wouldn't bother writing out a CoC.

it's not fair to hold people to standards they didn't personally agree to

Software development is not the only place which holds people to standards. The realm of criminal and civil law, education, and business all hold people to standards, whether those people like it or not. In fact, it's hard to think of any realm that allows opt-out for standards, barring the incel-ridden corners of the web.

this guy might have just decided to make a project

Starting any project -- as in, inviting other people to join in -- is distinct from just publishing a public Git repo. I too can just post my random pet projects to Codeberg, but that does not mean I will necessarily accept PRs or bug reports, let alone even responding to those. But to actually announce something, that where the project begins. And to do so recklessly does reflect poorly upon the maintainer.

[–] litchralee@sh.itjust.works 19 points 3 days ago (3 children)

I've not heard of Booklore or the critiques against it until seeing this post, but I don't think this take is correct, in parts. And I think much of the confusion has to do with what "open source" means to you, versus that term as a formal definition (ie FOSS), versus the culture that surrounds it. In so many ways, it mirrors the term "free speech" and Popehat (Ken White) has written about how to faithfully separate the different meanings of that term.

Mirroring the same terms from that post, and in the identical spirit of pedantry in the pursuit of tractable discussion, I posit that there are 1) open source rights, 2) open source values, and 3) community decency. The first concerns those legal rights conferred from an open-source (eg ACSL) or Free And Open Source (FOSS, eg MIT or GPL) license. The details of the license and the conferred rights are the proper domain of lawyers, but the choice of which license to release with is the province of contributing developers.

The second concerns "norms" that projects adhere to, such as not contributing non-owned code (eg written on employer time and without authorization to release) or when projects self-organize a process for making community-driven changes but with a supervising BDFL (eg Python and its PEPs). These are not easy or practical to enforce, but represent a good-faith action that keeps the community or project together. These are almost always a balancing-act of competing interests, but in practice work -- until they don't.

Finally, the third is about how the user-base and contributor-base respect (or not) the project and its contributors. Should contributors be considered the end-all-be-all arbiters for the direction of the project? How much weight should a developer code-of-conduct carry? Can one developer be jettisoned to keep nine other developers onboard? This is more about social interactions than about software (ie "political") but it cannot be fully divorced from any software made by humans. So long as humans are writing software, there will always be questions about how it is done.

So laying that foundation, I address your points.

Open source should mean that anyone can write anything for fun or seriously, and we all have the choice to use it or not. It doesn’t matter if it’s silly or useful or nonsense or horrible, open source means open. Instead we shut down/closed out someone who was contributing.

This definition of open-source is mixing up open-source rights ("we al have the choice to use it or not" and "anyone can write anything") with open-source values ("for fun or seriously" and "doesn't matter if it's silly or useful"). The statement of "open source means open" does not actually convey anything. The final sentence is an argument in the name of community decency.

To be abundantly clear, I agree that harassing someone to the point that they get up and quit, that's a bad thing. People should not do that. But a candid discussion recognizes that there has been zero impact to open source rights, since the very possibility that "Some contributors are working together on an unnamed replacement project" means that the project can be restarted. More clearly, open-source rights confer an irrevocable license. Even if the original author exits via stage-left, any one of us can pick up the mic and carry on. That is an open-source right, and also an open-source value: people can fork whenever they want.

How they were contributing is irrelevant

This is in the realm of community decency because other people would disagree. Plagiarism would be something that violates both the values/norms of open-source and also community decency. AI/LLMs can and do plagiarize. LLMs also produce slop (ie nonfunctioning code), and that's also verbotten in most projects by norm (PRs would be rejected) or by community decency (PRs would be laughed out).

We should all feel ashamed that an open source project was shuttered because of how our community acted.

I would draw the focus much more narrowly: "We should all feel ashamed ~~that an open source project was shuttered~~ because of how our community acted". Open-source rights and open-source values will persevere beyond us all, but how a community in the here-and-now governs itself is of immediate concern. There are hard questions, just like all community decency questions, but apart from Booklore happening to be open-source, this is not specific at all to FOSS projects.

To that end, I close with the following: build the communities you want to see. No amount of people-pleasing will unify all, so do what you can to bring together a coalition of like-minded people. Find allies that will bat for you, and that you would bat for. Reject those who will not extend to you the same courtesy. Software devs find for themselves new communities all the time through that wonderful Internet thing, but they are not without agency to change the course of history, simply by carefully choosing whom they will invest in a community with. Never apologize for having high standards. Go forth and find your place in this world.

[–] litchralee@sh.itjust.works 5 points 6 days ago* (last edited 6 days ago)

The USA system -- both federal and state-level -- is a bungled attempt at doing all of these things simultaneously: revenue collection, grant issuance, welfare, equity, economic incentives, and monetary penalties. And the results show: it's woefully unfit at any of these objectives, and the agencies responsible for administering this convoluted mess are left to divine the intended objective from the law and hopefully reach some sort of sane conclusion.

As a reference for fellow Americans, the idea that child welfare is administered through the tax system is not common through the world. That is to say, a "child tax credit" would just be a issued directly from a government agency, with maybe one form to set up direct deposit. Same with economic incentives: rather than a "refundable heat pump tax credit", other countries just give out grants when you show that you've met the qualifications. Remarkably, the USA already have such a system, in the form of municipalities or local utilities that either issue these grants themselves, or work with local suppliers to implement point-of-sale discounts (eg LED light bulbs).

Separating such concerns from the taxation system means that people who don't file taxes -- usually because they're below the 0% tax rate, which would be the standard deduction at the USA federal level -- can still get the full benefit of welfare and grants. A negative example is when a tax credit is "non-refundable", meaning that if the taxpayer doesn't pay enough tax, they lose the benefit of the credit. Nobody is better off for this.

It also avoids the absurd result where the tax authorities have to figure out whether a particular piece of HVAC equipment meets the qualifications set out in the tax code. The IRS (federal) or equivalent state agency does not specialize in such determinations, so there will inevitably be mistakes if they have to do this. Instead, an agency like the USA Dept of Energy would be much more qualified to administer that task.

Finally, because of the litany of such "elective" tax credits or deductions -- meaning that whether they apply or not is highly dependent on preconditions -- it makes it functionally impossible for the tax agency to give taxpayers a prefilled tax return form. How can the IRS know if you bought a heat pump this year? Or had a child? Or paid points on a home mortgage loan?

Simplifying the tax code is a prerequisite for prefilled tax forms, but not by the typical neoliberal nonsense of flat-tax rates or whatever. Instead, it comes when the tax agency can focus on doing a single job -- revenue collection -- and work towards doing that task well.

[–] litchralee@sh.itjust.works 6 points 1 week ago

Just like fast fashion replaced tailors with factory workers

I'm not sure this is right. If I wanted cheap clothes in the 1980s, I would go to a thrift store, not a tailor. If I wanted to hem up some pants I bought, I go to a tailor. In the 2020s, the former might have changed to online fast fashion behemoths, but there's no replacement for a tailor to do up some pants.

If I generously assume "tailors" is shorthand for a fashion designer that can also sew their own designs from fabric, then it's still wrong because fast fashion has never been about enabling designers that have no hand-sewing skills. Instead, it's about churning out mind-boggling amounts of product, irrespective of demand. Post-scarcity capitalism theory says that any product will sell at the right price, and the price for fast fashion is rock bottom.

fast software will replace programmers with AI operators

If "fast software" is going to mean shoddy software that's churned out just for the sake of it, then this is the only apt comparison to fast fashion. Even without AI, I don't think most modern software engineering or programming is comparable to tailoring or even fashion design.

When the opening comparison is so deeply flawed, I'm not exactly keen on reading the rest of the article.

[–] litchralee@sh.itjust.works 3 points 1 week ago

I second the option of Git + SSH. That will scale to one hundred repos. And if you don't want the repos to be checked out, use "git clone -n" to not do that. It'll just be dozens of repos which only have the minimal .git/ directory. All other repos that specify this one as the upstream will have no issues pulling or pushing code.

You won't have PR features nor a web UI though.

[–] litchralee@sh.itjust.works 22 points 1 week ago

"Never talk to me or my son ever again"

[–] litchralee@sh.itjust.works 3 points 1 week ago

Castle builders

[–] litchralee@sh.itjust.works 2 points 1 week ago

This is indeed practical advice on how to do a transition, but my answer was primarily in response to the OP's question, which was about the reasons why people don't even try to transition. I don't at all suggest that a slow transition is in any way invalid. But to even get to that, the reasons for not transitioning have to be overcome. And for any sizable project, community cohesion is going to come first, or else the result will be less than the sum of its parts.

[–] litchralee@sh.itjust.works 10 points 1 week ago* (last edited 1 week ago) (1 children)

In Anglo-American common law, if a party has previously argued a position in one of their own cases, and later argues a different position in a subsequent case that they've a party to, then the doctrine of equitable estoppel would foreclose on certain claims from that party. As usual, the devil is in the details.

Firstly, they must be a party to both the prior and prospective case. A motorist that is injured in a multi-vehicle pile-up cannot assert different facts when suing each of the participants in the crash. However, an advocacy group that files a petition on behalf of another is, by definition, not the party that is bringing suit. Nor is anyone that offers an amicus (ie "friend of the court") brief that advises the court on how a case ought to be decided.

Secondly, the exact things which are foreclosed will depend. The most common benefit available under equitable estoppel is the loss of a presumption of good faith. So if party A is a corporation and claimed in an earlier employer/employee case that their CEO's crass, sex-pest behavior was a result of substance abuse (in an attempt at a medical defense or a defense about temporary inability to perceive the situation), then that assertion -- irrespective of whether it actually won them that earlier lawsuit -- could be used against them in a later case litigated by the shareholders. If the company is sued for the CEO not conveying accurate business info, the defense that their CEO acted in good faith is not going to carry water, if the events coincided in time.

As you can see, the exact remedy that equitable estoppel provides isn't exactly clear-cut in every instance. But the goal is to prevent the same litigant from abusing the judicial system. One cannot come into court on Monday claiming the sky is blue when it's convenient for them, then claim on Wednesday that the sky is not blue when it's inconvenient for them. Two-face assertions are not allowed.

To be clear, these must be actual assertions. Sometimes a civil case can be won merely by the likely possibility that someone else is at fault, making it impossible to determine fault. And so no assertion may be needed as a defense. If a pedestrian is struck and injured by a hit-and-run motorist driving a red car, and five red cars are identified later, any of those motorists can correctly state that there were four other such cars in the area. Pointing out facts unfavorable to the plaintiff is exactly what the defense is supposed to do. But if a motorist actually says "I didn't injure her", then that's an assertion. And judicial estoppel means they may not later claim, for some reason in a later case, that they did do it.

[–] litchralee@sh.itjust.works 11 points 2 weeks ago* (last edited 2 weeks ago) (2 children)

In a nutshell, the network effect. At an individual level, if someone wants to leave GitHub, they absolutely can. But unless they're a repo owner or a BDFL, the project(s) they were working on would still be on GitHub. And that means they can't access the GitHub PR process for development, or open tickets for new issues, or any other number of interactions, except for maybe pulling code from the repo.

On the flip side, at a project level, if the project owners agree that it's time to leave GitHub, they absolutely can. And while they could convince the primary developers to also leave with them, the occasional contributors might still be left behind on GitHub. Moving away from GitHub could potentially cut the number of contributors down by a lot. And what's guaranteed is that the project will have to retool for the new space they move to. And if it's self-hosted, that's even more work to do, all of which is kinda a distraction from whatever the project was meant to do.

The network effect is the result of the sum being more useful than its parts. When the telephone was invented, a single telephone on its own is entirely useless, because nobody else has one to use. But with ten telephone, one person has the potential to call any of 9 other people. With 10,000 telephones, that's over 9000 people they could call, or those people calling them. At a million phones, the telephone is well entrenched into common usage. Even when more and more people despise making phone calls, the telephone is still around, having changed forms since the 1980s into the modern smartphone.

Why? Because networks are also stable: if a few thousand people give up their smartphones per year, the utility of the telephone is not substantially changed for the grand majority of telephone users. The threshold to break the network effect varies, but I hazard a guess that if 1/3 of telephone users gave up their numbers, then the telephone's demise would be underway. Especially in the face of modern replacements.

I would regard GitHub as having a network effect, in the same way that Twitter should have collapsed but hasn't. Too many local governments are invested into it as their sole social media presence, and in doing so, also force their citizens to also subscribe to Twitter. GitHub is not a monopoly in the sense that anti-trust laws would apply. But they are a monopoly in that they own the platform, and thus own the network.

But there's an upside: communities of people are also networks. Depending on how cohesive the contributors to a particular GitHub repo are, enough people can make the move away and would sway the unwilling to also move with them. This is no different than convincing family members to move to Signal, for example. Yes, it's hard. But communities look out for their common interests. And if AI slop is affecting a community, then even though they didn't want to deal with it, they have to make a choice.

Be the community member you want to see. Advocate for change in your network of people, however big or small. Without critical mass, a community will only splinter when acting unilaterally.

[–] litchralee@sh.itjust.works 8 points 2 weeks ago* (last edited 2 weeks ago)

Predominantly in Texas, Buc-ees is nominally a chain of gasoline stations but they're known for the stores attached to the station, selling all manner of kitsch but also fast food. Ok, they're also known for having 100+ pumps at each location. But that's important because it means they've always been located at the periphery of city boundaries, on huge lots, usually on the highways into or out of town.

When the gasoline business dries up, Buc-ees still has other business interests to keep them going in the road travel market, and they have real estate along major corridors that could be redeveloped. One option is to invite businesses that occupy motorist's time while parked charging their electric cars, like wayside attractions (besides Buc-ees itself, obviously). Another would be to fully entrench themselves: develop a hotel so that visiting business people always stop at the Buc-ees before leaving.

So while neighborhood fuel stations would see a slow demise, Buc-ees can turn their fuel locations into new cash cows. This is why diversification is so important.

 

The money quote:

VTA buses and light rail carried 30,000 people to and from Levi's Stadium, according to the agency. That was 5,000 more than they anticipated and "far surpassing" ridership records set when Taylor Swift played there in 2023.

 

As background from the Wikipedia page, the Anaheim Transit Network (ATN) was established as a city-sponsored non-profit in 1998 to operate bus lines around the Disneyland resort in California, with private funding from the various hotels in the area to run this public bus system. These hotels are obliged to operate or pay for shuttles to Disneyland as part of their development agreements with the city, presumably to avoid untold amounts of automobile traffic.

As the linked press release says, ATN will shutter its operations on 31 March 2026. The area will still be served by Orange County Transportation Authority (OCTA), the county-wide bus service, but looking at the bus lines near Disneyland, coverage seems non-optimal as a replacement to ATN's service.

Other reporting indicates that the City of Anaheim was unwilling to invest further into ATN (despite earlier indications), nor were the hotel operators.

What I find utterly inexplicable is that these stakeholders -- especially the city -- are not recognizing this fact: data from Q3 2025 shows that ATN fixed-buses moved 96,300 average daily riders. From the same document, the USA's heavy rail systems did not exceed that rate, except in the San Francisco, Washington DC, Atlanta, Chicago, Boston, and NY/NJ areas. Basically, ATN was moving metro rail levels of people on buses.

I shudder to imagine how bad this will be for Anaheim once the closure occurs, where workers, visitors, and all other former riders will need to figure out how to move around Anaheim. Ride share automobiles hardly have enough capacity to absorb even a fraction of the prior riders, let alone more automobiles, even if they all carpooled. And seeing as many visitors to Disneyland use the buses to stay at farther hotels to reduce costs, this is a negative attraction. The difficulty of car-seats on ride share made the buses particularly attractive to transport younger children safely.

Each individual hotel operator made an economic choice to not properly fund ATN, but together they will all lose out. Likewise, I don't see how the City of Anaheim is going to make up the transportation capacity around the Disneyland area. Disneyland itself isn't party to the agreement that funds ATN, but they do contract with ATN to shuttle visitors from a far-flung parking lot. But they too will be impacted if staff and guests can't afford to get to the park.

Everyone is going to be worse off, and no one is stepping up to the plate to keep the buses rolling, when it's clearly the obvious thing to do.

 

To make it easier for the haulers, I sort my flattened cardboard boxes by size, and then insert the smaller ones within the larger ones, rotated 90 degrees. That way, they can grab larger bundles at once.

To me, this is less effort than the Japanese approach of using twine to tie bundles of cardboard together.

 

Every so often, I think about how much electric power my house consumes at all hours, even when it's the dead of night and nothing is really being used. So this morning, I went out and flipped each breaker off, one by one slowly, while watching the instantaneous kilowatt reading on the electric meter and taking observations.

This took about 20 minutes for all circuits, and then I honed in on the suspicious circuits, the ones which don't have a known appliance like a fridge which should always be running. Years ago, when I moved into this house, I drew out a map which describes which outlets and appliances belong to which circuit.

The two suspicious circuits were the living room and bedroom circuits, and armed with a Kill-o-watt, I ended up finding that my very old Bose Companion 5 desktop speakers will draw 23 Watts doing absolutely zilch. And my 2018-era Roku TCL so-called "smart" TV draws 20 Watts when it's "off".

I've been meaning to replace the Bose speakers -- due to a separate issue where the mute button only works half the time, and horrific Linux support -- and a friend recently offered to sell me some reference speakers that I can pair with a Class D amplifier, one which has a physical on/off switch.

For the TV, I'm not exactly sure what to replace it with, since I was going to wait until it died and replace it with a commercial-spec display, one that has no remnants of "smart TV" anything. I don't allow my TV to even have a network connection or WiFi, so it really shouldn't be doing anything. So I guess in the meantime, I'll just pull the plug when I'm not watching; at least it's easy to reach.

EDIT: the TV is now showing inconsistent results. It will occasionally drop down to a more-reasonable 0.1 Watt. But it might also remain at the aforementioned 20 Watts. Not entirely sure what it's doing, whether just sitting there or staying on for a while after turning "off" the TV.

 

cross-posted from: https://sh.itjust.works/post/50842014

When I moved into my home many years ago, there was this lock-box mounted to the water main on the side of the house. I figured it was one of those used by real-estate agents to store the house key for viewings, but months passed and it still remained there. No one from my buyer's agent's office had a clue what this was, and the seller of the house had already moved out-of-state.

Recently, I had some plumbing work done, and that also included replacing the main water valve for the house, allowing this lock box to come free from the plumbing. Now inspecting it up close, and looking up the model online, I realized that it has an alphabet wheel and uses a three-letter combination.

As it happens, Thanksgiving weekend was upon me, and since I was bored, I figured I'd try all the possible combinations. Just 17,576 possible combinations, how bad could it be?

The most immediate problem was that due to being out in the elements, the dial did not turn easily. It would move, but was rather rough. And since the knob is only ~1 cm diameter, this is an incredibly un-ergonomic endeavor. I had to stop after the first 100 tries, due to the finger exhaustion.

Knowing this would be untenable for the long-run, I decided to build my way out of this problem. Since a combo lock involves making rotations that almost go all the way around, I drew inspiration from rotary telephone dials, where one's finger starts with the intended number and then swivels the dial around.

But whereas a rotary telephone dial only needs 10 positions, I needed to fit 26 positions, one for each letter. I decided on each hole being 17 mm to comfortably fit any of my fingers, but that also dictated the overall diameter of the wheel. But that's good, since a larger diameter wheel means more leverage to overcome the rough lock movement. It also happens to be that this wheel has a diameter of 180 mm, which is just enough to fit in the 200 mm bed of my 3d printer.

Using FreeCAD, I designed this wheel so that it fits around the splines of the lockbox dial, which held remarkably well. I had thought I would need Blu Tack or something to keep it together.

CAD design for lockbox dial wheel

Using this wheel, I'm able to "dial" combinations much quicker using one hand, while holding the lockbox with my other hand to press the lever down to test the combination. This should be good.

(note: some parts of this story were altered to not give away identifying details)

 

When I moved into my home many years ago, there was this lock-box mounted to the water main on the side of the house. I figured it was one of those used by real-estate agents to store the house key for viewings, but months passed and it still remained there. No one from my buyer's agent's office had a clue what this was, and the seller of the house had already moved out-of-state.

Recently, I had some plumbing work done, and that also included replacing the main water valve for the house, allowing this lock box to come free from the plumbing. Now inspecting it up close, and looking up the model online, I realized that it has an alphabet wheel and uses a three-letter combination.

As it happens, Thanksgiving weekend was upon me, and since I was bored, I figured I'd try all the possible combinations. Just 17,576 possible combinations, how bad could it be?

The most immediate problem was that due to being out in the elements, the dial did not turn easily. It would move, but was rather rough. And since the knob is only ~1 cm diameter, this is an incredibly un-ergonomic endeavor. I had to stop after the first 100 tries, due to the finger exhaustion.

Knowing this would be untenable for the long-run, I decided to build my way out of this problem. Since a combo lock involves making rotations that almost go all the way around, I drew inspiration from rotary telephone dials, where one's finger starts with the intended number and then swivels the dial around.

But whereas a rotary telephone dial only needs 10 positions, I needed to fit 26 positions, one for each letter. I decided on each hole being 17 mm to comfortably fit any of my fingers, but that also dictated the overall diameter of the wheel. But that's good, since a larger diameter wheel means more leverage to overcome the rough lock movement. It also happens to be that this wheel has a diameter of 180 mm, which is just enough to fit in the 200 mm bed of my 3d printer.

Using FreeCAD, I designed this wheel so that it fits around the splines of the lockbox dial, which held remarkably well. I had thought I would need Blu Tack or something to keep it together.

CAD design for lockbox dial wheel

Using this wheel, I'm able to "dial" combinations much quicker using one hand, while holding the lockbox with my other hand to press the lever down to test the combination. This should be good.

(note: some parts of this story were altered to not give away identifying details)

 

Reposted from heckin_sick (on IG) after DMing him for permission.

 

FortNine as a YouTube channel mostly covers motorbikes but on-and-off will do some bicycle and ebike content. Being YouTube, the clickbait-esque title is customary but the video is a look at where the fastest, heaviest, not-strictly-legal "ebikes" blur into the low-end of motorbikes.

The specimen in question is, from all that was pointed out in the video, rather abysmal by motorbike standards but par for the course by consumer goods standards. This includes:

  • An obnoxious startup introduction to remind you that their brand name is pronounced Aniioki
  • Illogical rear suspension design
  • Complete disregard for Canadian and British Columbian ebike classifications
  • Questionable chain design that keeps falling off the chainring
  • A throttle with huge delay before reacting
  • And more!

But the paltry nature of this particular ebike wasn't my main takeaway. It's that ebikes at-large are filling a gap in the market, where young people want mobility without the expenses and licensure of motorbikes. Here in California, the chasm between legal ebikes and motorbikes is so wide that I would imagine the same statistics could be found here as FortNine found in Canada. And it makes perfect sense: cheaper, lighter, electric, nimble, and unencumbered by frivolities like highway roadworthiness. For getting around town or to work, it makes perfect sense.

That said, they also touched upon the very real problems faced by faster ebikes (legal or not) today. Motorists -- because let's face it, most problems of micromobility are caused in large part by automobiles -- might expect to see a motorbike doing the speed limit, but not an ebike doing 2/3 of the speed limit. A USA Class 3 ebike can legally do 45 kph (28 MPH) and while that's slower than typical speed limits here of 35 or 45 MPH, the problem arises when there's enough motor vehicle congestion that slows motorists to about the same speed. And that's where the conflict shows up, such as when a car enters the road from a driveway.

Do I think it's a bit silly to bring a 150+ lbs "ebike" onto the ferry, or dangerous to ride along a multi-use trail on the side of a bridge when there are also pedestrians? Absolutely! But again, I think the takeaway is that the times are changing and preparations must be made in anticipation.

The absolute worse-case would be if these overpowered two-wheelers unlawfully dressed up as ebikes were to proliferate to the point that it's total chaos on the roads. At that point, Pandora's Box cannot be closed. Thus, it behooves us to mitigate that situation by, among other things:

  • Build actual infrastructure for riders on bikes and ebikes, that isn't doing double-duty as pedestrian or recreational paths
  • Incentivize legal, battery-safe ebikes to stave off a glut of illegal, shoddily-made "ebikes"
  • Make existing bikes more useful with destination improvements, like bike lockers or secure/valet bike parking
  • Seize road space currently used for motor vehicles, and do anything else with it. Parklets, public toilets, bioswale, donut shop.
  • Expand public transportation options, for anyone who can't/won't ride a bike, but also as range-extension for anyone who wants to do bus+bike

The premise of a well-built city is that it shouldn't require a two-ton automobile just to buy milk. I would further the sentiment with the opinion that a 160+ lbs two-wheeler also shouldn't be necessary to travel across Vancouver in a timely fashion. We can, in-fact, build our way out of this future problem but only by starting right now.

50
submitted 6 months ago* (last edited 6 months ago) by litchralee@sh.itjust.works to c/woodworking@lemmy.ca
 

Hi! I've only posted here maybe once, but I'm looking to change that and have been working to improve my joinery.

Specifically, I recently had the geometric realization that adjusting the horizontal angle on my miter saw is one of the least precise adjustments I can make, when trying to make two cuts that add up to 90 degrees. So instead, I now set the angle for the smaller angle, make the first cut, then set the workpiece for the second piece using a square against the fence. Basically, I'm rotating the piece so it's 90 degrees to the saw fence, and that lets me cut the complementary angle without realigning the saw angle.

The new problem is that because I'm still using slightly-warped and slightly-twisty stock, the surfaces aren't terribly great for gluing up. In one case, I glued up one end of a diagonal brace but the other end was lifting up, off-plane. Hand sanding with a block helps, but more often than not, I end up rounding off the edges and glue leaks out. So I'm now seeking recommendations for a small hand plane, so that I can have better, flatter surfaces to glue together.

Is this the right approach? If I'm mostly working with narrow stock like 1x4-inch, is there a correct-sized hand plane to smooth out an end-grain on that small of stock? Apologies in advance for not really knowing all the right wood terminology. I'm still learning.

Ideally, I'd like to buy something that will be versatile and serviceable for a long time. So cost isn't too important, but ideally it'd be proportional to my (few) other tools. If I know what to look for, I'll keep my eye out for such a specimen while at the thrift store.

EDIT: To clarify, a use-case would be if I'm gluing a diagonal brace at mid-height of a post. If i had a plane, I could work the post so that it has a flat face, so that the brace won't deviate left/right. For the diagonal brace itself, I can mostly trust my miter saw to cut the angle reasonably plumb.

EDIT 2: Might I actually want a card scraper instead?

EDIT 3: y'all are awesome and I now have a fair number of suggestions to consider. I guess there goes all my disposable money for September, once I go visit the nearby woodworking shop.

 

I've put off the overhaul of my ebike's Bafang G510 mid-drive motor for so long that it has never actually been serviced since I bought it 3800 km ago. Over the past weeks, I slowly pulled the motor off the bike, carefully disassembled it, and found the rotor shaft gear in a poor state. Metal flecks were visible within the blackened grease, making a mess within the housing.

To get the sprockets off of the motor, I did have to obtain a deep-socket YC-29BB tool to remove the "spider" from the crank shaft. A standard wrench for the Bafang lock ring will not work, because the spider itself is in the way.

This motor has an all-metal gear arrangement, consisting of the primary gear axle which is coaxial with the cranks, a secondary gear axle, and a tertiary gear axle which is driven by the rotor shaft gear. It was the gears where the tertiary axle and rotor shafts meet which were substantially ground down, resulting in play between gears that causes additional wear every time the motor accelerates or decelerates.

top down view of dismantled Bafang G510 motor, showing the three reduction axles and the motor axle. The secondary axle has been removed for clarity

Note: some references online say that the G510 pre-2023 had a nylon gear. I could not locate any images of this, and my motor appeared to have all-metal parts. So idk.

Part of the issue is that the tertiary axle used a gear which isn't as deep as the rotor shaft's gear, resulting in wasted gear-to-gear surface area. A newer gear design for both the rotor and tertiary axle came out in 2023, and can be swapped in but requires recalibration of the motor.

So with the motor half disassembled, I figured the only sensible way forward was to order both the new rotor shaft and new tertiary axle, plus the CAN bus-specific Bafang dealer tool to perform the recalibration. I purchased these from greenbikekit.com, which didn't have the most intuitive ordering process but they did deliver in the end.

Perhaps the most arduous process was cleaning out all the old grease, which requires some solvent to shift. And even then, some crevices were unreachable without a very long cotton swab. In any case, I then re-greased using Permatex 80345 white lithium grease, since this has a higher temperature rating than typical white lithium grease, according to its data sheet. I obtained this from the local auto parts store, and this was the best I could get locally; Mobilgrease 28 was not available near me.

For the recalibration procedure, I knew that I wouldn't have -- nor would want to register for -- the Bafang dealer software to use with the programmer tool. Also, I'm a believer in the right-to-repair and having to beg for software is antithetical to this notion. Fortunately, someone has a FOSS project that can control the programmer and issue the recalibration command, among other neat features.

After dealing with a file permissions issue for /dev/usbhid2, the programmer was able to issue the calibration and the motor was set for reinstallation into the frame. This was basically all the earlier steps in reverse.

During testing, it is notable how much the new gears add the characteristic "whirling" sound of an electric motor. However, because the play within the gears was reduced and with new grease added, I found that the overall noise signature of the motor is substantially reduced. Also appreciated is how much less current the motor draws when riding at speed, compared to before the overhaul.

While it did take a while to assemble the parts and procedure for this endeavor, I am pleased with the results and would suggest periodic re-greasing for ebikes in regular service.

 

After some 3000 km, this mid-drive motor is grossly overdue for some maintenance. I can see the specks of eroded metal mixed in the dark, gunky remains of whatever factory grease they used in here.

I don't know where locally to get the Mobilegrease 28 that everyone recommends, but I did find some high-temp white lithium from the auto store. But just removing the old grease has already consumed half a roll of paper towel. And I can't exactly dunk a motor into gasoline as degreaser.

I'll carry on wiping.

 

From my earlier post, y'all helped me fill my micromobility niche with a refurbished Segway Ninebot G30LP. So I wanted to give my first impressions after having it for a week.

To start, the scooter arrived in a fairly sizable box, some 100cm by 50 cm by 25 cm. There was a small hole in the cardboard box, but it looked like typical handling and broke into a void, rather than impacting the scooter.

Opening the carton, I removed the scooter itself, the charger, manual, Schrader valve extension tube, and the recall-related maintenance kit. The latter consisted of various sizes of hex wrenches and a rather-long screwdriver. As my first (electric) scooter, I figured I should RTFM before getting ahead of myself.

That's when I realized that I am missing some parts: the six screws needed to secure the handlebar component to the stem. So already, I could not perform the singular assembly step. Oh dear.

From the manual, I sent an email to Segway support with my scooter's model and serial, and they replied the next day for my mailing address. The day after, they had a tracking number for me for that parcel, which reached me three days later. So five days after writing to them, I had the screws in hand. Not bad at all.

That said, I did notice that these screws are slightly out of spec. From what I could gather online, the six screws for the stem should be countersunk M5 screws with length 16 mm. However, I measured these closer to 18 mm, and given the angle of how the screws insert, I think the extra length is causing the left-side screws to collide with the right-side screws.

While I could leave the screw protruding by about 1 mm, I figured I'd cut the screws to length, as that's within the capabilities of my metalworking. They did, after all, send me a pack of ten screws, so I could cut the four spares down. Now they sit flush with the stem.

Anyway, with the handlebars attached, I could continue through the manual, which basically had other advisements for safe operation. Separately, I had seen advice online that the air pressure for these tires should be closer to 40-50 psi (~3 bar), to avoid flats but would trade off some springyness. From the factory, I measured 37 psi, which is what the manual recommends. I tend to run my bicycle tires closer to the sidewall rating, so I wanted to shoot here for at around 45 psi.

The Schrader valves on these tires are quite something. The front is workable, but the rear has a very short stem, meaning only my digital air gauge could be attached to read out the existing pressure. But to add pressure with my manual floor pump for the rear tire, I needed the extension tube. Note: this tube does not have its own one-way valve. So once the tire is pressurized, some air will leak out when unscrewing the tube from the tire stem. And of course, it's a cramped position. But hey, at least I can check the air pressure without the extension hose.

Out of the box, the battery has a state of charge around 60%, so I was able to test basic operation by gliding around my driveway. But it does beep persistently, due to not being activated with the app. I personally don't like devices which must be chained to an app -- which might disappear one day -- so I was pleased to find that there's a community app that can do the same.

Using this app, I was able to activate the scooter and confirm other parameters about the its manufacturing, the battery pack, cell voltages, and the odometer reading, which is precise down to 0.01 km. What I couldn't figure out is how to commit the global or eco speed limits, as I have no need to run faster than 13 kph (8 MPH).

During testing around the neighborhood, I resolved to wear at least the same gear I would wear (helmet, goggles, gloves) for riding my acoustic and electric bikes, and found that with cruise set at 15 kph (9 MPH), this was a reasonable saunter through the quiet streets, with bumps amplified by the short wheelbase. But still manageable. Kinda like a brisk walk.

When discovering that switching from Eco mode to S mode permits the full 25 kph (15 MPH) limit, I decided to try the top speed after doing a few loops. But already at 22 kph, I stopped, being unable to understand how anyone can ride a scooter at this speed without 100% focus and both hands on the handlebars. And I've seen riders on shorter electric scooters with smaller, non-pneumaric tires. It's utterly terrifying, and I say that having negotiated 45 kph, lumbering ebikes through harrowing city traffic.

But my own sensibilities aside, it's fairly capable with large -- but still jarring -- dips in the road surface, and does not bottom-out at sidewalk ramps or turning into driveways.

Here in California, the laws on electric scooters are substantially nerfed, prohibiting sidewalk operation or even just making left turns in the street. They intend for electric scooters to operate in the bike lane, though most riders I see will use the sidewalk anyway. As a long-time bike rider, I fear the poor running surfaces of sidewalks and prefer the smoother asphalt surface of the bike lane. Though I grant you that the motor vehicle traffic whizzing by is not exactly totally comforting, especially when I intentionally operate at a lower speed.

But taking the scooter out for its first ride, it was mostly uneventful and I met up with a friend, who later took me and the scooter home in his car. It fit perfectly in the trunk, which proves the multi model credentials of this scooter. So far as I can tell, the odometer is fairly accurate and while I've only done 11 km so far, the app suggests a range of 40 km at my speed.

I'm still figuring out how to ride this safely, but seeing as my needs are very specific (see prior post), it's likely I can optimize to a high degree.

view more: next ›