- chrome扩展,“manifest_version“: 3, chrome 扩展图标点击事件
徐同保
chrome前端
在Chrome扩展中,从ManifestV3开始,后台脚本(backgroundscripts)被服务工作线程(serviceworkers)所取代。这改变了扩展图标点击事件(通常称为浏览器操作或者页面操作)的处理方式。在ManifestV3中,您需要使用chrome.action.onClicked监听器来处理扩展图标的点击事件。下面是一个如何设置扩展图标点击事件处理器的示例:在manifest
- PyQt按钮点击触发事件
fightingwy
python
pyqt首先需要安装pyqt安装包我这边是pyqt5的安装包然后通过Qcheckbox创建关联窗口的checkbox,通过按钮绑定事件触发事件。btn.clicked.connect(self.push)btn1.clicked.connect(self.select_all)btn2.clicked.connect(self.select_none)btn=QPushButton(name,se
- java selenium 元素点击不了
马达马达达
selenium测试工具
最近做了一个页面爬取,很有意思被机缘巧合下解决了。这个元素很奇怪,用xpath可以定位元素,但是就是click()不了。试过了网上搜的一些办法://尝试一WebElementa_tag=driver.findElement(By.xpath("xxx"));a_tag.click();//点击不了,卡住//尝试二WebDriverWaitwait=newWebDriverWait(driver,1
- 【Hadoop】使用Scala与Spark连接ClickHouse进行数据处理
音乐学家方大刚
ScalaHadoophadoopscalaspark
风不懂不懂得叶的梦月不听不听闻窗里琴声意难穷水不见不曾见绿消红霜不知不知晓将别人怎道珍重落叶有风才敢做一个会飞的梦孤窗有月才敢登高在夜里从容桃花有水才怕身是客身是客此景不能久TieYann(铁阳)、薄彩生《不知晓》在大数据分析和处理领域,ApacheSpark是一个广泛使用的高性能、通用的计算框架,而ClickHouse作为一个高性能的列式数据库,特别适合在线分析处理(OLAP)。结合Scala语
- 拖拽插件的使用(vue-draggable-resizable)
Nancy哇
笔记vue.jsjavascript前端
拖拽功能使用插件(vue-draggable-resizable)用于可拖动和可调整大小元素的Vue2组件。1.使用-安装插件依赖npminstall--savevue-draggable-resizable-在项目中引用importVueDraggableResizablefrom"vue-draggable-resizable";exportdefault{components:{VueDra
- ClickHouse副本节点数据损坏恢复
旺仔_牛奶
ClickHouseclickhouse数据库java
参考链接:https://blog.csdn.net/qq_42082701/article/details/127771766参考链接:https://kb.altinity.com/altinity-kb-setup-and-maintenance/suspiciously-many-broken-parts/#背景CK配置为1分片2副本#配置参数,这里我们将max_suspicious_br
- uniapp 实现双击点赞出现特效
全栈^_^小菜鸟
uni-appjava前端
更新一下老板改了需求要加上特效1.创建点赞按钮首先,在你的页面中创建一个点赞按钮全局点赞的话就写在最外面的标签就行了。你可以使用组件或者自定义一个视图组件。点赞这里我们使用了@click事件监听器来监听按钮的点击事件,并且使用了:class绑定来根据isDoubleTap的值改变按钮的样式(可选)。showHeart用于控制小心心的显示与隐藏。2.实现双击检测在JavaScript部分,你需要实现
- (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
shimly123456
NLP相关杂谈自然语言处理c#人工智能
一个视频:https://www.bilibili.com/video/BV1mb4y1y7EB/?spm_id_from=333.337.search-card.all.click&vd_source=7a1a0bc74158c6993c7355c5490fc600这里有个视频,讲解得更加生动形象一些总得来说,词袋模型(Bow,bag-of-words)是最简单的“文本—>矢量”(把文本转为矢量
- react可视化编辑器 第一章 拖拽
zhooson
react.js编辑器前端
效果:实现可视化编辑器,第一步难点是拖拽提示:链接和图片默认是可拖动的,不需要draggable属性。在拖放操作的不同阶段使用并可能发生许多事件属性:在可拖动目标上触发的事件(源元素):ondragstart-当用户开始拖动元素时触发ondrag-拖动元素时触发ondragend-在用户完成拖动元素时触发在放置目标上触发的事件:ondragenter-当被拖动的元素进入放置目标时触发ondrago
- 不用form表单ajax上传图片(单个图片上传实例)及回显
焱墩
前端
一、html代码段(这里无css样式)上传文件上传二、js(jquery)代码段$(function(){functionhideup(){$("#hidupload").click();},functionupchange(){$("#hidimg").prop("src",URL.createObjectURL($("#hidupload")[0].files[0]));}functionup
- vue触发真实的点击 事件 跟用户行为一致
只会安静敲代码的 小周
vue.js前端javascript
按钮exportdefault{methods:{handleClick(){constbutton=this.$refs.myButton;//创建一个鼠标点击事件constevent=newMouseEvent('click',{view:window,bubbles:true,cancelable:true});//触发鼠标点击事件button.dispatchEvent(event);}}
- Recycler View 适配器
桥北_2676
publicclassMyAdapterextendsRecyclerView.AdapterimplementsView.OnClickListener{privateArrayListmList;publicMyAdapter(ArrayListmList){this.mList=mList;}@OverridepublicHolderonCreateViewHolder(ViewGroupp
- 悬浮工具球(仿 iphone 辅助触控)
liuzhenghe30265
iphoneiosvue.js前端javascript
悬浮工具球(仿iphone辅助触控)兼容移动端touch事件点击元素以外位置收起解决鼠标抬起触发元素的点击事件问题DemoGithub{{index+1}}//创建一个全局的点击事件处理函数consthandleClickOutside=(event,el,binding)=>{//检查点击的元素是否在绑定的元素内部if(!(el===event.target||el.contains(event
- C#窗体常用方法
鬼六子
1.Show和ShowDialog方法:Show:显示无模式窗体ShowDialog:显示模式对话窗体窗体名:Show();ShowDialog();eg:Showprivatevoidbutton_FormShow_Click(objectsender,EventArgse){Form2formShow=nerwForm2();formShow.Text="非模式显示";formShow.Sho
- Svelte之基础知识一
开心就是最好
SvelteSvelte
文章目录参考资料什么是Svelte?简介添加数据`{}`动态属性`{}`嵌套组件HTML标签`@html`创建一个应用程序反应性能力赋值`on:click={}`声明`$:`语句`$:{}`更新数组和对象属性Declaringprops`export`属性对象传递`{...xxx}`逻辑if语句`{#ifxxx}...{/if}`else语句`{#ifxxx}...{:else}...{/if}`
- fragment入门
lucas777
MainActivity.javapublicclassMainActivityextendsActivityimplementsOnClickListener{privateButtonbt_news1,bt_news2,bt_news3;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedIn
- ClickHouse存储引擎之ReplacingMergeTree引擎
小枫@码
大数据运维clickhouse
一、ReplacingMergeTree作用ClickHouse中最常用也是最基础的表引擎为MergeTree,在它的功能上添加特定功能就构成了MergeTree系列引擎。MergeTree支持主键,但主键主要用来缩小查询范围,且不具备唯一性约束,可以正常写入相同主键的数据。但在一些情况下,可能需要表中没有主键重复的数据。ReplacingMergeTree就是在MergeTree的基础上加入了去
- 【iPhone16】iPhone16抢购脚本 苹果官网抢购 iPhone16 pro max
腹有诗书气自华777
chromepython
fromseleniumimportwebdriverimporttimedefclick_element(driver,xpath):element=driver.find_element_by_xpath(xpath)driver.execute_script("arguments[0].click();",element)defmain():#设置浏览器驱动路径driver_path="./
- Android实现点击跳转本地浏览器打开网页的精简方式
Aurorapeak
安卓學習androidkotlin
一般情况下,我们要实现点击跳转本地浏览器打开指定网页,需要在activity文件中定位到相关控件,再setOnClickListener。如果只有一处需要跳转,这样写也可以,但如果多处存在这样的操作,我们可以使用一种精简的方法:创建一个网页跳转的接口,在layout文件中直接绑定。本文阅读前提:了解Android中的databinding。例如,我们创建了一个interface:interface
- js获取点击的dom
椿天在哪里
javascript前端vue.js
可以使用事件对象来获取点击的DOM元素,如下所示:document.addEventListener('click',function(event){consttarget=event.target;console.log('点击的DOM元素是:',target);});在事件函数的参数中,event.target表示最初被点击的元素。如果需要获取点击的父级元素(如点击了某个按钮,而不只是该按钮内
- 英语学习打卡第54天
美人志_8cdd
hard坚硬的putaway放好away离开beautiful漂亮atthemoment此时此刻quite十分festival节日ready准备好的happen发生speak说话meal一餐cook厨师floor地板sweep打扫clean打扫dance跳舞study学习run跑步dragon龙lantern灯笼
- C# 在exe中启动另外一个exe时的关闭方法
wangnaisheng
C#c#
在C#中,如果你想要从一个exe程序中启动另一个exe程序,并希望在需要时能够关闭它。一、启动外部exe程序:使用System.Diagnostics.Process启动程序,代码如下:privatevoidbtnStart_Click(objectsender,RoutedEventArgse){FileInfoexePath=newFileInfo(Common.GetRunPath());/
- vue element plus Cascader 级联选择器
跟Bug双向奔赴
vue.jselementuijavascript
当一个数据集合有清晰的层级结构时,可通过级联选择器逐级查看并选择。TIP在SSR场景下,您需要将组件包裹在之中(如:Nuxt)和SSG(e.g:VitePress).基础用法#有两种触发子菜单的方式只需为Cascader的options属性指定选项数组即可渲染出一个级联选择器。通过props.expandTrigger属性控制子节点的展开方式Childoptionsexpandwhenclicke
- hbase、hive、clickhouse对比
freshrookie
hbasehivehadoop
概念架构hbasemaster存储元数据、regionServer实际控制表数据,存储单位是Region,底层数据存储使用HDFShive通过driver将sql分解成mapreduce任务元数据需要单独存储到一个关系型数据库,一般是mysql实际数据存储可以是外表,也可以是内表clickhouse单体架构分层类似mysql,集群状态下是多主,通过zookeeper通信数据存储看引擎,最重要的引擎
- jquery实现select2插件鼠标点击任意地方时默认选中该输入框内的值
小程小程心想事程
jquery计算机外设前端
jquery实现select2插件鼠标点击任意地方时默认选中该输入框内的值最近发现一个问题,插件select2中的select2可输入可选择的下拉框,在你输入值后鼠标点击别的地方,输入框内的值会被清空,特此记录一下这里的优化,这里修改为鼠标点击任意地方时默认选中该输入框内的值;代码如下://select2输入框鼠标点击任何地方时默认选中该值$(document).on("click",functi
- Echarts中事件与行为知识点
依墨~
javascript开发语言ecmascript
1.鼠标事件有'click'、'dblclick'、'mousedown'、'mousemove'、'mouseup'、'mouseover'、'mouseout'、'globalout'、'contextmenu'事件。下面先来看一个简单的点击柱状图后打开相应的百度搜索页面的示例。//基于准备好的dom,初始化ECharts实例//varmyChart=echarts.init(document
- uni-app,app下载文件到自定义文件夹中,为了方便使用者快速找到下载到手机的文件
泡芙小姨
uni-app前端javascriptvue.jshtmlhtml5
html给一个点击事件'clickOk()'{{item.original||'未填写手册名称'}}js这里我的app和H5用的是两个方法,app的下载方法是自定义下载路径,H5是用的uni官方方法,下载路径不可以指定位置clickOk(item){//#ifdefAPP-PLUS//本地路径开头使用file://,跟上手机文件本地目录storage/emulated/0,//后缀是用于文件命名和
- jQuery事件与DOM操作
我讲个笑话你可别哭啊
jquery前端javascript
1.jQuery中的事件基础事件鼠标事件、键盘事件、window事件、表单事件复合事件鼠标光标悬停鼠标连续点击2.鼠标事件方法描述执行时机click()触发或将函数绑定到指定元素的click事件单击鼠标时mouseover()触发或将函数绑定到指定元素的mouseover事件鼠标指针移过时mouseout()触发或将函数绑定到指定元素的mouseout事件鼠标指针移出时mouseenter()触发
- 【Hadoop】在spark读取clickhouse中数据
方大刚233
HadoopScalahadoopsparkclickhouse
读取clickhouse数据库数据importscala.collection.mutable.ArrayBufferimportjava.util.Propertiesimportorg.apache.spark.sql.SaveModeimportorg.apache.spark.sql.SparkSessiondefgetCKJdbcProperties(batchSize:String="
- 3、electron-vue菜单栏跳转
诺风丶
electron-vueelectron-vueelectron-vueelectron
方法一:主线程与渲染线程通信(1)在主线程目录main的index.js配置如下,其中mainWindow是BrowserWindow对象...consttemplate=[{label:'主页',click(){mainWindow.webContents.send('href','home');}},{label:'设备',click(){mainWindow.webContents.send
- mongodb3.03开启认证
21jhf
mongodb
下载了最新mongodb3.03版本,当使用--auth 参数命令行开启mongodb用户认证时遇到很多问题,现总结如下:
(百度上搜到的基本都是老版本的,看到db.addUser的就是,请忽略)
Windows下我做了一个bat文件,用来启动mongodb,命令行如下:
mongod --dbpath db\data --port 27017 --directoryperdb --logp
- 【Spark103】Task not serializable
bit1129
Serializable
Task not serializable是Spark开发过程最令人头疼的问题之一,这里记录下出现这个问题的两个实例,一个是自己遇到的,另一个是stackoverflow上看到。等有时间了再仔细探究出现Task not serialiazable的各种原因以及出现问题后如何快速定位问题的所在,至少目前阶段碰到此类问题,没有什么章法
1.
package spark.exampl
- 你所熟知的 LRU(最近最少使用)
dalan_123
java
关于LRU这个名词在很多地方或听说,或使用,接下来看下lru缓存回收的实现
1、大体的想法
a、查询出最近最晚使用的项
b、给最近的使用的项做标记
通过使用链表就可以完成这两个操作,关于最近最少使用的项只需要返回链表的尾部;标记最近使用的项,只需要将该项移除并放置到头部,那么难点就出现 你如何能够快速在链表定位对应的该项?
这时候多
- Javascript 跨域
周凡杨
JavaScriptjsonp跨域cross-domain
 
- linux下安装apache服务器
g21121
apache
安装apache
下载windows版本apache,下载地址:http://httpd.apache.org/download.cgi
1.windows下安装apache
Windows下安装apache比较简单,注意选择路径和端口即可,这里就不再赘述了。 2.linux下安装apache:
下载之后上传到linux的相关目录,这里指定为/home/apach
- FineReport的JS编辑框和URL地址栏语法简介
老A不折腾
finereportweb报表报表软件语法总结
JS编辑框:
1.FineReport的js。
作为一款BS产品,browser端的JavaScript是必不可少的。
FineReport中的js是已经调用了finereport.js的。
大家知道,预览报表时,报表servlet会将cpt模板转为html,在这个html的head头部中会引入FineReport的js,这个finereport.js中包含了许多内置的fun
- 根据STATUS信息对MySQL进行优化
墙头上一根草
status
mysql 查看当前正在执行的操作,即正在执行的sql语句的方法为:
show processlist 命令
mysql> show global status;可以列出MySQL服务器运行各种状态值,我个人较喜欢的用法是show status like '查询值%';一、慢查询mysql> show variab
- 我的spring学习笔记7-Spring的Bean配置文件给Bean定义别名
aijuans
Spring 3
本文介绍如何给Spring的Bean配置文件的Bean定义别名?
原始的
<bean id="business" class="onlyfun.caterpillar.device.Business">
<property name="writer">
<ref b
- 高性能mysql 之 性能剖析
annan211
性能mysqlmysql 性能剖析剖析
1 定义性能优化
mysql服务器性能,此处定义为 响应时间。
在解释性能优化之前,先来消除一个误解,很多人认为,性能优化就是降低cpu的利用率或者减少对资源的使用。
这是一个陷阱。
资源时用来消耗并用来工作的,所以有时候消耗更多的资源能够加快查询速度,保持cpu忙绿,这是必要的。很多时候发现
编译进了新版本的InnoDB之后,cpu利用率上升的很厉害,这并不
- 主外键和索引唯一性约束
百合不是茶
索引唯一性约束主外键约束联机删除
目标;第一步;创建两张表 用户表和文章表
第二步;发表文章
1,建表;
---用户表 BlogUsers
--userID唯一的
--userName
--pwd
--sex
create
- 线程的调度
bijian1013
java多线程thread线程的调度java多线程
1. Java提供一个线程调度程序来监控程序中启动后进入可运行状态的所有线程。线程调度程序按照线程的优先级决定应调度哪些线程来执行。
2. 多数线程的调度是抢占式的(即我想中断程序运行就中断,不需要和将被中断的程序协商)
a) 
- 查看日志常用命令
bijian1013
linux命令unix
一.日志查找方法,可以用通配符查某台主机上的所有服务器grep "关键字" /wls/applogs/custom-*/error.log
二.查看日志常用命令1.grep '关键字' error.log:在error.log中搜索'关键字'2.grep -C10 '关键字' error.log:显示关键字前后10行记录3.grep '关键字' error.l
- 【持久化框架MyBatis3一】MyBatis版HelloWorld
bit1129
helloworld
MyBatis这个系列的文章,主要参考《Java Persistence with MyBatis 3》。
样例数据
本文以MySQL数据库为例,建立一个STUDENTS表,插入两条数据,然后进行单表的增删改查
CREATE TABLE STUDENTS
(
stud_id int(11) NOT NULL AUTO_INCREMENT,
- 【Hadoop十五】Hadoop Counter
bit1129
hadoop
1. 只有Map任务的Map Reduce Job
File System Counters
FILE: Number of bytes read=3629530
FILE: Number of bytes written=98312
FILE: Number of read operations=0
FILE: Number of lar
- 解决Tomcat数据连接池无法释放
ronin47
tomcat 连接池 优化
近段时间,公司的检测中心报表系统(SMC)的开发人员时不时找到我,说用户老是出现无法登录的情况。前些日子因为手头上 有Jboss集群的测试工作,发现用户不能登录时,都是在Tomcat中将这个项目Reload一下就好了,不过只是治标而已,因为大概几个小时之后又会 再次出现无法登录的情况。
今天上午,开发人员小毛又找到我,要我协助将这个问题根治一下,拖太久用户难保不投诉。
简单分析了一
- java-75-二叉树两结点的最低共同父结点
bylijinnan
java
import java.util.LinkedList;
import java.util.List;
import ljn.help.*;
public class BTreeLowestParentOfTwoNodes {
public static void main(String[] args) {
/*
* node data is stored in
- 行业垂直搜索引擎网页抓取项目
carlwu
LuceneNutchHeritrixSolr
公司有一个搜索引擎项目,希望各路高人有空来帮忙指导,谢谢!
这是详细需求:
(1) 通过提供的网站地址(大概100-200个网站),网页抓取程序能不断抓取网页和其它类型的文件(如Excel、PDF、Word、ppt及zip类型),并且程序能够根据事先提供的规则,过滤掉不相干的下载内容。
(2) 程序能够搜索这些抓取的内容,并能对这些抓取文件按照油田名进行分类,然后放到服务器不同的目录中。
- [通讯与服务]在总带宽资源没有大幅增加之前,不适宜大幅度降低资费
comsci
资源
降低通讯服务资费,就意味着有更多的用户进入,就意味着通讯服务提供商要接待和服务更多的用户,在总体运维成本没有由于技术升级而大幅下降的情况下,这种降低资费的行为将导致每个用户的平均带宽不断下降,而享受到的服务质量也在下降,这对用户和服务商都是不利的。。。。。。。。
&nbs
- Java时区转换及时间格式
Cwind
java
本文介绍Java API 中 Date, Calendar, TimeZone和DateFormat的使用,以及不同时区时间相互转化的方法和原理。
问题描述:
向处于不同时区的服务器发请求时需要考虑时区转换的问题。譬如,服务器位于东八区(北京时间,GMT+8:00),而身处东四区的用户想要查询当天的销售记录。则需把东四区的“今天”这个时间范围转换为服务器所在时区的时间范围。
- readonly,只读,不可用
dashuaifu
jsjspdisablereadOnlyreadOnly
readOnly 和 readonly 不同,在做js开发时一定要注意函数大小写和jsp黄线的警告!!!我就经历过这么一件事:
使用readOnly在某些浏览器或同一浏览器不同版本有的可以实现“只读”功能,有的就不行,而且函数readOnly有黄线警告!!!就这样被折磨了不短时间!!!(期间使用过disable函数,但是发现disable函数之后后台接收不到前台的的数据!!!)
- LABjs、RequireJS、SeaJS 介绍
dcj3sjt126com
jsWeb
LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步并行加载,Blocking 是指同步等待执行。LABjs 通过优雅的语法(script 和 wait)实现了这两大特性,核心价值是性能优化。LABjs 是一个文件加载器。RequireJS 和 SeaJS 则是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更
- [应用结构]入口脚本
dcj3sjt126com
PHPyii2
入口脚本
入口脚本是应用启动流程中的第一环,一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。终端用户的请求通过入口脚本实例化应用并将将请求转发到应用。
Web 应用的入口脚本必须放在终端用户能够访问的目录下,通常命名为 index.php,也可以使用 Web 服务器能定位到的其他名称。
控制台应用的入口脚本一般在应用根目录下命名为 yii(后缀为.php),该文
- haoop shell命令
eksliang
hadoophadoop shell
cat
chgrp
chmod
chown
copyFromLocal
copyToLocal
cp
du
dus
expunge
get
getmerge
ls
lsr
mkdir
movefromLocal
mv
put
rm
rmr
setrep
stat
tail
test
text
- MultiStateView不同的状态下显示不同的界面
gundumw100
android
只要将指定的view放在该控件里面,可以该view在不同的状态下显示不同的界面,这对ListView很有用,比如加载界面,空白界面,错误界面。而且这些见面由你指定布局,非常灵活。
PS:ListView虽然可以设置一个EmptyView,但使用起来不方便,不灵活,有点累赘。
<com.kennyc.view.MultiStateView xmlns:android=&qu
- jQuery实现页面内锚点平滑跳转
ini
JavaScripthtmljqueryhtml5css
平时我们做导航滚动到内容都是通过锚点来做,刷的一下就直接跳到内容了,没有一丝的滚动效果,而且 url 链接最后会有“小尾巴”,就像#keleyi,今天我就介绍一款 jquery 做的滚动的特效,既可以设置滚动速度,又可以在 url 链接上没有“小尾巴”。
效果体验:http://keleyi.com/keleyi/phtml/jqtexiao/37.htmHTML文件代码:
&
- kafka offset迁移
kane_xie
kafka
在早前的kafka版本中(0.8.0),offset是被存储在zookeeper中的。
到当前版本(0.8.2)为止,kafka同时支持offset存储在zookeeper和offset manager(broker)中。
从官方的说明来看,未来offset的zookeeper存储将会被弃用。因此现有的基于kafka的项目如果今后计划保持更新的话,可以考虑在合适
- android > 搭建 cordova 环境
mft8899
android
1 , 安装 node.js
http://nodejs.org
node -v 查看版本
2, 安装 npm
可以先从 https://github.com/isaacs/npm/tags 下载 源码 解压到
- java封装的比较器,比较是否全相同,获取不同字段名字
qifeifei
非常实用的java比较器,贴上代码:
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
i
- 记录一些函数用法
.Aky.
位运算PHP数据库函数IP
高手们照旧忽略。
想弄个全天朝IP段数据库,找了个今天最新更新的国内所有运营商IP段,copy到文件,用文件函数,字符串函数把玩下。分割出startIp和endIp这样格式写入.txt文件,直接用phpmyadmin导入.csv文件的形式导入。(生命在于折腾,也许你们觉得我傻X,直接下载人家弄好的导入不就可以,做自己的菜鸟,让别人去说吧)
当然用到了ip2long()函数把字符串转为整型数
- sublime text 3 rust
wudixiaotie
Sublime Text
1.sublime text 3 => install package => Rust
2.cd ~/.config/sublime-text-3/Packages
3.mkdir rust
4.git clone https://github.com/sp0/rust-style
5.cd rust-style
6.cargo build --release
7.ctrl