LINUX.ORG.RU

Сообщения hummer

 
Форум — Development

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

Рассмотрим следующий пример кода на 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
()
Форум — Development

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

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

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

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

 , , ,

hummer
()
Форум — Talks

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

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

 , , ,

hummer
()
Форум — Talks

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

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
()
Форум — Talks

BLM & Go

Почему модераторы ЛОР-а не модерируют этих поехавших на погромах 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
()
Форум — Development

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

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

 , , ,

hummer
()
Форум — Talks

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

Вмести с сегодняшним выходом 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
()
Форум — Development

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

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

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

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

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

 , , ,

hummer
()
Форум — Linux-org-ru

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

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

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

@maxcom ?

 ,

hummer
()
Форум — Linux-org-ru

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

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

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

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

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

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

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

 , ,

hummer
()
Новости — Apple

Американский суд частично удовлетворил антимонопольный иск Epic Games к 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
()
Форум — Multimedia

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

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

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

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

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

 , ,

hummer
()
Форум — Talks

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

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

И ни один не работает. Список взят из их 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

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

Группа Ядро 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
()
Форум — Linux-org-ru

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

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

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

 ,

hummer
()
Форум — Talks

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

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

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

Подробности

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

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

 , , ,

hummer
()

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