Searching txt.sour.is

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

Jerry Seinfeld berated by anti-Israel protesters outside NYC event
A smiling Jerry Seinfeld waved off anti-Israel protesters who accused him of supporting genocide as he exited an event on the Upper East Side Sunday night, according to footage. ⌘ Read more

⤋ Read More

Sensory Safari at Central Florida Zoo: A sneak peek
The Central Florida Zoo & Botanical Gardens joins Good Day Orlando Xtra to introduce us to Willy, a gopher tortoise, as well as talk about their upcoming Sensory Safari event, which is geared towards children, ages 5-12. It features hands-on learning and interactive experiences. ⌘ Read more

⤋ Read More

Hungary’s opposition lead protest against Orbán’s leadership
At the event held at Kossuth Lajos Square in front of Parliament, speakers from the Democratic Coalition (DK), Momentum, the Socialist Party and Parbeszed criticised Orbán’s rule, as well as a pardon granted by outgoing President Katalin Novák to the deputy head of a children’s home convicted of covering up child abuse. The protests are the latest in a series engulfing the Hungarian … ⌘ Read more

⤋ Read More

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

⤋ 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

⤋ Read More
In-reply-to » @xuu Despite that these AoC math text problems are rather silly in my opinion (reminds me of an exercise in our math book where somebody wanted to carry a railroad rail around an L-shaped corner in the house and the question was how long that rail could be so that it still fits — sure, we've all carried several meter long railroad rails in our houses by ourselves numerous times…), these algorithms are really neat!

@lyse@lyse.isobeef.org They sure are silly at times. :-) You really have to combine this event with something else, like learning a new language. Otherwise it gets boring real quick.

What I absolutely love about AoC is that it’s – indeed – a bit like school. 😅 The problems are well-defined, the inputs are well-defined, and there is a definite answer. It’s either right or wrong – period. Compared to real life and work, I welcome this very much. 🤣

⤋ Read More
In-reply-to » Day 2, Part 1 and Day 2, Part 2 of #AdvenOfCode all done and dusted 😅

@xuu@txt.sour.is Ah, you went with the “scanning” approach as well. I did that, too.

It’s quite surprising to see (imho) how many people on reddit started substituting strings (one becomes 1 etc.). That makes the puzzle much harder by introducing nasty corner cases.

(Maybe I was just lucky this time to pick the correct approach right from the start. 🤣 Or maybe it’s a bit of experience from doing past AoC events …)

⤋ Read More

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

⤋ Read More

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 MoreRead more

⤋ 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

⤋ 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

⤋ 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

⤋ 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

⤋ Read More

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

⤋ Read More

**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

⤋ 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

⤋ 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

⤋ Read More

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

⤋ Read More

Erlang Solutions: Advent of Code 2022 – Every Puzzle Solved in Erlang

Day 1

Christmas 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

⤋ 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

⤋ 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

⤋ 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

⤋ 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

⤋ 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 » 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.

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.

type PA[T any] interface {
	event.Aggregate
	*T
}

// Create uses fn to create a new aggregate and store in db.
func Create[A any, T PA[A]](ctx context.Context, es *EventStore, streamID string, fn func(context.Context, T) error) (agg T, err error) {
	ctx, span := logz.Span(ctx)
	defer span.End()

	agg = new(A)
	agg.SetStreamID(streamID)

	if err = es.Load(ctx, agg); err != nil {
		return
	}

	if err = event.NotExists(agg); err != nil {
		return
	}

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

	var i uint64
	if i, err = es.Save(ctx, agg); err != nil {
		return
	}

	span.AddEvent(fmt.Sprint("wrote events = ", i))

	return
}

fig. 1

This lets me do something like this:

a, err := es.Create(ctx, r.es, streamID, func(ctx context.Context, agg *domain.SaltyUser) error {
		return agg.OnUserRegister(nick, key)
})

fig. 2

I can tell the function the type being modified and returned using the function argument that is passed in. pretty cray cray.

⤋ 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.

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.

type PA[T any] interface {
	event.Aggregate
	*T
}

// Create uses fn to create a new aggregate and store in db.
func Create[A any, T PA[A]](ctx context.Context, es *EventStore, streamID string, fn func(context.Context, T) error) (agg T, err error) {
	ctx, span := logz.Span(ctx)
	defer span.End()

	agg = new(A)
	agg.SetStreamID(streamID)

	if err = es.Load(ctx, agg); err != nil {
		return
	}

	if err = event.NotExists(agg); err != nil {
		return
	}

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

	var i uint64
	if i, err = es.Save(ctx, agg); err != nil {
		return
	}

	span.AddEvent(fmt.Sprint("wrote events = ", i))

	return
}

fig. 1

This lets me do something like this:

a, err := es.Create(ctx, r.es, streamID, func(ctx context.Context, agg *domain.SaltyUser) error {
		return agg.OnUserRegister(nick, key)
})

fig. 2

I can tell the function the type being modified and returned using the function argument that is passed in. pretty cray cray.

⤋ Read More

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.

It’s super basic. Using tidwall/wal as the disk backing. The first use case I am playing with is an implementation of msgbus. I can post events to it and read them back in reverse order.

I plan to expand it to handle other event sourcing type things like aggregates and projections.

Find it here: sour-is/ev

@prologic@twtxt.net @movq@www.uninformativ.de @lyse@lyse.isobeef.org

⤋ Read More

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.

It’s super basic. Using tidwall/wal as the disk backing. The first use case I am playing with is an implementation of msgbus. I can post events to it and read them back in reverse order.

I plan to expand it to handle other event sourcing type things like aggregates and projections.

Find it here: sour-is/ev

@prologic@twtxt.net @movq@www.uninformativ.de @lyse@lyse.isobeef.org

⤋ Read More

Docker’s Response to the Invasion of Ukraine
Docker is closely following the events surrounding the Russian invasion of Ukraine. The community of Docker employees, Docker Captains, developers, customers, and partners is committed to creating an open, collaborative environment that fosters the free and peaceful exchange of ideas. The tragedy unfolding in Ukraine is in opposition to what our community stands for and […]

The post [Docker’s Response to the Invasion of Ukraine](https://www.docker.co … ⌘ Read more

⤋ Read More

DockerCon: What Makes a Successful CFP Submission
The DockerCon 2022 Call for Papers is now open! DockerCon is one of the largest developer events in the world, with over 80,000 developers registering for each of the last two events. At the core of DockerCon is the chance for members of the community to share their tips, tricks, best practices and real-world experiences […]

The post [DockerCon: What Makes a Successful CFP Submission](https://www.docker.com/blog/dockercon-what-makes-a-succe … ⌘ Read more

⤋ Read More

Release Radar · December 2021 Edition
Many of us were wrapping up projects, emails, events, and getting ready for Christmas. While we were all busy getting ready for the festive season, our community was still hard at work shipping open source ⌘ Read more

⤋ Read More

GoCN 每日新闻 (2021-12-30)
GoCN 每日新闻 (2021-12-30)

  1. 如何在 Go 中将 [] byte 转换为 io.Reader?https://mp.weixin.qq.com/s/nFkob92GOs6Gp75pxA5wCQ
  2. 彻底搞懂 Kubernetes 中的 Eventshttps://mp.weixin.qq.com/s/QRIck4M1-CJVrVDoJEsjQA
  3. 对比 Rust 和 Go 对二进制数据处理[https://medium.com/@protiumx/advent-of-code-rust-go-and-binary-operators-7dd03057c134](https://medium.com/@protiumx/advent-o … ⌘ Read more

⤋ Read More

直播预告丨和我们一起过圣诞吧!Hackathon 创意攻略等你查收

Image

叮叮当~ 叮叮当~ 圣诞节马上到啦~TiDB Hackathon 2021 的战队集结也接近尾声,已经报名的小伙伴是不是已经等不及啦?2022年1月8日- 9 日,各位小伙伴就要同台竞技啦!( 点击 链接 **,立即� … ⌘ Read more

⤋ Read More

Prosodical Thoughts: Prosody 0.11.11 released
We are pleased to announce a new minor release from our stable branch.

This release contains some fixes to PEP to control memory usage, along
with a small batch of fixes for issues discovered since the last
release.

This will likely be the last release of the 0.11 branch.

A summary of changes in this release:

Fixes and improvements
  • net.server_epoll: Prioritize network events over timers to improve performance under heavy load
  • mod_p … ⌘ Read more

⤋ Read More

Docker Community All Hands: Event Recap, December 2021
One year ago, we kicked off the Community All Hands (CAH) event. The goal was to bring together Docker staff and community members for the latest product updates. This time, we’ve evolved the CAH to include multiple community tracks that give our amazing community members the opportunity to share their knowledge and expertise.   The event […]

The post [Docker Community All Hands: Event Recap, December 2021](https://www. … ⌘ Read more

⤋ Read More

Erlang Solutions: Aleksander Lisiecki’s prize-winning eArangoDB at SpawnFest 2021

Image

What is SpawnFest?

It’s tempting to say that SpawnFest is an event that doesn’t need an introduction, but we’ll give it one anyway. SpawnFest is an annual remote hackathon, where teams have exactly one weekend (48 hours to be exact) to create the best BEAM-related application … ⌘ Read more

⤋ Read More

Save the Date: Next Community All Hands on December 9th
We’re one month away from our next Community All Hands event, on December 9th at 8am PST/5pm CET. This is a unique opportunity for Docker staff, Captains, and the broader Docker community to come together for live company updates, product updates, demos, community shout-outs and Q&A. The last all-hands gathered more than 2,000 attendees from […]

The post [Save the Date: Next Community All Hands on December 9th](https:/ … ⌘ Read more

⤋ Read More

Apple Event for 18 October 2021, 10:00 PDT, 13:00 EDT begins. Commentary will stream as replies to this twt. I might miss things here and there, as I will also be on a work meeting from 13:00 to 14:00 EDT.

⤋ Read More

Apple’s event on Monday is bringing, as always, speculation to the table. One thing most outlets seem to agree is the introduction of an “M1X” chip, thought Apple might call it differently. M1X might also mean, M1(we don’t know what comes after, or next generation). Either way, I would really like to see the return of the 27” iMac, but I will not hold my breath. Nevertheless, Monday is going to be an exciting day for many, including me! 🍎

⤋ Read More

Join Us for Our Next Docker Community All-Hands!
Next week, on Thursday September 16th, 2021 (8am PST/5pm CET) we’ll be hosting our next quarterly Docker Community All-Hands. This virtual event, free and open to everyone, is a unique opportunity for Docker staff and the broader Docker community to come together for company and product updates, live demos, community presentations and a live Q&A.  […]

The post [Join Us for Our Next Docker Community All-Hands!](https://www.docker.co … ⌘ Read more

⤋ Read More

Livestream on PeerTube ONLY at 10AM New York time
As the title says, I’ll be livestreaming today on PeerTube only at this link.

I’ll talk about finishing my book reptinting project that you’re going to want to know about and perhaps “recent events” (several weeks late)
for example, on Richard Stallman.

I’ll read donations I get if you want to talk about other things.

If you haven’t already, subscribe to my PeerTube’s RSS feed to get up … ⌘ Read more

⤋ Read More