Hey, since I'm sharing some silly code today, how about something in COBOL? IDENTIFICATION DIVISION.
PROGRAM-ID. RIDICULOUS-SENTENCE-GENERATOR.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NOUNS.
05 NOUN OCCURS 5 TIMES INDEXED BY I.
10 NOUN-WORD PIC X(10) VALUE ' '.
01 ADJECTIVES.
05 ADJECTIVE OCCURS 5 TIMES INDEXED BY J.
10 ADJECTIVE-WORD PIC X(10) VALUE ' '.
01 VERBS.
05 VERB OCCURS 5 TIMES INDEXED BY K.
10 VERB-WORD PIC X(10) VALUE ' '.
01 ADVERBS.
05 ADVERB OCCURS 5 TIMES INDEXED BY L.
10 ADVERB-WORD PIC X(10) VALUE ' '.
01 RIDICULOUS-SENTENCE PIC X(80).
PROCEDURE DIVISION.
PERFORM INITIALIZE-WORDS
PERFORM GENERATE-SENTENCE
DISPLAY RIDICULOUS-SENTENCE
STOP RUN.
INITIALIZE-WORDS.
MOVE 'cat' TO NOUN-WORD(1)
MOVE 'banana' TO NOUN-WORD(2)
MOVE 'elephant' TO NOUN-WORD(3)
MOVE 'spoon' TO NOUN-WORD(4)
MOVE 'zombie' TO NOUN-WORD(5)
MOVE 'green' TO ADJECTIVE-WORD(1)
MOVE 'crazy' TO ADJECTIVE-WORD(2)
MOVE 'giant' TO ADJECTIVE-WORD(3)
MOVE 'silly' TO ADJECTIVE-WORD(4)
MOVE 'sparkling' TO ADJECTIVE-WORD(5)
MOVE 'jumps' TO VERB-WORD(1)
MOVE 'eats' TO VERB-WORD(2)
MOVE 'sleeps' TO VERB-WORD(3)
MOVE 'laughs' TO VERB-WORD(4)
MOVE 'dances' TO VERB-WORD(5)
MOVE 'quickly' TO ADVERB-WORD(1)
MOVE 'happily' TO ADVERB-WORD(2)
MOVE 'slowly' TO ADVERB-WORD(3)
MOVE 'loudly' TO ADVERB-WORD(4)
MOVE 'strangely' TO ADVERB-WORD(5).
GENERATE-SENTENCE.
MOVE SPACE TO RIDICULOUS-SENTENCE
PERFORM RANDOMIZE-WORDS
MOVE NOUN-WORD(I) TO RIDICULOUS-SENTENCE
ADD 10 TO I
MOVE ADJECTIVE-WORD(J) TO RIDICULOUS-SENTENCE
ADD 10 TO J
MOVE VERB-WORD(K) TO RIDICULOUS-SENTENCE
ADD 10 TO K
MOVE ADVERB-WORD(L) TO RIDICULOUS-SENTENCE
ADD 10 TO L.
RANDOMIZE-WORDS.
COMPUTE I = FUNCTION RANDOM(5) + 1
COMPUTE J = FUNCTION RANDOM(5) + 1
COMPUTE K = FUNCTION RANDOM(5) + 1
COMPUTE L = FUNCTION RANDOM(5) + 1. Grace Hopper would be proud 😊
Coding is software development. But not all software development is coding.
Everyone who's worked on a software development team knows this.
Before you code, you have to model out what it is that will be coded. You have to define what it is the software will do.
When you arrive at one screen, what happens next? How do you expect humans to behave when they see something in your app? Will they even behave in ways you intend?
And funny enough, it's people who code that often can't answer these questions.
It's not because coders don't know but it's because they've been operating under a certain mental paradigm for so long, it's hard to get them out of it. That's entirely expected because what makes coders good at what they do is that they follow their own logic for how to execute a function.
But where product dev, UI/UX, QA, documentation, and bug testing come into play is in trying to understand additional paradigms. Namely, what happens when someone does something unexpected? How do we account for the unexpected?
That's all software development. Every experienced coder I talk to knows this They are more than happy to have that discussion, and are incredibly grateful that another pair of eyeballs considers this for them.
For 20 years, I've worked in the software industry. Rarely do I code.
The coding I've done is somewhat laughable too. The languages I know are BASIC, HTML, CSS, JavaScript, Markdown, and a bunch of stuff nobody cares about.
For example, here's a LOLCODE demo: HOW IZ I fetch_rss_feed YR feed_url
I HAS A result
I HAS A feed_json
BTW Fetch the RSS feed using HTTP GET request
result R "HTTP GET" feed_url MKAY
BTW Parse the RSS feed into JSON
feed_json R "PARSE RSS" result MKAY
BTW Create an ActivityStream object
I HAS A activity_stream
activity_stream R {"@context": "https://www.w3.org/ns/activitystreams", "type": "OrderedCollection", "items": []} MKAY
BTW Convert RSS items to ActivityStream items
I IZ 0
IM IN YR item LOOP
I HAS A item
item R feed_json["items"][I] MKAY
BTW Extract relevant data from RSS item
I HAS A title
I HAS A content
I HAS A published
title R item["title"] MKAY
content R item["content"] MKAY
published R item["published"] MKAY
BTW Create an ActivityStream item
I HAS A activity_item
activity_item R {"@context": "https://www.w3.org/ns/activitystreams", "type": "Article", "name": title, "content": content, "published": published} MKAY
BTW Add the ActivityStream item to the collection
activity_stream["items"] R activity_stream["items"] AN activity_item MKAY
I R I SUM OF 1 AN 1 MKAY
IM OUTTA YR item LOOP
BTW Return the ActivityStream object
FOUND YR activity_stream MKAY
IF U SAY SO
BTW Example usage:
I HAS A feed_url
feed_url R "https://example.com/rss_feed.xml" MKAY
I HAS A activity_stream
activity_stream R fetch_rss_feed(feed_url) MKAY
BTW Print the ActivityStream JSON
VISIBLE activity_stream None of this is useful. It's actually quite frivolous. Any "serious" coder reading this is probably rolling their eyes.
I've never coded professionally. I only do it for fun.
The only reason I started coding is because I couldn't afford games for my Commodore 64, and I thought that if I could make them up, I'd have more games. This was entirely my motivation for learning BASIC.
Coding has given me insight into how apps are made, and whether or not something is doable. And that has helped me in my work.
I appreciate coding, but it certainly isn't my specialty.
Didn't think this would happen, but #Lemmy is now the 2nd most popular server software on the #Fediverse and is on the verge of cracking 400,000 accounts.
I'm actually shocked that it blew past #Misskey so quickly because the Misskey migration took three months to hit 300,000 accounts.
With all the drama happening elsewhere on the Fediverse, it important to remember that this is the biggest growth we've experienced in six months!
Yet another question people are asking me: "How can I, a common person, help hasten the demise of #Meta through #ActivityPub?"
Again, I want to re-emphasize this. #Fediblock is not an all-purpose tool. It's useful as a hammer. But in this scenario, we don't just need a hammer. We need drills, pliers, saws, and blowtorches.
That said, we must protect communities that choose to defederate from Meta. Which means that if those servers don't want to receive messages from any Meta-owned services, we must not only be respectful of that, we should make damn sure that those servers are quarantined from Meta. So much of the success of fighting Meta will require safe spaces from Meta.
The next thing we need is lots and lots of nodes. Currently, we only have ~25,000 nodes on the Fediverse but we need more. Preferably, these nodes should be small, agile, and well-moderated. If you have the finances and/or skill to run a node, it's important that you do so. To compete with Meta, we need to build scale -- and the easiest way to build scale is by adding more nodes to the Fediverse.
What will also be key is lobby servers. These will be servers specifically set up for migrants from Meta-owned services to help onboard them towards the rest of the Fediverse. To run such a lobby server, they need to be welcoming, moderated well, and free of the elitists and gatekeepers that poison so much of the Fediverse currently.
How to get people from Meta to try out the rest of the Fediverse? We need people willing to be ambassadors on #P92 who are ready and willing to evangelize the rest of the Fediverse. Folks like @tchambers@indieweb.social are very good at this on Twitter, and I have no doubt that we can do the same with P92. Except this time we'll have the benefit of federation already happening 😉
Now if there's one thing I've learned about the growth of the Fediverse it's that bad corporate decisions pay dividends. We've already experienced waves of migration from Tumblr, Twitter, and Reddit. And I have no doubt that it's only a matter of time before Meta makes another corporate mistake -- as they tend to do.
In which case, we need to strike fast. When another Cambridge Analytica happens, we need to remind everyone on Meta about the lobby servers that are on standby, and ready to take them on. Unlike previous migrations, let's not be unprepared for this. Let's be especially prepared since Meta plans to join the Fediverse.
Finally, we need more devs. Specifically, we need devs willing to build innovative server and client software that takes aim at Meta. And to do that, we need to support the devs that currently exist -- show evergreen devs pondering whether they should invest here that we, as a community, are appreciative of our current devs.
If you like #Mastodon, #Calckey, #Kbin, #Friendica, etc., it's important that you open up your hearts as well as your wallets and fund the next stage of Fediverse development.
This will take a lot of work. But if you want to fight Meta, challenge their dominance of social media, this is what must be done.
Personally, I'm hyped about the future of the Fediverse -- regardless of whether Meta eventually lives to tell the tale.
I appreciate the patience of everyone who’s waited for calckey.social to come back online. This has been a difficult few days. We were already discussing much needed changes, and then the mother of all outages happened.
People need to consider this from an Asian perspective.
Traditionally, one of the most popular countries in terms of Mastodon usage has been Japan. But this is changing fast.
Between January to now, Misskey alone jumped from 75,000 to 325,000 accounts.
In terms of accounts, misskey.io has now overtaken mastodon.online, one of Mastodon's flagship servers run by Mastodon gGmbh itself.
In terms of posts sent per month, not only has misskey.io overtaken mastodon.social, it's got double the volume. Which means that despite mastodon.social having 6x more accounts, misskey.io sends 2x more posts that mastodon.social.
We can clearly see that much of #ActivityPub has moved to *key apps.
The federation-info only lists 3,470 Calckey users and does not count the biggest Calckey server, which is calckey.social. And calckey.social has over 2,000 accounts. That's a pretty big server to miss.
And now let's consider fediverse.observer. They report a drop in Calckey users despite there being a big increase in sign-ups for May on calckey.social alone. Even more befuddling, they report 0 comments from Calckey. This is not possible. I'm seeing comments on Calckey daily.
https://fedidb.org reports an accurate count, which is that Calckey has over 9,000 accounts spread over 315 servers.
Yes, there's slowdown in #Mastodon sign-ups. My conjecture for why it's happening:
1. #Bluesky became the hotness and sucked the oxygen out of the room 2. People are awaiting #Barcelona to see what #Meta has to offer 3. There hasn't been a big Mastodon release in a long, long time -- which dulls curiosity about the product 4. Growth of #ActivityPub has moved more towards *key apps (#Misskey, #Calckey, etc.)