I made a thing. Its a multi password type checker. Using the PHC string format we can identify a password hashing format from the prefix $name$ and then dispatch the hashing or checking to its specific format.
I made a thing. Its a multi password type checker. Using the PHC string format we can identify a password hashing format from the prefix $name$ and then dispatch the hashing or checking to its specific format.
Une transition énergique vers le pas d’énergie du tout
Jadis, les fiers Gaulois (dont certains extrémistes chuchotent qu’ils seraient nos ancêtres) avaient peur que le ciel ne leur tombe malencontreusement sur la tête. Quelques millénaires plus tard, la Science™ aidant, ces superstitions évidemment ridicules se sont évaporées et ne reste plus que la douce réalité de la programmation gouvernementale rigoureuse. C’est d’ailleurs grâce à […] ⌘ Read more
Bientôt Paris sous tutelle ? Puis ensuite, la France ?
Le vendredi, c’est poisson et la morue en est un excellent qu’on peut par exemple déguster en brandade. Sans rapport aucun, signalons qu’Anne Hidalgo fait actuellement parler d’elle alors que la ville dont elle a la charge serait en très fâcheuse posture budgétaire. Il est vrai que la situation économique du pays et l’inflation galopante […] ⌘ Read more
Dérives sectaires : n’oubliez pas la plus grandes des sectes
La stupéfaction est totale : on apprenait il y a quelques jours que la France, pourtant pays du miel et du lait, serait le terreau fertile à l’apparition de certaines sectes et autres groupuscules louches à “caractère sectaire”. C’est en tout cas ce que s’est époumoné à dire la mission interministérielle dédiée, la Miviludes, dans un […] ⌘ Read more
I have found the issue with this very subtle bug.. the cache was returning a slice that would be mutated. The mutation involved appending an item and then sorting. because the returned slice is just a pointer+length the sort would modify the same memory.
CACHE Returned slice
original: [A B C D] [A B C D]
add: [A B C D] E [A B C D E]
sort: [E A B C] D [A B C D E]
fix found here:
https://git.mills.io/yarnsocial/yarn/pulls/1072
I have found the issue with this very subtle bug.. the cache was returning a slice that would be mutated. The mutation involved appending an item and then sorting. because the returned slice is just a pointer+length the sort would modify the same memory.
CACHE Returned slice
original: [A B C D] [A B C D]
add: [A B C D] E [A B C D E]
sort: [E A B C] D [A B C D E]
fix found here:
https://git.mills.io/yarnsocial/yarn/pulls/1072
How The War in Ukraine Will Shape The Future with Irwin Redlener ⌘ Read more
Le suicide par écologisme
Il faut que les choses soient claires : l’empreinte carbone qu’il s’agit de réduire, c’est vous ! Et c’est tellement vrai, tellement évident qu’une récente tribune du Monde revient sur ce qui est maintenant un but affiché de l’écologie de combat, à savoir la réduction active de l’Humanité. Peu importe que les dernières projections raisonnables montrent une […] ⌘ Read more
Panier-Runacher : Sobriété bien ordonnée commence par les autres
Le vendredi, c’est traditionnellement poisson. Ce jour-ci, ce sera du Ordralfabétix, c’est-à-dire pourri, et par la tête comme il se doit. La surprise est totale : on apprend par deux sources, Investigate et Disclose, que l’actuelle ministre de la transition énergétique, Agnès Pannier-Runacher, est directement liée par des intérêts financiers et familiaux avec la seconde compagnie […] ⌘ Read more
Comment continuer à voir Rumble en France ?
Encore une fois, l’État français sombre dans le ridicule et la tentative de censure la plus vile. On apprend que le site de vidéo en lignes Rumble n’affiche plus qu’un petit panneau laconique pour les visiteurs provenant de la France. C’était une étape sinon prévisible du moins logique après les derniers articles de la presse […] ⌘ Read more
RT by @mind_booster: Dear public bodies, business, & politicians: “incremental change is no longer an option: broad-based economy-wide transformations are required to avoid closing the window of opportunity to limit global warming to well below 2°C, pref. 1.5°C. Every fraction of a degree matters.”
Dear public bodies, business, & politicians: “incremental change is no longer an option: broad-based economy-wide transformations are required to avoid closing the window of opportunity to limit global warming to w … ⌘ Read more
@prologic@twtxt.net It’s called “cgod” and it isn’t written in C or Go? I want my money back…
I also like Gopher more than Gemini. The problem Gemini is trying to solve is better solved by just writing static HTML 4.01 pages.
I was just reminded of this interpreter for an APL/J-like language by Arthur Whitney, the absolute weirdest bit of C code I’ve actually gotten something out of, and thought I’d share: https://code.jsoftware.com/wiki/Essays/Incunabulum
Lunduke’s Normal Computing News - Oct 19, 2022
Listen now (40 min) | Microsoft kills “Office”, iPads get USB-C, and Firefox wants to know your feelings. ⌘ Read more
Au moins Sandrine Rousseau échappera au sentiment d’insécurité
Ce sont des tombereaux de menaces par internet qui s’abattent sur une élue de la République. « C’est hyper-violent, on ne sait pas comment elle tient » aurait déclaré l’entourage de l’inénarrable Sandrine Rousseau, dont le mandat de député EELV semble lui avoir donné une tribune permanente pour le militantisme écoféministe le plus débridé, ce qui aurait […] ⌘ Read more
Et un chargeur unique pour les gouverner tous
Vous ne l’avez probablement pas entendu (ou pas assez) mais tout un continent vient de pousser un « ouf » de soulagement : enfin, les chargeurs de smartphone vont être standardisés en Union Européenne ! C’est une véritable victoire que vient ici de signer le Parlement européen en imposant le chargeur unique pour smartphones d’ici l’automne 2024 : partant du […] ⌘ Read more
Électricité : « Chérie, je crois que ça va couper ! »
Les clowneries de nos ministres s’étaient largement déployées pendant la crise sanitaire, et n’avaient commencé à se calmer qu’avec l’agacement visible des foules devant la multiplication artificielle du nombre de vagues, de cas et maintenant de picouses magiques. Avec la crise énergétique, c’est le retour de la clownerie industrielle et planifiée, dont le côté grotesque […] ⌘ 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
Video: C Programming on System 6 - VCF Midwest, Wikipedia Reader, and Subterm
I attended the Vintage Computer Festival Midwest 17 and wrote two new programs. ⌘ Read more
Même squatté, entretenez votre bien et oubliez vos droits de propriétaire
La façon dont le droit de propriété est interprété par les différentes cours de justice de la République française ne cessent d’amuser la galerie et c’est sans surprise que des affaires défrayent régulièrement la chronique. Ainsi, dernièrement, on apprend que même occupé illégalement, votre logement doit être entretenu. Eh oui m’ame Ginette, même lorsque votre […] ⌘ Read more
É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
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
working with c++, windows, cmake and wxwidgets reminded me on why I want to learn more rust. rust and crates makes it really easy to get up and running, crossplatform. scrapping what I did today, I’ll start over and force my self to learn rust.
É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
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
@carsten@yarn.zn80.net I have the same problem, at work I work with c÷÷, c#, java, python and qt. I want to learn more rust, but its a pain to get into.
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
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
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
Linux, Alternative OS, & Retro Computing News - Aug 27, 2022
Linux’s birthday, Windows 95’s birthday, NetBSD, Zelda 3 in C++, & new Dell Linux laptop ⌘ 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
}
(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
}
Just testing my new fancy twtwt client written in C
Scratch? Python? C? Kernighan on Languages for Kids Coding - Computerphile ⌘ 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
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
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
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
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
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
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
Labor Wins ⌘ 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
🙰 c
Nix 2.8.0 released
We’re pleased to announce the availability of Nix 2.8.0. It will be
available from NixOS -\
Getting Nix / NixOS.
Here are the release notes:
New experimental command:
nix fmt, which applies a
formatter defined by theformatter.<system></system>flake
output to the Nix expressions in a flake.Various Nix commands can now read expressions from standard input
using--file -.New experimental builtin function
builtins.fetchClosurethat c … ⌘ Read more
Richard Stallman - “The state of the Free Software movement” - April 13, 2022
Free Software founder has choice words for Ubuntu, Apple. Announces a manual for GNU C. ⌘ Read more
second, there’s predictions. a prediction is Done when it’s made. you could add comments, explanations, models &c, but the prediction can be Done and stand there on its own. (there is a slight problem with the fact that predictions need to be updated over time, though, so there is some Piling there as well).
Yesterday I ordered a blanket for an incredible amount of money, more precisely a weighted blanket. Now I hope that it will be delivered quickly and that it really has the positive effects that are being advertised. Although I can usually fall asleep quickly in the evening with a sleeping mask and earplugs, I never manage to sleep through the night, I am never woken up by the alarm clock because I wake up earlier. In the morning I feel tired almost every day, sometimes even the whole day, which then also limits my c … ⌘ Read more
Annotate PDFs on Linux
This post is about a GUI tool called pdfrankestein that
fills a gap on mostly Linux machines where a powerful and easy to use
PDF annotator does not exist.
Adobe Acrobat® on Windows and Mac allow you to add text, drawings and
signatures to PDF documents. This is useful when filling forms or
marking notes to send back to someone. Such a tool with similar
capabilities and easy of use does not exist on Linux. The reason that’s
often cited is that PDF is a c … ⌘ Read more
https://traditionsofconflict.com/blog/2019/10/4/sacred-metal, and now consider computer programming (especially the terminology of wizards/gurus, programming as magic, the SICP cover &c!)
B.C. premier John Horgan all insults toward Victoria protests
Video: C Programming on System 6 - Talking to the Modem
Starting work on adding a serial module to join the console and telnet inputs, to allow calls through a modem. I got stuck for a while trying to figure out why writes to the serial port would hang the machine. ⌘ Read more
Live Streaming a Macintosh Plus
Since recording a handful of C Programming on System 6 videos, I’ve occasionally wanted to live-stream the more casual daily programming being done on my Macintosh Plus. After getting all of the pieces together, I now have a working self-hosted broadcasting setup. ⌘ Read more
Livestream brought you by Starlink
I got Starlink/Soylink and I might, might be able to do a livestream from my house.
Come see if it works here:
Livestream brought you by Starlink
I got Starlink/Soylink and I might, might be able to do a livestream from my house.
Come see if it works here:
https://videos.lukesmith.xyz/w/6HaEr5NtP61H1fZC3FdXC9
I will start sometime soon once I get things set up. I should have a chat module open now on my PeerTube instance now. ⌘ Read more
Golang《基于 MIME 协议的邮件信息解析》部分实现
Golang 邮件 golang 中邮件相关的包net/mail
net/smtp
net/textproto
mime
mime/multipart
mime/quotedprintable
基于 smtp 包的邮件发送示例,基于官方文档:
<span class="c">// Set up authentication information.</span>
<span class="n">auth</span> <span class="o">:=</span> <span class="n">smtp</span><span class="o">.</span><span class="n">PlainAuth</span><span class="p">(</span><span class="s">""</span><span class="p">,</span> <span class="s">"xxxx@qq.com"</span><span class="p">,</span> <span class="s">"xxxxx"</span><s ... ⌘ [Read more](https://gocn.vip/topics/20948)
GoCN 每日新闻 (2022-01-08)
- Go 1.17.6/1.16.13 版本发布https://groups.google.com/g/golang-announce/c/95ZD3rKn4DI/m/93cyN8F1BAAJ
- 高效的 Go 错误处理https://earthly.dev/blog/golang-errors/
- 从零实现一个 RedisClient 了解 Redis 协议https://mauricio.github.io/2022/01/07/redis-protocol.html
- Golang 简洁架构实战[https://zh … ⌘ Read more
Video: C Programming on System 6 - A New On-Disk Database Format
It’s a new year and my computer is still old. ⌘ Read more
Guest Blog: Deciding Between Docker Desktop and a DIY Solution
Guest author Ben Hall is the lead technical developer for C# .NET at gov.uk (a United Kingdom public sector information website) and a .NET Foundation foundation member. He worked for nine years as a school teacher, covering programming and computer science. Ben enjoys making complex topics accessible and practical for busy developers. Deciding Between Docker […]
The post [Guest Blog: Deciding Between Docke … ⌘ Read more
GoCN 每日新闻 (2022-01-07)
GoCN 每日新闻 (2022-01-07)
- 用 golang 在 tor 网络上安全的私有部署共享文件服务https://github.com/R4yGM/garlicshare
- 一个极速的 golang 全栈 web 开发包https://github.com/mikestefanello/pagoda
- ch 一个 clickhouse 客户端,比 rust 和 c++ 的都快https://github.com/go-faster/ch
- 用 gosec 扫描 go 源码的漏洞[https://jcdan3.medium. … ⌘ Read more
** Forth, a tool for cultivating community **
I watch most of the recordings of the Forth2020’s Zoom chats. A topic that comes up from time to time is how to get more folks interested in Forth — especially younger folks. In my weird little corner of the internet I can say that there are certainly young folks interested in Forth!
I wonder if the issue at play is less one of interest, and more one of cross c … ⌘ Read more
[深圳] 百度 BFE 项目招聘 Go 研发工程师
团队简介百度智能负载均衡团队负责维护 BFE 开源项目,并研发负载均衡商业产品。
BFE 是基于 Go 语言的七层负载均衡系统,已经在百度内经过多年的研发,每天转发万亿级的请求。BFE 于 2019 年 7 月开源,2020 年 6 月成为 CNCF 官方项目。
除百度以外,BFE 已经被 360、用友网络、招商银行、央视网等公司或机构使用。
BFE 开源项目地址:
Go 中这么多创建 error 的方式,你真的了解它们各自的应用场景吗
大家好,我是渔夫子。今天从应用场景的角度来聊聊我对 error 的理解。
原文链接: https://mp.weixin.qq.com/s/ncEemMJ0kQayVPJrnF9aew
01 什么是 Error在 Go 中,error 是一种内建的数据类型。在 Go 中被定义为一个接口,定义如下:
<span class="c">// The error built-in interface type is the conventional interface for< ... ⌘ [Read more](https://gocn.vip/topics/20911)
Video: C Programming on System 6 - Implementing Chat
Let’s have a chat. ⌘ Read more
蚂蚁 - 可信原生技术部 - 专用编程语言设计研发 (杭州 P7-8)
工作内容- 从事云原生配置策略语言的设计研发工作,服务云原生基础设施管理场景
- 从事区块链智能合约专用编程语言的设计及研发工作,服务区块链链智能合约场景
- 深度参与开源社区项目
- 熟练掌握 rust、golang、c/c++、java、python 中的一种或多种
- 熟悉现代编程语言设计理念、技术及研发体系,熟悉编译技术�� … ⌘ Read more
Isode: Successfully Managing HF Radio Networks
With the potential for new technologies to cause interference to traditional communications networks and even space itself at the risk of becoming weaponised, it is important to make sure that you always have a backup plan for your communications ready and waiting.
Should the worst happen and your primary network, typically SatCom, go down you need to ensure that you can still communicate with your forces wherever they are, and that c … ⌘ Read more
高性能中文分词库 gojieba
gojieba 是什么?gojieba 是 Python 知名分词库结巴 jieba 的 Go 语言实现版本,底层分词算法由 C++ 实现,具备很高的性能; gojieba 解决了在做文本分析,文本搜索相关业务功能时的分词需求。
gojieba 支持多种分词方式:
- 全模式:把文本中所有可能的� … ⌘ Read more
Video: C Programming on System 6 - User Authentication and Telnet Negotiation
I review some recent commits covering user authentication and telnet negotiation, then write some ANSI output code and a broken function for returning a number’s ordinal string. ⌘ Read more
『新闻快讯』网上带回血都是假的么《手机搜狐网 8》
网上带回血都是假的么【老师 Q-6306172】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
假设你刚刚玩,我来教教你 假设现已玩很久了,却不稳,我来拉� … ⌘ Read more
『9 新闻资讯』真正正确的倍投 6 种方法《手机搜狐网 0》
真正正确的倍投 6 种方法【老师 Q-6306172】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
假设你刚刚玩,我来教教你 假设现已玩很久了,却不稳,�� … ⌘ Read more
『1 新闻快讯』五分快 3 输了很多钱怎么办《手机搜狐网 8》
五分快 3 输了很多钱怎么办【老师 Q-4081525】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
快 3 怎么玩?你知道吗?
快 3 中奖概率是 … ⌘ Read more
『5 新闻快讯』5000 本金回血 10 万的技术《手机搜狐网 5》
5000 本金回血 10 万的技术【老师 Q-6306172】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
假设你刚刚玩,我来教教你 假设现已玩很久了,却不稳,�� … ⌘ Read more
『6 央视新闻』彩神高倍邀请码《手机搜狐网 6》
【彩神高倍邀请码】【大神蔻 6306172】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出來開始工作了,即使是六七歲的稚�� … ⌘ Read more
『1 央视新闻』真正能回血的老师《手机搜狐网 0》
真正能回血的老师【老师 Q-4081525】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
一、买快 3 的最高境界是看时机,不是看号
很多人以为买快 3 要赚 … ⌘ Read more
『0 新闻快讯』大发彩神注册邀请码有哪些《手机搜狐网 8》
大发彩神注册邀请码有哪些【老师 Q-4081525】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
快 3 投注,方法多种多样,大华导师特向彩民朋友 … ⌘ Read more
『6 央视新闻』谁才是最厉害的回血导师《手机搜狐网 2》
谁才是最厉害的回血导师【老师 Q-9365003】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
玩家们一直喜爱的直选玩法,他们认为这回报高。但直选投 … ⌘ Read more
『4 央视新闻』大发云旗下有哪些靠谱的平台《手机搜狐网》
大发云旗下有哪些靠谱的平台【老师 Q-9365003】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
一位来自湖南长沙的网友通过百度找到了我,�� … ⌘ Read more
『2 新闻资讯』大发邀请码获得《手机搜狐网 6》
【大发邀请码获得】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出來開始工作了,即使是六七歲的稚�� … ⌘ Read more
『7 新闻快讯』大发 welcome 登录邀请码《手机搜狐网》
大发 welcome 登录邀请码【老师 Q-9365003】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
玩家们一直喜爱的直选玩法,他们认为这回报高。但直选投资也�� … ⌘ Read more
『9 央视新闻』玩大发哪个平台最好《手机搜狐网 3》
玩大发哪个平台最好【老师 Q-4081525】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
快 3 怎么玩?你知道吗?
快 3 中奖概率是六分之一,将 … ⌘ Read more
『0 新闻资讯』1 万本金能回血 40 万吗《手机搜狐网》
1 万本金能回血 40 万吗【老师 Q-4081525】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
一、买快 3 的最高境界是看时机,不是看号
很多人以为买�� … ⌘ Read more
『0 新闻资讯』玩大发一分快 3 输了很多钱怎么办《手机搜狐网》
【玩大发一分快 3 输了很多钱怎么办】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出� … ⌘ Read more
『3 新闻快讯』大发 welcome 登录邀请码《手机搜狐网 3》
【大发 welcome 登录邀请码】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出來開始工作了,即使�� … ⌘ Read more
『9 新闻资讯』大发手机彩票邀请码《手机搜狐网 5》
大发手机彩票邀请码【老师 Q-6306172】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
最重要还是要找对一个能引领你的人!
我是这么认为的:心态只 … ⌘ Read more
『8 新闻资讯』大小单双怎么才能中《手机搜狐网 2》
大小单双怎么才能中【老师 Q-9365003】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
玩家们一直喜爱的直选玩法,他们认为这回报高。但直选投资也存在 … ⌘ Read more
『2 央视新闻』彩神内部注册邀请码《手机搜狐网 5》
【彩神内部注册邀请码】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出來開始工作了,即使是六�� … ⌘ Read more
『3 央视新闻』大发系统邀请码《手机搜狐网 5》
【大发系统邀请码】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出來開始工作了,即使是六七歲的稚�� … ⌘ Read more
『4 新闻资讯』活动最多的大发平台《手机搜狐网 7》
活动最多的大发平台【老师 Q-9365003】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
玩家们一直喜爱的直选玩法,他们认为这回报高。但直选投资也存在 … ⌘ Read more
『1 新闻快讯』真正能够带人回血的导师《手机搜狐网 4》
真正能够带人回血的导师【老师 Q-6306172】【诚信誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】【金 - 牌-导 - 师-单 - 带,推 - 荐-顶 - 级-信 - 誉-】
最重要还是要找对一个能引领你的人!
我是这么认为的 … ⌘ Read more
『6 央视新闻』大发签到邀请码《手机搜狐网 8》
【大发签到邀请码】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出來開始工作了,即使是六七歲的稚�� … ⌘ Read more
『4 央视新闻』玩一分快 3 输了很多钱了该怎么办《手机搜狐网 8》
【玩一分快 3 输了很多钱了该怎么办】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經�� … ⌘ Read more
『6 央视新闻』网上说带人回血是真的吗《手机搜狐网 3》
【网上说带人回血是真的吗】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出來開始工作了,�� … ⌘ Read more
『3 新闻快讯』专业导师带回血《手机搜狐网 1》
【专业导师带回血】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出來開始工作了,即使是六七歲的稚�� … ⌘ Read more
『8 央视新闻』幸运快 3 输了很多钱怎么办《手机搜狐网 7》
【幸运快 3 输了很多钱怎么办】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出來開始工作�� … ⌘ Read more
『8 新闻快讯』彩神大发平台网站邀请码《手机搜狐网》
【彩神大发平台网站邀请码】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出來開始工作了,即� … ⌘ Read more
『5 新闻资讯』回血导师带人上岸《手机搜狐网 5》
【回血导师带人上岸】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出來開始工作了,即使是六七歲�� … ⌘ Read more
『9 央视新闻』无论亏损多少三天带你回血《手机搜狐网 6》
【无论亏损多少三天带你回血】【大神蔻 4081525】【誷誷√zh58 典 vip√】〔复.制.到·U·C·浏·览·器·才·能·打·开〕〔大·发·官·方·直·属·平·台) 『信.誉.平.台』『实.力.雄.厚』『大.额.无.忧』『顶.尖.计.划』【8 年无黑史】【千万人推荐】朝陽初升,烏山鎮這個小鎮上依舊有著清晨的一絲清冷之氣,只是小鎮中的居民幾乎都已經出來開始工作�� … ⌘ Read more
Video: C Programming on System 6 - A Cooperative Threading Library
I’m starting on a new project and I needed a cooperative threading mechanism which didn’t exist in System 6, so I created one. ⌘ Read more
Lossless Image Compression in O(n) Time
Introducing QOI — the Quite OK Image Format. It losslessly compresses RGB and
RGBA images to a similar size of PNG, while offering a 20x-50x speedup in
compression and 3x-4x speedup in decompression. All single-threaded, no
SIMD. It’s also stupidly simple.
tl;dr: 300 lines of C, single header,
source on github,
benchmark results here.
![QOI compression](/content/a … ⌘ Read more