Alfred workflow 开发指南

小帽子alfred是mac上最为传奇的效率作品, 今天,我们一起来探索alfred workflow 的世界吧!

1. alfred 简介

小帽子是 Mac 平台上最为传奇的效率作品,誉为神兵利器毫不为过。

由于中文网络上尚无系统的alfred workflow 开发教程,便有了写一个教程的心思,以期抛砖引玉,为alfred吸引更多的开发者加入。


2.alfred 插件开发

2.1 alfred 插件开发概述

Workflow 是alfred2.0推出的最激动人心的特性,通过与脚本语言的交互,workflow可以支持任意操作,把您日常的重复性事务封装在脚本中,大大的提高工作效率。

Workflow 支持php、bash、perl、ruby以及python作为脚本语言,并内置脚本语言解释器,并通过stdio的形式在各个脚本模块中传递参数。

在代码中插入 {query}块可以接收上一个脚本输出的内容。形成完整的控制链条。 最后由alfred输出至 Output 模块, 在Output模块中, 我们可以启动浏览器、将内容复制到剪切板、 启动通知中心、甚至执行bash脚本。

在日常的使用中,我们通常通过关键字来调用某一模块,例如“find xxx” 即是调用find内建模块 query内容为xxx。 在workflow的开发中, 开发者可以自定义自己编写模块的关键字,只要不与其他模块冲突即可。

在workflow的结构中,数据流通过alfred的控制线进行传递,每一个脚本模块的STDIO输出会被alfred替换到 下一个脚本的{query}块中。

如下图所示:

Alfred workflow 开发指南_第1张图片

 

其中,我们使用『拖动』的方式,控制数据在workflow的流向:

Alfred workflow 开发指南_第2张图片

 

以上的 有道翻译workflow的数据流向是这样的。

通过yd作为关键字启动workflow, 如果直接回车,使用OpenURL,启动youdao网站。如果使用Cmd+回车的方式, 则执行Run Scirpt 并将其输出到剪切板,并用Post Notification的方式,在通知中心显示。

2.2 Alfred的XML格式概述


 在Alfred脚本执行的最后一部中, 所有数据要被封装到XML格式中被alfred调用,其格式为

    
    title
    subtitle
    icon
    

运行之后的效果是:

Alfred workflow 开发指南_第3张图片

 

根节点为items 其中包括任意多个item节点,每一个item节点代表本次查询结果的一行。 每一个item节点包括若干parameter与childnode,其含义为: uid: 每一个item要有一个独立的uid,不可重复 valid:值为yes 或者 no, 若为no,该行结果不可被选择 autocomplete : 自动补全的值, 使用tab可以令alfred自动补全为 autocompelete属性的值. arg:作为下一个模块的参数传递

该行item的标题,也是主要显示的位置。 <subtitle> 该行字标题位置,会被显示为灰色小字 <icon> 该行图标的文件名,其大小为64X64 pixels</p> <h2 id="23-query-与-stdio">2.3 {query} 与 stdio</h2> <hr> <p>alfred模块间数据是如何传递的,曾经困扰我很久。</p> <p>其数据流是这样的, 你在关键字之后的文字会作为第一个模块的query, 由alfred替换代码中{query}的位置, 该模块print到stdio的数据会像第一个模块一样,去替换第二个模块的{query}位置,直到最后生成XML文件, 只有最后一步是不一样的,也就是xml文件输出之后, 用户在不同的条目上按回车, alfred将把该条目对应的item的arg属性的值传递给下一个模块。</p> <h2 id="24-python-开发示例">2.4 python 开发示例</h2> <hr> <p>下面,我将用开发一个百度词典为例,详细讲解开发alred插件中的每一个步骤。</p> <p>###2.4.1 Script Filter Script Filter 的作用是提供一个Alfred workflow的起始点,可以通过点击右上角的加号,从Inputs中选择。</p> <p>它的界面如下图所示:</p> <p><a href="http://img.e-com-net.com/image/info8/1b791c973e3b495fb0f4fc81897e6d9d.jpg" target="_blank"><img alt="Alfred workflow 开发指南_第4张图片" height="430" src="http://img.e-com-net.com/image/info8/1b791c973e3b495fb0f4fc81897e6d9d.jpg" width="650" style="border:1px solid black;"></a></p> <p> </p> <p>在上图中可以看出, 输入 “bdc hello” 之后, alfred会启动一个python解释器,并运行Scirpt栏中的代码。</p> <p>Script中的{query}会被alfred自动的取代为「hello」.</p> <p>也就是,此时 实际运行的代码是</p> <pre class="has"><code>import bddict bddict.query('hello') </code></pre> <hr> <p>其中 , bddict.py 的代码如下:</p> <pre class="has"><code> # -*- coding: utf_8 -*- # author xiaogo import sys import hashlib import time import math import base64 import urllib2 import urllib import re import json import alfredxml client_id = '1xML4eLvqG8runr4uHcDPU6f' def is_cn_char(i): return 0x4e00<=ord(i)<0x9fa6 def bdDict(From,To,Q): resp = urllib2.urlopen("http://openapi.baidu.com/public/2.0/translate/dict/simple?client_id=%s&q=%s&from=%s&to=%s"%(client_id,Q,From,To)).read() js = json.loads(resp,encoding = 'utf-8') return js # alfred 的入口函数. def query(query): # 对query 作防御 if(len(query)==0): rowList = [{'uid':'1', 'arg':'', 'autocomplete':'', 'icon':'icon.png', 'subtitle':'Please Input', 'title':'Please Input'}] element = alfredxml.genAlfredXML(rowList) print(element) return # 判断是否为中文字符,若是 汉译英 若否 英译汉 if(is_cn_char(unicode(query,"utf-8")[0] )): resp = bdDict("zh","en",query) else: resp = bdDict("en","zh",query) if(resp[u'errno'] == 0): # 通过bdDict() 函数 ,调用百度词典HTTP接口. if(len(resp[u'data'])==0): return rowList = [] subtitle = '' k = resp['data']['symbols'][0] # 解析JSON. uid = 1 for i in k.keys(): if(i.startswith("ph_")): subtitle +=i[3:]+'['+ resp['data']['symbols'][0][i] + ']' # 解析JSON, 生成rowList rowList.append({ 'uid':uid, 'arg':query, 'autocomplete':query, 'icon':'icon.png', 'subtitle':subtitle.encode("utf-8"), 'title':'发音'}) uid +=1 for i in resp['data']['symbols'][0]['parts']: if(len(i['part'])>0): subtitle = reduce(lambda x,y:x+","+y, i['part']) else: subtitle = '' title = reduce(lambda x,y:x+","+y, i['means']) rowList.append({ 'uid':uid, 'arg':query, 'autocomplete':query, 'icon':'icon.png', 'subtitle':subtitle.encode("utf-8"), 'title':title.encode("utf-8")}) uid +=1 else: print("err") pass #print(rowList) # 生成XML文件. print(alfredxml.genAlfredXML(rowList)) </code></pre> <hr> <p>其中, 生成XML的代码如下 alfredxml.py :</p> <pre class="has"><code># 生成XML文件 def genElement(lists): assert(len(lists)%3==0) name = lists[0] # 节点名 params = lists[1] # 节点属性list content = lists[2] # 节点内容 , 可能是String 或者是包含其他Element. string = '' string +="<%s"%name + “ “ # 以下为解析XML List的过程 for k,v in params.items(): # 枚举属性 string+='%s = "%s" '%(k,v) if(isinstance(content, str)): # 通过递归 解析子节点 text = content else: text = genElement(content) string +=">" + text + "</%s>\n"%name if(len(lists)<=3): # 通过递归, 解析同级节点 return string else: return string + genElement(lists[3:]) def genAlfredXML(rowList): # 生成alfred所需要的XML String. item = [] for row in rowList: tsi = ['title',{},row['title'],'subtitle',{},row['subtitle'],'icon',{},row['icon']] item.extend(['item',{'uid':row['uid'],'arg':row['arg'],'autocomplete':row['autocomplete']},tsi]) items = ['items',{},item] return genElement(items) if __name__=='__main__': rowList = [{'uid':'123321','arg':'argsx','autocomplete':'autocompletex','icon':'icon','subtitle':'subtitle','title':'title'}] element = genAlfredXML(rowList) print(element) </code></pre> <p>###2.4.2 Output</p> <p>output 是 alfred 中的『执行器』。</p> <p>通过Script Filter, 我们已经得到了一个alfred 的结果列表, 通过点按回车键,我们可以执行相应的命令。 以百度词典这个workflow为例,我们打开了百度词典的网站。</p> <p>执行的时候,我们打开了http://dict.baidu.com/s?wd={query}</p> <p>注意,这里又出现了一个{query}</p> <p>这个{query} 将承接 Scirpt Filter 中,被点击回车的那条XML 节点中的 arg参数 。</p> <p><a href="http://img.e-com-net.com/image/info8/5b28ce42204b4c42bbdcb672ba134035.jpg" target="_blank"><img alt="Alfred workflow 开发指南_第5张图片" height="427" src="http://img.e-com-net.com/image/info8/5b28ce42204b4c42bbdcb672ba134035.jpg" width="650" style="border:1px solid black;"></a></p> <p> </p> <p>实际上,我们不仅可以使用URL Open 作为 结果,也可以使用Terminal Command 作为结果执行。</p> <p>使用Terminal ,可以令你更加随心所欲的控制你的MAC. 实现诸如Wifi切换、更改DNS服务器、启动某个服务端、甚至可以控制你家的空调或者咖啡机, 这以前只有emacs才能做到 ;)</p> <p>#3.参考文献</p> <hr> <p>1.Alfred - workflow python dev lib</p> <p>2.Tutorial on alfred workflow with python</p> <p>来源: http://myg0u.com/python/2015/05/23/tutorial-alfred-workflow.html</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1280996958135140352"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(效率)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1902954927089577984.htm" title="TK矩阵系统:高效管理与智能化操作平台" target="_blank">TK矩阵系统:高效管理与智能化操作平台</a> <span class="text-muted">m0_74891046</span> <a class="tag" taget="_blank" href="/search/%E7%9F%A9%E9%98%B5/1.htm">矩阵</a> <div>随着TikTok等社交媒体平台的快速发展,短视频创作和内容运营逐渐成为互联网行业的重要组成部分。为了帮助内容创作者、品牌运营商以及数据分析人员更高效地管理多个TikTok账号并优化运营策略,TK矩阵系统提供了一种全新的解决方案,结合了先进的软件技术与硬件设施,旨在简化操作流程,提高工作效率。TK矩阵系统概述TK矩阵系统是一款集成软件与硬件的综合平台,专为TikTok内容管理和数据采集设计。系统使用</div> </li> <li><a href="/article/1902948238458155008.htm" title="【Kafka高级】Kafka性能优化与调优实践" target="_blank">【Kafka高级】Kafka性能优化与调优实践</a> <span class="text-muted">全栈追梦人</span> <a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/linq/1.htm">linq</a> <div>在大规模数据处理和实时消息传递场景中,Kafka的性能优化至关重要。本文将从生产者性能优化、消费者性能优化以及集群性能调优三个方面展开,结合实际代码示例和配置参数,帮助读者更好地理解和应用Kafka性能优化策略。一、生产者性能优化Kafka生产者的性能直接影响消息发送的效率和系统的吞吐量。以下是一些关键优化策略:1.1批量发送生产者会将消息批量发送到Kafka,减少网络请求次数。以下参数对批量发送</div> </li> <li><a href="/article/1902947100799332352.htm" title="稳定运行的以PostgreSQL数据库为数据源和目标的ETL性能变差时提高性能方法和步骤" target="_blank">稳定运行的以PostgreSQL数据库为数据源和目标的ETL性能变差时提高性能方法和步骤</a> <span class="text-muted">weixin_30777913</span> <a class="tag" taget="_blank" href="/search/postgresql/1.htm">postgresql</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/etl/1.htm">etl</a> <div>在使用PostgreSQL作为数据源和目标的ETL(Extract,Transform,Load)过程中,当ETL性能变差时,可以通过一系列方法来诊断问题并提高性能。提高PostgreSQL数据库ETL性能的核心思想是从数据库配置、查询优化、硬件资源、并行处理等多个方面入手。通过上述方法逐步优化,可以大幅提升ETL过程的效率。下面是提高PostgreSQL数据库ETL性能的一些常用方法和步骤:1.</div> </li> <li><a href="/article/1902941175258607616.htm" title="【工具】gdb使用详细介绍" target="_blank">【工具】gdb使用详细介绍</a> <span class="text-muted">努力努力再努力~~</span> <a class="tag" taget="_blank" href="/search/linux%E7%96%91%E9%9A%BE%E9%97%AE%E9%A2%98%E6%8E%92%E6%9F%A5%E5%AE%9E%E6%88%98/1.htm">linux疑难问题排查实战</a><a class="tag" taget="_blank" href="/search/gdb/1.htm">gdb</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E9%97%AE%E9%A2%98%E8%B0%83%E8%AF%95/1.htm">问题调试</a> <div>linux问题排查实战专栏,分享了作为公司专家,在解决内存、性能、各类死机等疑难问题的排查经验,认真学习可以让你在日后工作中大放光彩。前言在工作中,无论是学习代码流程还是问题的定位,GDB都显得尤为重要,多掌握一些命令可以提升我们的效率和解决问题的能力;按照我的理解,对GDB的掌握程度可以分为三种人:基础命令,大家都知道相对高阶一点的,少数人了解,掌握之后可以提升调试解决问题的效率需要结合反汇编、</div> </li> <li><a href="/article/1902940543860666368.htm" title="AI人工智能 Agent:在赋能传统行业中的应用" target="_blank">AI人工智能 Agent:在赋能传统行业中的应用</a> <span class="text-muted">AI天才研究院</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97/1.htm">计算</a><a class="tag" taget="_blank" href="/search/DeepSeek/1.htm">DeepSeek</a><a class="tag" taget="_blank" href="/search/R1/1.htm">R1</a><a class="tag" taget="_blank" href="/search/%26amp%3B/1.htm">&</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AEAI%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大数据AI人工智能大模型</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E7%A7%91%E5%AD%A6/1.htm">计算科学</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E8%AE%A1%E7%AE%97/1.htm">神经计算</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%9E%8B%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">大型语言模型</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/AGI/1.htm">AGI</a><a class="tag" taget="_blank" href="/search/LLM/1.htm">LLM</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a><a class="tag" taget="_blank" href="/search/Agent/1.htm">Agent</a><a class="tag" taget="_blank" href="/search/RPA/1.htm">RPA</a> <div>AI人工智能Agent:在赋能传统行业中的应用1.背景介绍1.1人工智能的发展历程1.1.1人工智能的起源与发展1.1.2人工智能的三次浪潮1.1.3人工智能的现状与挑战1.2传统行业面临的困境1.2.1效率低下1.2.2成本高企1.2.3决策滞后1.3人工智能赋能传统行业的必要性1.3.1提高效率1.3.2降低成本1.3.3优化决策2.核心概念与联系2.1人工智能Agent的定义2.1.1Age</div> </li> <li><a href="/article/1902936630180769792.htm" title="锥面箍接/快拆环突破!拆装效率飙升200%,终结机器人螺丝拆装时代" target="_blank">锥面箍接/快拆环突破!拆装效率飙升200%,终结机器人螺丝拆装时代</a> <span class="text-muted">CodePatentMaster</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA/1.htm">机器人</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>颠覆性散热革新!宇树科技弹性散热架构让四足机器人稳定性提升40%核心价值杭州宇树科技通过弹性接触式散热仓盖与导流件协同设计,实现计算单元散热效率提升32%且抗冲击性能增强40%,攻克四足机器人高热工况下的核心组件易损难题[1][4]。一、技术原理深度剖析1.痛点定位:高动态场景下的散热与防护两难当前四足机器人的计算单元面临两大挑战:散热瓶颈:传统刚性固定导致接触热阻增加30%以上(见热成像对比数据</div> </li> <li><a href="/article/1902935240846929920.htm" title="BRAM消耗与FIFO的关系:有效利用FPGA资源的策略" target="_blank">BRAM消耗与FIFO的关系:有效利用FPGA资源的策略</a> <span class="text-muted">kanhao100</span> <a class="tag" taget="_blank" href="/search/HLS/1.htm">HLS</a><a class="tag" taget="_blank" href="/search/fpga%E5%BC%80%E5%8F%91/1.htm">fpga开发</a> <div>BRAM消耗与FIFO的关系:有效利用FPGA资源的策略引言在FPGA设计中,BRAM(BlockRAM)是用于存储数据的重要资源。有效管理和利用BRAM对于实现高性能数字系统至关重要。特别是对于需要频繁读写数据的应用,FIFO(先进先出)缓冲区的使用与BRAM的消耗之间存在着密切的关系。本文将探讨BRAM的消耗、FIFO的特性,以及如何正确利用BRAM以优化设计效率。1.BRAM的基本概念1.1</div> </li> <li><a href="/article/1902935229820104704.htm" title="如何用大模型评估大模型——PAI-Judge裁判员大语言模型的实现简介" target="_blank">如何用大模型评估大模型——PAI-Judge裁判员大语言模型的实现简介</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%A4%A7%E6%A8%A1%E5%9E%8Bllm/1.htm">人工智能机器学习大模型llm</a> <div>背景:为什么需要一个「裁判员大语言模型」?随着大模型(LLM)技术的爆发式应用,如何快速、客观评估模型回复质量成为行业痛点。对于回答客观问题的LLM,目前业内已经有比较成熟的数据集进行效果评测与模型打榜。但是如何对一个开放式生成LLM进行效果评估,尤其在知识问答、客服对话、内容合规、RAG(检索增强生成)等场景中,目前主流的评测方式仍存在一定的局限性:人工标注:成本高昂、效率低下;传统的自动化评估</div> </li> <li><a href="/article/1902930441397137408.htm" title="2025年远程办公必备:挑选高性能控制软件的7个关键指标" target="_blank">2025年远程办公必备:挑选高性能控制软件的7个关键指标</a> <span class="text-muted">2501_90729959</span> <a class="tag" taget="_blank" href="/search/RayLink/1.htm">RayLink</a><a class="tag" taget="_blank" href="/search/%E8%BF%9C%E7%A8%8B%E5%8A%9E%E5%85%AC/1.htm">远程办公</a><a class="tag" taget="_blank" href="/search/%E8%BF%9C%E7%A8%8B%E6%8E%A7%E5%88%B6%E8%BD%AF%E4%BB%B6/1.htm">远程控制软件</a><a class="tag" taget="_blank" href="/search/%E7%94%B5%E8%84%91/1.htm">电脑</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>随着远程办公传模式的普及,企业对高效、安全的远程控制软件需求持续攀升。数据显示,2025年全球远程办公市场规模预计突破3000亿美元,而选择一款适配的远程控制工具,已成为提升团队协作效率的核心环节。指标1:连接速度与稳定性远程办公传的核心诉求是“即时响应”,而延迟卡顿会直接影响会议沟通、设计协作等场景的效率。以游戏加速技术起家的RayLink,凭借自研的Sakura网络协议,实现了10ms级超低延</div> </li> <li><a href="/article/1902926018063167488.htm" title="外贸英语报价单制作步骤分享,可在线编辑" target="_blank">外贸英语报价单制作步骤分享,可在线编辑</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E8%B4%A2%E5%8A%A1%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%E8%B4%A2%E5%8A%A1%E8%BD%AF%E4%BB%B6%E8%BF%9B%E9%94%80%E5%AD%98%E7%B3%BB%E7%BB%9F/1.htm">财务管理系统财务软件进销存系统</a> <div>在国际贸易中,一份专业、清晰的外贸英语报价单是赢得客户信任的关键工具。它不仅需要准确传递产品信息与价格条款,还需符合国际商务规范。本文将深入解析外贸英语报价单的核心要素,并介绍如何通过ZohoBooks快速制作标准化模板,提升业务效率与竞争力。一、外贸英语报价单模板的核心要素一份完整的报价单需涵盖以下关键内容:1、基础信息标题与编号:明确标注“Quotation”或“ProformaInvoice</div> </li> <li><a href="/article/1902921868877295616.htm" title="MySQL进阶——提高查询效率之添加索引的全部方式" target="_blank">MySQL进阶——提高查询效率之添加索引的全部方式</a> <span class="text-muted">1加1等于</span> <a class="tag" taget="_blank" href="/search/MySQL/1.htm">MySQL</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>索引提高查询效率,本文介绍优化查询时添加索引的多种方式。本文目录一、创建表时添加索引二、使用ALTERTABLE语句添加索引三、使用CREATEINDEX语句添加索引一、创建表时添加索引在使用CREATETABLE语句创建表的同时,可以为表中的列添加索引。适用于在设计表结构时就确定需要添加索引的情况。语法如下:CREATETABLEtable_name(column1datatype,column</div> </li> <li><a href="/article/1902913032594452480.htm" title="YOLOv12优化:图像去噪 | AAAI2025 Transformer |一种基于Transformer的盲点网络(TBSN)架构 ,结合空间和通道自注意力层来增强网络能力" target="_blank">YOLOv12优化:图像去噪 | AAAI2025 Transformer |一种基于Transformer的盲点网络(TBSN)架构 ,结合空间和通道自注意力层来增强网络能力</a> <span class="text-muted">AI小怪兽</span> <a class="tag" taget="_blank" href="/search/YOLOv12%E9%AD%94%E6%9C%AF%E5%B8%88/1.htm">YOLOv12魔术师</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/transformer/1.htm">transformer</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>提出了一种基于Transformer的盲点网络(TBSN)架构,通过分析和重新设计Transformer运算符以满足盲点要求。TBSN遵循扩张BSN的架构原则,并结合空间和通道自注意力层来增强网络能力。如何使用:1)结合C3k2二次创新使用;2)结合A2C2f二次创新使用;亮点包括:1.提出了一种新的基于Transformer的盲点网络(TBSN)架构;2.引入了知识蒸馏策略来提高计算效率;3.在</div> </li> <li><a href="/article/1902904459663568896.htm" title="端到端数字人生产线:如何实现日均3000条视频的工业级输" target="_blank">端到端数字人生产线:如何实现日均3000条视频的工业级输</a> <span class="text-muted">井云AI</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>端到端数字人生产线:基于DAG引擎如何实现日均3000条视频的工业级输出?一、行业困局:短视频生产的效率魔咒2025年《内容科技白皮书》数据显示:83%企业因人工剪辑效率低下错失流量红利(MCN机构月损500万+)6小时/条传统视频从脚本到成片的平均耗时(行业调研)15%误判率人工审核导致优质内容被误杀(教育品牌实测)这些数字背后,是内容生产领域的三重矛盾:质量、效率与合规的不可兼得。二、技术破局</div> </li> <li><a href="/article/1902901047630819328.htm" title="架构设计的灵魂交响曲:系统设计各维度的深度解析与实战指南" target="_blank">架构设计的灵魂交响曲:系统设计各维度的深度解析与实战指南</a> <span class="text-muted">领码科技</span> <a class="tag" taget="_blank" href="/search/IT%E8%81%8C%E5%9C%BA/1.htm">IT职场</a><a class="tag" taget="_blank" href="/search/%E6%8A%80%E8%83%BD%E7%AF%87/1.htm">技能篇</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/1.htm">系统设计</a><a class="tag" taget="_blank" href="/search/%E5%8A%9F%E8%83%BD%E6%A8%A1%E5%9D%97/1.htm">功能模块</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E5%9E%8B%E9%A9%B1%E5%8A%A8/1.htm">模型驱动</a><a class="tag" taget="_blank" href="/search/%E5%8D%8F%E5%90%8C%E8%AE%BE%E8%AE%A1/1.htm">协同设计</a> <div>引言:系统设计的背景与重要性在快速变化的技术环境中,数字化转型成为企业生存与发展的核心驱动力。系统设计能力不仅是技术团队的核心竞争力,也是推动业务创新和提升整体效率的关键因素。根据Gartner的研究,超过70%的数字化转型项目未能实现预期结果,这强调了有效系统设计的重要性。企业需通过科学合理的系统设计来应对市场变化、用户需求和技术发展,从而实现更高的业务价值。文章将深入探讨架构设计的各个维度,通</div> </li> <li><a href="/article/1902889069457764352.htm" title="并发爬虫实战:多线程高效抓取王者荣耀全英雄皮肤" target="_blank">并发爬虫实战:多线程高效抓取王者荣耀全英雄皮肤</a> <span class="text-muted">YiFoEr_Liu</span> <a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB%E6%A1%88%E4%BE%8B%E5%AE%9E%E6%93%8D/1.htm">爬虫案例实操</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB%E9%83%A8%E7%BD%B2/1.htm">爬虫部署</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a> <div>一、场景与挑战在网络爬虫开发中,我们常常面临以下挑战:需要处理成百上千个页面的数据抓取目标服务器存在反爬机制和请求频率限制单线程模式下载效率低下,难以充分利用带宽本文以王者荣耀英雄皮肤下载为例(日访问量超过1亿的热门游戏),演示如何通过Python并发编程实现高效数据抓取。二、技术选型分析2.1为什么选择并发线程?I/O密集型场景:网络请求占比90%以上GIL限制:Python线程适合I/O密集型</div> </li> <li><a href="/article/1902886295928107008.htm" title="无矩阵乘法LLM:效率与性能双突破" target="_blank">无矩阵乘法LLM:效率与性能双突破</a> <span class="text-muted">XianxinMao</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%9F%A9%E9%98%B5/1.htm">矩阵</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0/1.htm">线性代数</a> <div>标题:无矩阵乘法LLM:效率与性能双突破文章信息摘要:无矩阵乘法的LLMs通过创新技术替代传统矩阵乘法操作,显著降低了计算成本,减少了对GPU的依赖。这种模型在内存使用和延迟方面表现优异,尤其在大规模模型上效率显著提升。例如,13B参数的模型仅需4.19GBGPU内存,延迟低至695.48ms,远优于传统模型。此外,基于FPGA的硬件优化进一步提升了性能,1.3B参数模型功耗仅为13W,达到人类阅</div> </li> <li><a href="/article/1902886296628555776.htm" title="Adam-mini:深度学习内存效率新突破" target="_blank">Adam-mini:深度学习内存效率新突破</a> <span class="text-muted">XianxinMao</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>标题:Adam-mini:深度学习内存效率新突破文章信息摘要:Adam-mini优化器在深度学习领域展现出突破性潜力,尤其在内存效率和计算性能上表现卓越。相比AdamW,Adam-mini将内存效率提升了一倍,并通过减少学习率数量显著降低了内存消耗,同时保持了与AdamW相当甚至更好的性能。在训练十亿参数级别的大语言模型(LLM)时,Adam-mini实现了49.6%的吞吐量提升,并减少了33%的</div> </li> <li><a href="/article/1902878105391919104.htm" title="深入理解正则表达式:语法全解析" target="_blank">深入理解正则表达式:语法全解析</a> <span class="text-muted">谢兴豪</span> <div>本文还有配套的精品资源,点击获取简介:正则表达式是一种用于文本匹配的模式,广泛应用在文本处理、数据验证等领域。本文将全面探讨正则表达式的语法细节,包括字符匹配、元字符、字符类、量词、分组与反向引用、选择与否定、位置锚点、预定义字符集、模式修饰符、回溯控制以及正向先行断言和正向后行断言。掌握这些知识有助于提高编程效率和代码质量。1.正则表达式简介正则表达式是IT行业中的“瑞士军刀”,它们在文本处理、</div> </li> <li><a href="/article/1902870912206696448.htm" title="Sketch:UI界面设计原则与Sketch实现_2024-07-21_23-01-33.Tex" target="_blank">Sketch:UI界面设计原则与Sketch实现_2024-07-21_23-01-33.Tex</a> <span class="text-muted">chenjj4003</span> <a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91/1.htm">游戏开发</a><a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/%E4%BA%A4%E4%BA%92/1.htm">交互</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a><a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>Sketch:UI界面设计原则与Sketch实现Sketch:UI界面设计原则与Sketch实现UI设计基础UI设计的重要性在数字产品日益丰富的今天,用户界面设计(UserInterfaceDesign,简称UI设计)成为了决定产品用户体验的关键因素。良好的UI设计不仅能够提升产品的美观度,更重要的是,它能够确保用户在使用产品时的直观性、易用性和效率。UI设计的重要性体现在以下几个方面:提升用户体</div> </li> <li><a href="/article/1902868250891448320.htm" title="对于项目管理过程,如何减少项目返工?" target="_blank">对于项目管理过程,如何减少项目返工?</a> <span class="text-muted"></span> <div>在项目管理中,返工是吞噬资源、拖延进度、消磨士气的"隐形杀手"。据统计,软件开发项目中因需求变更导致的返工成本占总成本的30%-50%,而在建筑工程领域,返工率超过10%的项目普遍存在利润率下降风险。减少返工不仅是效率问题,更是项目管理的核心能力体现。本文将从返工根源剖析、全流程防控策略到工具方法落地,系统阐述如何构建"一次做对"的项目管理体系。一、返工的五大病根诊断需求模糊症(占比35%)用户需</div> </li> <li><a href="/article/1902858551043354624.htm" title="PyCharm如何有效地添加源与库?" target="_blank">PyCharm如何有效地添加源与库?</a> <span class="text-muted">程序员总部</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>在使用PyCharm进行Python开发的时候,很多时候我们需要添加库或者设置源。这些操作可以帮助我们更方便地管理项目依赖,提升开发效率。接下来我会详细介绍如何在PyCharm中添加源和库,让你的开发环境更加灵活!第一步:安装PyCharm在开始之前,你得确保自己已经安装了PyCharm!如果还没有,可以前往JetBrains官网进行下载和安装。有个小贴士,最好选择社区版或者专业版,根据自己的需要</div> </li> <li><a href="/article/1902848839732228096.htm" title="解析:浏览器事件冒泡及事件捕获" target="_blank">解析:浏览器事件冒泡及事件捕获</a> <span class="text-muted">C860</span> <a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a> <div>今天的效率有点奇葩,说高吧,一个上午做了不少事。说低吧,因为一个分布式的算法花了我不少时间,终于有点头绪。估计明天会写一篇文章来讲述一下自己的看法。而今天,还是回到前端。今天来说说事件冒泡和事件捕获。首先肯定是概念:什么是事件冒泡?什么是事件捕获?简单地说,事件冒泡和事件捕获都是一种事件传递的机制。这种机制可以使事件在不同级的元素间传递。事件冒泡是从事件触发的源节点,向父节点传递,直到到达最顶节点</div> </li> <li><a href="/article/1902848587600031744.htm" title="Ai时代初期,人类文明的多纬度演进方向分析" target="_blank">Ai时代初期,人类文明的多纬度演进方向分析</a> <span class="text-muted">Ai度</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>在AI时代初期,文明的演进呈现出多维度、跨领域的突破性特征,结合最新研究进展与实践案例,其深层变革可进一步细化为以下六大维度:一、技术平权与生产要素重构AI技术通过算力跃迁与认知革命重构生产要素。例如,华为昇腾芯片使县域政务系统获得省级决策能力,特斯拉工厂的机械臂实现0.8秒完成车身焊接,而量子-经典混合算法将药物分子模拟效率提升1200倍。这种技术平权运动正推动全球劳动生产率提升30%,同时催生</div> </li> <li><a href="/article/1902835598448717824.htm" title="基于springboot大学生入学审核系统的设计与实现" target="_blank">基于springboot大学生入学审核系统的设计与实现</a> <span class="text-muted">Olivia-gogogo</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>一、引言在当今数字化时代,信息技术正以前所未有的速度渗透到社会的各个领域,深刻地改变着人们的生活和工作方式。教育领域也不例外,随着高等教育的普及和招生规模的不断扩大,大学生入学审核工作面临着越来越大的挑战。传统的人工入学审核方式已难以满足现代教育管理的需求,暴露出诸多弊端。传统人工入学审核方式效率低下。在每年的招生季,高校招生工作人员需要面对大量的入学申请材料,这些材料不仅数量庞大,而且种类繁多,</div> </li> <li><a href="/article/1902829167355949056.htm" title="Starrocks使用中一些总结" target="_blank">Starrocks使用中一些总结</a> <span class="text-muted">WYRM_GOLD</span> <a class="tag" taget="_blank" href="/search/Starrocks/1.htm">Starrocks</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E4%BB%93%E5%BA%93/1.htm">数据仓库</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%BC%80%E5%8F%91/1.htm">数据库开发</a> <div>1、实时写入的注意事项数据表如果是每天写入,要创建分区(推荐按天分区)。表模型选择更新模型查询的维度列,整数类型列放在前面,有利于快速的查询表分区要设置过期时间,尽可能保留最近一年的数据。总结:1、分区是为了分区内数据查询时扫描的数据量减少,提高查询效率2、更新模型比组件模型更适合实时数据的写入,使用更新模型后IO和CPU使用都会有明显的下降。3、对应上述第三项中会提高查询效率,字符的扫描没有数值</div> </li> <li><a href="/article/1902820096095612928.htm" title="让你的 Git 历史更直观 —— 体验 VS Code 的 Interactive Git Log 插件" target="_blank">让你的 Git 历史更直观 —— 体验 VS Code 的 Interactive Git Log 插件</a> <span class="text-muted">小DuDu</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%85%B7/1.htm">工具</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a> <div>在日常开发中,我们离不开Git。但原生的gitlog命令虽然强大,却不够直观,查看历史记录时往往需要一遍遍地翻阅命令行输出,效率并不高。今天,就来介绍一款让你的Git历史更加可视化的VSCode插件——InteractiveGitLog!✨为什么选择InteractiveGitLog?Git版本管理的核心是commit记录,但传统的gitlog命令行方式过于“朴素”,让我们在查找某个特定提交时非常</div> </li> <li><a href="/article/1902812657409388544.htm" title="职场人必存!DeepSeek提示词大合集:周报速成、爆款文案、旅行攻略一键生成" target="_blank">职场人必存!DeepSeek提示词大合集:周报速成、爆款文案、旅行攻略一键生成</a> <span class="text-muted">阳光永恒736</span> <a class="tag" taget="_blank" href="/search/AI%E5%B7%A5%E5%85%B7/1.htm">AI工具</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a><a class="tag" taget="_blank" href="/search/AI%E6%8F%90%E7%A4%BA%E8%AF%8D/1.htm">AI提示词</a> <div>引言:AI时代,为什么你的提示词总“词不达意”?“同样的AI工具,同事用DeepSeek半小时写完周报还附赠数据分析图,我却只会问‘帮我总结本周工作’?”这可能是多数职场人的真实写照。AI工具的能力边界早已超越基础问答,但90%的用户仍停留在“无效提问”阶段10。而真正拉开差距的,是一套精准的提示词指令库——它能将模糊需求转化为AI可执行的“操作指南”,让效率提升10倍不止。一、职场效率:从“加班</div> </li> <li><a href="/article/1902805847516442624.htm" title="DeepLabv3+改进18:在主干网络中添加REP_BLOCK" target="_blank">DeepLabv3+改进18:在主干网络中添加REP_BLOCK</a> <span class="text-muted">AICurator</span> <a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/deeplabv3%2B/1.htm">deeplabv3+</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E4%B9%89%E5%88%86%E5%89%B2/1.htm">语义分割</a> <div>【DeepLabv3+改进专栏!探索语义分割新高度】你是否在为图像分割的精度与效率发愁?本专栏重磅推出:✅独家改进策略:融合注意力机制、轻量化设计与多尺度优化✅即插即用模块:ASPP+升级、解码器PS:订阅专栏提供完整代码论文简介我们提出了一种通用的卷积神经网络(ConvNet)构建模块,可在不增加推理时间成本的情况下提升性能。该模块名为多样化分支块(DBB),通过结合不同尺度和复杂度的多样化分支</div> </li> <li><a href="/article/1902797270508695552.htm" title="运维颠覆!一文解锁AI赋能运维实战秘籍,效率飙升!" target="_blank">运维颠覆!一文解锁AI赋能运维实战秘籍,效率飙升!</a> <span class="text-muted">ivwdcwso</span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E8%BF%90%E7%BB%B4/1.htm">智能运维</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4/1.htm">自动化运维</a><a class="tag" taget="_blank" href="/search/%E6%95%85%E9%9A%9C%E9%A2%84%E6%B5%8B/1.htm">故障预测</a> <div>导语在科技飞速发展的当下,运维领域正经历着深刻变革,AI的融入成为提升运维效率与质量的关键。然而,许多运维人员虽对AI满怀期待,却不知如何将其真正落地到实际工作中。本文将深入实战,带你领略AI如何在运维各环节大显身手,让你的运维工作开启智能高效新模式。一、AI在故障预测与诊断中的实战故障预测实战数据收集:以Linux服务器为例,利用Prometheus监控工具收集服务器的CPU使用率、内存使用率、</div> </li> <li><a href="/article/1902774189572550656.htm" title="算力技术演进与多场景融合路径" target="_blank">算力技术演进与多场景融合路径</a> <span class="text-muted">智能计算研究中心</span> <a class="tag" taget="_blank" href="/search/%E5%85%B6%E4%BB%96/1.htm">其他</a> <div>内容概要算力技术的演进正经历从异构计算到量子计算的范式跃迁。当前技术图谱中,芯片制程突破与架构创新持续推动算力密度提升,如5nm以下先进工艺与存算一体设计显著增强运算单元效率。与此同时,模型压缩、数据预处理等算法优化手段使单位算力产出提高30%以上。典型应用场景中,工业互联网通过自适应计算实现毫秒级实时控制,医疗影像领域借助分布式计算完成TB级数据处理,而智能安防系统依托边缘计算降低端到端时延至5</div> </li> <li><a href="/article/26.htm" title="设计模式介绍" target="_blank">设计模式介绍</a> <span class="text-muted">tntxia</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>设计模式来源于土木工程师 克里斯托弗 亚历山大(http://en.wikipedia.org/wiki/Christopher_Alexander)的早期作品。他经常发表一些作品,内容是总结他在解决设计问题方面的经验,以及这些知识与城市和建筑模式之间有何关联。有一天,亚历山大突然发现,重复使用这些模式可以让某些设计构造取得我们期望的最佳效果。 亚历山大与萨拉-石川佳纯和穆雷 西乐弗斯坦合作</div> </li> <li><a href="/article/153.htm" title="android高级组件使用(一)" target="_blank">android高级组件使用(一)</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/RatingBar/1.htm">RatingBar</a><a class="tag" taget="_blank" href="/search/Spinner/1.htm">Spinner</a> <div>1、自动完成文本框(AutoCompleteTextView) AutoCompleteTextView从EditText派生出来,实际上也是一个文本编辑框,但它比普通编辑框多一个功能:当用户输入一个字符后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择某个菜单项之后,AutoCompleteTextView按用户选择自动填写该文本框。 使用AutoCompleteTex</div> </li> <li><a href="/article/280.htm" title="[网络与通讯]路由器市场大有潜力可挖掘" target="_blank">[网络与通讯]路由器市场大有潜力可挖掘</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>          如果国内的电子厂商和计算机设备厂商觉得手机市场已经有点饱和了,那么可以考虑一下交换机和路由器市场的进入问题.....        这方面的技术和知识,目前处在一个开放型的状态,有利于各类小型电子企业进入  &nbs</div> </li> <li><a href="/article/407.htm" title="自写简单Redis内存统计shell" target="_blank">自写简单Redis内存统计shell</a> <span class="text-muted">商人shang</span> <a class="tag" taget="_blank" href="/search/Linux+shell/1.htm">Linux shell</a><a class="tag" taget="_blank" href="/search/%E7%BB%9F%E8%AE%A1Redis%E5%86%85%E5%AD%98/1.htm">统计Redis内存</a> <div>#!/bin/bash address="192.168.150.128:6666,192.168.150.128:6666" hosts=(${address//,/ }) sfile="staticts.log" for hostitem in ${hosts[@]} do ipport=(${hostitem</div> </li> <li><a href="/article/534.htm" title="单例模式(饿汉 vs懒汉)" target="_blank">单例模式(饿汉 vs懒汉)</a> <span class="text-muted">oloz</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a> <div>package 单例模式; /* * 应用场景:保证在整个应用之中某个对象的实例只有一个 * 单例模式种的《 懒汉模式》 * */ public class Singleton { //01 将构造方法私有化,外界就无法用new Singleton()的方式获得实例 private Singleton(){}; //02 申明类得唯一实例 priva</div> </li> <li><a href="/article/661.htm" title="springMvc json支持" target="_blank">springMvc json支持</a> <span class="text-muted">杨白白</span> <a class="tag" taget="_blank" href="/search/json+springmvc/1.htm">json springmvc</a> <div>1.Spring mvc处理json需要使用jackson的类库,因此需要先引入jackson包 2在spring mvc中解析输入为json格式的数据:使用@RequestBody来设置输入 @RequestMapping("helloJson") public @ResponseBody JsonTest helloJson() { </div> </li> <li><a href="/article/788.htm" title="android播放,掃描添加本地音頻文件" target="_blank">android播放,掃描添加本地音頻文件</a> <span class="text-muted">小桔子</span> <div>        最近幾乎沒有什麽事情,繼續鼓搗我的小東西。想在項目中加入一個簡易的音樂播放器功能,就像華為p6桌面上那麼大小的音樂播放器。用過天天動聽或者QQ音樂播放器的人都知道,可已通過本地掃描添加歌曲。不知道他們是怎麼實現的,我覺得應該掃描設備上的所有文件,過濾出音頻文件,每個文件實例化為一個實體,記錄文件名、路徑、歌手、類型、大小等信息。具體算法思想,</div> </li> <li><a href="/article/915.htm" title="oracle常用命令" target="_blank">oracle常用命令</a> <span class="text-muted">aichenglong</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/dba/1.htm">dba</a><a class="tag" taget="_blank" href="/search/%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/1.htm">常用命令</a> <div>1 创建临时表空间 create temporary tablespace user_temp  tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m  autoextend on  next 50m maxsize 20480m  extent management local</div> </li> <li><a href="/article/1042.htm" title="25个Eclipse插件" target="_blank">25个Eclipse插件</a> <span class="text-muted">AILIKES</span> <a class="tag" taget="_blank" href="/search/eclipse%E6%8F%92%E4%BB%B6/1.htm">eclipse插件</a> <div>提高代码质量的插件1. FindBugsFindBugs可以帮你找到Java代码中的bug,它使用Lesser GNU Public License的自由软件许可。2. CheckstyleCheckstyle插件可以集成到Eclipse IDE中去,能确保Java代码遵循标准代码样式。3. ECLemmaECLemma是一款拥有Eclipse Public License许可的免费工具,它提供了</div> </li> <li><a href="/article/1169.htm" title="Spring MVC拦截器+注解方式实现防止表单重复提交" target="_blank">Spring MVC拦截器+注解方式实现防止表单重复提交</a> <span class="text-muted">baalwolf</span> <a class="tag" taget="_blank" href="/search/spring+mvc/1.htm">spring mvc</a> <div>原理:在新建页面中Session保存token随机码,当保存时验证,通过后删除,当再次点击保存时由于服务器端的Session中已经不存在了,所有无法验证通过。   1.新建注解:   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 </div> </li> <li><a href="/article/1296.htm" title="《Javascript高级程序设计(第3版)》闭包理解" target="_blank">《Javascript高级程序设计(第3版)》闭包理解</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>“闭包是指有权访问另一个函数作用域中的变量的函数。”--《Javascript高级程序设计(第3版)》         看以下代码: <script type="text/javascript"> function outer() { var i = 10; return f</div> </li> <li><a href="/article/1423.htm" title="AngularJS Module类的方法" target="_blank">AngularJS Module类的方法</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/Module/1.htm">Module</a> <div>        AngularJS中的Module类负责定义应用如何启动,它还可以通过声明的方式定义应用中的各个片段。我们来看看它是如何实现这些功能的。 一.Main方法在哪里         如果你是从Java或者Python编程语言转过来的,那么你可能很想知道AngularJS里面的main方法在哪里?这个把所</div> </li> <li><a href="/article/1550.htm" title="[Maven学习笔记七]Maven插件和目标" target="_blank">[Maven学习笔记七]Maven插件和目标</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/maven%E6%8F%92%E4%BB%B6/1.htm">maven插件</a> <div>插件(plugin)和目标(goal) Maven,就其本质而言,是一个插件执行框架,Maven的每个目标的执行逻辑都是由插件来完成的,一个插件可以有1个或者几个目标,比如maven-compiler-plugin插件包含compile和testCompile,即maven-compiler-plugin提供了源代码编译和测试源代码编译的两个目标   使用插件和目标使得我们可以干预</div> </li> <li><a href="/article/1677.htm" title="【Hadoop八】Yarn的资源调度策略" target="_blank">【Hadoop八】Yarn的资源调度策略</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a> <div>1. Hadoop的三种调度策略 Hadoop提供了3中作业调用的策略, FIFO Scheduler Fair Scheduler Capacity Scheduler 以上三种调度算法,在Hadoop MR1中就引入了,在Yarn中对它们进行了改进和完善.Fair和Capacity Scheduler用于多用户共享的资源调度   2. 多用户资源共享的调度 </div> </li> <li><a href="/article/1804.htm" title="Nginx使用Linux内存加速静态文件访问" target="_blank">Nginx使用Linux内存加速静态文件访问</a> <span class="text-muted">ronin47</span> <div>Nginx是一个非常出色的静态资源web服务器。如果你嫌它还不够快,可以把放在磁盘中的文件,映射到内存中,减少高并发下的磁盘IO。 先做几个假设。nginx.conf中所配置站点的路径是/home/wwwroot/res,站点所对应文件原始存储路径:/opt/web/res shell脚本非常简单,思路就是拷贝资源文件到内存中,然后在把网站的静态文件链接指向到内存中即可。具体如下: </div> </li> <li><a href="/article/1931.htm" title="关于Unity3D中的Shader的知识" target="_blank">关于Unity3D中的Shader的知识</a> <span class="text-muted">brotherlamp</span> <a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/unity%E8%B5%84%E6%96%99/1.htm">unity资料</a><a class="tag" taget="_blank" href="/search/unity%E6%95%99%E7%A8%8B/1.htm">unity教程</a><a class="tag" taget="_blank" href="/search/unity%E8%A7%86%E9%A2%91/1.htm">unity视频</a><a class="tag" taget="_blank" href="/search/unity%E8%87%AA%E5%AD%A6/1.htm">unity自学</a> <div>首先先解释下Unity3D的Shader,Unity里面的Shaders是使用一种叫ShaderLab的语言编写的,它同微软的FX文件或者NVIDIA的CgFX有些类似。传统意义上的vertex shader和pixel shader还是使用标准的Cg/HLSL 编程语言编写的。因此Unity文档里面的Shader,都是指用ShaderLab编写的代码,然后我们来看下Unity3D自带的60多个S</div> </li> <li><a href="/article/2058.htm" title="CopyOnWriteArrayList vs ArrayList" target="_blank">CopyOnWriteArrayList vs ArrayList</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>package com.ljn.base; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; /** * 总述: * 1.ArrayListi不是线程安全的,CopyO</div> </li> <li><a href="/article/2185.htm" title="内存中栈和堆的区别" target="_blank">内存中栈和堆的区别</a> <span class="text-muted">chicony</span> <a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AD%98/1.htm">内存</a> <div> 1、内存分配方面:     堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。     栈:由编译器(Compiler)自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中</div> </li> <li><a href="/article/2312.htm" title="回答一位网友对Scala的提问" target="_blank">回答一位网友对Scala的提问</a> <span class="text-muted">chenchao051</span> <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a><a class="tag" taget="_blank" href="/search/map/1.htm">map</a> <div>本来准备在私信里直接回复了,但是发现不太方便,就简要回答在这里。 问题 写道 对于scala的简洁十分佩服,但又觉得比较晦涩,例如一例,Map("a" -> List(11,111)).flatMap(_._2),可否说下最后那个函数做了什么,真正在开发的时候也会如此简洁?谢谢    先回答一点,在实际使用中,Scala毫无疑问就是这么简单。</div> </li> <li><a href="/article/2439.htm" title="mysql 取每组前几条记录" target="_blank">mysql 取每组前几条记录</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E7%BB%84/1.htm">分组</a><a class="tag" taget="_blank" href="/search/%E6%9C%80%E5%A4%A7%E5%80%BC/1.htm">最大值</a><a class="tag" taget="_blank" href="/search/%E6%9C%80%E5%B0%8F%E5%80%BC/1.htm">最小值</a><a class="tag" taget="_blank" href="/search/%E6%AF%8F%E7%BB%84%E4%B8%89%E6%9D%A1%E8%AE%B0%E5%BD%95/1.htm">每组三条记录</a> <div>一、对分组的记录取前N条记录:例如:取每组的前3条最大的记录 1.用子查询: SELECT * FROM tableName a  WHERE 3> (SELECT COUNT(*) FROM  tableName b WHERE b.id=a.id AND b.cnt>a. cnt) ORDER BY a.id,a.account DE</div> </li> <li><a href="/article/2566.htm" title="HTTP深入浅出 http请求" target="_blank">HTTP深入浅出 http请求</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/http/1.htm">http</a> <div>  HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务,HTTP目前协议的版本是1.1.HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后We</div> </li> <li><a href="/article/2693.htm" title="判断MySQL记录是否存在方法比较" target="_blank">判断MySQL记录是否存在方法比较</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>把数据写入到数据库的时,常常会碰到先要检测要插入的记录是否存在,然后决定是否要写入。   我这里总结了判断记录是否存在的常用方法:   sql语句: select   count ( * )  from  tablename;   然后读取count(*)的值判断记录是否存在。对于这种方法性能上有些浪费,我们只是想判断记录记录是否存在,没有必要全部都查出来。</div> </li> <li><a href="/article/2820.htm" title="对HTML XML的一点认识" target="_blank">对HTML XML的一点认识</a> <span class="text-muted">e200702084</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>感谢http://www.w3school.com.cn提供的资料 HTML 文档中的每个成分都是一个节点。 节点 根据 DOM,HTML 文档中的每个成分都是一个节点。 DOM 是这样规定的: 整个文档是一个文档节点 每个 HTML 标签是一个元素节点 包含在 HTML 元素中的文本是文本节点 每一个 HTML 属性是一个属性节点 注释属于注释节点 Node 层次 </div> </li> <li><a href="/article/2947.htm" title="jquery分页插件" target="_blank">jquery分页插件</a> <span class="text-muted">genaiwei</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5/1.htm">分页</a><a class="tag" taget="_blank" href="/search/%E6%8F%92%E4%BB%B6/1.htm">插件</a> <div>//jquery页码控件// 创建一个闭包    (function($) {      // 插件的定义      $.fn.pageTool = function(options) {        var totalPa</div> </li> <li><a href="/article/3201.htm" title="Mybatis与Ibatis对照入门于学习" target="_blank">Mybatis与Ibatis对照入门于学习</a> <span class="text-muted">Josh_Persistence</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/ibatis/1.htm">ibatis</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%88%AB/1.htm">区别</a><a class="tag" taget="_blank" href="/search/%E8%81%94%E7%B3%BB/1.htm">联系</a> <div>一、为什么使用IBatis/Mybatis         对于从事 Java EE 的开发人员来说,iBatis 是一个再熟悉不过的持久层框架了,在 Hibernate、JPA 这样的一站式对象 / 关系映射(O/R Mapping)解决方案盛行之前,iBaits 基本是持久层框架的不二选择。即使在持久层框架层出不穷的今天,iBatis 凭借着易学易用、</div> </li> <li><a href="/article/3328.htm" title="C中怎样合理决定使用那种整数类型?" target="_blank">C中怎样合理决定使用那种整数类型?</a> <span class="text-muted">秋风扫落叶</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/1.htm">数据类型</a> <div>如果需要大数值(大于32767或小于32767), 使用long 型。 否则, 如果空间很重要 (如有大数组或很多结构), 使用 short 型。 除此之外, 就使用 int 型。 如果严格定义的溢出特征很重要而负值无关紧要, 或者你希望在操作二进制位和字节时避免符号扩展的问题, 请使用对应的无符号类型。 但是, 要注意在表达式中混用有符号和无符号值的情况。    &nbs</div> </li> <li><a href="/article/3455.htm" title="maven问题" target="_blank">maven问题</a> <span class="text-muted">zhb8015</span> <a class="tag" taget="_blank" href="/search/maven%E9%97%AE%E9%A2%98/1.htm">maven问题</a> <div>  问题1: Eclipse 中 新建maven项目 无法添加src/main/java 问题    eclipse创建maevn web项目,在选择maven_archetype_web原型后,默认只有src/main/resources这个Source Floder。     按照maven目录结构,添加src/main/ja</div> </li> <li><a href="/article/3582.htm" title="(二)androidpn-server tomcat版源码解析之--push消息处理" target="_blank">(二)androidpn-server tomcat版源码解析之--push消息处理</a> <span class="text-muted">spjich</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/androdipn/1.htm">androdipn</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E9%80%81/1.htm">推送</a> <div>在 (一)androidpn-server tomcat版源码解析之--项目启动这篇中,已经描述了整个推送服务器的启动过程,并且把握到了消息的入口即XmppIoHandler这个类,今天我将继续往下分析下面的核心代码,主要分为3大块,链接创建,消息的发送,链接关闭。 先贴一段XmppIoHandler的部分代码 /** * Invoked from an I/O proc</div> </li> <li><a href="/article/3709.htm" title="用js中的formData类型解决ajax提交表单时文件不能被serialize方法序列化的问题" target="_blank">用js中的formData类型解决ajax提交表单时文件不能被serialize方法序列化的问题</a> <span class="text-muted">中华好儿孙</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6/1.htm">上传文件</a><a class="tag" taget="_blank" href="/search/FormData/1.htm">FormData</a> <div> var formData = new FormData($("#inputFileForm")[0]); $.ajax({ type:'post', url:webRoot+"/electronicContractUrl/webapp/uploadfile", data:formData, async: false, ca</div> </li> <li><a href="/article/3836.htm" title="mybatis常用jdbcType数据类型" target="_blank">mybatis常用jdbcType数据类型</a> <span class="text-muted">ysj5125094</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/mapper/1.htm">mapper</a><a class="tag" taget="_blank" href="/search/jdbcType/1.htm">jdbcType</a> <div>  MyBatis 通过包含的jdbcType 类型 BIT         FLOAT      CHAR          </div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>