Forwarded from Install Wizard
This media is not supported in your browser
VIEW IN TELEGRAM
🫡11🥰6💯3🤣3❤1
А тем временем число подписчиков перевалило за 1600. Спасибо, что читаете Блог*!
❤8👌8🎉3🤡2
Forwarded from Хреногубка
А как гетеро вообще занимаются сексом? 😳 Ну типа… кто из них парень и кто другой парень? 🤔
😁27🤡6💯4🤔3💩1
Forwarded from Технологический Болт Генона
🫡
https://lwn.net/Articles/994868/
Коммит
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e90b675cf942e50c70e8394dfb5862975c3b3b2
Removal of (mostly Russian) email addresses from MAINTAINERS
Posted Oct 21, 2024 13:57 UTC (Mon) by paulbarker (subscriber, #95785)
Parent article: Kernel prepatch 6.12-rc4
This was merged for v6.12-rc4: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/...
"Remove some entries due to various compliance requirements. They can come
back in the future if sufficient documentation is provided."
I guess this is something to do with sanctions, but I think the folks removed from the MAINTAINERS file deserve a little more informative notice than that!
https://lwn.net/Articles/994868/
Коммит
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e90b675cf942e50c70e8394dfb5862975c3b3b2
🤡37❤5🤮3❤🔥1🤣1
Технологический Болт Генона
🫡 Removal of (mostly Russian) email addresses from MAINTAINERS Posted Oct 21, 2024 13:57 UTC (Mon) by paulbarker (subscriber, #95785) Parent article: Kernel prepatch 6.12-rc4 This was merged for v6.12-rc4: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/...…
А теперь вопрос: каким образом эти действия помогут Украине в войне против России?
🤔13🤡10👎4😁1
#prog #go #suckassstory
Пусть есть вот такая простая программа на Go:
Если запустить эту программу при отсутствии сетевого подключения (например, на Go playground), то программа печатает ошибку и... Валится с nil pointer dereference:
Почему так — в Go же в целом методы обычно не паникуют с nil-ресивером? Функция net.Dial из стандартной библиотеки возвращает
Так вот, как пояснено в 50 shades of Go, у присваивания интерфейсам
Да, это значит, что поведение может поменяться, если
(thanks @HowToGoWrong)
Пусть есть вот такая простая программа на Go:
package main
import (
"fmt"
"net"
)
func main() {
func() {
f, err := net.Dial("tcp", "1.1.1.1:443")
defer f.Close()
fmt.Println(err)
}()
}
Если запустить эту программу при отсутствии сетевого подключения (например, на Go playground), то программа печатает ошибку и... Валится с nil pointer dereference:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x4d0adb]
goroutine 1 [running]:
main.main.func1()
/tmp/sandbox1770654708/prog.go:11 +0x3b
main.main()
/tmp/sandbox1770654708/prog.go:14 +0xf
Почему так — в Go же в целом методы обычно не паникуют с nil-ресивером? Функция net.Dial из стандартной библиотеки возвращает
(Conn, error)
, где Conn
— не конкретный тип, а интерфейс (почему он включает в себя методы Read
и Write
вместо включения интерфейсов io.Reader и io.Writer — отдельный вопрос).Так вот, как пояснено в 50 shades of Go, у присваивания интерфейсам
nil
есть два значения. Если интерфейсу присваивается nil
-значение некоего не-интерфейсного типа, который может быть nil
(скажем, некий указатель), то значимая часть интерфейса также будет nil
, но указатель на таблицу методов будет заполнен от типа присваиваемого значения. Такая переменная будет давать false
при тестирование на равенство с nil
. Если же значению интерфейсного типа присвоить литерал nil
напрямую (или просто не инициализировать явно), то тип нижележащего значения вывести неоткуда, а потому и значимая часть интерфейса, и указатель на таблицу методов будут nil
. Такое значение будет давать true
при тестировании на равенство с nil
.net.Dial
, как и большинство функций в Go, возвращают первым значением nil
в случае ошибки. В коде выше в конце main
после Println
срабатывает код в defer
, который пытается вызывать метод Close
, и так как у nil
-интерфейса указатель на таблицу методов является nil
, рантайм паникует, так как вытащить метод из ниоткуда, очевидно, нельзя.Да, это значит, что поведение может поменяться, если
net.Dial
начнёт возвращать первое значение при ошибке иначе.(thanks @HowToGoWrong)
go.dev
Go Playground - The Go Programming Language
💩11🤮4🥴4🤡1🌚1
Forwarded from Разработка ждёт балета
Оу вау. Машина Тьюринга из лего! Все эти звёзды смерти и соколы тысячелетия просто встали и вышли.
#cs #lego
#cs #lego
🔥22❤4🤯2😢1
Разработка ждёт балета
Оу вау. Машина Тьюринга из лего! Все эти звёзды смерти и соколы тысячелетия просто встали и вышли. #cs #lego
Что примечательно — вся конструкция работает от кручения одного вала, и при этом даёт достаточно мало сопротивления, чтобы её можно было приводить в действие вручную. Рекомендую посмотреть видео с объяснением и демонстрацией в действии
🔥5
#algo #article
Пусть у нас есть n элементов, каждый из которых указывает сам на себя. Как мы можем поменять связи так, чтобы объединить эти элементы в некий один цикл, и при этом мы могли бы получить каждый из вариантов перестановки связей с одинаковой вероятностью?
Про это есть Sattolo's algorithm, про который пишет небезызвестный Dan Luu. Он рассказывает не только о самом алгоритме, но и о том, почему он достигает поставленной цели — и при этом не предполагает наличия знаний по комбинаторике (как про это рассказывают в других источниках). Как ни странно, алгоритм Саттоло является минимальной модификацией алгоритма Фишера-Йетса — алгоритма для построения случайной перестановки.
Пусть у нас есть n элементов, каждый из которых указывает сам на себя. Как мы можем поменять связи так, чтобы объединить эти элементы в некий один цикл, и при этом мы могли бы получить каждый из вариантов перестановки связей с одинаковой вероятностью?
Про это есть Sattolo's algorithm, про который пишет небезызвестный Dan Luu. Он рассказывает не только о самом алгоритме, но и о том, почему он достигает поставленной цели — и при этом не предполагает наличия знаний по комбинаторике (как про это рассказывают в других источниках). Как ни странно, алгоритм Саттоло является минимальной модификацией алгоритма Фишера-Йетса — алгоритма для построения случайной перестановки.
🤔2👍1
#prog #abnormalprogramming #article
Vim is Turing-Complete
No, not VIMSCRIPT. Vim KEYSTROKES are Turing-complete.
(thanks @devballet)
Vim is Turing-Complete
No, not VIMSCRIPT. Vim KEYSTROKES are Turing-complete.
(thanks @devballet)
Buttondown
Vim is Turing-Complete
No, not VIMSCRIPT. Vim KEYSTROKES are Turing-complete.
😁12🤯2😐1