š§® USERS:1 FEEDS:2 TWTS:360 ARCHIVED:37250 CACHE:1624 FOLLOWERS:13 FOLLOWING:14
Ignite Realtime Blog: New Openfire plugin: Push Server!
The Ignite Realtime Community is pleased to announce the 1.0.0 release of the Push Server plugin for Openfire. This plugin is developed by the company Busoft Teknoloji A.Å. It is inspired by Conversations Push Proxy and developed for Openfire.
Your instance of Openfire should automatically display the availability of the new plugin in the next few hours. Alternatively, you ⦠ā Read more
š§® USERS:1 FEEDS:2 TWTS:359 ARCHIVED:37213 CACHE:1645 FOLLOWERS:13 FOLLOWING:14
[47°09ā²30ā³S, 126°43ā²23ā³W] Reading: 1.13000 PPM
š§® USERS:1 FEEDS:2 TWTS:358 ARCHIVED:37195 CACHE:1652 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:357 ARCHIVED:37170 CACHE:1654 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:356 ARCHIVED:37129 CACHE:1664 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:355 ARCHIVED:37106 CACHE:1654 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:354 ARCHIVED:37081 CACHE:1652 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:353 ARCHIVED:37050 CACHE:1651 FOLLOWERS:13 FOLLOWING:14
[47°09ā²21ā³S, 126°43ā²53ā³W] Raw reading: 0x631B8D31, offset +/-1
š§® USERS:1 FEEDS:2 TWTS:352 ARCHIVED:37016 CACHE:1642 FOLLOWERS:13 FOLLOWING:14
RT by @mind_booster: In 2004, my wife came home from the Game Developers Conference with a wild story. A presenter claimed to have a sweatshop on the US/Mexican border where low-waged workers did repetitive tasks in Everquest to amass virtual gold, which was sold on Ebay to lazier, richer players 1/
In 2004, my wife came home from the Game Developers Conference with a wild story. A presenter claimed to have a sweatshop on the US/Mexican border where low-waged workers did repetitive tasks in Everquest to amass v ⦠ā Read more
š§® USERS:1 FEEDS:2 TWTS:351 ARCHIVED:36986 CACHE:1651 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:350 ARCHIVED:36961 CACHE:1650 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:349 ARCHIVED:36908 CACHE:1644 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:348 ARCHIVED:36871 CACHE:1644 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:347 ARCHIVED:36832 CACHE:1640 FOLLOWERS:13 FOLLOWING:14
@ocdtrekkie@twtxt.net I could not join because the chat was at 12:30 or 1:00 am for me. Well if I do end up joining sometime I donāt use windows and have not used windows in months. Donāt have anything to say about windows 11 because I never used it and have not used windows in a few months or more.
@jason@jasonsanta.xyz / @movq@www.uninformativ.de Help me debug something I just observed here⦠@jason@jasonsanta.xyz posted a Twt (https://twtxt.net/twt/4cgtisa) with raw line of (from his feed):
2022-09-03T03:40:19Z (#ohihfkq) @<maya https://maya.land/assets/twtxt.txt> you got starlink?
Basically replying to āsomethingā that hashed to #ohihfkq
However #ohihfkq appears nowhere that I can find. I know this can sometimes happen due to edits, or deletes, so just curious to see what happened here. Also @jason@jasonsanta.xyz, @maya@maya.land as far as many of us that have been using Twtxt/Yarn over the years have come to understand that she is basically a 1-way poster, posts to Mastodon and mirrors her posts to a Twtxt feed, but never responds to anyone or anything š Just FYI š¤
š§® USERS:1 FEEDS:2 TWTS:346 ARCHIVED:36780 CACHE:1627 FOLLOWERS:13 FOLLOWING:14
[47°09ā²19ā³S, 126°43ā²25ā³W] Reading: 1.43 Sv
[47°09ā²55ā³S, 126°43ā²20ā³W] Reading: 1.23 Sv
š§® USERS:1 FEEDS:2 TWTS:345 ARCHIVED:36732 CACHE:1614 FOLLOWERS:13 FOLLOWING:14
What is the Artemis 1 Mission? | Neil deGrasse Tyson Explains⦠ā Read more
[47°09ā²01ā³S, 126°43ā²23ā³W] Raw reading: 0x63110131, offset +/-1
[47°09ā²55ā³S, 126°43ā²01ā³W] Reading: 1.90 Sv
š§® USERS:1 FEEDS:2 TWTS:344 ARCHIVED:36689 CACHE:1603 FOLLOWERS:13 FOLLOWING:14
Ignite Realtime Blog: Openfire ThreadDump plugin 1.1.0 released
Earlier today, we have released version 1.1.0 of the Openfire Thread Dump plugin. This plugin uses various evaluators to trigger the creation of a Java thread dump. These thread dumps provide valuable information that is typically used when analyzing issues within Openfireās implementation.
In the new version of the plugin, two new evaluators have been added: one that looks at the usage pattern of Openfireās TaskEngin ⦠ā Read more
š§® USERS:1 FEEDS:2 TWTS:343 ARCHIVED:36635 CACHE:1578 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:342 ARCHIVED:36624 CACHE:1594 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:341 ARCHIVED:36586 CACHE:1572 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:340 ARCHIVED:36553 CACHE:1551 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:339 ARCHIVED:36526 CACHE:1531 FOLLOWERS:13 FOLLOWING:14
@abucci@anthony.buc.ci Its not better than a Cat5e. I have had two versions of the device. The old ones were only 200Mbps i didnāt have the MAC issue but its like using an old 10baseT. The newer model can support 1Gbps on each port for a total bandwidth of 2Gbps.. i typically would see 400-500Mbps from my Wifi6 router. I am not sure if it was some type of internal timeout or being confused by switching between different wifi access points and seeing the mac on different sides.
Right now I have my wifi connected directly with a cat6e this gets me just under my providers 1.3G downlink. the only thing faster is plugging in directly.
MoCA is a good option, they have 2.5G models in the same price range as the 1G Powerline models BUT, only if you have the coax in wall already.. which puts you in the same spot if you donāt. You are for sure going to have an outlet in every room of the house by code.
@abucci@anthony.buc.ci Its not better than a Cat5e. I have had two versions of the device. The old ones were only 200Mbps i didnāt have the MAC issue but its like using an old 10baseT. The newer model can support 1Gbps on each port for a total bandwidth of 2Gbps.. i typically would see 400-500Mbps from my Wifi6 router. I am not sure if it was some type of internal timeout or being confused by switching between different wifi access points and seeing the mac on different sides.
Right now I have my wifi connected directly with a cat6e this gets me just under my providers 1.3G downlink. the only thing faster is plugging in directly.
MoCA is a good option, they have 2.5G models in the same price range as the 1G Powerline models BUT, only if you have the coax in wall already.. which puts you in the same spot if you donāt. You are for sure going to have an outlet in every room of the house by code.
š§® USERS:1 FEEDS:2 TWTS:338 ARCHIVED:36495 CACHE:1521 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:337 ARCHIVED:36480 CACHE:1537 FOLLOWERS:13 FOLLOWING:14
RT by @mind_booster: Thereās a lot of competition for the title of āMost On-The-Nose Symbol of Late Stage Capitalism,ā but I think thereās a strong case for awarding the crown to #VaccineApartheid - the decision to deny covid vaccines to billions of poor people in the Global South. 1/
Thereās a *lot* of competition for the title of āMost On-The-Nose Symbol of Late Stage Capitalism,ā but I think thereās a strong case for awarding the crown to [#VaccineApartheid](https://nitter.net/search?q=%23VaccineAparthei ⦠ā Read more
š§® USERS:1 FEEDS:2 TWTS:336 ARCHIVED:36468 CACHE:1545 FOLLOWERS:13 FOLLOWING:14
The full lineup for Git Merge 2022 revealed
We are pleased to announce the full lineup of talks and workshops for this yearās Git Merge conference in Chicago. 17 talks, 3 workshops, 1 panel, and some great company! ā Read more
Huh⦠Nope.
HTTP/1.1 200 OK
Content-Length: 407
Content-Type: text/calendar
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: ETag
Permissions-Policy: interest-cohort=()
Content-Security-Policy: default-src 'none'; sandbox
Referrer-Policy: same-origin
Vary: Authorization
BEGIN:VCALENDAR
VERSION:2.0;2.0
PRODID:SandCal
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20220822T180903Z
UID:bb63bfbd-623e-4805-b11b-3181d96375e6
DTSTART;TZID=America/Chicago:20220827T000000
CREATED:20220822T180903Z
LAST-MODIFIED:20220822T180903Z
LOCATION:https://meet.jit.si/Yarn.social
SUMMARY:Yarn Call
RRULE:FREQ=WEEKLY
DTEND;TZID=America/Chicago:20220827T010000
END:VEVENT
END:VCALENDAR
Huh⦠Nope.
HTTP/1.1 200 OK
Content-Length: 407
Content-Type: text/calendar
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: ETag
Permissions-Policy: interest-cohort=()
Content-Security-Policy: default-src 'none'; sandbox
Referrer-Policy: same-origin
Vary: Authorization
BEGIN:VCALENDAR
VERSION:2.0;2.0
PRODID:SandCal
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20220822T180903Z
UID:bb63bfbd-623e-4805-b11b-3181d96375e6
DTSTART;TZID=America/Chicago:20220827T000000
CREATED:20220822T180903Z
LAST-MODIFIED:20220822T180903Z
LOCATION:https://meet.jit.si/Yarn.social
SUMMARY:Yarn Call
RRULE:FREQ=WEEKLY
DTEND;TZID=America/Chicago:20220827T010000
END:VEVENT
END:VCALENDAR
š§® USERS:1 FEEDS:2 TWTS:335 ARCHIVED:36404 CACHE:1542 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:334 ARCHIVED:36379 CACHE:1589 FOLLOWERS:13 FOLLOWING:14
[47°09ā²52ā³S, 126°43ā²16ā³W] Reading: 1.09000 PPM
š§® USERS:1 FEEDS:2 TWTS:333 ARCHIVED:36357 CACHE:1579 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:332 ARCHIVED:36316 CACHE:1563 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:331 ARCHIVED:36304 CACHE:1600 FOLLOWERS:13 FOLLOWING:14
Realmente, custa muito a entender. Dissecar esta notĆcia dava uma tese, mas nĆ£o tentar expandir-me muito sobre isto só me daria cabo dos nervos. Fico-me pelo inĆcio: (½)
Realmente, custa muito a entender. Dissecar esta notĆcia dava uma tese, mas nĆ£o tentar expandir-me muito sobre isto só me daria cabo dos nervos. Fico-me pelo inĆcio: (½)
nitter.net/paulasimoes/status/1560221281198432256#m ā Read more
š§® USERS:1 FEEDS:2 TWTS:330 ARCHIVED:36287 CACHE:1596 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:329 ARCHIVED:36277 CACHE:1614 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:328 ARCHIVED:36263 CACHE:1622 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:327 ARCHIVED:36241 CACHE:1665 FOLLOWERS:13 FOLLOWING:14
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
}
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)
})
I can tell the function the type being modified and returned using the function argument that is passed in. pretty cray cray.
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
}
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)
})
I can tell the function the type being modified and returned using the function argument that is passed in. pretty cray cray.
š§® USERS:1 FEEDS:2 TWTS:326 ARCHIVED:36217 CACHE:1658 FOLLOWERS:13 FOLLOWING:14
[47°09ā²42ā³S, 126°43ā²03ā³W] Reading: 1.86 Sv
š§® USERS:1 FEEDS:2 TWTS:325 ARCHIVED:36174 CACHE:1662 FOLLOWERS:13 FOLLOWING:14
errors.As(ā¦) just doesn't feel natural. errors.Is(ā¦) only just. I mainly avoided it. Yesterday evening I actually researched a bit about that and found this article on errors with Go 1.13. It shed a little bit of light, but I still have a long way to go, I reckon.
+1
errors.As(ā¦) just doesn't feel natural. errors.Is(ā¦) only just. I mainly avoided it. Yesterday evening I actually researched a bit about that and found this article on errors with Go 1.13. It shed a little bit of light, but I still have a long way to go, I reckon.
+1
**RT by @mind_booster: [¼]
Terminou ontem a consulta pública do projeto Aproveitamento HidrÔulico de Fins Múltiplos do Crato (Barragem do Crato) a que a ZERO dÔ parecer negativo
āDinheiro do PRR vai ser usado p/ projeto sem sentido e promotor de impactes ambientais e sociais negativos
š(continua)**
[¼]
Terminou ontem a consulta pública do projeto Aproveitamento HidrÔulico de Fins Múltiplos do Crato (Barragem do Crato) a que a ZERO dÔ parecer negativo
āDinheiro do PRR vai ser usado p/ projeto sem sentido e p ⦠ā Read more
[47°09ā²51ā³S, 126°43ā²36ā³W] Reading: 1.22 Sv
š§® USERS:1 FEEDS:2 TWTS:324 ARCHIVED:36126 CACHE:1630 FOLLOWERS:13 FOLLOWING:14
@prologic@twtxt.net Error handling especially in Go is very tricky I think. Even though the idea is simple, itās fairly hard to actually implement and use in a meaningful way in my opinion. All this error wrapping or the lack of it and checking whether some specific error occurred is a mess. errors.As(ā¦) just doesnāt feel natural. errors.Is(ā¦) only just. I mainly avoided it. Yesterday evening I actually researched a bit about that and found this article on errors with Go 1.13. It shed a little bit of light, but I still have a long way to go, I reckon.
We tried several things but havenāt found the holy grail. Currently, we have a mix of different styles, but nothing feels really right. And having plenty of different approaches also doesnāt help, thatās right. I agree, error messages often end up getting wrapped way too much with useless information. We havenāt found a solution yet. We just noticed that it kind of depends on the exact circumstances, sometimes the caller should add more information, sometimes itās better if the callee already includes what it was supposed to do.
To experiment and get a feel for yesterdayās research results I tried myself on the combined log parser and how to signal three different errors. Iām not happy with it. Any feedback is highly appreciated. The idea is to let the caller check (not implemented yet) whether a specific error occurred. That means I have to define some dedicated errors upfront (ErrInvalidFormat, ErrInvalidStatusCode, ErrInvalidSentBytes) that can be used in the err == ErrInvalidFormat or probably more correct errors.Is(err, ErrInvalidFormat) check at the caller.
All three errors define separate error categories and are created using errors.New(ā¦). But for the invalid status code and invalid sent bytes cases I want to include more detail, the actual invalid number that is. Since these errors are already predefined, I cannot add this dynamic information to them. So I would need to wrap them Ć la fmt.Errorf("invalid sent bytes '%s': %w", sentBytes, ErrInvalidSentBytes"). Yet, the ErrInvalidSentBytes is wrapped and can be asserted later on using errors.Is(err, ErrInvalidSentBytes), but the big problem is that the message is repeated. I donāt want that!
Having a Python and Java background, exception hierarchies are a well understood concept Iām trying to use here. While typing this long message it occurs to me that this is probably the issue here. Anyways, I thought, I just create a ParseError type, that can hold a custom message and some causing error (one of the three ErrInvalid* above). The custom message is then returned at Error() and the wrapped cause will be matched in Is(ā¦). I then just return a ParseError{fmt.Sprintf("invalid sent bytes '%s'", sentBytes), ErrInvalidSentBytes}, but that looks super weird.
I probably need to scrap the āparent errorā ParseError and make all three āsuberrorsā three dedicated error types implementing Error() string methods where I create a useful error messages. Then the caller probably could just errors.Is(err, InvalidSentBytesError{}). But creating an instance of the InvalidSentBytesError type only to check for such an error category just does feel wrong to me. However, it might be the way to do this. I donāt know. To be tried. Opinions, anyone? Implementing a whole new type is some effort, that I want to avoid.
Alternatively just one ParseError containing an error kind enumeration for InvalidFormat and friends could be used. Also seen that pattern before. But that would then require the much more verbose var parseError ParseError; if errors.As(err, &parseError) && parseError.Kind == InvalidSentBytes { ⦠} or something like that. Far from elegant in my eyes.
š§® USERS:1 FEEDS:2 TWTS:323 ARCHIVED:36095 CACHE:1620 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:322 ARCHIVED:36071 CACHE:1610 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:321 ARCHIVED:36041 CACHE:1614 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:320 ARCHIVED:36015 CACHE:1629 FOLLOWERS:13 FOLLOWING:14
Scientific Field Prefixes
ā Read more
š§® USERS:1 FEEDS:2 TWTS:319 ARCHIVED:35977 CACHE:1621 FOLLOWERS:13 FOLLOWING:14
š§® USERS:1 FEEDS:2 TWTS:318 ARCHIVED:35951 CACHE:1608 FOLLOWERS:13 FOLLOWING:14
**RT by @mind_booster: [¼]
āļøNovo passo na expansĆ£o ilegal do Aeroporto da Portela prejudicarĆ” severamente milhares de cidadĆ£os.
ā ļøFoi iniciado processo de consulta pĆŗblica sobre portaria que passarĆ” a permitir voos noturnos sem limites.
(Continua š)**
[¼]
āļøNovo passo na expansĆ£o ilegal do Aeroporto da Portela prejudicarĆ” severamente milhares de cidadĆ£os.
ā ļøFoi iniciado processo de consulta pĆŗblica sobre portaria que passarĆ” a permitir voos noturnos sem limites.
(Continua š)
. It also updates a number of library dependencies.
The updated plugin should be available for download in your Openfire admin console already. Alternatively, you can download the plugin directly, from [the pluginās archive page](https://www.ign ⦠ā Read more