RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-379711

arelive's questions

Martin Hope
arelive
Asked: 2022-04-12 09:09:19 +0000 UTC

文件统一的最优散列算法

  • 1

底线:在我的网站上可以上传图片。这样当多次下载相同的图像到不同的相册时,不会浪费硬盘空间,所有下载都会计算 SHA1,服务器会检查目录中是否存在与接收到的哈希名称相同的文件。如果文件存在,则简单地附加一个链接,如果不存在,则将其与其哈希名称一起保存。一切都很好,但是 SHA1 结果对于地址栏来说相当长,并且计算需要很多时间。我想将名称减半,加快计算速度,但仍要消除匹配冲突的可能性。因此,md5,甚至校验和,都消失了。有一个想法是通过取散列字符串的后半部分来截断 SHA1 本身,但这并不能解决速度问题。那么,该采用什么算法呢?

хеширование
  • 1 个回答
  • 10 Views
Martin Hope
arelive
Asked: 2021-11-28 21:42:26 +0000 UTC

PostgreSQL:列必须出现在 GROUP BY 子句中或在聚合函数中使用

  • 0

有四张桌子。合二为一 - 有关图像作为文件的数据:

CREATE TABLE public.images (
    id bigserial NOT NULL PRIMARY KEY,
    hash character(50) NOT NULL,
    type public.image_type NOT NULL,
    uploader_type public.entity_type NOT NULL,
    uploader_id bigint NOT NULL,
    uploader_ip inet NOT NULL
);

在其他 - 用户相册中:

CREATE TABLE public.albums (
    id bigserial NOT NULL PRIMARY KEY,
    access public.access DEFAULT 'private'::public.access NOT NULL,
    name text NOT NULL,
    description text DEFAULT ''::text,
    owner_type public.entity_type NOT NULL,
    owner_id bigint NOT NULL,
    poster_image_id bigint,
    comments public.access DEFAULT 'public'::public.access NOT NULL,
    anonymous_comments_only boolean DEFAULT false NOT NULL
);

第三个连接第一个和第二个。也就是说,如果 images 是关于图像文件的信息,那么下表表示哪些相册有哪些图像:

CREATE TABLE public.album_images (
    id bigserial NOT NULL PRIMARY KEY,
    album_id bigint NOT NULL,
    image_id bigint NOT NULL,
    sha1 character(40) NOT NULL,
    owner_type public.entity_type NOT NULL,
    owner_id bigint NOT NULL,
    description text NOT NULL,
    last_comment_number bigint DEFAULT 0 NOT NULL,
    saved timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);

这里 sha1 与图像中的散列不同。理论上,需要通过图像和描述过滤掉重复项。

而第四张表是图片的好恶,表示为“评分”(评分布尔字段似乎是喜欢或不喜欢):

CREATE TABLE public.media_ratings (
    id bigserial NOT NULL PRIMARY KEY,
    media_type public.media_type NOT NULL,
    media_id bigint NOT NULL,
    user_id bigint NOT NULL,
    rating boolean NOT NULL,
    datetime timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);

我正在进行查询以确定相册中最喜欢的三张图片。即我选择相册的所有者、相册本身和图片信息,按album_images.id分组,然后按好恶差排序,将结果限制为三行。像这样:

SELECT a.owner_type, a.owner_id, a.name, i.hash, i.type
FROM albums a
JOIN album_images ai ON a.id = ai.album_id
JOIN images i ON i.id = ai.image_id
JOIN media_ratings mr ON mr.media_id = ai.id
GROUP BY ai.id
ORDER BY ( COUNT(mr.rating = true) - COUNT(mr.rating = false) ) DESC
LIMIT 3;

我得到的是一个错误:column "a.owner_type" must appear in the GROUP BY clause or be used in an aggregate function. 如果您将 a.owner_type 添加到 GROUP BY,它将开始按顺序对所有其他可选字段发誓,直到我将它们全部分组。但是我只需要按相册中的图像进行分组,因为我担心如果我填写 GROUP BY 中的所有字段,所需的结果会中断。stackoverflow 上有类似的问题,建议添加 DISTINCT。添加,不犁。该怎么办?

sql
  • 2 个回答
  • 10 Views
Martin Hope
arelive
Asked: 2020-07-03 16:11:34 +0000 UTC

如何通过代码知道目标 C++ 编译器是否支持 long long int 类型?

  • 4

我正在编写一个跨平台库。代码会被不同的编译器针对不同的平台编译,可能有些不支持64位整数。我想通过预处理器指令使用它们来处理代码的关键部分,但我该怎么做呢?有什么方法#ifdef __LONG_LONG_INT_T__可以知道编译器是否支持特定的原始类型?

c++
  • 2 个回答
  • 10 Views
Martin Hope
arelive
Asked: 2020-06-22 19:57:57 +0000 UTC

是否可以通过将原始文本翻译成其他语言来补充 APL 2.0 和 MIT 许可证文件?

  • 2

问题在标题中。如果我在英文原文的底部加上license的翻译成一些欧洲和亚洲的语言,会不会失去法律效力?也有带有翻译的单独文件,它们位于目录/i18n/LANG中,其中LANG是语言的自名,但LICENSE感兴趣的是根目录中的文件国际化的可能性。

лицензирование
  • 1 个回答
  • 10 Views
Martin Hope
arelive
Asked: 2020-03-28 23:14:39 +0000 UTC

更新 dpkg 后调用 grub config 失败

  • 1

在 Mint 19 上再次 apt-get upgrade 和 apt-get autoremove 后,发现 dpkg 无法配置轴映像更新包。更准确地说,我无法删除旧的 linux-image-4.15.0-66-generic。当我再次运行升级时,我得到了这个:

Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Расчёт обновлений… Готово
Следующий пакет устанавливался автоматически и больше не требуется:
  shim
Для его удаления используйте «sudo apt autoremove».
Следующие пакеты будут УДАЛЕНЫ:
  linux-image-4.15.0-66-generic
Следующие пакеты будут оставлены в неизменном виде:
  fwupd fwupdate fwupdate-signed linux-generic linux-headers-generic linux-image-generic
Следующие пакеты будут обновлены:
  code linux-base
Обновлено 2 пакетов, установлено 0 новых пакетов, для удаления отмечено 1 пакетов, и 6 пакетов не обновлено.
Установлено или удалено не до конца 5 пакетов.
Необходимо скачать 0 B/62,3 MB архивов.
После данной операции объём занятого дискового пространства уменьшится на 8 394 kB.
Хотите продолжить? [Д/н] y
Предварительная настройка пакетов ...
(Чтение базы данных … на данный момент установлено 410706 файлов и каталогов.)
Удаляется linux-image-4.15.0-66-generic (4.15.0-66.75) …
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-4.15.0-66-generic
/etc/kernel/postrm.d/zz-update-grub:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/50_linuxmint.cfg'
Генерируется файл настройки grub …
Найден образ linux: /boot/vmlinuz-4.15.0-76-generic
Найден образ initrd: /boot/initrd.img-4.15.0-76-generic
Найден образ linux: /boot/vmlinuz-4.15.0-72-generic
Найден образ initrd: /boot/initrd.img-4.15.0-72-generic
Найден образ linux: /boot/vmlinuz-4.15.0-70-generic
Найден образ initrd: /boot/initrd.img-4.15.0-70-generic
Найден образ linux: /boot/vmlinuz-4.15.0-20-generic
Найден образ initrd: /boot/initrd.img-4.15.0-20-generic
Найден образ linux: /boot/vmlinuz-4.15.0-76-generic
Найден образ initrd: /boot/initrd.img-4.15.0-76-generic
Найден образ linux: /boot/vmlinuz-4.15.0-72-generic
Найден образ initrd: /boot/initrd.img-4.15.0-72-generic
Найден образ linux: /boot/vmlinuz-4.15.0-70-generic
Найден образ initrd: /boot/initrd.img-4.15.0-70-generic
Найден образ linux: /boot/vmlinuz-4.15.0-20-generic
Найден образ initrd: /boot/initrd.img-4.15.0-20-generic
Добавление записи в загрузочное меню для конфигурации с микропрограммой EFI
ошибка: syntax error.
ошибка: Incorrect command.
ошибка: syntax error.
Синтаксическая ошибка в строке 138
В сгенерированном файле настроек GRUB обнаружены синтаксические ошибки.
Убедитесь, что в файлах /etc/default/grub
и /etc/grub.d/* ошибки отсутствуют или пошлите сообщение об ошибке
в прикреплённым файлом /boot/grub/grub.cfg.new.
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
dpkg: ошибка при обработке пакета linux-image-4.15.0-66-generic (--remove):
 installed linux-image-4.15.0-66-generic package post-removal script subprocess returned error exit status 1
При обработке следующих пакетов произошли ошибки:
 linux-image-4.15.0-66-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

我使用 grub-mkconfig 手动配置了 grub,但 dpkg 固执地按照他的方式进行了配置。当我查看他生成的配置的第 138 行时,是这样的:

### BEGIN /etc/grub.d/40_custom_proxy ###
menuentry "Linux Mint" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-f034ca3a-4301-49a0-8ca3-148874a7e419' {
}  # ЭТО 138 СТРОКА
### END /etc/grub.d/40_custom_proxy ###

我怀疑花括号块中应该有一些指示,就像其他块一样,但是如何获得它们呢?没有注释的 /etc/default/grub 文件如下所示:

GRUB_DEFAULT="0"
GRUB_TIMEOUT_STYLE="hidden"
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

和 /ect/default/grub.d//etc/default/grub.d/50_linuxmint.cfg 像这样:

set -e
GRUB_DISTRIBUTOR="Ubuntu"

问题是现在 dpkg 尝试使用任何 apt 操作删除旧的 linux 映像,无论是升级、删除还是安装,所以现在我根本无法使用包管理器。有什么方法可以让 dpkg 忘记这个图像而不尝试配置 grub?事实上,我不需要鹅耳枥,计算机立即加载带有 Linux 的部分。

linux
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5