Fix “Not authorized to send Apple events to System Events” Mac Error
Some Mac users may occasionally stumble into a oddly worded error message when attempting to launch an application that states “Not authorized to send Apple events to System Events”, and, when clicking OK to dismiss the error, nothing happens – the app does not launch on MacOS. If you attempt to open the app triggering … [Read More](https://osxdaily.com/2024/02/25/fix-not-authorized-to-s … ⌘ Read more
Rise in extreme weather events putting huge strain on food charities helping struggling families
Food charities helping struggling families put food on the table can no longer rely on excess produce being available as farmers count their own cost of extreme weather events. ⌘ Read more
Arrived in Bruxelles for #FOSDEM!
Now to decide on a fringe event for today: Guix Days or CentOS Connect.
…guix is (probably (more reliably (interesting))
…but I hear that centos has beer 🤔 ⌘ Read more
Ignite Realtime Blog: XMPP Summit 26 & FOSDEM
On February 1st and 2nd, the 26th XMPP Summit will take place in Brussels. Immediately afterwards, the FOSDEM event will take place on the 3rd and 4th of February.
I’ll be attending both (although I won’t be present for the second day of FOSDEM). If you happen to be in Brussels, let me know! Maybe we can meet up!
1 post - 1 participant
[Read full topic](https://discourse.igniterealt … ⌘ Read more
Consumers may face more hot-chip potato shortages as heatwaves become more widespread
The humble vegetables are susceptible to storms, heavy rainfall and high temperatures. Frequent extreme weather events make the crop vulnerable. ⌘ Read more
We’ll make our own driver! With blackjack, and hookers! https://www.collabora.com/news-and-blog/news-and-events/nvk-holiday-update.html
Erlang Solutions: Advent of Code 2023
Hello! I’m Piotr from Erlang Solutions Poland and I have the pleasure of saving Christmas this year with the power of Erlang for you!
This is the second time we participate in the amazing event called the Advent of Code. Last year’s edition was solved by my colleague Aleksander and as far as I know – many of you enjoyed following his efforts. I hope you’ll like my tale of helping S … ⌘ Read more
A type of assumption that really grinds my gears: when someone expects a certain event will happen, and other people immediately assume that means the person wants the event to happen. Thinking something will happen and wanting it to happen are two very different things.
M3 MacBook Pro & iMac Released by Apple
Apple has used their Halloween-eve “Scary Fast” event to release updates to the MacBook Pro and iMac lineup, both featuring the all-new M3 processor. And, for the MacBook Pro, there’s an all new Space Black color option, but only for the M3 Pro and M3 Max versions of that computer. M3 MacBook Pro Series The … Read More ⌘ Read more
Dendrochronology
⌘ Read more
Dendrochronology
⌘ Read more
Highlights from DockerCon 2023: New Docker Local, Cloud, and AI/ML Innovations
DockerCon 2023 celebrated 10 years of Docker. We round up event announcements, including Docker Scout for the software supply chain, Docker Build, Debug, Docker AI, GenAI stack, OpenPubkey, a Udemy partnership, and more. Videos are available on-demand now on the DockerCon site and will be added to YouTube in the coming weeks. ⌘ Read more
Apple Event Scheduled for October 30, Grab a Cool Spooky Mac Wallpaper to Match
Apple has announced a special event for the evening of October 30, titled “Scary Fast”. The event is widely assumed to be focused on the Mac, due to the event webpage having an Apple logo that morphs into the Finder icon, perhaps with refreshed updates to the iMac and MacBook line. Obviously the name “Scary … [Read More](https://osxdaily.com/2023/10/24/apple-event-scheduled-fo … ⌘ Read more
Get a Personal Update from Siri on iPhone, iPad, Mac
Siri has a neat largely unknown feature called Personal Update, that, when requested, will give you a summary of information from various apps that you may find useful. Specifically, Personal Update will give you the weather forecast for the day, whatever your calendar events that day are, your reminders, an travel time estimate to locations … [Read More](https://osxdaily.com/2023/10/11/get-a-personal-update-from-siri-on-iphone-ip … ⌘ Read more
A strange turn of events… ⌘ Read more
The LD54 #gamejam is over!
We just *barely* made it, and got a working game out of it- plus made an entire three levels!
Playable at https://hjemme.computer
This link only has the first level, (the raspberry pi’s owner has gone home to sleep).
I’m excited to go play what everyone else made- but now I’m going to bed. Thanks for this one!
Our #ldjam page:
[https://ldjam.com/events/ludum-dare/54/tiny-bites-big … ⌘ Read more
The last time we played #ldjam, we made a cute little the-making-of blogpost.
https://ldjam.com/events/ludum-dare/51/timeslime/timeslime-the-making-of
…but I just found out that all of the gitlab CI artifacts have expired; so the in-progress links are dead.
The game is still playable at https://timesli.me/ though.
Your ultimate guide to the GitHub Universe ‘23 agenda
Get a sneak peek into the must-attend sessions, speakers, workshops, and GitHub certifications available at our global developer event.
The post Your ultimate guide to the GitHub Universe ‘23 agenda appeared first on The GitHub Blog. ⌘ Read more
Build for today, transform for tomorrow at GitHub Universe 2023
Get tickets to our global developer and customer event for 30% off during our Super-Early Bird special, only for a limited time.
The post Build for today, transform for tomorrow at GitHub Universe 2023 appeared first on The GitHub Blog. ⌘ Read more
Growers warn ‘unworkable’ Pacific Islander worker changes lack critical flexibility required for horticulture
Changes to the Pacific Islander labour scheme mean workers must be guaranteed a minimum of 30 hours of work each week, but the horticulture industry says the seasonal nature of the work and weather events make that unworkable. ⌘ Read more
Spinach industry rebuilds reputation for producing ‘very safe food’ after contamination event
Dino Borrato lost close to $1 million and continues to plough some of his crop into the ground as the spinach industry recovers from last year’s contamination event. ⌘ Read more
Erlang Solutions: How IoT is Revolutionising Supply Chain Management
As global supply chains continue to face significant disruptions, many businesses are turning to IoT to access greater visibility, reactivity, and streamlined operations.
Unforeseen geopolitical conflicts, economic pressures due to inflation and severe climate change events have all contributed to an uncertain and cost … ⌘ Read more
Open Source challenge results from Gamedev.js Jam 2023
Highlighting 13 of the top games plus source from the latest Gamedev.js jam–by GitHub Star and event organizer, Andrzej Mazur. ⌘ Read more
Let’s be clear here. Daniel Penny allegedly choked a black man, Jordan Neely, to death on a subway car. Neely was being loud, but he was not physically threatening anybody and did not have a weapon. In any other context, this would be called “murder”, at the very least, “manslaughter” if one were being gracious. Because of the US’s history, a white man murdering a black man in sight of the public is oftentimes, and rightfully, called a “lynching”. It has a public, political purpose amounting to terrorism.
Daniel Penny was allowed to go free for awhile after this event. He is only now facing accountability, having been recently indicted (arrested and charged with a crime) as he should have been day of. And here is racist right-wing toadie Ben Shapiro saying that Daniel Penny–the white alleged killer–is the one being lynched. Not the black man who was allegedly murdered by Penny in view of the public, and who is now dead. Penny himself, who is still very much alive.
@prologic@twtxt.net, I don’t know how you go on defending Ben Shapiro, but in the context of US society, what Shapiro is saying is reprehensible and unacceptable. He’s a right-wing troll with disgusting, not to mention flat out stupid, opinions.
Erlang Solutions: Call for Speakers at the RabbitMQ Summit
Are you a user, operator, developer, engineer, or simply someone with interesting user stories to tell about RabbitMQ? If so, we have some exciting news for you! The RabbitMQ Summit 2023 is just around the corner, and we are thrilled to invite you to submit your talks for this highly anticipated event.
The RabbitMQ Summit brings together a vibrant, diverse community of enthusiasts from all corne … ⌘ Read more
@abucci@anthony.buc.ci buuuuut it show when winter!
In the time scale viewed from the planets perspective, the climate has changed many many times.. The issue is whether that change that will inevitability come is hospitable to us meat bags. Or if we are doomed to take part in the next mass extinction event.

From my small experience in writing an event database, I am inclined to agree with this.
**RT by @mind_booster: All the #WordCamp Lisboa speakers are now announced.
The full schedule is out 👉 https://lisboa.wordcamp.org/2023/programa-schedule/
100 more tickets released 👉 https://lisboa.wordcamp.org/2023/tickets/
Only a few more days to guarantee the t-shirt and other event surprise swag.
#WCLisboa**
All the #WordCamp Lisboa speakers are now announced.
The full schedule is out 👉 [lisboa.wordcamp.org/2023/pro…](https://lisboa.wordcamp.org/2023/programa-sc … ⌘ Read more
Containerizing an Event Posting App Built with the MEAN Stack
Learn how to containerize a MEAN stack application with Docker. ⌘ Read more
💻 Issue 356 - Functional Event-Driven Architecture: paper copies are now available! ⌘ Read more
RT by @mind_booster: No âmbito do 20º aniversário da Convenção de Salvaguarda do Património Cultural Imaterial, é amanhã lançada a campanha Wiki Loves Living Heritage. Vejam como assistir ao lançamento no link:
https://meta.wikimedia.org/wiki/Event:Wiki_Loves_Living_Heritage/Wiki_Loves_Living_Heritage_launch_event #Patrimonioimaterial #Portugal @cultura_pt
No âmbito do 20º aniversário da Convenção de Salvaguarda do Património Cultural Imaterial, é amanhã lançada a campanha Wiki Loves Living Heritage. Vejam … ⌘ Read more
GitHub Galaxy 2023: your guide to building a more flexible and productive software development cycle
Join us virtually on March 28-31 for GitHub Galaxy, a global enterprise event focused on improving efficiency, security, and developer productivity. ⌘ Read more
The “All Sorts of Suck” Mega Event!
Listen now (26 min) | Linux Sucks. macOS Sucks. Star Trek Sucks. It all sucks. ⌘ Read more
The Lunduke Journal of Technology Podcast - Feb 7, 2023
Listen now (22 min) | On Linux Sucks 2023, macOS Sucks, and more events ⌘ Read more
Announcing dates for “Linux Sucks 2023”, “macOS Sucks”, & other events
There’s a lot coming in the weeks ahead! ⌘ Read more
💻 Issue 346 - Functional Event-Driven Architecture: Powered by Scala 3 is now 100% complete ⌘ Read more
My 2022 in Review
2022 is over, welcome 2023! A year full of unexpected events, many personal changes and a lot of new experiences… But since I wrote a review every month, I just want to highlight the highlights here. ⌘ Read more
GitHub and the Ekoparty 2022 Capture the Flag
Learn about the design behind, and solutions to, several of GitHub’s CTF challenge for Ekoparty’s 2022 event! ⌘ Read more
Unlikely events can be good, likely events can be bad.
Erlang Solutions: Change data capture with Postgres & Elixir
CDC is the process of identifying and capturing data changes from the database.
With CDC, changes to data can be tracked in near real-time, and that information can be used to support a variety of use cases, including auditing, replication, and synchronisation.
A good example of a use case for CDC is to consider an application which inserts a record into the database and pushes an event to a message queue after the record has … ⌘ Read more
Erlang Solutions: Advent of Code 2022 – Every Puzzle Solved in Erlang
Day 1Christmas is getting closer and with that, the annual Advent of Code begins. For those who do not know, Advent of Code is a fun and inclusive event which provides a new programming puzzle every day. The fun is that these puzzles can be solved in any programming language and are accessible for varying levels of coding experience and skills. The real test is in your problem-solving. This year, we’ll be solving each of the problems in … ⌘ Read more
Git Merge 2022 – that’s a wrap! 🎬
Git Merge 2022 just wrapped up bringing the community together for 16 talks, three workshops, one Git Contributor Summit, and lots of great conversations over two days. Read on for more info, photos from the event, and all of the session recordings. ⌘ Read more
GitHub at the 77th United Nations General Assembly
Read about how the GitHub Social Impact, Tech for Social Good and Policy teams participated in the 77th session of the United Nations General Assembly, including events we hosted with the World Health Organization and the UN Development Programme. ⌘ Read more
Introducing GitHub Advanced Security SIEM integrations for security professionals
Learn about using GitHub Advanced Security (GHAS) alerts with Security Information and Events Management (SIEM) tools. Check out the integrations, and read more about getting started. ⌘ Read more
9 Tips for Containerizing Your Node.js Application
Over the last five years, Node.js has maintained its position as a top platform among professional developers. It’s an open source, cross-platform JavaScript runtime environment designed to maximize throughput. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient — perfect for data intensive, real-time, and distributed applications. With over 90,500 stars […] ⌘ Read more
“Command Line Week” starts tomorrow!
Schedule of events and how to get yourself ready. ⌘ Read more
Two ways you can experience GitHub Universe
GitHub Universe is back and more robust than ever, with two great ways to engage with everything this global developer event has to offer. ⌘ Read more
Historical Dates
⌘ Read more
Historical Dates
⌘ Read more
(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 ObjectsA 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
}