Searching We.Love.Privacy.Club

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

** December adventure **
Over the past couple years I’ve done the advent of code to varying degrees. I thought I was going to do it again this year but decided to try something different. I’ve been calling what came together a“ December Adventure.”

It isn’t anything fancy; throughout December I aim to write a little bit of code everyday. So far I’ve written a bit of apl, bash, elisp, explored a bunch of flavors of scheme, and star … ⌘ Read more

⤋ Read More
In-reply-to » 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.

Circling back to the IsPreferred method. A hasher can define its own IsPreferred method that will be called to check if the current hash meets the complexity requirements. This is good for updating the password hashes to be more secure over time.

func (p *Passwd) IsPreferred(hash string) bool {
	_, algo := p.getAlgo(hash)
	if algo != nil && algo == p.d {

		// if the algorithm defines its own check for preference.
		if ck, ok := algo.(interface{ IsPreferred(string) bool }); ok {
			return ck.IsPreferred(hash)
		}

		return true
	}
	return false
}

https://github.com/sour-is/go-passwd/blob/main/passwd.go#L62-L74

example: https://github.com/sour-is/go-passwd/blob/main/pkg/argon2/argon2.go#L104-L133

⤋ Read More
In-reply-to » 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.

Hold up now, that example hash doesn’t have a $ prefix!

Well for this there is the option for a hash type to set itself as a fall through if a matching hash doesn’t exist. This is good for legacy password types that don’t follow the convention.

func (p *plainPasswd) ApplyPasswd(passwd *passwd.Passwd) {
	passwd.Register("plain", p)
	passwd.SetFallthrough(p)
}

https://github.com/sour-is/go-passwd/blob/main/passwd_test.go#L28-L31

⤋ Read More
In-reply-to » 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.

Here is an example of usage:

func Example() {
	pass := "my_pass"
	hash := "my_pass"

	pwd := passwd.New(
		&unix.MD5{}, // first is preferred type.
		&plainPasswd{},
	)

	_, err := pwd.Passwd(pass, hash)
	if err != nil {
		fmt.Println("fail: ", err)
	}

	// Check if we want to update.
	if !pwd.IsPreferred(hash) {
		newHash, err := pwd.Passwd(pass, "")
		if err != nil {
			fmt.Println("fail: ", err)
		}

		fmt.Println("new hash:", newHash)
	}

	// Output:
	//  new hash: $1$81ed91e1131a3a5a50d8a68e8ef85fa0
}

This shows how one would set a preferred hashing type and if the current version of ones password is not the preferred type updates it to enhance the security of the hashed password when someone logs in.

https://github.com/sour-is/go-passwd/blob/main/passwd_test.go#L33-L59

⤋ Read More

JMP: Writing a Chat Client from Scratch
There are a lot of things that go into building a chat system, such as client, server, and protocol.  Even for only making a client there are lots of areas of focus, such as user experience, features, and performance.  To keep this post a manageable size, we will just be building a client and will use an existing server and protocol (accessing Jabber network services using the XMPP protocol).  We’ll make a practical GUI so we can test things, but not spend too much time on p … ⌘ Read more

⤋ Read More

I reworked the current ActivityPub implementation of GoBlog, fixed ActivityPub replies to posts and also added support for reply updates and deletions. Under the hood it’s using the comment system. 🥳 Using the go-ap/activitypub library, working with ActivityPub is much easier (but still more complicated than I wish it would be). ⌘ Read more

⤋ Read More

GoCoverStats v0.0.5 is a security release #test #testing href=”https://we.loveprivacy.club/search?q=%23security”>#security**
The gocoverstats package just got a v0.0.5 security release on its golang.org dependencies and a minor change:

  • golang.org/x/tools upgraded from v0.1.10 to v0.2 (security release on tools/crypto)
  • github.com/google/go-cmp upgraded from 0.5.8 to 0.5.9 (test dependency non-security release)

One clarification about the default build is that, since it requires at least Go 1.18, paths and symbols are trimmed in the compiled output.

1 points poste … ⌘ Read more

⤋ Read More

I’m quite curious about this “Ghosts from the Library”. Medawar edits the collection “Bodies from the Library” (which I recommend) and this idea of going through old newspapers to recover serialised stories or finding never published before ones is quite appealing.

Ghosts and Ghosts from the Library

http://doyouwriteunderyourownname.blogspot.com/2022/10/ghosts-and-ghosts-from-library.htmlRead more

⤋ Read More

Gajim: Gajim 1.5.3
Gajim 1.5.3 brings back a feature many of you missed: selecting and copying multiple messages. Emoji shortcodes have been improved and cover even more emojis now. Gajim also lets you mark workspaces as read, so you don’t have to go through all conversations. Thank you for all your contributions!

What’s New

Since we changed the way Gajim displays messages in Gajim 1.4, selecting multiple messages to copy them was not possible anymore. With Gajim 1.5.3 you can now select multiple messag … ⌘ Read more

⤋ Read More

it uses the queries you define for add/del/set/keys. which corrispond to something like INSERT INTO <table> (key, value) VALUES ($key, $value), DELETE ..., or UPDATE ...

the commands are issued by using the maddycli but not the running maddy daemon.

see https://maddy.email/reference/table/sql_query/

the best way to locate in source is anything that implements the MutableTable interface… https://github.com/foxcpp/maddy/blob/master/framework/module/table.go#L38

⤋ Read More

Release Radar · September 2022 Edition
Hackatoberfest, hackathons, and open source contributions. It’s been a hectic month with so many community pull requests to all kinds of projects. So many in fact that we had to spend hours going through all the submissions for this blog post. We almost didn’t get it out before the end of October. Nevertheless, we are […] ⌘ Read more

⤋ Read More

2017 interview with Haiku’s full time developer
Watch now (55 min) | In this classic episode of the Lunduke Hour (Feb-6-2017) I got to chat with one of the long time developers of Haiku OS – an Open Source operating system inspired by BeOS. This developer, known as “Waddlesplash” would go on to become the first (and so far, only) full time, paid developer of Haiku. ⌘ Read more

⤋ Read More

[…] UN framework convention on climate change said: “This does not go far enough, fast enough. This is nowhere near the scale of reductions required to put us on track to 1.5C. National governments must set new goals now and implement them in the next eight years.”
[…] UN framework convention on climate change said: “This does not go far enough, fast enough. This is nowhere near the scale of reductions required to put us on track to 1.5C. National governments must set new goals now and implement them in … ⌘ Read more

⤋ Read More

IziDIC v0.0.2 : new features and QA #dependencyinjection href=”https://we.loveprivacy.club/search?q=%23releases”>#releases**
The tiny fgm/izidic dependency injection container just got a new release: v0.0.2 contains new features and QA improvements.

  • feature: new method Container.Names to list container keys
  • feature: circular dependency detection, avoiding stack overflows
  • qa: moved to new domain github.com/fgm/izidic to support Github actions
  • qa: added linting checks: gofmt, go vet, staticcheck
  • qa: added security scanning: CodeQL
  • … ⌘ Read more

⤋ Read More

@prologic@twtxt.net, business is slow (I also just got off that hyoo-män illness that is going around named COVID), so that leaves me some free time on my entrepreneurial hands. 😂 I have always lurked every couple of weeks or so. I see yarn has regressed on the UI! 😬😩

⤋ Read More

Another change in my infrastructure setup: I replaced rathole with Chisel. There wasn’t any particular reason, I use it in the same way: It’s making a few services and websites hosted on my home server available on my VPS to publish using Caddy and a static IP. Chisel is just a bit more simple to configure using command line flags. And it’s written in Go. ⌘ Read more

⤋ Read More

Convert HEIC to JPG in Go
The “High Efficiency Image File Format” or HEIF is an image format often used by Apple devices. Although called HEIF, the file types are often heic ( presumably the ‘c’ stands for container?)
They use a similar encoding method of video formats and are deemed
better quality and lower file size than standard jpeg files. 1 points posted by Edd Turtle ⌘ Read more

⤋ Read More

Find quick solutions to common String problems
Strings are a fundamental building block of programming. Go string is a sequence of variable-width characters where each character is represented by one or more bytes, normally using the UTF-8 encoding. You can find quick solutions to common string problems that arise during writing golang programs from this valuable resource. 1 points posted by Ayeree ⌘ Read more

⤋ Read More

starting fresh and archiving old blog posts

starting fresh and archiving old blog posts

2022-09-21 00:06

okay, so this post marks the start of a wonderful informal blog about my
thoughts, feelings, and programming adventures.

i already had a blog with posts, but i archived all of those posts,
because they felt too professional or formal for something that’s supposed to be
a personal website.

originally, i was going to just delete them from my website and back them up to
a directory on … ⌘ Read more

⤋ Read More