** 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
**CiĂȘncia: os planos actuais nĂŁo sĂŁo suficientes para atingir as metas estabelecidas
ComissĂŁo Europeia: vamos ser ainda menos ambiciosos**
CiĂȘncia: os planos actuais nĂŁo sĂŁo suficientes para atingir as metas estabelecidas
ComissĂŁo Europeia: vamos ser ainda menos ambiciosos
nitter.net/ZEROasts/status/1625784479418818560#m â Read more
Inscryption er Ärets bedste spil.
Det er et poleret og flot spil, som formÄr at flette plot ind i kortspils-formatet. Det er tÊmmelig spooky. Der er ogsÄ en rimelig omfattende og overraskende meta-fortÊlling igennem det hele.
Inscryption opleves bedst, hvis du gÄr ind i det uden at vide noget som helst - du vil helst ikke have overraskelserne spoleret.
(Ÿ) â Read more
âPara Portugal, [âŠ] seria necessĂĄrio garantir uma redução de emissĂ”es de pelo menos 61% atĂ© 2030 relativamente aos nĂveis de 2005, em vez dos atuais 55% na Lei de bases do Clima, para alinhar o paĂs com a meta de 1,5°Câ
âPara Portugal, [âŠ] seria necessĂĄrio garantir uma redução de emissĂ”es de pelo menos 61% atĂ© 2030 relativamente aos nĂveis de 2005, em vez dos atuais 55% na Lei de bases do Clima, para alinhar o paĂs com a meta de 1,5°Câ
[nitter.net/ZEROasts/status/1575415098352586760#m](https://nitter.n ⊠â 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
}
malign prior as an idealized case of meta-optimization
Thanks for the feedback! This site was designed to look perfect on good old 800x600 monitors (I even left a comment next to the meta tag). Maybe Iâll add a mobile-friendly version someday :-) P.S. Nice try with SQL injection, haha. Do you have any plans for XSS attacks? :D
the right level for solving the hard problem of consciousness is within existing science/within philosophy/within meta- or pre-philosophy/needs a fully new paradigm of thought
Instagram hides some posts mentioning abortion with âsensitive contentâ label
After accounts run by abortion rights advocacy groups found their stories hidden, the Meta-owned platform described the issue as a âbugâ. â Read more
Yahoo joins Facebook owner Meta in testing metaverse tech in Hong Kong
The US internet company says it will hold virtual concerts and exhibitions on a metaverse platform, after Facebook owner Meta announced similar plans. â Read more
Upgraded my Twtxt feed to 2022 with the twtxt.net meta-data extensions.
The Liminal Web: Mapping An Emergent Subculture Of Sensemakers, Meta-Theorists & Systems Poets â Read more
Donât miss step 0 (I should have made this a separate point): having a meta header promising appending twts with strictly monotonically increasing timestamps.
(Also, Iâd first like to see the pagination thingy implemented.)
In jenny I would like to see âdonât process previously fetched twtsâ AKA âAllow the user to archive/delete old twtsâ feature implemented ;-)
I think it is long due dropping Facebook (now Meta) from the S&P 500 index funds. As an owner of some, I really have a problem with itâand yes, I know there is little I can do but voice it everywhere I make noise online.
What about a meta header for setting charset?
I myself stumbled upon .txt files not being delivered with charset: utf-8 by default.
I had to set/modify .htaccess to correct that.
It would have been easier if there had been a charset header entry âoverwritingâ what http server is delivering.
What do you think?
My thoughts about range requests
Additionally to pagination also range request should be used to reduce traffic.
I understand that there are corner cases making this a complicated matter.
I would like to see a meta header saying that the given twtxt is append only with increasing timestamps so that a simple strategy can detect valid content fetched per range request.
- read meta part per range request
- read last fetched twt at expected range (as known from last fetch)
- if fetched content starts with expected twt then process rest of data
- if fetched content doesnât start with expected twt discard all and fall back to fetching whole twtxt
Pagination (e.g. archiving old content in a different file) will lead to point 4.
Of course especially pods should support range requests, correct @prologic@twtxt.net?
My thoughts about pagination (paging)
Following the discussion about pagination (paging) I think thatâs the right thing to do.
Fetching the same content again and again with only a marginal portion of actually new twts is unbearable and does not scale in any way. Itâs not only a waste of bandwidth but with increasing number of fetchers it will also become a problem for pods to serve all requests.
Because itâs so easy to implement and simple to understand, splitting twtxt file in parts with next and prev pointers seems a really amazing solution.
As in RFC5005 there should also be a meta header pointing to the main URL, e.g. current or baseurl or something like that. This way hashes can calculated correctly even for archived twts.
http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/meta/gnome/pkg/README-main?content-type=text/x-cvsweb-markup gnome openbsd
How to Insert Meta Tags into a Web Page with BlueGriffon â Read moreâŠ
@prologic@twtxt.net the meta info on the top I added manually. itâs following what I have seen from some other twtxt feeds. the new parser will read them.
@lucidiot@tilde.town ânuclear realtorâ I like this twtxt. [meta: I guess Iâll often just reply with âI like thisâ or , although perhaps liking could be a primitive. Iâll do it rarely enough to not clutter my timeline tho]
added a !meta page. this proof of concept integrates with the weewiki !zettelkasten I am developing to produce something similar to this !feed.
meta-not-caring
Usbek & Rica - « QAnon » : le mĂ©ta-complot ultime de lâĂšre Trump â https://usbeketrica.com/fr/article/qanon-ou-le-meta-complotisme-ultime-de-l-ere-trump
On the blog: Real Life in Star Trek, Metamorphosis https://john.colagioia.net/blog/2020/10/08/meta.html #scifi #startrek #closereading
James Tenneyâs Meta Hodos and Meta Meta Hodos are an attempt to derive music theory from first principles: [[https://monoskop.org/images/1/13/Tenney_James_Meta-Hodos_and_Meta_Meta-Hodos.pdf]] #links #composition #musictheory
weewiki uses a custom org markup parser written in ANSI C to render the HTML. No emacs needed! my hope is to introduce a user-defined callback that can process these to allow for custom meta-commands.
Posted to Entropy Arbitrage: A Free Culture License Wish List https://john.colagioia.net/blog/2020/03/29/copyleft.html #license #meta #opensource #freesoftware #gpl #creativecommons #copyleft
Posted to Entropy Arbitrage: My Software https://john.colagioia.net/blog/2020/02/16/software.html #software #technology #meta
Posted to Entropy Arbitrage: Colagioia Industries https://john.colagioia.net/blog/2020/02/02/ci.html #software #technology #meta
/meta @ckipp@chronica.xyz About images, sure, I understand itâs useless for CLI-only use. But if we added our own format, maybe something like Markdown
would work?/meta @ckipp@chronica.xyz Also yes, a simple string search would be fine. Iâm not JS-savvy enough to be sure, but I guess it would work a bit like tags?
/meta @ckipp@chronica.xyz Ok, I figured it out, sorry :) I entered my local time manually and forgot itâs supposed to be UTC, so my posts were in the future.
/meta @ckipp@chronica.xyz Iâm trying to understand where my timestamp issue comes from, but I have no clue. My two latest posts were edited manually, yet the timestamp syntax seems right?
/meta @ckipp@chronica.xyz Regarding potential new features, maybe some kind of search box? And is there a way to embed images or other media?
/meta Great job on the pagination! Now Iâm thinking about forking this and trying to see if I can use it as a personal nanoblog/wikiâŠ
/meta I really like how this place looks. Is there any plan for some kind of pagination to browse older posts?
This is math-heavy but the idea that âkeys are meta-taxonomic dimensionsâ reminds me of ZigZag & other elements make me think of parallel prolog-likes like mycroft â should re-read carefully later: http://www.vpri.org/pdf/m2009002_qod.pdf
I donât buy this at all. All the political radicals I know have incredibly elaborate meta-cognition and constantly-shifting meta-justifications, because you donât become radical without curiosity. https://arstechnica.com/science/2018/12/radicals-dont-evaluate-their-mistakes-very-effectively/
@mdom@domgoergen.com Thatâs interesting. So does txtnish read that metadata? or would an end user just look at the file to see it? Is the meta data going to be the standard?
A Couple of Meta-interpreters in Prolog https://www.metalevel.at/acomip/
This frostbitten black meta⊠https://theoutline.com/post/2556/this-frostbitten-black-metal-album-was-created-by-an-artificial-intelligence
When an AI Tries Writing Slashdot Headlines - Slashdot https://meta.slashdot.org/story/17/10/22/1714246/when-an-ai-tries-writing-slashdot-headlines