• 0 Posts
  • 74 Comments
Joined 1Y ago
cake
Cake day: Jul 05, 2023

help-circle
rss

Copyright DMCA filings never went to the mods. Those are legal requests and not handling properly can be a nightmare complete with lawyers.

Those requests went via https://support.reddithelp.com/hc/en-us/requests/new - no volunteer mods or API requests involved.


I wanna be able to talk with cats

and (worship) octopuses

Give Children of Time by Adrian Tchaikovsky (and its sequels) a read. Spiders, octopi, and… other.


Some time back there was an attack on Lemmy where (if I recall correctly) HTML embedded in emoji allowed tokens of users viewing the emoji to get stolen… which included administrators auth tokens. There was much havoc wrecked that evening.

The mitigation for this was “all HTML entities are escaped”. Doesn’t matter where they are - they’re escaped. This sometimes leads to them being doubly escaped when rendering. Less than, ampersand, and greater than all get doubly escaped ( > & < ).

… And that gets interesting as I can’t quite tickle that issue.



https://www.stilldrinking.org/programming-sucks

All programming teams are constructed by and of crazy people

Imagine joining an engineering team. You’re excited and full of ideas, probably just out of school and a world of clean, beautiful designs, awe-inspiring in their aesthetic unity of purpose, economy, and strength. You start by meeting Mary, project leader for a bridge in a major metropolitan area. Mary introduces you to Fred, after you get through the fifteen security checks installed by Dave because Dave had his sweater stolen off his desk once and Never Again. Fred only works with wood, so you ask why he’s involved because this bridge is supposed to allow rush-hour traffic full of cars full of mortal humans to cross a 200-foot drop over rapids. Don’t worry, says Mary, Fred’s going to handle the walkways. What walkways? Well Fred made a good case for walkways and they’re going to add to the bridge’s appeal. Of course, they’ll have to be built without railings, because there’s a strict no railings rule enforced by Phil, who’s not an engineer. Nobody’s sure what Phil does, but it’s definitely full of synergy and has to do with upper management, whom none of the engineers want to deal with so they just let Phil do what he wants. Sara, meanwhile, has found several hemorrhaging-edge paving techniques, and worked them all into the bridge design, so you’ll have to build around each one as the bridge progresses, since each one means different underlying support and safety concerns. Tom and Harry have been working together for years, but have an ongoing feud over whether to use metric or imperial measurements, and it’s become a case of “whoever got to that part of the design first.”


APL and J have made there appearance in here with their awkward syntax and have the advantage of being practical languages in actual use.

Esolanguages are often things that are designed to be difficult in some way, shape, or form. Brainfuck is awkward, but it’s the source of some interesting problems that are only practical because it is such a simple language.

The thing is, once you get your head around it, it isn’t too bad of a language.

I was introduced to FRACTRAN (wiki) in Project Euler - https://projecteuler.net/problem=308

That one… still is beautiful and confusing. It’s based on the manipulation of variables through Gödel numbering (wiki). The program: ( 455/33 , 11/13 , 1/11 , 3/7 , 11/2 , 1/3 ) will multiply the exponents of 2a3b leaving the result in 5ab.

The program ( 17/91 , 78/85 , 19/51 , 23/38 , 29/33 , 77/29 95/23 , 77/19 , 1/17 , 11/13 , 13/11 , 15/2 , 1/7 , 55/1 ) will loop forever, however as it runs the state of the program will occasionally be just a power of 2 with all the other powers (variables) being zero. Those values are: 22 , 23 , 25 , 27 , 211 , 213 , … and so on. It computes prime numbers and stores them in the power of 2 before going to compute the next one.

While I understand the idea of Gödel numbering, the manipulation of those numbers through this process still is difficult for me.



He has an iPad 6

I believe you’d be able to load up Swift Playgrounds on that now as a “here’s a place to start” - https://www.apple.com/swift/playgrounds/ - it is a very safe place to start.

In general, I’m gonna ask “why?” for loading up a Linux distribution on a Mac unless there is specific software that you’re after that only runs on Linux. For the most part, launch a terminal and you’re getting 90% of what the Linux experience has to offer (Mac OSX is a unix certified operating system).

I’d look also for games that are programming under the covers or related. Factorio (circuits) and Minecraft (red stone logic) are two that come to mind first.

Shenzen I/O (and the rest of Zachtronics) along with Human Resource Machine and 7 Billion Humans might be a bit more, but also something he could “grow into”.

I would suggest staying as far away from Roblox as possible.


I wrote this a while back… I still think it’s true (though I don’t think its “finished”)


Factorio

So there’s this game I play… just a little bit. Factorio.

In playing this game, I’ve realized that there are several parts of the game play that are directly applicable to software design. The idea of Patterns becomes more clear on how to explain them and how to use them in regular software when one can point to something a bit more concrete (all be it a construct in a virtual world). A visual example of reasonable design and problems of scale are also software design issues that become more apparent with factorio.

Patterns

Patterns are a favorite rant of mine - that developers are asking for a pattern to do something and you take a Something and a SomethingElse and link them together and you’ve got a working application.

Factorio gives me a better way to explain what a Pattern is.

One of the problems that I’ve had in factorio is a pump that flickers on and off rather quickly. This made a mess of the power display (a very high frequency sine wave was evident - determining the actual overall power consumption over time became more challenging) and lights that were hooked up to it to indicate that the pump was on were flickering at a high frequency (a rather annoying strobe).

The cause was that the pump (and light) were connected to a tank containing refined oil. The pump was to pump off excess when it got to 24,000 units. If the tank was at 24,100 units the pump would pump off 200 units putting it at 23,900 and shutting off. One sixtieth of a second later, something would push another 200 units of refined oil into the tank and the pump would trigger on and off for a sixtieth of a second - the flickering and the high frequency showing up in the power.

The solution to this is to use what is known as a Schmitt trigger. This is a circuit that feeds back to itself with a positive feedback loop. When the trigger turns on at a given threshold it will remain on until the value drops below a different threshold. The way that the trigger was set up was so that when the material reached 24,000 units, it would turn the pump on until the level was at 22,000 units.

The way this was implemented was to use a decider combinator which takes a signal as input (the amount of material in the tank) and sends a signal as output (the value 1 in a given channel) based on some logic (the amount of material in the tank is greater than 24,000). Then a second combinator - an arithmetic combinator - would take that signal of 1 and then multiply it by 2,000 and send that result into the input of the decider combinator. The result would be that the signal is now 26,000 and it would run until the material drops to 24,000 in which case the signal from the decider would switch from 1 to 0 and the arithmetic combinator would stop sending the additional 2000 units as a signal… and we would see the real value of the tank at 22,000.

The Schmitt trigger is a Pattern.

It is silly to be suggesting that one would design something based on the answers to “what are useful Patterns when creating an oil processing area?” One doesn’t add something unless its necessary to solve a problem. And one doesn’t go looking for places to use a Schmitt trigger or other Pattern - they are tools for solving specific problems.

Reasonable design

The first base that a person builds is often what is known as a spaghetti base. The layout is ad-hoc. As you need something from somewhere (some iron plates) to get to somewhere else you split off from a convenient, nearby belt with some iron on it and run it over to the place it is needed. It sounds ok at first, but doing this a few dozen times the layout becomes more and more convoluted.

Enter the main bus.

The main bus is a design where there is a large number of belts running down the center of the base and things tap off of it perpendicular for specific factories that build a given item.

The taps off are well researched designs that have a specific fraction of the items shunted off to the factory. Instead of trying to figure out where the iron came from and how to get more iron down to that place maybe a few hundred tiles away, one can look at the main bus and see a dozen tiles and understand what that sub factory is making and how many resources it needs.

The reasonable design allows one to more quickly fix issues of resource starvation and allocation along with refactoring of specific areas of the overall system without worry about impact to things downstream. The base is reasonable.

Problems of scale

After playing a bit and winning the game a time or two, one gets the urge to build BIG. Not these little “launch a rocket every couple of minutes” but rather “launch a rocket every second.”

The design for the one rocket every few minutes is fundamentally different than the design for one rocket every second. The layout of the base for a simple mainline works well - but it doesn’t have the throughput for materials that would enable the launch a rocket every second goal.

For this, one starts building outpost factories that do one thing, and one thing well. This outpost takes iron ore and produces iron plates. That outpost takes iron plates and copper plates and produces green circuits. So on and so forth.

This is a very different design - switching from a main bus to train logistics (trains become the way to move massive amounts of material). The very structure of the base for a megabase vs a regular base shows differences at every level.

Many times one reads about developers having difficulties with microservices and trying to build something to scale to 1000 users per second. And then comes the moment when they are asked how many users per second they’re currently getting and the answer is something along the lines of “Um, we’re getting maybe 5 a second on a good day… but we’re getting ready for being Amazon or Twitter scale.”

Design for what works. It is often easier to redesign a working system up than it is to try to start out with the megabase or amazon scale system and fight all those little problems of outpost base train networks and microservices that you haven’t encountered before in a working system.



IRC is fine for almost synchronous communication - but dealing with things that work on the timescale of days or weeks, IRC becomes difficult to maintain a discussion about a fix or feature over that timeframe that includes all the interested participants.

Mailing lists often come with an archive and a sufficiently large project will have multiple lists for different aspects of the project. Consider gcc ( https://gcc.gnu.org/lists.html )and you’ll see that bugs and patches are their own lists. Going into there you can also see the archives for the project… and if the mailing list software has support for it, viable by thread https://gcc.gnu.org/pipermail/gcc-bugs/

https://lkml.org/lkml/2013/11/25/519 is another fun read (that entire thread).

git has support for (and was originally used via) email. git send-email (docs) and git am (docs) are part of its original functionality and that workflow can make use if it.

I’m personally most comfortable with GitHub or GitLab, followed by email. An IRC or discord project lacks the ability to properly research the “why was this done that way back in 2016”… unless the project doesn’t aspire to be a long lived open source project.

Managing email is something that should be considered as part of this. Setting up a separate email address for that project, or using the + addressing as part of the email to make it so that your email filters can operate on them better (Exchange, gmail). This may require deeper familiarity with email clients than is common today - smart mailboxes in Mac Mail, client side rules in Exchange, or old school procmail with a shell account.


Unless you specifically pay for the rights transfer (and it’s not cheap), the photographer owns the copyright.

https://www.rocketlawyer.com/business-and-contracts/intellectual-property/copyrights/legal-guide/wedding-photos-does-your-photographer-legally-own-them

Under federal law, if there is no agreement to the contrary, your wedding photographer, or any photographer for that matter, owns the pictures that they take. This means that they have the sole right to copy and distribute the photos, including potentially the right to sell the photos, to publish the photos in any form, and to reproduce the photos either electronically or in a printed hardcopy version. And even more importantly, copyrighted material cannot be reproduced or copied without permission from the photographer.

Generally, photographers do not like to offer their services to clients through a Work for Hire Agreement. This may be partly related to their desire to require clients to purchase prints and books directly from them. Many photographers, however, do not want to completely relinquish their rights because they may be trying to build or protect their reputation.

Granted, this a US take and may vary by country…

https://www.thecoffeetablebook.com.au/what-do-a-bride-and-groom-need-to-know-about-copyright-when-booking-a-wedding-photographer/

If you are a couple getting married in Australia, the copyright law automatically assigns copyright to you and not the photographer. However, most professional photographers will have their clients sign a contract that reassigns the copyright to the photographer. Now let’s be very clear, this is not the photographer being shady or deceptive in anyway. It’s simply to protect their work, the photographs in this case, that they created.


2- positive supply-chain validation. Not important for the majority of people, but for those who require a little more security, they can be a little more sure that their device isn’t compromised from illegitimate parts. I imagine this to be a fringe benefit for executives and the like

Anecdotally, many years ago I had a Mac laptop that was fairly new but I ran it as what amounted to a portable desktop. It was plugged in 99% of the time. A few months after I got it I had an issue with one of the fans. Instead of taking it to the Apple Store that was 90 miles away (I was living and working in a small town then), I took it to the local computer repair… and they fixed it it.

Afterwards, while I didn’t use batteries much, it seemed off.

Another two years and I had moved to a larger city and took my laptop into the local Apple Store for them to replace a fan that was not operating strongly enough. The repair tech commented that I had a sub par third party and while it should be replaced as its battery health was very low, it wouldn’t be covered under warranty because it clearly wasn’t an OEM Apple part.

I strongly suspect that the repair shop had swapped my new battery out for an old one and hoped I wouldn’t notice because I didn’t use it in that capacity. I can’t prove anything and the shop had gone out of business.

This is anecdotal and batteries for laptops don’t get pairing the same way phones do… but this sort of thing happens.


I looked at it when it came out. The problem is that taking classes back in the early 90s with computer programming - the CS department was an offshoot of the Math and Statistics departments rather than engineering (the engineering department was hardware focused - designing chips and circuit boards)… and so I don’t have the deep physics background that the FE exam expects you to have prior to taking the PE exam.

If I had taken electrical and computer engineering… well, assuming that I got through the math (had to take the CS numerical methods class three times)… maybe. But if people want to complain about the irrelevance of reversing a list or describing two different approaches to balanced trees… they’d probably complain more about being tested on generators and RC frequency response in low pass filters even if you only have to take it once.


https://www.nspe.org/resources/pe-magazine/may-2018/ncees-ends-software-engineering-pe-exam

The Software Engineering PE exam, which has struggled to reach an audience, will be discontinued by the National Council of Examiners for Engineering and Surveying after the April 2019 administration. The exam has been administered five times, with a total of 81 candidates.

NCEES’s Committee on Examination Policy and Procedures reviews the history of any exam with fewer than 50 total first-time examinees in two consecutive administrations and makes recommendations to the NCEES Board of Directors about the feasibility of continuing the exam.

In 2013, the software exam became the latest addition to the family of PE exams. The exam was developed by NSPE, IEEE-USA, the IEEE Computer Society, and the Texas Board of Professional Engineers—a group known as the Software Engineering Consortium. Partnering with NCEES, the consortium began working in 2007 to spread the word about the importance of software engineering licensure for the public health, safety, and welfare.


You can do at most 40 reviews per day (to avoid people going on autopilot) but you are no more rewarded for doing 40 reviews in a day than you are doing 1 review a day for 40 days. The only exception to the 40/day limit is for diamond (elected) moderators.

Furthermore, you’ll note that the review that you recently did (first posts) you were rewarded for doing it for the firs time… and your review action (which is public) was “looks ok” rather than down voting it or flagging it (though the answer you review wasn’t upvoted… so its ok, but not ok enough to up vote?).

The goal of the review queues is to get people to just check to make sure things are going ok.

If/when you get to 3000 rep, you’ll be just as rewarded for casting a close vote in the close vote queue as you would for saying “leave open” - or going into the reopen queue and casting a reopen vote.

The point is that the one sided statement of “SO rewards tagging and closing questions” doesn’t properly capture what you are doing. Additionally, the rewards for doing reviews (badges) is completely separate from the rewards that drive the rest of the site (reputation).

Overall, the system of voting, curation, and moderation on Stack Overflow has broken down. There are not enough people doing these things on a regular basis and so the actions that are taken to keep Stack Overflow from becoming Yahoo Answers are predominately “close” rather than “cultivate and curate” because there isn’t enough time for people who are able to do those tasks to do so and make a meaningful impact.

Your next badge would be to help out in the first posts review queue another 249 times.

The badges are there to help guide new users to discovery of the site as they participate more on it. Voting everyone does and understands, but few people see the review queues unless guided there by badges and blame “the moderators” (which is everyone on the site with sufficient rep to do reviews) for actions.

How do you get users who have participated enough to get 1000 rep to do a first posts review? Or 2000 rep to help out and check the suggested edits? Or 3000 rep and see if things should be opened or closed other than with the badges prompted prompted by reaching various reputation thresholds?


Forums for helping others existed for decades before SO and even now a lot of stuff has moved to discord, Reddit, Zulip, and slack and they still have moderation and most people actually get answers to their questions.

I’m sure that people still go to https://javaranch.com to view posts like https://coderanch.com/f/33/java for getting help and searching for answers.

Zulip and Slack and discord are quite good for interactive help with someone on a problem now. They’re absolutely a non-starter for searching for past issues so that you don’t need to ask someone to get interactive help now.

Reddit is ok as it’s indexed by google… until people go through and delete their old content. Sure, that’s fine and it’s their content, but it also means that you’re asking questions there. And you’ll also note the curation and formatting of in https://www.reddit.com/r/javahelp/ isn’t exactly up to Stack Overflow standards.

The point is that these are different systems with different goals and are trying to do them in different ways.

Reddit doesn’t care about the long term searchable value of a question or answer as much as Stack Overflow does because once it drops off the page it’s gone and no one is going to find it again. Stack Overflow had a different goal.

https://blog.codinghorror.com/introducing-stackoverflow-com/

Stackoverflow is sort of like the anti-experts-exchange (minus the nausea-inducing sleaze and quasi-legal search engine gaming) meets wikipedia meets programming reddit. It is by programmers, for programmers, with the ultimate intent of collectively increasing the sum total of good programming knowledge in the world. No matter what programming language you use, or what operating system you call home. Better programming is our goal.

It’s fair to argue if its by programmers anymore - but that was its goal and its a very different goal than “help each person who asks a question.”


Off the shelf… no… though I’ve been rather impressed at the accuracy of the iPhone. There’s this little i in a circle that has a star in the corner which will do a “let me try to match this”. I believe its only a matter of time before this becomes more accessible.

Attempting to match a purple flower on the side of a bike trail


Maybe one easy thing us gamers can do is to block unity domains at the network level. I’m not sure how they track installs but I’m guessing it must include some kind of phone home.

Consider that pirated installs are now not just lost revenue but ongoing expenses as Unity charges the developer for an install.


https://www.explainxkcd.com/wiki/index.php/1425:_Tasks

A month after this comic came out, Flickr responded with a prototype online tool to do something similar to what the comic describes, using its automated-tagging software. According to them, the bird solution “took us less than 5 years to build, though it’s definitely a hard problem, and we’ve still got room for improvement”.

(the site http://parkorbird.flickr.com is no longer online)


It’s not outputting ionizing radiation… nor is it outputting radio near the limits that are causing it to get removed from the market except under laboratory conditions where its being forced to operate at maximum power that the transmitter is allowed to (by the software) for extended times… which could get fixed by software… and is 10x under the limits that would theoretically be a problem under the levels that it was observed at… which is being tested at a much closer distance (inverse square getting in there) compared to other accredited laboratories in the EU (EU is up to 25mm, FCC is 15mm, France is doing 0-5mm) without changing the absorption levels to compensate ( https://www.anses.fr/en/content/exposure-mobile-telephones-carried-close-body )

And France has been pushing a “beware of excessive cell phone use” for a long time. https://arstechnica.com/uncategorized/2008/01/france-beware-excessive-cell-phone-usedespite-lack-of-data/

I was just citing the sources in France that was showing that this was taken a bit to the extreme. When you consider all the rest of it, it feels rather silly and Apple is likely doing a “whatever” and pulling a 3 year old phone from the French market.


You don’t need iodine, this isn’t going to give you radiation sickness, but it is a little surprising.

From a WaPo article:

France’s digital minister said the iPhone 12’s radiation levels are still much lower than those that scientific studies say could harm users, and that a software update could solve the compliance issue. The ANFR itself acknowledges that its tests don’t reflect typical phone use.

Which links to:

https://twitter.com/jnbarrot/status/1701848091689693576 (translated)

The @anfr found that the iPhone 12 was emitting a level of waves slightly higher than the authorized threshold.
This level is more than 10 times lower than the level at which there could be a health risk.
But the rule is the rule: Apple must comply.

https://twitter.com/jnbarrot/status/1701852521247965686 (translated)

The wave levels that smartphones emit can vary during a software update. It is undoubtedly because of an update after its release that the iPhone 12 exceeded the authorized threshold. And it’s a simple update that will bring it back into compliance.

https://www.anfr.fr/maitriser/equipements-radioelectriques/le-debit-dabsorption-specifique-das/das-reel-/-das-mesure-maximal (translated)

The classic conditions of use: the real DAS

Laboratory measurements do not reflect what happens during the usual use of the device. Indeed:

  • for voice communication, the phone statistically emits only about 50% of the time, the phone does not emit when listening; in addition, the average duration of a communication is less than 3 minutes;
  • for data-oriented use (internet or video), the durations of use are certainly longer; but the phone, which generally receives more information (videos, emails…) than it sends, rarely emits more than 10% of the time during the session;
  • the value of the DAS displayed in the points of sale corresponds to a precise frequency (e.g. 800 MHz) and technology (e.g. 4G) for which the maximum has been detected; but, in reality, the phone does not work permanently under these conditions: it often changes frequency or technology;
  • Finally, for all uses, the phone rarely emits at its maximum power, due to constant interactions with the network to best adapt to its conditions.

The real SAR therefore does not often coincide with the maximum SAR.

As the DAS is proportional to the power emitted by the telephone, it is possible to evaluate the actual DAS by measuring the power put into play by the terminal. This can be evaluated thanks to professional software installed on consumer phones


I’m not sure how rewarding those are - or common. A total of 257k out of 21M doesn’t suggest many people are getting rewarded for flagging (and that’s just one). Raising 80 helpful flags (for example flagging spam or people leaving rude comments) is less than 0.07% of the user base.

The cleaning the queue is… Stack Overflow’s review queues have never been cleared. Today’s stats for Stack Overflow’s close queue ( with 3000 items in it that time out after 3 days https://stackoverflow.com/review/close/stats ) has had 273 reviews done (not all were close votes) done by 18 people (out of 21 million) and most of those people who have done the majority of the reviews received the marshal badge over 5 years ago and so aren’t getting any new rewards for doing more. You are equally rewarded for clicking “leave open” as you are for clicking “close” in the queues.

There is no reputation reward for any of the review tasks either.

With over 1000 rep on Stack Overflow, you should have access to the First Posts and Late Answers review queues where you can get an idea of well, give it a try to see what’s in there. There’s a fair bit of people trying to sneak links into new answers to old questions (Late Answers) that having another set of eyes on would help catch before they get too far. Likewise, there’s a lot of posts to First Posts where someone could help a new user and take the time to help them make their question better… or if it isn’t a good fit for the Q&A format of Stack Overflow flag it for closure.

Without the gamification of the badges, the participation in community moderation and curation of the material would likely be even less active.


SO rewards tagging and closing questions rather than answering the actually difficult questions.

I’m curious as to what reward you believe that people are getting from closing questions?

Though I’ll certainly agree with that it doesn’t reward giving good answers to hard questions enough and rather encourages easy answers to popular questions (even if the popular questions have been asked before).


https://chat.stackoverflow.com/rooms/info/6/python and https://sopython.com/chatroom for SO’s python chat room.

Consider, however, “what if on every Python question on SO, someone left a comment to check out the python discord channel to ask their questions”.

Would the python discord channel be able to handle that volume of beginner questions (about 1 question every 5 minutes all day, every day)? And if someone did post that and try to encourage people to ask there instead, and would a representative of python discord go and ask SO meta to dissuade that user from doing so?

Sites like Stack Overflow, if they even point/redirect a fraction of their traffic at some other place can overwhelm the capacity for both support and moderation of that other place easily.

Part of the problem is also that many people asking questions don’t want help, they want copy and passable answers that involves them (the person asking the question) doing as little as possible. I realize that’s a controversial stance in some circles, but if you spend time trying to help all the users with low rep on SO (and even some with higher rep), it feels like they represent a significant portion of the people asking questions. Sampling bias? Confirmation bias? Dunno… I’ll admit to some bias somewhere… but I still know what it feels like.


Maybe SO needs some way to direct those who “don’t get the site” to a more chat-room like community where they can get their very common questions answered quickly rather than posting a duplicate question that no one wants to take the time to fully explain in a single answer.

Stack Overflow does have chat rooms, though it takes a bit of rep to get access to them (though that can be rep from any instance of stack exchange - this is because when it didn’t have a rep requirement they were spammed).

The next question would be “to what extent should Stack Overflow (the site) be redirecting people to other sites?” Consider the “if you don’t like {system}, to what extent does {system} need to be responsible for directing you to somewhere else?” Should Reddit be redirecting all its malcontents to Lemmy? Should Lemmy (the org / devs) be sending people who don’t like how its run to KBin or Mastodon?

Two things there - first, is it better to say “your question isn’t a good fit here, try this other place that accepts that type of question” (note that even if neutral wording is used people will interpret it as “your question sucks, go ask over there where its marginally better than Yahoo Answers”) and would the other place appreciate getting the poorly formed newbie questions at the rate that Stack Overflow gets them? Could any discord handle the hundreds of newbie questions that SO gets daily? How much of a disservice would Stack Overflow be doing by redirecting those questions to someone else?


This appears to be a deeper and structural problem - they’ve never made a profit since they’ve started reporting their data after going public.

https://www.wolframalpha.com/input?i=NYSE%3AU+revenue%2C+net+income


The Codeless Code : Monolith http://thecodelesscode.com/case/143

On the topic of Monads: http://thecodelesscode.com/topics/monads (though the other one really needs you to read the rest of the site to get a better understanding of the monk Djishin and the Java Master Banzen … and remember there’s css hidden topics along with image mouse overs… in case you read the first hundred and then realize that there’s more to each one and have to go back and read them all again).


Attracting volunteers might be easier in desirable languages, will certainly be easier in ten years time say than Rails, Play, or Laravel might be. CV fluffing from OS contributions is a fantastic way to make yourself more marketable, and who doesn’t want TS/Rust on that CV?

For much of its development life, Lemmy devs weren’t soliciting (or encouraging) help from volunteers. https://github.com/LemmyNet/lemmy/graphs/contributors shows it to be a very “just two person with no one else” project.

Compare older activity to newer activity


Btw, there’s !main@rblind.com which is the migration of /r/blind to Lemmy.


Editor Config ( https://editorconfig.org ) is one of the first files I check into a repo and is there to make sure that everything is done consistently between all editors - IntelliJ, Notepad++, VS Code…


Talking with a rubyist:

  • 3?"bar":"qux" only has the ternary expression as a valid parsing of ?
  • foo?"bar":"qux" fails because foo may be a method and foo? is also a valid method identifier.
  • foo ?"bar":"qux" fails because ?" uses the ? unary operator that makes the next character a string. So ?"bar" becomes the string " followed by what looks to be an identifier.

And so…

  • ? character is a valid part of an identifier (but only at the end of a method name)
  • ?x unary operator to create a String from a character
  • expr?expr:expr ternary operator

And so…

puts "".empty? ? ?t:?f

But why would 3?"stuff":"empty" work and foo?"stuff":"empty" not work?

Syntactically significant whitespace is a nightmare to deal with.


In Ruby, foo?a:b parses differently than foo ?a:b and the first one isn’t parsed a ternary expression.

Consider the following code snippets and execution:

$ cat f1.rb 
puts "foo".length
puts 3?"stuff":"empty"
$ ruby f1.rb 
3
stuff

Nothing surprising there. Let’s replace that 3 with the call that returns 3.

$ cat f2.rb 
puts "foo".length?"stuff":"empty"
$ ruby f2.rb 
f2.rb:1:in `': undefined method `length?' for "foo":String (NoMethodError)
Did you mean?  length

But that parsed as "foo".length? and was looking for a method call because ruby methods can end in ? but couldn’t find the method so returned an error.

Let’s put a space in there so that its the length method again without trying to become length?

$ cat f3.rb
puts "foo".length ?"stuff":"empty"
$ ruby f3.rb 
f3.rb:1: syntax error, unexpected tIDENTIFIER, expecting end-of-input
puts "foo".length ?"stuff":"empty"

It’s apparently expecting something with the "stuff". Lets put in more spaces.

$ cat f4.rb
puts "foo".length ? "stuff" : "empty"
$ ruby f4.rb 
stuff

And this returned what was expected… but this needed a lot more spaces in a lot more places than the puts 3?"stuff":"empty" that worked in the first call.


Apple’s business plan isn’t to sell your data to advertisers but rather to sell you (presumably) high quality items that people are willing to pay a premium for.

To Apple, having your data is a liability rather than an asset and thus they’d like to have as little of it as possible yet still being able to offer you the Apple experience.


Task Warrior ( https://taskwarrior.org ) and syncing it to https://inthe.am

Task Warrior is open source ( MIT license https://github.com/GothenburgBitFactory/taskwarrior.git ) as is InThe AM (AGPL https://github.com/coddingtonbear/inthe.am ) and can be spun up without too much difficulty for self hosted options.


There’s a pair of videos from People Make Games that digs into it:


Philosophers haven’t come up with a good way to determine if you were the only conscious being in a universe populated with zombies or not. See also https://en.wikipedia.org/wiki/Philosophical_zombie

I’d also suggest going through https://www.3blue1brown.com/topics/neural-networks to understand some of the concepts behind it. The ‘regurgitating data’ isn’t entirely accurate (and that statement is likely to evoke some debate). The amount of source data is compressed far too much for it to be returned largely intact (see also https://en.wikipedia.org/wiki/Kolmogorov_complexity for some bit on the information theory)… though yes, there are some situations where specific passages (or images) get memorized.


AI can be an amazing tool in healthcare, as a double check. For example, assume a doctor thinks you have something. Right now you could have …

Expert systems have been available as part of medical diagnoses for decades. I remember ahem finding one for the Apple ][+ back in the day.

https://pubmed.ncbi.nlm.nih.gov/2663006/ was written back in '89 and you can easily find others going further back.

AI in medical diagnostic capabilities is nothing new or surprising.


ChatGPT works off of a fixed size possible maximum prompt. This was originally about 4000 tokens. A token is about 4 characters or one short word, but its not quite that… https://platform.openai.com/tokenizer

“Tell me a story about a wizard” is 7 tokens. And so ChatGPT generates some text to tell you a story. That story is say, 1000 tokens long. You then ask it to “Tell me more of the story, and make sure you include a dinosaur.” (15 tokens). And you get another 1000 tokens. And repeat this twice more. At this point, the length of the entire chat history is about 4000 tokens.

ChatGPT then internally asks itself to summarize the entire 4000 token history into 500 tokens. Some of the simpler models can do this quite quickly - though they are imperfect. The thing is at point you’ve got 500 tokens which are a summarization of the 4 acts and of the story and the prompts that were used to generate it - but that’s lossy.

As you continue the conversation more and more, the summarizations become more and more lossy and the chat session will “forget” things.


I was not aware there have been leaks.

The big one was when histories (the prompts that other people used) were accidentally made visible to other users.

https://futurism.com/the-byte/chatgpt-bug-chat-histories-email-phone

https://www.theverge.com/2023/3/21/23649806/chatgpt-chat-histories-bug-exposed-disabled-outage

https://openai.com/blog/march-20-chatgpt-outage

Also consider all the ‘ChatGPT extensions’ that people have written for chrome ( https://chrome.google.com/webstore/search/ChatGPT ) and not infrequent occurrence when someone has an extension with a few tens of thousands of users which gets sold and converted into malware or snooping software ( https://www.theregister.com/2023/08/11/chrome_extension_developer_pressure/ ).