Searching txt.sour.is

Twts matching #AD
Sort by: Newest, Oldest, Most Relevant

Top Stories: iOS 18 Beta Features, Apple Intelligence for Vision Pro, and More
With the calendar flipping over to July, public betas of iOS 18 and related operating system updates are right around the corner, so we’re continuing to take a look at what changes and features users can expect to see.

Image

Other Apple news and rumors this week included several iconic devices being added to Apple’s list of “vintage” products, a … ⌘ Read more

⤋ Read More

iCloud ‘Keep Downloaded’ Option Included in iOS 18 and macOS Sequoia
In iOS 18, iPadOS 18, and macOS Sequoia, Apple has added a new “Keep Downloaded” option when browsing items in iCloud, allowing users to designate which files and folders should remain permanently available locally on their device.

Image

In previous versions of iOS and macOS, users had limited control over which files and folders were … ⌘ Read more

⤋ Read More

1Password Launches Recovery Codes and Simplified Sign-In Process
Popular password management app 1Password today announced the launch of two new features that are designed to make the app more user friendly. 1Password is improving the sign-in process on new devices and adding the ability to recover an account when a master password and secret key are lost.

With recovery codes, 1Password is providing a failsafe that will let cust … ⌘ Read more

⤋ Read More

iOS 18 Adds Pop-Out Bezel Animation When Pressing iPhone Buttons
iOS 18 includes a small but interesting change for the buttons on the iPhone, adding more of a visual element when changing volume, activating the Action button, or locking the screen. When you press an ‌iPhone‌ button in ‌iOS 18‌, the display bezel bulges outward slightly.

![](https://images.macrumors.com/article-new/2024/06/ios-18-button-bulge.j … ⌘ Read more

⤋ Read More

Apple’s Latest Macs and iPads Have Hidden Smart Home Thread Radio
Apple has added an unannounced Thread radio in most of the Macs and iPads that have been released in the last eight months, according to a report from The Verge. Thread is not listed as a feature in the specifications for the devices released since September 2023, but FCC reports suggest that a Thread radio is indeed included.

![](https://images.macrumors. … ⌘ Read more

⤋ Read More

What the Golf on Apple Vision Pro Gains New Levels
Popular Apple Arcade game What the Golf? for the Vision Pro is being updated with a slew of new content, with Apple adding 15 new areas with more than 100 spatial levels and 200 challenges to complete.

What the Golf? is, as the name suggests, a mini golf game aimed at people who hate golf. The goal is to get the ball to the hole, and every hole has a twist with different game mechanics to overcome.
… ⌘ Read more

⤋ Read More

New iPads Get Redesigned Magnets for More Smart Folio Viewing Angles
Apple has new Smart Folio cases for its latest M4 iPad Pro and M2 iPad Air models that boast a wider range of viewing angles, and thanks to Marques Brownlee, we now know how it’s done.

Image

With the help of some magnet paper, MKBHD reveals that Apple has added bigger, more cubic magnets to the M4 iP … ⌘ Read more

⤋ Read More
In-reply-to » @bendwr and I discussing something along the lines of: Media I.e: How to deal with or reduce noise from legacy feeds.

The wording can be more subtle like “This feed have not seen much activity within the last year” and maybe adding a UI like I did in timeline showing time ago for all feeds

Image

I agree that it good to clean up the Mastodon re-feeds, but it should also be okay for anyone to spin up a twtxt.txt just for syndicating they stuff from blog or what ever.

The “not receiving replies” could partly be fixed by implementing a working webmentions for twtxt.txt

⤋ Read More

Open-Source 4WD AI Robot Kit Compatible with Raspberry Pi Models 4 and 5
The RaspRover by Waveshare is an open-source four-wheel-drive robotic platform constructed with an all-aluminum body. Designed to accommodate technical enthusiasts and developers, it features a dual-controller system and the option of adding a pan-tilt module for camera integration. The main host controller utilizes either a Raspberry Pi 4B or Raspberry Pi 5, handling AI vision […] ⌘ Read more

⤋ Read More
In-reply-to » Yeah, the lack of comments makes regular JSON not a good configuration format in my view. Also, putting all keys in quotes and the use of commas is annoying. The big upside is that's in lots of standard libraries.

@lyse@lyse.isobeef.org its a hierarchy key value format. I designed it for the network peering tools i use.. I can grant access to different parts of the tree to other users.. kinda like directory permissions. a basic example of the format is:

@namespace
# multi
# line
# comment
root :value

# example space comment
@namespace.name space-tag 

# attribute comments
attribute attr-tag  :value for attribute

# attribute with multiple 
# lines of values
foo :bar
      :bin
      :baz

repeated :value1
repeated :value2

each @ starts the definition of a namespace kinda like [name] in ini format. It can have comments that show up before. then each attribute is key :value and can have their own # comment lines.
Values can be multi line.. and also repeated..

the namespaces and values can also have little meta data tags added to them.

the service can define webhooks/mqtt topics to be notified when the configs are updated. That way it can deploy the changes out when they are updated.

⤋ Read More

‘Wish we had two of him’: Hawks’ big dilemma
Hawthorn captain James Sicily would love to have kept his seasoned defensive partner Blake Hardwick but says the Hawks’ added forward firepower will change their game style for the better in 2024. ⌘ Read more

⤋ Read More

How to Disable Content Blockers for Specific Sites in Safari for Mac
Some Mac users have content blockers installed into Safari, which are usually designed to prevent a part of a webpage from loading, things like preventing a remote javascript that tracks cookies or loads ads, or something that places a cookie into your browser, etc. The very nature of how content blockers work can cause interference … [Read More](https://osxdaily.com/2024/02/23/how-to-disable-cont … ⌘ Read more

⤋ Read More

** In reply to: Scaling accessibility beyond compliance at VA.gov through community and culture - Ad Hoc **
In reply to: Scaling accessibility beyond compliance at VA.gov through community and culture - Ad Hoc

If“accessibility as compliance” is a staircase where outcomes are restricted to the normative limitations of the law, Accessibility Beyond Compliance is an exponential curve. It isn’t limited to fulfilling legal constraints, and we can use it to explore, understand, and b … ⌘ Read more

⤋ Read More

Keyboard layouts
I’ve updated my article about keyboard layouts with XKB after 13
years!

https://hack.org/mc/writings/xkb.html

I’ve edited it so the focus is on the layouts if you just want to grab
them and don’t need any handholding. Also added Thinkpad layouts along
with the original HHKB layouts.

It now also includes instructions for use with the River and Sway
Wayland compositors as well as X11.

I will probably update it soon with some images of different Thinkpad
keyboards. ⌘ Read more

⤋ Read More

Twtxt spec enhancement proposal thread 🧵

Adding attributes to individual twts similar to adding feed attributes in the heading comments.

https://git.mills.io/yarnsocial/go-lextwt/pulls/17

The basic use case would be for multilingual feeds where there is a default language and some twts will be written a different language.

As seen in the wild: https://eapl.mx/twtxt.txt

The attributes are formatted as [key=value]

They can show up in the twt anywhere it is not enclosed by another element such as codeblock or part of a markdown link.

⤋ Read More

New Apple Commercial: Hello Apple Vision Pro
Apple is running a commercial for Apple Vision Pro that shows off the devices appearance when wearing, and the interface the wearer sees overlayed onto the world. The ad shows people interacting with various spatial computing interfaces and apps, from general computing tasks, to watching movies, making FaceTime video calls, interacting with panoramic photos, all … [Read More](https://osxdaily.com/2024/01/29/new-apple-commercial-hello-apple-visio … ⌘ Read more

⤋ Read More

Beta 1 of iOS 17.4 & iPadOS 17.4 Available for Testing
Apple has released the first beta versions of iOS 17.4 and iPadOS 17.4 to users enrolled in the developer beta testing programs for iPhone and iPad system software. There are some significant changes for European users arriving in betas for iOS 17.4, including changes to the App Store, and adding the ability to install apps … [Read More](https://osxdaily.com/2024/01/26/beta-1-of-ios-17-4-ipados-17-4-available-for-testing/ … ⌘ Read more

⤋ Read More

Google Chrome Gains AI Features Including a Writing Helper
Google is adding new AI features to Chrome, including tools to organize browser tabs, customize themes, and assist users with writing online content such as reviews and forum posts.

The writing helper is similar to an AI-powered feature already offered in Google’s experimental search experience, SGE, which helps users draft emails in various tones and lengths. W … ⌘ Read more

⤋ Read More

Where is Health App for Mac? Can I View My Health Data on Mac?
Some Mac users are interested in viewing their Health data, workout data, activity and fitness data, all that is gathered from Apple Watch and iPhone, on their Mac. Recently, Apple added the Health app to iPad, so where is Health app for Mac? This should be easy, right? One might think so, but not so … Read MoreRead more

⤋ Read More
In-reply-to » Bought some more fencing for the garden, need to make it a bit higher some places, so that our husky can spend more time there, a couple of places has been a bit flimsy, time to fix it :) If he really wanted - he could easily get over, but he just likes to stay in the garden, and does never mess with the fence (wire mesh fence, wooden poles in the ground). Also have a long chain as well (that's as long as the garden) but he does not want to have that one one (and it's under 1.5m of snow now). If he ever jumps over or digs himself out I'll get one of long wires that goes overhead that I can attach one of those pulleys \ leash too, that'll be better then a long chain.

@lyse@lyse.isobeef.org , we’re just adding more fence on top, the top of fence is over the snow, and the poles are higher, so I can work with it regardless of snow :) i just ziptie the extra fence, so easy to work with

⤋ Read More

4 Great Free Menubar Apps for Mac You Should Check Out
One way you can improve your Mac experience is by adding some handy tools and items to your Mac menubar item. And, coincidentally, some of the best free utilities available for Mac, are also menubar items. We’re going to cover four of the best free menubar apps for Mac, which are sure to improve not … Read MoreRead more

⤋ Read More

Affordable $12.99 ESP32-S3 Gizmo with Compact USB Flash Drive Form-Factor
The Waveshare ESP32-S3 GEEK, designed as a compact and versatile embedded device, caters to both developers and hobbyists with its USB Flash drive form factor. Enhancing its functionality, this innovative gadget features a small yet interactive 1.14-inch LCD display, adding a visual component to its array of capabilities. At its core, the ESP32-S3 GEEK Board […] ⌘ Read more

⤋ Read More

Default setup now includes scheduled scans and supports all languages covered by CodeQL
We’ve added new improvements to default setup, including automatically scheduling scans on repositories and support for all CodeQL covered languages.

The post [Default setup now includes scheduled scans and supports all languages covered by CodeQL](https://github.blog/2023-12-13-default-setup-now-includes-scheduled-scans-and-supports-all-languages-covered-by-cod … ⌘ Read more

⤋ Read More

How to Add Widgets to Stacks on iPhone & iPad Home Screen
If you have an iPhone or iPad you may already be familiar with adding widgets to the Home Screen of iOS and iPadOS, but a lesser known trick is that you can create a stack of widgets that you can flip through to see different widgets and data. How to Add Widgets to Stacks on … Read MoreRead more

⤋ Read More

How to Stop Instacart Ads Promo Notifications on iPhone
The Instacart app for iPhone is convenient in that it allows you to shop for groceries and other items and have them delivered (if you live in a major city anyway), but like an ever-growing number of iPhone apps, it defaults to pelting you with annoying sales, promotional, and marketing notifications that are completely unrelated … [Read More](https://osxdaily.com/2023/11/26/how-to-stop-instacart-ads-promo-notifications-on … ⌘ Read more

⤋ Read More

Watch the Apple Holiday Ad for 2023: “Fuzzy Feelings”
Apple has debuted their annual holiday ad for the 2023 season, or “Holiday Film” as they refer to it on YouTube, perhaps because it’s nearly four minutes long. The 2023 Apple Holiday Film, titled “Fuzzy Feelings”, follows some of the typical modern media tropes, focusing on a younger woman who seems to strongly dislike her … [Read More](https://osxdaily.com/2023/11/21/watch-the-apple-holiday-ad-for-2023-fuzzy-feelings … ⌘ Read more

⤋ Read More
In-reply-to » @lyse I'm also on the e-mail wagon here. On http://darch.dk/timeline/conv/oe3howa I have added a "Comment via email" botten if uses are not logged in. This feature could be extend to other places in the various UIs. Like we already got the "Does not follow your" / "Follow you" on the profile page in yarnd, so this detection could be used to sugget the user to email that person, when mentioning them.

I have added a webmention endpoint to https://darch.dk using https://webmention.io - let see if it work from neotxt.dk to @sorenpeter@darch.dk

⤋ Read More
In-reply-to » I've been thinking of how to notify someone else that you've replied to their twts.

@lyse@lyse.isobeef.org I’m also on the e-mail wagon here. On http://darch.dk/timeline/conv/oe3howa I have added a “Comment via email” botten if uses are not logged in. This feature could be extend to other places in the various UIs. Like we already got the “Does not follow your” / “Follow you” on the profile page in yarnd, so this detection could be used to sugget the user to email that person, when mentioning them.

⤋ Read More

How to Turn Off Uber Promo Notifications & Ads
Uber and Uber Eats are undeniably useful apps, allowing you to get a ride or have food delivered quickly and conveniently, right from your iPhone (or Android) either from the app or even from Siri. But one thing that is very annoying and obnoxious about Uber and Uber Eats is that the apps default to … Read MoreRead more

⤋ Read More

How to Make a Contact Poster on iPhone
Contact Posters are a feature added to iPhone with iOS 17 and newer, that allow you to choose a custom photo, poster, and name that appears when you call another iPhone user (or send them a message). These personalized Contact Posters can be a fun way to further customize your iPhone experience, and they’re unique … Read MoreRead more

⤋ Read More

So Youtube rea really cracking down on Ad-blockers. The new popup is a warning saying you can watch 3 videos before you can watch no more. Not sure for how long. I guess my options are a) wait for the ad-blockers to catch-up b) pay for Youtube c) Stop using Youtube.

I think I’m going with c) Stop using Youtube.

⤋ Read More

Watch YouTube Without Ads with FreeTube for Mac, Windows, Linux
YouTube is the webs most popular video site by a long shot, practically serving as a television replacement for millions. But as any Youtube viewer knows, the ads can be very aggressive and there are times where you’ll have to watch a 30 second ad before you can watch one minute of content, which is … Read MoreRead more

⤋ Read More
In-reply-to » Oh okay, so Youtube is cracking down on "Ad Blockers". Media Rightio. 🤔 And paying for Youtube Premium costs $14/month?! 🤯 Media Get fucked 🤣 I guess I won't be using Youtube anymore. #Youtube #Ads #Premium #Suck

@prologic@twtxt.net I have seen these screen shots. But have not yet seen them in actuality. I use ublockOrigin. Maybe it gets these too unlike adblock.

For android I have revanced.. The only place I get ads is on TV. I haven’t found a replacement there.

⤋ Read More

5 iCloud Security Features You Should Be Using
iCloud is packed full of features that make using devices in the Apple ecosystem super easy and fluid, but there are some security features and capabilities offered by iCloud that literally everyone should be using because of their added benefits to security, convenience, and capabilities. While it’s generally a good idea to basically use every … Read MoreRead more

⤋ Read More

How to Stop Steam Pop-Up Ads on Launch
Steam, the popular gaming platform for Mac, Windows, and Linux, is great in that it offers a ton of really fun popular games, but it’s not without its annoyances. One of the most frustrating Steam annoyances are its popup ads on startup, or what it calls “Steam News”, that slowly launch in a new pop-up … Read MoreRead more

⤋ Read More

Li-Fi, light-based networking standard released
Today, the Institute of Electrical and Electronics Engineers (IEEE) has added 802.11bb as a standard for light-based wireless communications. The publishing of the standard has been welcomed by global Li-Fi businesses, as it will help speed the rollout and adoption of the  data-transmission technology standard. Where Li-Fi shines (pun intended) is not just in its purported speeds as fast as 224 GB/s. Fraunhofer’s Dominic Schulz points ou … ⌘ Read more

⤋ Read More

I had issues with the current activitypub implementation here on yarn (people could not follow me properly) and I cannot see their posts and stuff like that, so I decided to host activitypub separate from here.
So I will turn it off here - and use this site has as before - but without activitypub turned on, and then do all my activitypub stuff over on that other service.
I can be added through: @stigatle@activitypub.stigatle.no
This does not affect the development of the desktop client, I will still work on that, I’m here to stay :) I just need a way to follow the others properly on the other services..

I did not want to join mastodon, and I did not want something complex to host, so I decided to set up Snac2 - https://codeberg.org/grunfink/snac2 . It’s super lightweight, easy to set up, and worked out of the box for what I was looking for.

⤋ Read More

This whole twitter thing got me motivated to code on the yarn desktop client.
Currently working on adding support for links in the post, so that you can open and view the links that are in the statuses.

⤋ Read More

An official FBI document dated January 2021, obtained by the American association “Property of People” through the Freedom of Information Act.

This document summarizes the possibilities for legal access to data from nine instant messaging services: iMessage, Line, Signal, Telegram, Threema, Viber, WeChat, WhatsApp and Wickr. For each software, different judicial methods are explored, such as subpoena, search warrant, active collection of communications metadata (“Pen Register”) or connection data retention law (“18 USC§2703”). Here, in essence, is the information the FBI says it can retrieve:

  • Apple iMessage: basic subscriber data; in the case of an iPhone user, investigators may be able to get their hands on message content if the user uses iCloud to synchronize iMessage messages or to back up data on their phone.

  • Line: account data (image, username, e-mail address, phone number, Line ID, creation date, usage data, etc.); if the user has not activated end-to-end encryption, investigators can retrieve the texts of exchanges over a seven-day period, but not other data (audio, video, images, location).

  • Signal: date and time of account creation and date of last connection.

  • Telegram: IP address and phone number for investigations into confirmed terrorists, otherwise nothing.

  • Threema: cryptographic fingerprint of phone number and e-mail address, push service tokens if used, public key, account creation date, last connection date.

  • Viber: account data and IP address used to create the account; investigators can also access message history (date, time, source, destination).

  • WeChat: basic data such as name, phone number, e-mail and IP address, but only for non-Chinese users.

  • WhatsApp: the targeted person’s basic data, address book and contacts who have the targeted person in their address book; it is possible to collect message metadata in real time (“Pen Register”); message content can be retrieved via iCloud backups.

  • Wickr: Date and time of account creation, types of terminal on which the application is installed, date of last connection, number of messages exchanged, external identifiers associated with the account (e-mail addresses, telephone numbers), avatar image, data linked to adding or deleting.

TL;DR Signal is the messaging system that provides the least information to investigators.

⤋ Read More
In-reply-to » The code for the desktop client is now public here: https://github.com/stig-atle/YarnDesktopClient , I will create tickets for the known things I need to fix and such later today.

@lyse@lyse.isobeef.org @prologic@twtxt.net it seems like the ssl verification works now, I enabled it - but also added another option as well that I now saw in the docs, and now it did not fail on my end (which it did before). I will add a ‘enable ssl verification’ checkbox (checked by default) so that those who do not need or want it for testing and such can disable it if they want.

⤋ Read More
In-reply-to » 💡 Quick 'n Dirty prototype Yarn.social protocol/spec:

I’m not super a fan of using json. I feel we could still use text as the medium. Maybe a modified version to fix any weakness.

What if instead of signing each twt individually we generated a merkle tree using the twt hashes? Then a signature of the root hash. This would ensure the full stream of twts are intact with a minimal overhead. With the added bonus of helping clients identify missing twts when syncing/gossiping.

Have two endpoints. One as the webfinger to link profile details and avatar like you posted. And the signature for the merkleroot twt. And the other a pageable stream of twts. Or individual twts/merkle branch to incrementally access twt feeds.

⤋ Read More

The GTK gui client is coming along nicely.
Added avatar support, and reply button.
It’s pretty obvious that the GUI does not scale properly yet, but I’ll worry about that once the last feature is added. Now I’m only missing the ‘post status’ gui, I need to think a bit about how I want that implemented.
Anyways - here’s the latest screenshot..

Image

⤋ Read More
In-reply-to » 👋 Hey y'all yarners 🤗 -- @darch and I have been discussing in our Weekly Yarn.social call (still ongoing... come join us! 🙏) about the experimental Yarn.social <-> Activity Pub integration/bridge I've been working on... And mostly whether it's even a good idea at al, and if we should continue or not?

And mostly whether it’s even a good idea at al, and if we should continue or not?

I think that activitypub in yarn is a great feature! And also one of the easier ones to set up and get going.
And as I said last week - I think it’s a important features - and will drive adoption.
It is optional as well - so if one does not want it - just not turn that feature on.

I personally was missing the fact that I could not easily follow others before you added activitypub, but now I can choose to follow them, which is great.

⤋ Read More

How to automate your dev environment with dev containers and GitHub Codespaces
GitHub Codespaces enables you to start coding faster when coupled with dev containers. Learn how to automate a portion of your development environment by adding a dev container to an open source project using GitHub Codespaces. ⌘ Read more

⤋ Read More
In-reply-to » Test from ftlk in rust.

Found what I needed finally.. I now created a struct with this crate:
https://crates.io/crates/arraystring
That works for what I need, damn this has been annoying to find a solution too.
I can now store the strings I need in the struct, and use that in all the functions.
Also works with the GUI callback stuff, so it solves the Issue I’ve been having.
I have now added gui elements for server url, username, password.
And functions for fetching the timeline with the supplied info.
So now I can finally start working on the timeline GUI.

It’s been in a way easier then expected, but also somethings are a bit tricky.
I could easily have done the same in c++ much faster, but the whole point here was to learn more rust.
And for that it’s been going well.

⤋ Read More

The company I work work added a hybrid solution after covid restrictions lifted, we can work x amount of days a week from home.
Which was a great solution. Covid proved that everyone could work from home and still meet the project demands.
Personally I prefer the office, even if I have to be there alone (I worked for months alone there). But I also like the flexibility when I need it.

⤋ Read More

** week notes **
I’ve been experimenting. I’ve been concocting a recipe for vegan kugel, and rediscovering little features and edges of my website I’d forgotten I baked in. Like chocolate chips hidden in an oatmeal raisin cookie.

One chip most recently re-discovered: support for per-page custom styles?! All I gotta do is include an optional bit of meta data, bespoke-css, that points to a style sheet. I may play with this feature more. I do love myself some css. I can tell exactly when in my life I added this feature because th … ⌘ Read more

⤋ Read More

@stigatle@yarn.stigatle.no The reason I was thinking about a separate binary / project / service is to bring along our Twtxt friends like @movq@www.uninformativ.de and @lyse@lyse.isobeef.org and anyone else that self-hosted their Twtxt feed on their own. But this of course has added complexities like spinning up yanrd along with whatever this thing will be called configuring the two and connecting them. Fortunately however yarnd already does this with the feeds service and defaults to using feeds.twtxt.net – So we would so something similar there too. Further thoughts? 🤔

⤋ Read More
In-reply-to » On the topic of Programming Languages and Telemetry. I'm kind of curious... Do any of these programming language and their toolchains collect telemetry on their usage and effectively "spy" on your development?

@prologic@twtxt.net I get the worry of privacy. But I think there is some value in the data being collected. Do I think that Russ is up there scheming new ways to discover what packages you use in internal projects for targeting ads?? Probably not.

Go has always been driven by usage data. Look at modules. There was need for having repeatable builds so various package tool chains were made and evolved into what we have today. Generics took time and seeing pain points where they would provide value. They weren’t done just so it could be checked off on a box of features. Some languages seem to do that to the extreme.

Whenever changes are made to the language there are extensive searches across public modules for where the change might cause issues or could be improved with the change. The fs embed and strings.Cut come to mind.

I think its good that the language maintainers are using what metrics they have to guide where to focus time and energy. Some of the other languages could use it. So time and effort isn’t wasted in maintaining something that has little impact.

The economics of the “spying” are to improve the product and ecosystem. Is it “spying” when a municipality uses water usage metrics in neighborhoods to forecast need of new water projects? Or is it to discover your shower habits for nefarious reasons?

⤋ Read More

here’s a question: when do NNs generalize, and how hard? as in adding two specific numbers together vs. n-digit integer addition vs. addition in general vs. simple arithmetical operations

⤋ Read More

I don’t use twtxt anymore, but I keep accidentally adding logs to it because the command I use to use !say is so similar to the shortcut I use to make !zet messages. So, some of my logs make no sense because they are out of context.

⤋ Read More

I think I’m going to create some boilerplate code for !gestku that isn’t ad-hoc. I think I’m ready for this. Gestkus need less code because of how quickly I want to make them.

⤋ Read More
In-reply-to » @eaplmx This exact thing happened to me last night. I happened to be watching some random Youtube video, then this Ad came on, normally they are short 3-5s ads and I just tolerate them (sometimes) -- But this particular ad was 20+ mins long! Somehow I kept listening to it too, despite my daughter telling me I could hit that "Skip Ad" button.

@prologic@twtxt.net duud use an ad block on youtube.

⤋ Read More
In-reply-to » What do you feel when you listen to something you didn't believe it's true?

@eaplmx@twtxt.net This exact thing happened to me last night. I happened to be watching some random Youtube video, then this Ad came on, normally they are short 3-5s ads and I just tolerate them (sometimes) – But this particular ad was 20+ mins long! Somehow I kept listening to it too, despite my daughter telling me I could hit that “Skip Ad” button.

What was it you ask?! 😅 It was one of those testimonial-style, hyped up marketing videos of some product called “Gemini 2” (a currency trading app, allegedly), I kept watching all the way through, it was fantastic! 🤣

Then I went and read up on it! …

Short answer: TOTAL FUCKING SCAM 🤣

⤋ Read More

I was inclined to let this go so as not to stir anything up, but after some additional thought I’ve decided to call it out. This twt:

Image

is exactly the kind of ad hominem garbage I came to expect from Twitter™, and I’m disappointed to see it replicated here. Rummaging through someone’s background trying to find a “gotcha” argument to take credibility away from what a person is saying, instead of engaging the ideas directly, is what trolls and bad faith actors do. That’s what the twt above does (falsely, I might add–what’s being claimed is untrue).

If you take issue with something I’ve said, you can mute me, unfollow me, ignore me, use TamperMonkey to turn all my twts into gibberish, engage the ideas directly, etc etc etc. There are plenty of options to make what I said go away. Reading through my links, reading about my organization’s CEO’s background, and trying to use that against me somehow (after misinterpreting it no less)? Besides being unacceptable in a rational discussion, and besides being completely ineffective in stopping me from expressing whatever it is you didn’t like, it’s creepy. Don’t do that.

⤋ Read More
In-reply-to » Progress! so i have moved into working on aggregates. Which are a grouping of events that replayed on an object set the current state of the object. I came up with this little bit of generic wonder.

(cont.)

Just to give some context on some of the components around the code structure.. I wrote this up around an earlier version of aggregate code. This generic bit simplifies things by removing the need of the Crud functions for each aggregate.

Domain Objects

A domain object can be used as an aggregate by adding the event.AggregateRoot struct and finish implementing event.Aggregate. The AggregateRoot implements logic for adding events after they are either Raised by a command or Appended by the eventstore Load or service ApplyFn methods. It also tracks the uncommitted events that are saved using the eventstore Save method.

type User struct {
  Identity string ```json:"identity"`

  CreatedAt time.Time

  event.AggregateRoot
}

// StreamID for the aggregate when stored or loaded from ES.
func (a *User) StreamID() string {
	return "user-" + a.Identity
}
// ApplyEvent to the aggregate state.
func (a *User) ApplyEvent(lis ...event.Event) {
	for _, e := range lis {
		switch e := e.(type) {
		case *UserCreated:
			a.Identity = e.Identity
			a.CreatedAt = e.EventMeta().CreatedDate
        /* ... */
		}
	}
}
Events

Events are applied to the aggregate. They are defined by adding the event.Meta and implementing the getter/setters for event.Event

type UserCreated struct {
	eventMeta event.Meta

	Identity string
}

func (c *UserCreated) EventMeta() (m event.Meta) {
	if c != nil {
		m = c.eventMeta
	}
	return m
}
func (c *UserCreated) SetEventMeta(m event.Meta) {
	if c != nil {
		c.eventMeta = m
	}
}
Reading Events from EventStore

With a domain object that implements the event.Aggregate the event store client can load events and apply them using the Load(ctx, agg) method.

// GetUser populates an user from event store.
func (rw *User) GetUser(ctx context.Context, userID string) (*domain.User, error) {
	user := &domain.User{Identity: userID}

	err := rw.es.Load(ctx, user)
	if err != nil {
		if err != nil {
			if errors.Is(err, eventstore.ErrStreamNotFound) {
				return user, ErrNotFound
			}
			return user, err
		}
		return nil, err
	}
	return user, err
}
OnX Commands

An OnX command will validate the state of the domain object can have the command performed on it. If it can be applied it raises the event using event.Raise() Otherwise it returns an error.

// OnCreate raises an UserCreated event to create the user.
// Note: The handler will check that the user does not already exsist.
func (a *User) OnCreate(identity string) error {
    event.Raise(a, &UserCreated{Identity: identity})
    return nil
}

// OnScored will attempt to score a task.
// If the task is not in a Created state it will fail.
func (a *Task) OnScored(taskID string, score int64, attributes Attributes) error {
	if a.State != TaskStateCreated {
		return fmt.Errorf("task expected created, got %s", a.State)
	}
	event.Raise(a, &TaskScored{TaskID: taskID, Attributes: attributes, Score: score})
	return nil
}
Crud Operations for OnX Commands

The following functions in the aggregate service can be used to perform creation and updating of aggregates. The Update function will ensure the aggregate exists, where the Create is intended for non-existent aggregates. These can probably be combined into one function.

// Create is used when the stream does not yet exist.
func (rw *User) Create(
  ctx context.Context,
  identity string,
  fn func(*domain.User) error,
) (*domain.User, error) {
	session, err := rw.GetUser(ctx, identity)
	if err != nil && !errors.Is(err, ErrNotFound) {
		return nil, err
	}

	if err = fn(session); err != nil {
		return nil, err
	}

	_, err = rw.es.Save(ctx, session)

	return session, err
}

// Update is used when the stream already exists.
func (rw *User) Update(
  ctx context.Context,
  identity string,
  fn func(*domain.User) error,
) (*domain.User, error) {
	session, err := rw.GetUser(ctx, identity)
	if err != nil {
		return nil, err
	}

	if err = fn(session); err != nil {
		return nil, err
	}

	_, err = rw.es.Save(ctx, session)
	return session, err
}

⤋ Read More
In-reply-to » Hi, I am playing with making an event sourcing database. Its super alpha but I thought I would share since others are talking about databases and such.

I have updated my eventDB to have subscriptions! It now has websockets like msgbus. I have also added a in memory store that can be used along side the disk backed wal.

⤋ Read More
In-reply-to » I launched a new version of my website (https://kolesnikov.se) last night. What do you think about it? Don't forget to leave a message in my guestbook ;-)

@win0err@kolesnikov.se I agree with @prologic@twtxt.net about the text size. Adding content="width=device-width" to your viewport meta tag will help massively with scaling on different device widths.

Eg. The first screenshot is the current site with a device width of 440px and the second is with the updated viewport meta tag.


Other than that, I like the aesthetic of it 😊 It gives me early-ish internet vibes, which I wasn’t online for (I’m a ‘90s baby) but I’ve seen some pretty early websites.

⤋ Read More