然后翻了一下怎么往ToolBar上创建按钮,翻了半天没一个可以。。。最后发现把onCreateOptionsMenu丢了(网上的大爷们这么默契,全部都把这部分代码忽略掉真的好吗)。...附上ToolBar上创建菜单的方法。...android.R.drawable.ic_menu_help) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); return true;} 菜单会显示在ToolBar...然后在onOptionsItemSelected中处理点击事件: @Override public boolean onOptionsItemSelected(MenuItem item
在 macOS 上创建安装程序通常涉及使用 Apple 提供的 PackageMaker 工具或者创建一个 .dmg(磁盘映像文件),其中包含应用程序和安装脚本。...该应用程序在 Eclipse 中运行良好,在运行时传入要打开的文件名和配置文件作为参数。现在,开发者使用 py2app 将其转换为应用程序。...问题是,他们如何处理参数,因为不同类型文件需要通过该应用程序打开,并且该应用程序在处理时也需要配置文件。...按照向导的指示创建一个新的 .dmg 文件。你可以在 .dmg 文件中添加自定义图标、背景图片等。还可以将应用程序的快捷方式拖放到 "Applications" 文件夹中。...以上是在 macOS 上创建安装程序的两种常见方法。选择哪种方法取决于大家项目的需求和偏好。
正是因为 Android 上的 UI 编程从根本上就是异步的,所以造成了如此之多的回调。从测量、布局、绘制,到调度插入,整个过程都是异步的。...suspendCancellableCoroutine 在 Kotlin 协程库中,有很多协程的构造器方法,这些构造器方法内部可以使用挂起函数来封装回调的 API。...await 函数。...如果不用协程,那就意味着我们要监听每一个操作,在回调中执行下一个操作,这回调层级想想都可怕。 通过把不同的异步操作转换为协程的挂起函数,我们获得了简洁明了地编排它们的能力。 我们还可以更进一步......我们就算不去组合不同类型的回调,也能创建复杂的异步变换,或是将不同类型的动画组合起来。 通过使用与我们应用中数据层相同的协程开发原语,还能使 UI 编程更便捷。
.ip_forward = 1 sysctl -p 配置 现在,进入 /etc/quagga 目录并为你的设置创建配置文件。...Alpha 上, [root@alpha]# cat /etc/quagga/zebra.conf interface eth0 ip address 192.168.122.100/24 ipv6...Beta 上, [root@beta quagga]# cat zebra.conf interface eth0 ip address 192.168.122.50/24 ipv6 nd suppress-ra...10.12.13.1 192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.100 metric 100 你可以看到 Alpha 上的路由表包含通过...同样,在主机 Beta 上,该表包含通过 192.168.122.100 到达网络 10.12.13.0/24 的路由项。
创建别名 默认系统下没有 ll 命令,使用 alias 创建别名 alias ll='ls -alh' 注意:等号前后不要有空格,不能写成 alias ll = 'ls -alh' 可以直接使用...alias 命令显示已经创建的别名列表,发现 ll 已经创建成功 删除别名 unalias name # name 为你要删除的别名名称 unalias ll 再使用 alias 命令显示别名列表,...发现 ll 已经成功删除 / 取消 alias 永久生效和永久删除 按照上面的操作,在当前终端下使用 alias 创建了别名,在新启动的终端中竟然无效!!!
如果您希望回顾之前的内容,可以在这里找到——《在 View 上使用挂起函数》。 让我们学以致用,在实际应用中进行实践。 遇到的问题 我们有一个示例应用: Tivi,它可以展示 TV 节目的详细信息。...使用协程解决问题 在前一篇文章中,我们已经学习了如何使用挂起函数封装回调 API。...新的挂起函数隐藏了所有复杂的操作,从而得到了一个线性的调用方法序列,让我们来探究更深层次的细节......在 TV 节目的例子中,实际上处理了几种不同的异步状态: // 确保指定的季份列表已经展开,目标剧集已经被加载 viewModel.expandSeason(nextEpisodeToWatch.seasonId...对于所有 API,将回调、监听器、观察者封装为挂起函数的方式基本相同。希望您此时已经能感受到我们文中例子的重复性。那么接下来还请再接再厉,将您的 UI 代码从链式回调中解放出来吧!
之前在“这个场景更适合使用NoSQL”文章中通过和SQL的对比 介绍了NOSQL数据存储结构的特点,一位朋友看后希望再介绍下NOSQL查询方面的特点 这里以NOSQL中比较典型的mongodb数据库为例...,先从用法上看下mongodb的操作方式,以后会更深入的介绍mongodb查询方面的细节 下面从3个方面看下mongodb的查询方式 (1)简单查询 类似于sql的 select * from...table; (2)条件查询 类似于sql的 select * from table where name='jones'; (2)嵌套文档查询 类似于sql的join,但由于mongodb...注意 我的mongodb中并没有 tutorial 这个数据库,但可以直接切换过去 这里和sql数据库有点不同,实际上,mongodb中创建数据库并不是必需的操作,数据库与集合只有在第一次插入文档时才会被创建...(2)插入数据 现在创建第一个文档 > db.users.insert({username: "smith"}) 在键入这行代码后会感觉到一丝延迟,这是因为 tutorial 数据库和 users
ubuntu 首先SSH登录VPS,创建一个登录脚本: vi /bin/nologin.sh 在vim中按下i,添加下面的内容: #!
在你的系统上,你可以在 /usr/include/bits/signum-generic.h 找到标准信号的定义。...并通过调用 abort() 来报告 SIGIOT:这个信号在 Fedora 上已经过时,过去在 PDP-11 上用 abort() 时触发,现在映射到 SIGABRT 创建转储文件 导航到 core_dump_example...内核处理核心转储的方式定义在: /proc/sys/kernel/core_pattern 我运行的是 Fedora 31,在我的系统上,该文件包含的内容是: /usr/lib/systemd/systemd-coredump...这个视图中的堆栈跟踪不是很详细,因为它不包括函数名。然而,使用 coredumpctl debug,你可以简单地用调试器(默认为 GDB)打开转储文件。...在源代码中,(即使没有任何 C++ 知识)你也可以看到,它试图释放一个指针,而这个指针并没有被内存管理函数返回。这导致了未定义的行为,并导致了 SIGABRT。
Sosreport是RHEL / CentOS上的一个命令,它会收集系统配置和你linux机器上的诊断信息,如正在运行的内核版本、加载的模块和系统和服务配置文件之类的信息。...Redhat的支持工程师会要求你服务器上的sosreport来用于故障排除。要运行sosreport,需要安装sos 包。sos包是大多是linux的默认安装包中的一部分。...该文件应提供给红帽的支持代表(在开放的情况下通常作为附件)。注意:sosreport需要root权限才能运行。...sosreport命令中不同的选项:sosreport命令有一个模块化结构,并允许用户启用和禁用模块,并通过在命令行指定模块。...例如,在Red Hat Enterprise Linux 5中安装的sos rpm模块默认收集“rpm -Va”的输出。
MySQL 允许你在 JSON 数据上创建索引测试用例CREATE TABLE `student` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar...-- 创建函数索引ALTER TABLE studentADD INDEX idx_course_id ((CAST(courses->'$[*].course_id' AS CHAR(50) ARRAY...1 filtered: 100.00 Extra: Using where1 row in set, 1 warning (0.00 sec)上述的方式是通过MySQL 8.0 创建函数索引解决...那么 MySQL 5.7 如何在 JSON 数据上创建索引?...它提供验证功能,允许创建索引,并使用 JSON 函数操作 JSON 数据。 它是 TEXT 数据类型的最佳替代品。
在宿主机上需要以下软件: Ansible KVM KVM 用户空间工具 SSH keys Guest Image 可运行以下命令准备环境: # Create SSH key if you don't...确定要操作的网络接口及名称: export NET_DEV=em1 sudo nmcli con |egrep -w "${NET_DEV}" export NM_NAME=em1 通过 ip 命令创建网桥...bridge con-name br0 sudo nmcli con add type bridge-slave ifname "${NET_DEV}" master br0 也可以通过 brctl 创建网桥...: brctl addbr br0 brctl addif br0 em1 接下来就可以运行一下命令自动创建 KVM Guests 了。.../virt-infra.yml 用virt-manager查看创建的guests。 Reference: https://github.com/csmart/virt-infra-ansible
2.安装vue cli 2.1 win10下在搜索框输入cmd,右键以管理员运行,如图所示: ?...3.初始化webpack项目 3.1 使用 vue init webpack test创建一个名为test的webpack项目,可根据提示输入自己的项目信息。 ? ?...3.3 在浏览器输入 http://localhost:8082 访问项目,如图所示: ? 3.4 至此,一个基于webpack的vue项目搭建完成。...4.3 在main.js中引入element-ui,并使用此插件,然后就可以在页面中使用element-ui的插件了。 ?...cmd,输入 npm run dev 启动项目 4.6 在浏览器输入http://localhost:8081访问 ?
pyenv local 3.10.0 pyenv which python 返回结果: /Users/andrea/.pyenv/versions/3.10.0/bin/python 创建虚拟目录...创建名为 my-310-python 的虚拟目录,并且其中加载 Python 3.10.0 。...pyenv virtualenv 3.10.0 my-310-python 确认虚拟目录已经创建: pyenv virtualenvs 3.10.0/envs/my-310-python (created...from /Users/andrea/.pyenv/versions/3.10.0) 测试并自动激活虚拟环境 创建测试目录: mkdir test-310 在测试目录中创建 .python-version
IntelliJ IDEA是一款强大的Java集成开发环境,但为了更加方便地启动它,我们可以在Linux系统中创建一个桌面快捷方式。这样一来,你就能够在桌面或应用程序菜单中轻松找到并启动你的IDE。...在这篇博客中,我将向你展示如何手动创建IntelliJ IDEA的快捷方式。 步骤一:打开终端 首先,打开你的终端。...这可以通过按下Ctrl + Alt + T快捷键或者在应用程序菜单中搜索终端来实现。 步骤二:创建桌面文件 在终端中,使用文本编辑器创建一个新的桌面文件。...步骤五:添加执行权限 为刚创建的桌面文件添加执行权限: chmod +x ~/.local/share/applications/intellij-idea.desktop 现在,你已经成功创建了IntelliJ...你可以在应用程序菜单中找到它,也可以将其添加到桌面或面板上,以便更轻松地启动你的IDE。希望这个简单的步骤对你有帮助!
SQL聚合函数基本上在多个列上进行操作以执行操作,并将输出表示为表示所执行操作的实体。...SQL AVG()函数 (1....SQL MIN()函数 (2....SQL SUM()函数可以与SQL HAVING子句一起使用。 HAVING子句基本上用于指定要对表中的一组值进行操作的条件。...因此,在本文中,我们了解了不同SQL聚合函数。
sql server 每次在备份的时候都会把相关信息记录到msdb库下面的表里面,为了更直观的查看备份的情况,我们可以在grafana上配置相关图表进行展示。...效果如下: 用到的sql如下: 生成日期序列(左上角) SELECT CONVERT(VARCHAR, GETDATE(), 23) AS 'date' UNION ALL SELECT CONVERT
theme: smartblue 在SQL中,SUM函数是用于计算指定字段的总和的聚合函数。...下面将详细介绍SUM函数在不同情况下对NULL值的处理方式。...where id in (1,2); 查询SQL-存在非NULL的情况 select sum(amount) from balance; 在存在非NULL值的情况下, SUM函数会将所有非NULL值相加...在实际应用中,确保对字段的NULL值进行适当处理,以避免出现意外的计算结果。可以通过使用COALESCE或IFNULL等函数来将NULL值替换为特定的默认值,从而更好地控制计算的行为。...性能考虑: 在处理大量数据时,SUM函数的性能可能会受到影响。考虑使用索引、分区表、冗余字段、应用层求和计算等数据库优化技术以提高查询效率。
QCloud 标准化的搭建一套域环境,并介绍了如何在生产过程中如何避免一些坑,今天,我们来介绍此次demo中真正需要注意的一些细节及实现技术手段,主要为了让大家理解群集环境的隔离如何在 QCloud 上实现...这一点至少我们已经在日程上了),如果有兄弟知道这方面的资源欢迎纠偏指正。...不是name,且成功后也不会在控制台上体现,但是在系统内部可以看到。...使用同样的方式创建网卡,确认两个sql子机都可以获得网卡后(分别有三块,1块生产、1块心跳、1块存储),这里偷了下懒用内部系统看了下对应关系是正确的: (存储网络,两个SQL节点,一个存储节点)...: 创建VPC私有网络 (以同样的方式创建存储心跳) 效果如下: 接下来将SQL01、SQL02根据正文中的步骤重新创建网卡并做绑定(无法直接进行修改,见槽点三) 三.修改弹性网卡的API ModifyNetworkInterface
在大多数情况下,默认配置设置就足够了。...更改MongoDB配置文件后,重新启动mongod服务: sudo systemctl restart mongod 创建MongoDB管理用户 如果启用了MongoDB身份验证,则需要创建一个可以访问和管理...使用以下命令访问MongoDB Shell: mongo 键入以下命令以连接到admin数据库: use admin switched to db admin 使用userAdminAnyDatabase角色创建一个名为...退出mongo shell: quit() 要测试更改,请使用先前创建的管理用户访问mongo shell: mongo -u mongoAdmin -p --authenticationDatabase
领取专属 10元无门槛券
手把手带您无忧上云