Searching We.Love.Privacy.Club

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

Élisabeth Borne lance un nouveau (rantan)plan vĂ©lo !
Le temps passe vite mais pas assez pour tout oublier. C’est ainsi qu’on se souvient d’il y a un peu plus d’un an, une certaine Elisabeth Borne lançait avec brio un premier plan vĂ©lo qui permettait enfin Ă  chaque Français d’entrer – en pĂ©dalant – dans le XXIĂšme siĂšcle. Pour parfaire les rĂ©sultats dĂ©jĂ  flamboyants [
] ⌘ Read more

​ Read More

Réforme des retraites ou rafistolage de circonstances ?
Mais puisqu’on vous dit que Macron, c’est Le Grand RĂ©formateur ! Puisqu’on vous dit qu’il n’a pas arrĂȘtĂ© de rĂ©former, d’affĂ»ter avec habiletĂ© la France pour la prochaine dĂ©cennie ! Les petits dĂ©rapages budgĂ©taires n’y changeront rien : les rĂ©formes sont sur des rails, elles passeront. Quoi qu’il en coĂ»te. C’est sans doute dans cet esprit que l’actuel [
] ⌘ Read more

​ Read More

Économisez, Ă©conomisez, Ă©conomisez, il en restera bien quelque chose !
Le gouvernement est un petit malin et comme d’habitude, il a tout prĂ©vu : alors mĂȘme que les tempĂ©ratures extĂ©rieures ne sont pas encore problĂ©matiques, il sent bien que les prochaines semaines pourraient poser quelques soucis. C’est pour cela qu’il a dĂ©pĂȘchĂ© la plus affĂ»tĂ©e de ses membres pour lancer une belle campagne de propag d’information [
] ⌘ Read more

​ Read More

Le plan se dĂ©roule comme prĂ©vu, c’est-Ă -dire mal pour le peuple
Comme le disait rĂ©guliĂšrement Hannibal Smith, il n’y a rien de tel qu’un plan qui se dĂ©roule sans accrocs et celui qui consiste Ă  transformer Ă  grands coups de pieds au derriĂšre la riche sociĂ©tĂ© occidentale en sociĂ©tĂ© pauvre et dĂ©sorganisĂ©e semble porter ses fruits : ça se transforme de plus en plus. Dans cette « grande [
] ⌘ Read more

​ Read More

L’absolue nĂ©cessitĂ© de la peur
Alors que l’automne n’est mĂȘme pas encore entamĂ©, tout le monde semble vouloir parler dĂ©jĂ  d’hiver. À commencer bien sĂ»r par nos Ă©lites qui nous rappellent, par leur incroyable talent prĂ©visionniste, que gouverner c’est prĂ©voir, vous allez voir ce que vous allez voir. D’ailleurs, on a vu : ayant su prĂ©voir – avec un brio inĂ©galĂ© [
] ⌘ Read more

​ Read More

Une presse française lùche et paresseuse
Ah, finalement, qu’il est doux d’ĂȘtre journaliste en France dans un journal de rĂ©vĂ©rence ! Jadis, c’était un travail fatigant, voire stressant et parfois mĂȘme risqué : il fallait aller chercher l’information directement sur le terrain et la corroborer le carnet de notes Ă  la main. Certains Ă©vĂ©nements pouvaient impliquer de mettre sa vie en danger ; et [
] ⌘ Read more

​ Read More

C’est la rentrĂ©e, alors faites confiance au gouvernement !
VoilĂ , c’est dit ! Cet hiver sera rude : on va se cailler les miches mais finalement, cela permettra Ă  tous de prendre de bonnes rĂ©solutions sur le chemin de la SobriĂ©tĂ© ÉnergĂ©tique, de goĂ»ter au plaisir des douches froides, des repas crus et des longs trajets en vĂ©lo sous la pluie, la neige et les missiles [
] ⌘ 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

“we looked at how damaging the journey of overshooting the 2°C temperature target would be,
[
]
The results suggest that a temporary overshoot would cause waves of irreversible extinctions and lasting damage to tens of thousands of species”
https://theconversation.com/climate-crisis-even-temporarily-overshooting-2-c-would-cause-permanent-damage-to-earths-species-185929?utm_source=twitter&utm_medium=bylinetwitterbutton

“we looked at how damaging the journey of overshooting the 2°C temperature target would 
 ⌘ Read more

​ Read More

Went on a hike this evening and brought my camera along. The 26°C felt much nicer than yesterday’s 33°C. I perfectly met a mate who also wanted to go for a quick walk, just like we planned it. The first half hour we went together and then I parted for the longer route to the local mountain. The sunset was absolutely brilliant, but the aftermath turned out to be very boring.

Sunset

Photo 9 shows the entrance to a wasp nest next to the bench in the previous take. The greenery blocks most the view, though. Several individuals took off and returned. But it wasn’t too crowded. Nothing like at a typical honey bee hive at this point in time

What I found quite strange, there was quite a lot of smell of dead meat and butyric acid in the air. Hello hot summer. Both in the forest as well as in the village. I think I noticed those nasty odors at six or seven different places. Never experienced that before. Not to thaaat extent.

​ Read More

Pour une poignée de semaines
Ah sapristi, c’était trop beau pour durer ! Mais c’était prĂ©visible, cela arrive tous les ans Ă  la mĂȘme Ă©poque : des *ÂŁ*#{] de vacances. Il est temps pour moi de mettre ce blog en pause pour quelques semaines, et laisser tomber l’actualitĂ© et son commentaire : compte-tenu du rythme d’enfer que les politiciens actuels nous font subir, [
] ⌘ Read more

​ Read More

Mais que fait Obélix ?
Par Edmond DantĂšs Depuis plusieurs annĂ©es, les discussions de fin de soirĂ©e ont pris des allures de dĂ©briefing mĂ©dical dans un centre de soins palliatifs. On ne refait plus le monde, on regarde comment il meurt. Parfois, ça ressemble Ă  une discussion entre experts analysant une malfaçon de charpente industrielle. L’un soutient que c’est telle [
] ⌘ Read more

​ Read More

France : le dĂ©litement s’accĂ©lĂšre
Chaque jour qui passe – et Ă  plus forte raison lorsque c’est un jour de forte chaleur – est une ode, que dis-je, un poĂšme raffinĂ© Ă  l’organisation minutĂ©e et cadencĂ©e de nos infrastructures de transport, notamment en Île-de-France et en particulier Ă  Paris. Il ne se passe pas une journĂ©e sans qu’on doive louer [
] ⌘ Read more

​ Read More

I just read that on average we get about 108 liters of rain per square meter in July. This year it has only been 6 liters so far. I truly hope that we get some heavy rain later this evening. But looking at the forecast I reckon it will only be a few drops, if at all. It’s supposed to get less and less with each day and even hour I look at the weather report. :-( Terrible 35°C at the moment. BwĂ€h!

​ Read More

The problem I have with the vast majority of social movements, left or right, is that they often lead to projection instead of introspection. Instead of person A trying to decide how person B can treat person C better, person A should try to decide how person A can treat person C better.

​ Read More

Cette si discrĂšte colĂšre batave
DĂ©cidĂ©ment, la presse grand public choisit ses sujets et sans prendre beaucoup de risques, on peut dĂ©jĂ  parier que les prochains jours verront se dĂ©velopper une titraille toute en finesse sur le thĂšme du rĂ©chauffement climatique et de l’abomination que constituent de fortes chaleurs en plein mois de juillet. C’est pratique, cela permet d’éviter consciencieusement [
] ⌘ Read more

​ Read More

My mate and I spontaneously decided to go for a longer tour today in 29°C heat. We ended up hiking 23 km in 4:30 hours. I had two liters of mineral water in my backpack and we bought a bottle of cherry limonade each on the way in. In the end we opted for pear limo at the same self-service fridge. What a great invention these small vending machines and self-service huts are! In Germany shops are closed on Sundays, so we would have needed to find an open restaurant (plenty didn’t survive Corona) with some detours.

It was my first time on that particular terrain. We went through some beautiful and quaint forest paths with scenic views. I forgot to put my SD card back into my camera, so no photos until my mate will send me his.

Now my feet a cooling off in a bucket of cold water. Superb.

​ Read More

Yesterday, we had a heavy thunderstorm in the evening. At first it wasn’t too bad, just thunder in the distance and then a few drops of rain for at most five minutes. That was it. Alright, I thought, it’s over, let me call a mate and walk to the dairy farm. The heavy clouds looked awesome, a bit threatening but mostly harmless and just beautiful. We decided on a small detour to the home made ice cream vending machine and got ourselves some expensive, but very yummy pineapple/mint, yoghurt and raspberry/basil tubs. Mint was super strong, had to eat three spoons of some other flavors to actually taste it. A few spoons in and then the thunder rolled in from nowhere. So we quickly headed for the dairy farm while eating our ice creams. Half way there the sky floodgates opened and we took cover under a tree at the local playground. A minute later we decided to climb up the slide tower, because it had a proper roof. A tiny bit of hail cam down, but nothing serious.

About 15-20 minutes the rain stopped and the thunder and lighning rolled past. So we continued our journey and I finally filled my two one liter bottles successfully. Every now and then it drizzled a little bit through the forest. We reached our homes and a couple minutes later rain hit again. Thunder and lighning went crazy. The sky lit up every few seconds and this continued through half of the night.

Right after I hung up to meet my mate, another mate called and reported a few villages north of us they experienced hail sized a bit under golf balls. But he luckily managed to get the car in the underground carpark in time.

Today, it rained the whole morning. This was great since the temperatures stayed below 20°C, so my walk was a real joy. It’s going to get close to 30°C tomorrow, though, gnarf, örks, bwĂ€h. :-(

Sunset, once again

​ Read More

GitHub enables the development of functional safety applications by adding support for coding standards AUTOSAR C++ and CERT C++
GitHub is excited to announce the release of CodeQL queries that implement the standards CERT C++ and AUTOSAR C++. These queries can aid developers looking to demonstrate ISO 26262 Part 6 process compliance. ⌘ Read more

​ Read More

Enumclaw announce debut album <i>Save the Baby</i> + share “Jimmy Neutron” video
Tacoma band Enumclaw officially announce their Gabe Wax-produced debut album Save the Baby with soaring, heartfelt new jam "Jimmy Neutron". Video directed by John C. Peterson. Save the Baby is out this fall on Luminelle, pre-order the limited stonewashed vinyl gatefold edition here
 [Continue reading
](https://www.gorillavsbear.net/enumclaw-announce-debut-album-sav 
 ⌘ Read more

​ Read More

Erlang Solutions: Modern Software Engineering Principles for Fintechs by Daniel Pilon at SumUp
Daniel Pilon is a Software Engineering Manager at SumUp. Since 2007 he has worked across several industries before arriving in the fintech space. He has experience in many programming languages, such as C#, Java and JavaScript but since discovering Elixir and the power of functional programming a few years ago, he hasn’t looked back.

Right now he is building SumUp Bank, a complete digital banking solution 
 ⌘ Read more

​ Read More

Monerotopia Presentation and Website News
Just a note that within two hours (11AM NY time), my edited Monerotopia presentation with slides and all will be premiering here on the Monero Talk channel on YouTube.

I did already do an extended commentary and explanation of my talk here on my PeerTube channel, and I might put this an the edited talk onto my YouTube channel if I feel like it. You shou 
 ⌘ Read more

​ Read More