LINUX.ORG.RU

Сообщения hummer

 

Негибкость реализаций Go интерфейсов

Форум — Development

Рассмотрим следующий пример кода на Go:

package main

import "fmt"

type animal interface {
	makeSound()
}

type cat struct {}
type dog struct {}

func (c cat) makeSound() {
	fmt.Println("meow")
}

func (d dog) makeSound() {
	fmt.Println("woof")
}

func main() {
	var cat1, dog1 animal = cat{}, dog{}
	cat1.makeSound()
	dog1.makeSound()

	var cat2, dog2 animal = &cat{}, &dog{}
	cat2.makeSound()
	dog2.makeSound()
}

Этот код работает - программа гавкает и мяукает как по значению, так и по ссылке. Но давайте немного изменим код:

package main

import "fmt"

type animal interface {
	makeSound()
}

type cat struct {}
type dog struct {}

func (c *cat) makeSound() {
	fmt.Println("meow")
}

func (d *dog) makeSound() {
	fmt.Println("woof")
}

func main() {
	var cat1, dog1 animal = cat{}, dog{}
	cat1.makeSound()
	dog1.makeSound()

	var cat2, dog2 animal = &cat{}, &dog{}
	cat2.makeSound()
	dog2.makeSound()
}

Теперь вызовы cat1.makeSound() и dog1.makeSound() не компилируются, выдавая ошибки вроде следующей:

.\test.go:21:6: cannot use cat{} (type cat) as type animal in assignment:
	cat does not implement animal (makeSound method has pointer receiver)

При этом вызовы cat2.makeSound() и dog2.makeSound() продолжают работать.

Почему такое неконсистентное поведение и почему передача того, что в других языках называется this или self в Go не унифицирована? В отличии от других языков программист на Go должен думать не только о сигнатуре метода, но и о способе передачи аналога this или self.

Кстати, объявить одновременно два варианта метода нельзя. Например если написать вот так:

func (c *cat) makeSound() {
	fmt.Println("meow")
}

func (c cat) makeSound() {
	fmt.Println("meow")
}

Будет ошибка:

.\test.go:16:6: method redeclared: cat.makeSound
	method(*cat) func()
	method(cat) func()

 

hummer
()

Стек технологий бекэнд разработки на Go

Форум — Development

А расскажите мне Goты, какой у вас стек технологий, которые вы используете в типичном бекэнд проекте на Go?

Судя по статистике от JetBrains самым популярным фреймворком у вас является Gin. А где же IoC и прочие аналоги того, что есть в Spring Boot?

Возможно, мой последний вопрос не вполне корректный и неправильно искать прямые аналоги того, что есть в Java в Go. Мне просто хочется понять специфику бекэнд разработки на Go и её отличия от таковой на Java.

 , , ,

hummer
()

Работодатель следит за работниками

Форум — Talks

И не просто следит, а делает это совершенно открыто, с соотсветствующими пунктами в контракте. Устанавливает следящий софт с MITM схемой работы, типа Zscaler, на рабочий лептоп. А теперь вопрос - будете ли вы логиниться с такого рабочего лептопа, ну скажем в stackoverflow.com или посчитаете, что светить паролем от туда работодателю не стоит и будете туда логиниться исключительно с личных девайсов?

 , , ,

hummer
()

Андрей Климов требует рассказать, кто управляет App Store

Форум — Talks

https://www.youtube.com/watch?v=fDp1hBLXk3Y - слитый ролик.

Telegram-канал A000MP97 опубликовал видео, снятое на закрытом заседании Совета Федерации РФ по вопросу о защите суверенитета. На нём глава комиссии Андрей Климов требует у представителей Apple указать, кто именно финансирует и управляет App Store — «люди с Марса или искусственный интеллект».

16 сентября прошло закрытое заседание комиссии Совета Федерации РФ, на которое были приглашены представители компаний Apple и Google. На нём обсуждали вопросы о защите суверенитета страны, в частности, отказ от удаления приложения «Навальный» из магазинов App Store и Google Play. Сервисы обвиняют в пособничестве экстремистским и запрещенным в России организациям, а также во вмешательстве в Российские выборы.

Госдума грозила IT-гигантам уголовной ответственностью и новыми штрафами за несоблюдение российских законов. В свою очередь представитель Apple заявил на заседании, что компания не может давить на App Store и заставить свой магазин удалить запрещенное в России приложение «Навальный». По мнению юриста Apple, этому мешают определённые правовые нюансы.

Непосредственно сотрудников Apple на заседании не было. На опубликованном в Сети видео компанию представляют управляющие партнёры международной юридической организации Baker McKenzie Сергей Войтишкин и Дарья Ермолина.

Подробности — https://habr.com/ru/news/t/578520/

 ,

hummer
()

BLM & Go

Форум — Talks

Почему модераторы ЛОР-а не модерируют этих поехавших на погромах BLM леваков из Гугла? Это же вопиющий нацпол на их главной.

Для Ъ: все сайты проекта Golang озаглавлены чёрной полосой в верхней части экрана с надписью: «Black Lives Matter. Support the Equal Justice Initiative.». На наличие нацпола многие жаловались, но гугловоды просто закрывали репорты и блокировали дальнейшее обсуждение.

Особенно мне понравился некто Sam Whited (Сем Побелевший) - явный тролль:

This is related to Go, because it’s a community issue and Go is a community as much as it’s a language.

Интересно, как много негров программируют на Go за зарплату?

 ,

hummer
()

Зачем это нужно?

Форум — Development

В proc.go стандартной библиотеки Go есть следующий код завершения процесса:

	exit(0)
	for {
		var x *int32
		*x = 0
	}

Какой смысл в бесконечном цикле сразу после exit(0)? Ведь он всё равно не выполняется.

 

hummer
()

Посоветуйте сайт

Форум — Talks

Что-то вроде chess.com но для игры в покер, не за деньги. Интересует классический пятикарточный покер.

Сайт может быть на Linux, но это необязательно.

 , ,

hummer
()

А какие нынче альтернативы программы hiew?

Форум — Development

Вопрос в сабже.

 , , ,

hummer
()

Наконец-то: скачать JDK прямой ссылкой

Форум — Talks

Вмести с сегодняшним выходом Java 17 наконец таки появилась возможность загрузить JDK прямой ссылкой, без необходимости кликать на чекбокс согласия с условиями и регистрацией

https://www.oracle.com/java/technologies/jdk-script-friendly-urls/

https://www.oracle.com/java/technologies/downloads/#java17

Формат release notes тоже поменялся:

https://www.oracle.com/java/technologies/javase/17all-relnotes.html

Кому не лень, запилите новость.

 , , , ,

hummer
()

Посоветуйте курс лекций по программированию в x86-64 long mode

Форум — Development

Стало интересным попробовать себя в osdev, точнее в самых основах osdev - в программировании современных x86-64 процессоров в long mode режиме (не путать с 32-х битным защищённым режимом).

Хотел бы найти курс лекций, желательно на русском, где хорошо и доходчиво объясняют что к чему, как в этом режиме вообще программировать и как реализовывать самые базовые части ОС, например простой планировщик задач.

Можете ли посоветовать что-то, по уровню подачи материала, похожее на курс лекций о C++ от Ильи Мещерина?

Обычный ассемблер 8086 я знаю, хотя и не пользовался им уже довольно давно.

 , , ,

hummer
()

Кнопка «Отменить изменения» не работает

Форум — Linux-org-ru

Если начать редактирование своего комментария, например в обсуждении одной из новостей, а затем передумать и попытаться нажать на кнопку «Отменить изменения», ничего не произойдёт и окно редактирование не закроется.

Это известный баг или какая-то новая регрессия?

@maxcom ?

 ,

hummer
()

Оформление новостей: конвенции IT и русского языка

Форум — Linux-org-ru

Вот недавно опубликованная новость (её история правок), которую я разместил, а @sudopacman отредактировал:

https://www.linux.org.ru/news/apple/16525223/history

Сразу бросились в глаза следующие вещи:

  • Добавился   между числом и знаком процента.
  • Десятичная точка была заменена на десятичную запятую.
  • Фраза «под председательством судьи Ивонн Гонзалес Роджерс», внутри первого предложения, не обрамлена запятыми.

Зачем вставлять пробелы между числом и знаком процента и зачем заменять десятичную точку на десятичную запятую? Да, я в курсе, что в русском языке принята десятичная запятая, а не десятичная точка, но в технических текстах на русском неформально общепринята своя конвенция, связанная с привычками от постоянного чтения англоязычных технических текстов и участия в обсуждениях на английском. Так же там не принято отделять знак процента пробелом. По аналогии, вы же не исправляете моряков с их особыми словами: товсь на готовсь, трап на лестницу и т.д. и т.п.

Третий пунк, об обрамлении запятыми - просто вопрос по правописанию.

 , ,

hummer
()

Американский суд частично удовлетворил антимонопольный иск Epic Games к Apple

Новости — Apple
Группа Apple

10 сентября окружной суд США Северного округа Калифорнии под председательством судьи Ивонн Гонзалес Роджерс принял решение по антимонопольному иску создателей игры Fortnite, компании Epic Games, против компании Apple.

Данное судебное решение отменяет основную часть правил Apple App Store, которые запрещали разработчикам сообщать пользователям о методах оплаты в обход платежных механизмов Apple, коммиссионные сборы которых могли доходить до 30 %. Судья Роджерс издала общенациональное предписание, позволяющее разработчикам размещать в своих приложениях «кнопки, внешние ссылки и другие призывы к действию, которые направляют клиентов к прочим механизмам покупки». В своём решении судья указала, что отменённые правила Apple App Store «скрывали важную информацию от потребителей и незаконно ограничивали их выбор».

Вместе с тем судья Роджерс не смогла выполнить некоторые другие пожелания Epic Games, например, заставить Apple открыть iPhone для сторонних магазинов приложений. Судебные слушания по этому делу проходили в мае, в течении трёх недель.

Данное судебное решение аналогично принятому в Японии несколько дней назад по делу Netflix против Apple.

После публикации данного судебного решения акции компании Apple упали на 3,4 %, снизив рыночную стоимость компании на 87 млрд долларов.

>>> Подробности

 ,

hummer
()

Pipewire не готов для виртуалок

Форум — Multimedia

В Fedora 34 перешли на этот ваш pipeware и у звук у людей в виртуальных машинах перестал нормально работать. В частности у меня в Fedora 35 под VMware.

Разработчики давно в курсе и даже знают как это починить:

https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1301 https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/469

Но чинить не собираются, как всегда.

 , ,

hummer
()

VirtualBox глючит, все сайты *.virtualbox.org не работают

Форум — Talks

Собственно вот:

И ни один не работает. Список взят из их SSL сертификата.

Сам VirtualBox глючит, в частности ни один дистрибутив с Cinnamon DE в нём нормально не работает. С включённой 3D акселерацией большая часть экрана превращается в белое пятно. Если выключить 3D акселерацию, то всё видно, но естественно тормозит.

Я сейчас установил VMware® Workstation 16 Player, который freeware, и в нём установил последний снепшот Fedora 35 Cinnamon. Работает замечательно и даже с 3D акселерацией, только после ребута в fullscreen забывает резолюцию и приходится дёргать этот самый fullscreen туда-сюда.

$ uname -a
Linux fedora 5.14.1-300.fc35.x86_64 #1 SMP Fri Sep 3 16:27:33 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/redhat-release 
Fedora release 35 (Thirty Five)

Помнится, даже @alpha жаловалась на глючность VirtualBox. А что используешь ты, типичный виндузятник ЛОР-а?

 , , ,

hummer
()

Прошу подтвердить или опровергнуть говнокод

Форум — Talks

https://github.com/xfce-mirror/xfwm4/blob/master/src/menu.c строка 164:

if ((i+1) < 10)

аналогичное место чуть выше:

if (((i+1) < 10) && (strchr(wsn[i],'_')==NULL))

 , ,

hummer
()

В Linux 5.15 добавлен системный вызов для быстрого освобождения памяти умирающего процесса

Новости — Ядро Linux
Группа Ядро Linux

Новый системный вызов называется process_mrelease и позволяет ускорить освобождение памяти, используемой процессом, получившим сигнал SIGKILL. process_mrelease получает два параметра: pid умирающего процесса и flags. В текущей реализации параметр flags не используется и должен иметь значение 0, однако будущем функциональность системного вызова может быть расширена. Возвращаемые значения: 0 при успешном выполнении и -1 если произошла ошибка, код которой передаётся через errno.

Новая функциональность может быть использована в сервисах наподобие systemd-oomd и lmkd.

( читать дальше... )

>>> Подробности

 , , ,

hummer
()

Линус Торвальдс сказал «нет» коду с предупреждениями компиляции

Новости — Ядро Linux
Группа Ядро Linux

Линус Торвальдс изменил параметры компиляции кода ядра Linux по умолчанию. Теперь при сборке используется параметр -Werror, приводящий к интерпретации любого предупреждения как ошибки и, соответственно, к остановке сборки ядра с этой ошибкой. Данное изменение конфигурируется новым параметром WERROR, который включен по умолчанию.

По мнению Линуса, изменение должно повлиять на качество кода и в частности, на качество пулл-реквестов, которые он получает. Для большего эффекта он постучал по дереву (Knock wood) прямо в сообщении к коммиту.

>>> Подробности

 , , , ,

hummer
()

Почему новость о ядре перенесли в Talks?

Форум — Linux-org-ru

@Shaman007 почему ты перенёс это из новостей? К нетехническим разговорам в Talks это точно не относится и это таки новость.

Линус Торвальдс сказал нет коду с предупреждениями компиляции

 ,

hummer
()

Линус Торвальдс сказал нет коду с предупреждениями компиляции

Форум — Talks

Линус Торвальдс изменил параметры компиляции кода ядра Linux по умолчанию. Теперь используется параметрв -Werror приводящий к интерпретации любого предупреждения в ошибку и, соответственно, в остановку сборки ядра с этой ошибкой. Данное изменение конфигурируется новым параматром WERROR, который включен по умолчанию.

По мнению Линуса данное изменение должно повлиять на качество кода и в частности на качество пулл реквестов, которые он получает. Для большего эффекта он постучал по дереву прямо в коммит меседже.

Подробности

Перемещено Shaman007 из kernel

Орбратно не перемещается, поэтому вот: Линус Торвальдс сказал «нет» коду с предупреждениями компиляции

 , , ,

hummer
()

RSS подписка на новые темы