图解GIMP滤镜
图像处理《GIMP图像处理入门》中介绍了GIMP的基本用法,这里我们再介绍GIMP以插件形式提供的各种滤镜,可以通过应用算法对图层进行修改来实现各种各样的效果。
GIMP图像处理入门
图像处理程序员多少听说过GIMP(GNU Image Manipulation Program)的大名,GTK就是Gimp Tool Kit的缩写,知道它是自由软件中仅有强大到能与Photoshop抗衡的图像处理软件。但和Photoshop一样,GIMP的操作方式有时也让初学者摸不着头脑。这里我们将说明GIMP中的主要方面。
怎样打造用户友好的软件
可用性 web一个优秀的软件不仅要有用户需要的功能,还要让用户能用上它,否则只是徒劳。正如对于混乱的代码应该重写成干净代码,而不是加上大段注释一样。用户界面也应力求容易使用,最好是看一下就知道怎么用,而不是加上厚厚的使用手册或使人打瞌睡的培训课程。不要指责用户犯错,而要反思设计的不人性化。
让世界各地的用户都能用上你的软件
可用性 java虽然中国人口不少,但还有更多人在国外。要争取来自世界各地的客户,让软件符合当地的习惯就有助提升观感。除了众所周知的语言外,时区、图标、数字等也可能导致闹笑话。因此,国际化在早期就开始考虑的话往往能做得更好,要是由于早期过于依赖一个地区的特点,后期再作补救将会更为昂贵。
用Jekyll在GitLab pages上搭建博客
web虽然已经有很多可免费使用的博客平台,但对于不善交际的程序员来说,更多社交化功能还不如更大的自主权。仅就可以自由地运用JS这点,不仅可以渲染数学公式、高亮的代码和乐谱等,还可以分析页面流量。由于大家可能比较熟悉GitHub pages,这里就介绍一下GitLab pages。我们仍然用最流行Jekyll作静态生成器,但GitLab的持续集成完全容许你使用其它的静态生成器,甚至可以是自己发明的。
浅谈SEO
SEO web搜索引擎已经成为网页流量的主要来源,因此争取更多人看到您的信息,就要让更多人通过搜索引擎发现你。在Google和百度等竞价排名搜索广告的费用远超你的负担能力的情况下,搜索引擎优化(SEO)就变得相当重要。我们不仅将简单介绍SEO最基本的原理和实践,而且还会始终立在更广阔的视野来看如何对用户友好,包括前端、后端的开发大员都应当知道的注意事项。即使你并不需要做推广,本文也能帮助你认清网络上某些乱像以便提防上当。
浅谈调色
设计 颜色颜色作为以视觉为媒介接收信息的一个固有属性,挑选合适的颜色是每个视觉设计不可或缺的任务,不论你在设计线路图、图标、书籍、幻灯片、视频、网站、交互式应用程序还是别的。
Ant项目利用Ivy借力Maven仓库
ivy maven ant java进行开发时难免要依赖于第三方的包,而这些包还可能依赖于其它包,这是开发者共同面对的问题。就Java开发而言,Maven中央仓库大概是JAR包最齐全的地方,因此是解决依赖的理想地方。对于使用Ant而不是Maven为构建工具的项目,也可以使用Ivy插件来与Maven仓库打交道(至于maven插件已不维护 ,但似乎仍能用),解决依赖关系。值得一提的是,Maven、Ant、Ivy全是Apache基金会的项目。
用GNU Cash管理帐目
gnucash 会计不管是个人还是中小企,准确了解自身的财务状况都是重要的,使用会计软件GnuCash记帐正是一个好的开始。通过复式记帐法,从你的工资和日常开销,到外币、证券、贷款的变动情况,也能了如指掌并通过直观的报表呈现。Android版甚至可助你随时随地记帐。而且,这款软件是免费的自由软件,有中文界面!
Debian和openJDK下Netbeans 8随机崩溃的应对
netbeans 应急前段时间在两台机器都出现了Netbeans 8在毫无征兆下崩溃的现象,似乎与崩溃前做的事没有什么关联,甚至没有留下JVM崩溃的日志文件,两台机器都在用Debian 9, openJDK 8版本较新。
理解计算机网络
网络一组相互连接的网络称为互联网。为了设计和描述网络,通常用分层方法以分解复杂度,每层负责提供不同的服务,每一层只依赖于下面一层的接口。每一层也可有多种称为协议的工作方式以提高灵活性。下面给出一个实用的分层模型:
- 物理层负责在通信信道上传输比特(它要尽可能确保一端发送一个比特时另一端收到一个相同的比特),这涉及机械和电子:
- 0与1分别怎样表示
- 传输是单工的(只有一方可发送)、半双工(双方可发送,但同一时间只有一方在发送)的还是全双工(双方可同时发送)
- 数据链路层负责在两个相邻节点间传输帧,常见的问题有:
- 确保接收方收到正确的帧,通常是通过发回确认帧
- 确保接受方与发送方速率匹配(流量调节)
- 广播式网络中共享信道的访问
- 网络层负责在两个节点间传输帧,常见的问题有:
- 对节点的命名
- 决定从源到目标的路径(路由)
- 异构网络间的兼容性
- 服务质量保证
- 传输层负责在两个应用程序间传输包,常见问题有:
- 区分应用程序(端口)
- 是否保证可靠性(顺序、错误检测)
- 流量控制
- 应用层负责生成或处理数据。
XML概览
xml webXML(可扩展标记语言)是一种用于描述结构化信息的语言。作为SGML的一种简化,由W3组织维护。与用非XML格式相比,使用基于XML的格式有以下优点:
- 由于已有现成的解析器等成熟的配套工具,容易可靠地处理
- XML是经过深思熟虑的,可以避免不少常见问题
- XML格式往往是自描述的,容易理解和排错
理解信息安全
信息安全随着信息的价值不断被挖掘,以意想不到的方式获取和修改信息、取得别人的计算能力变得有利可图。要降低成为受害者的可能性,就有必要了解攻击者的经济学和技术手段,识别自身风险,从而在合适层面用合适的方式应对。不会攻击,就不会防护。
Flex分词程序生成器概览
unix flex lexflex是一个分词程序生成器,我们只用指定各种标记满足的模式和碰到它们时应执行的C代码,flex就能生成对应C语言的记法分析程序。
理解计算理论
计算理论 可计算性 复杂度什么能算,什么不能算?能算的话能需要多少空间和时间才能算出?这是关于计算的基本问题。虽然听来也许有点玄,但人们还是得到一些不仅美而且实在的结果。好像不存在通用压缩算法总能把文件压到比原来小,不然反复用它就能把文件压没了,这道理虽然浅显,但意味深长。
HTML5概览
html webHypertext Markup Language (HTML)是一种描述文档的语言,主要是网页的内容,外观和行为则分别由CSS和Javascript控制。这里主要介绍HTML5。
Makefile构建系统概览
unix makefile 构建Unix下最常用的构建脚本语言要数makefile,但手写makefile往往有过于繁琐,故常用automake来自动生成支持所有标准目标的makefile,再用autoconf处理配置软件包的工作。
理解多媒体编码
多媒体 编码与文本相比,图片、音频、视频往往占用较多空间,于是瓶颈常常在传输,为了提高性能通常会进行有损压缩,但人们竟然大多感觉不出损失。
理解操作系统原理
操作系统操作系统是为用户提供计算机的某种模型的软件。硬件涉及很多实现相关的细节,操作系统管理硬件资源,从而向应用程序呈现一个清晰和统一的接口。
用五笔输入法打中文
五笔 输入法 中文五笔输入法作为曾在国内大规模推广的中文输入法,不仅有形码输入法重码率低、方便盲打、生僻字友好带来的速度和准确率优势,而且规则的键盘布局和简单的取码规则让它相当易学易用。现在我们一起试用一下五笔。