other

来源:互联网 发布:apache网站服务器架设 编辑:程序博客网 时间:2024/06/11 20:46
scale,clojure依托JVM是好是坏呢


LSD 和 THC 都是诞生于 10 年前的老牌黑客小组。LSD 被微软收编后就没什么动静了,THC 一直还在活动。LSD 自称其名字是“Last Stage of Delirium”的缩写,THC 则自称“The Hacker's Choice”。实际上,LSD 是迷幻药麦角二乙酰胺的缩写,THC 是大麻的主要有效成分四氢大麻酚的缩写


scala,haskell,javascript这三门语言



乙级(Basic Level)
1.具备基本的C/C++的代码设计能力,掌握相关开发环境的基本调试技巧;
2.理解并掌握最基本的数据结构,如:线性表、树、图等;
3.理解并熟练编程实现与基本数据结构相关的基础算法,包括递归、排序、查找等;
4.学会分析算法的时间复杂度、空间复杂度和算法稳定性;
5.具备问题抽象和建模的初步能力,并能够用所学方法解决实际问题。
甲级(Advanced Level)
在达到乙级要求的基础上,还要求:
1.具有充分的英文阅读理解能力;
2.理解并熟练编程实现经典高级算法,包括贪心、深度优先搜索、广度优先搜索、回溯剪枝、动态规划等;
3.具备较强的问题抽象和建模能力,能实现对复杂实际问题的模拟求解。[1]



Docker实战:更轻松愉快更高效
首先我们来学习使用Docker容器运行一个Python  Flask应用,然后逐步介绍一套更酷的开发流程,其中涵盖了应用的持续集成与发布

流程:
1. 在本地功能分支上完成应用代码。
(code locally on a feature branch)
2. 在GitHub上发起一个到master分支的Pull Request。
(open a pull request)
3. 在Docker容器上运行自动测试。
(run automated tests against docker  container )
4. 如果测试通过,手动将这个PR merge进master分支。
(if  tests pass,manually merge)
5. 一旦merge成功,再次运行自动测试。
6. 如果第二次测试也通过,就在Docker Hub上对应用进行构建。
7. 一旦构建完成,自动化地部署到生产环境。





Archie是Internet上用来查找其标题满足特定条件的所有文档的自动搜索服务的工具。为了从匿名FTP服务器上下载一个文 件,必须知道这个文件的所在地,即必须知道这个匿名FTP服务器的地址及文件所在的目录名。Archie就是帮助用户在遍 及全世界的千余个FTP服务器中寻找文件的工具。Archie Server又被称作文档查询服务器。用户只要给出所要查找文件的全名或部分名字,文档查询服务器就会指出在哪些FTP服务器上存放着这样的文件。
Gopher是基于菜单驱动的Internet信息查询工具。Gopher的菜单项可以是一个文件或一个目录,分别标以相应的标记。是目录则可以继续跟踪进入下一级菜单;是文件则可 以用多种方式获取,如邮寄、存储、打印等。在一级一级的菜单指引下,用户通过选取自己感兴趣的信息资源,对Internet网上远程联机信息系统进行实时访问,这对于不熟悉网络资源、网络地址和网络查询命令的用户是十分方便的。Gopher内部集成了Telnet、FTP等工具,可以直接取出文件,而无需知道文件所在及文件获取工具等细节,Gopher是一个深受用户欢迎的Internet信息查询工具。通过Gopher可以进行文本文件信息查询、电话薄查询、多媒体信息查询、专有格式的文件查询等。




首先来介绍一些Docker中的基本概念
.dockerfile中包括了一系列语句,用于对镜像的行为进行描述。
.镜像是一个模板,用来保存环境状态并创建容器。
.容器可以理解为实例化的镜像,并会在其中进行一系列进程

dockerfile------镜像---------------容器


为什么是docker
配置docker
由于Darwin(OS X内核)缺少运行Docker容器的一些Linux内核功能,所以我们需要借助boot2docker,一个用于










~~~~~~~~~~~~~~~~~~



java有两个比较大的特性已经开始原型设计了

增强的泛型(enhence generics)和值类型(value  types)






【Google面试】找几百亿数据中值

有几百亿的整数,分布的存储到几百台通过网络连接的计算机上,你能否开发出一个算法和系统,找出这几百亿数据的中值?就是在一组排序好的数据中居于中间的数。显然,一台机器是装不下所有的数据,也尽量少用网络带宽。













部署

架构平台采用的是简化的结构,有几个建议很大家分享一下:

  1. 一个容器仅有一个进程;
  2. 采用host网络模式,除非你知道NAT,Bridge有什么坑;
  3. 最小化镜像大小,规划好层次结构,并且尽量复用;
  4. 日志采用volumn挂载方式;
  5. 一切皆容器,例如镜像构建环境也要容器化。

容器化部署最重要也是最复杂的,就是服务发现问题。平台参考Kubernates,Mesos,etcd等开源项目的经验,结合自身的业务特点以及现有基础设施,实现了一套基于ConfigService中心和调度系统服务发现机制。服务调度粒度从原来仅能针对整个服务池,细化到任一一节点,实现了7层nginx,服务节点,RPC节点三者之间的动态联动。这里运维的开发工作量是最大的,必须为运维的小伙伴们点个赞。

Docker部署被诟病最多就是网络,平台目前采用的是host模式,为什么没有采用NAT或者Bridge呢?由于涉及的技术细节比较繁冗,这里仅分享一些踩过的坑。例如NAT使用iptables底层流量转发依靠内核netfilter模块,其默认仅保持65536个链接,在服务有大量链接的场景下,会出现大量拒绝链接的现象。再如Bridge的MAC地址默认是选择其子接口中最先的一个,这样就会导致一个宿主机下多个容器启停时出现网络瞬断。还有很多问题不一一列举,平台未来计划采用vlanif的方案来解决容器网络部署难题,请关注后续微博平台的分享。

服务监控平台

采用的是cadvisor开源方案,但由于cadvisor本身仅提供性能数据不完整,并且仅支持influxdb,所以平台在其基础上进行了二次开发,支持CPU使用率、存活个数、内存占用、Swap占用、磁盘占用等性能指标,并且提供了对ElasticSearch的支持,争取能够回馈给社区。

研发流程要尽量透明,容器应该融入到现有的流程,而不是改变现有流程。例如不要侵入代码,如请使用XXX环境变量等。不要影响原有的测试、发布、降级等流程,如测试预览环境应该容器化,而不应该增加针对容器环境的测试。

扩容预案要确定好规则,避免流量增长时乱扩容,平台通过核心接口QPS,总体QPS,平均耗时三个指标来定义扩容触发条件;扩容比例按流量增长计算,建议以10%规模递增;扩容来源于整体QPS低、冗余Buffer大于50%的服务池。另外有很多细节需要注意,例如机房流量均衡问题、流量突增问题。







~~~~~~~~~~~~~~~~~~~~


Linux桌面环境终极指南

2015-3-6 09:59|查看: 1456|评论:7|收藏:0|分享:9

去年,Network World网站内的Linux老牌拥护者Bryan Lunduke曾经给自己定下一项奋斗目标,即深入到各类Linux桌面系统当中、以至少一周的时间利用其完成工作及个人计算任务,而后将他的心得体会记 录在Linux Tycoon博客当中。


最终他撰写出十篇评测报告,我们将其内容进行了收集与整理,以便大家通过今天的文章将不同桌面环境之间的比较结论一网打尽。当然,也欢迎尚未体验过Linux桌面系统的朋友将本文作为参考资料加以借鉴。

elementary OS(elementary OS 是一款基于 Ubuntu,由设计师主导开发,精心打磨美化的桌面 Linux 发行版。)的Pantheon

首先需要澄清一点,这篇评测报告针对的是Pantheon桌面环境而非elementary OS本身。

不过这套环境确实给我们的这位评测专家带来了惊喜。Pantheon凭借着自身简洁而利落的使用体验在竞争当中脱颖而出。举例来说,其应用程序启动器就让Bryan体会到了“实用”二字的真正含义:

“这款应用程序启动器并不打算充当音乐播放器,也不会为用户在Amazon.com上搜索个不停。它仅仅是做好自己的本职工作,帮助用户寻找并启动 所需要的应用程序,而后彻底消失在我们的视线当中。目前大多数桌面环境(包括Linux以及其它操作系统类型)都患有严重的功能膨胀综合症——这会导致系 统自身运行速度缓慢甚至出现一系列bug……我们可以将这类方案称为‘麻烦’的操作系统。然而Pantheon并没有这样的问题。在Pantheon环境 当中,其每一个设计环节都确切符合用户的使用预期……而且仅此而已,没有其它的冗余设定。这种优秀的特性涵盖其系统设置、文本编辑器以及视频播放器等等全 部默认应用程序。”

其应用程序启动器仅仅是整套环境下的一个缩影,但足以彰显Pantheon的突出风格。这款操作系统易于学习并使用,Bryan将它推荐给那些此前从未接触过Linux系统的新手用户或者虽然拥有长期使用经验、但却仅仅希望能够快捷高效实现明确操作目标的Linux专家。

Ubuntu Unity( Unity 是基于GNOME桌面环境的用户界面,)

在这一次的评测中,Bryan需要再次面对曾经迫使他转而寻求其它替代性解决方案的一套Linux桌面环境——Unity。这套环境在自定义方面作出诸多限制,特别是禁止用户将dock从屏幕左侧移动到其它位置,正是这一点迫使Bryan投入了其它系统环境的怀抱。

在重新回归Unity平台之后,Bryan发现它的可用性较印象中出现了可喜的提升,无论是运行速度还是运作可靠性方面皆是如此。尽管他仍坚持认为 Unity在运行速度方面感觉还无法与其它环境相媲美——例如Enlightenment以及MATE——但他承认这种速度差异并非不可忍受,也不至于让 他的使用过程屡屡遭遇崩溃状况。尤其值得一提的是,负责提供标签组以启动应用程序或者访问目标文件的Unity Dash功能确实极具实用性。

然而,自定义限制与糟糕的设计(至少与GNOME Shell与elementary OS相比)仍然深深困扰着Bryan。他并没有明确指出Unity算得上是款不错的环境,但却强调称Unity可能会给那些喜欢鼓捣自己Linux桌面环境的用户感到颇为受限。

配备Aura与ASH的ChromeOS(ChromeOS是谷歌google开发的一个开源操作系统)

此次评测并不打算将Chromebook作为用户的首选PC设备——虽然Bryan之前曾经做出过此类尝试——而仅仅是要记录下他在ChromeOS之上运行Aura硬件加速显示系统以及Aura Shell(简称ASH)桌面环境时的实际感受。

由于允许用户对窗口进行管理并拥有针对应用程序访问操作的“非常传统”的导航栏设计,ASH被广泛视为一套出色的桌面系统标准。其导航栏位于屏幕右 手边,其中囊括了面向音量调节以及蓝牙开关等功能的状态标识,而且从功能简便性而言其堪称“极为明显而且直观”。以下内容为Bryan对该环境的整体使用 感受的评价:

“这正是ASH最为光彩照人的特性所在——便捷而又精致。它为用户提供了充足的功能选项以启动所需要的应用程序(或者打开网络页面),并在完成任务后‘事了拂衣去’。整个过程速度极快而且非常优雅。”

在谈到ChromeOS的适用群体时,Bryan表示它非常适合那些希望能在自己的桌面系统中轻松找到并启动目标应用程序的用户,而且系统引导机制 会在应用程序启动完成后彻底隐去身形。正是出于这个理由,Bryan表示他会考虑将该环境作为他所用过的最出色的操作系统之一。

其中惟一真正称得上缺点的部分在于,ASH无法处理运行在标准桌面环境下的Linux应用程序——例如Gimp以及LibreOffice。如果拥有这一能力,Bryan认为他很可能会将其作为日常使用的首选操作系统。

Android即桌面环境

在经过对ChromeOS为期一周的测试之后,Bryan迈入了Android即桌面这一全新领域。

在其默认设置当中,有一套选项既可以被视为重要的亮点、亦可能带来严重的拖累,具体取决于大家所使用的设备类型。Android采用的是一套单一窗 口界面,这意味着那些始终以全屏方式使用单一应用程序的用户能够借此提高工作效率,即保证他们不会由于多个窗口或者标签的存在而劳心分神。

然而如果大家需要同时使用两款应用程序,那么这种设置则会令人极为沮丧甚至暴跳如雷——举例来说,希望在阅读一份文档的同时向另一套电子表格中输入数据。Bryan还发现,每一次收到即时消息时他都需要启动一套全屏化通讯界面,这确实让人难以忍受。

总体而言,Bryan承认只要能够克服上述短板,用户们会发现“Android事实上是一套具备出色可用性、易于学习、操作灵活而且外观相对出色的桌面环境”。

LXDE

尽管这套桌面环境配得上“极速”这一评价而且“拥有极端轻量化设计”,但Bryan仍然认为它缺乏抓住客户眼球所必需的核心亮点。

这并不是说LXDE缺乏实用性——Bryan表示,其默认外观与使用感受确实“乏善可陈”; 其文件管理器在文件管理方面的表现堪称完美,但设计风格所有些过时; 其界面采用的是“通用型桌面环境的基本样式”。

总结来看,上述因素已经足够让LXDE成为一款实用的桌面环境,特别是对那些并不太重视设计效果的用户们而言。而且正如Bryan所言,LXDE可能“最适合与Raspberry Pi之类主要面向教育领域的轻量级资源设备进行配伍。”

Cinnamon(Cinnamon由Clement Lefebvre,Linux Mint创始的一个桌面交互环境,试图提供一个布局类似于GNOME 2,一个底部面板和发射器)

需要指出的是,Bryan曾经对Cinnamon系统作出过严厉的批判,称其完全是在“浪费时间”。不过这一次的评测却改变了Bryan的看法,他表示虽然“还是没有什么能让人喜出望外的亮点”,但这套桌面环境“确实相当出色”。

从传统用户体验方面来看,Cinnamon并没有什么足以在其它桌面环境的对比下脱颖而出的本钱——包括Linux与Windows。不过使用Cinnamon确实帮助Bryan充分发挥了自己的优势。

我发现在使用了大约一周之后……我开始喜欢上了这套系统环境。其外观与使用感受非常精致。在使用过程中我很少遇到错误(即使有也不算什么恶性 bug……大多属于无关痛痒的小毛病),而且其性能表现——即使说不上惊人——至少也称得上“非常充裕”。我从未发现自己需要在枯坐中等待 Cinnamon的响应。当我点击对象之后,其能够马上作出响应。很好,很强大。

该系统所提供的配置选项也相当广泛。其中几乎囊括了能够丰富各方面用户体验的一定自定义内容,包括在标题栏中提供关闭/缩小/其它等快捷按钮。这种出色的灵活性让我深深地沉醉于其中。

也最终赢得了我的赞许。

Bryan情不自禁地指出了其与MATE之间的相似之处,他认为二者在运行速度与轻量化特性方面可谓齐头并进。不过他仍然为Cinnamon开发团队的出色成绩而喝彩,称其创造出了一套“高质量且光彩照人”的桌面环境。

ratpoison(

超轻量级桌面环境ratpoison

请大家直接阅读Bryan给出的评测意见,并自行判断他在与ratpoison相伴的一周内到底经历了怎样的心路历程:

通常来讲,我会在整个体验过程结束之后才发表文章向大家分享自己的心得体会。但这一次我实在是做不到。相信大家都看出来了……它真的让我心烦意乱。 不,“讨厌”这样的说法还不足以表达我的感受。我的小心脏中充斥着愤怒甚至是仇恨,就如同在一千个太阳下惨受烧灼。这款万恶的操作系统应该被送到海牙国际 法庭,以反人类罪名接受其应有的审判。

首先,习惯于传统键盘加鼠标操作方式的朋友肯定会受不了它的设计,因为ratpoison只支持键盘操控(因此才得到了ratpoison这个名 头,意为‘灭鼠药’)。Bryan发现单纯利用快捷键组合进行操作就像是一下子把人塞进了建筑工地上的工程机械里头,巨大的反差简直让人无从下手。而更恐 怖的还在于,这套系统环境并没有提供明确而详尽的快捷键操作指导。

因此,对于那些愿意在桌面环境下体会没有鼠标可用的艰苦生活的朋友来说,ratpoison还算值得一试。但如果大家没有这样的耐心跟它瞎耗,请听众Bryan的建议——跟它挥手道别。

KDE Plasma

作为一套资源密集型系统环境,KDE Plasma在运行速度与性能表现方面确实超出了Bryan的预料——但其糟糕的视觉设计却令人大失所望。

KDE Plasma 4.13版本在反应速度方面得到了极高评价,人们普遍认为其表现远优于原有版本——至少在8GB内存容量的笔记本电脑上是如此(根据Bryan的推测,其速度表现在内存容量较小的设备上可能会有所缩水)。

但设计中的某些默认机制仍然令人非常沮丧,从活动窗口默认采用的“闪光”效果到工具栏中意义不明的空白区域皆是如此。这套环境具备可定制能力,但以上设计层面的小问题让它彻底告别了“优秀使用体验”这一评价。

Awesome

Awesome似乎恰好是为Bryan量身打造的桌面系统——这是一套轻量化且易于使用的环境,且提供广泛的自定义选项。

不过正是这种定制化能力让我们的评测专家感到了一丝困惑。Awesome在其功能部件及主题当中使用的是Lua编程语言,这是一种能力强大的语言、 但需要配合大量工作才能打造出属于自己的定制化部件。Bryan同志在这一实验过程中屡遭坎坷,最终导致他彻底删除了全部存在问题的功能部件。

不过在将其删除之后,Bryan发现Awesome终于呈现出了自己极具实用性的一面。因此从本质上讲,Awesome完全能够成为那些有信心也有 能力玩转Lua编程语言的用户心中的出色桌面系统——甚至包括那些打算享受开箱即用便利的用户——但从外行生手的角度出发,其使用难度确实太高了。

Enlightenment (E17)

该系列评测报告中的第一篇就是针对E17所发,这也是Enlightenment家族中第二年轻的新版本。之所以选择E17版本,是因为就目前来看其稳定性较仍处于开发阶段的E18更为出色。

Bryan发现,E17系统的设计与布局方案“相当华丽”,并在评测中指出该系统能够在他使用触控屏设备时作出良好的响应。除此之外,E17还提供一套“外观最为抢眼的终端”方案,其水平可谓评测至今全部竞争对手中的绝对王者,而且在启动方面的性能表现也极为迅捷。

E17还承诺提供多种自定义功能,不过在这方面Bryan遇到了一些障碍。由于调整窗口尺寸需要通过“右下角一小块小得令人难以置信的区域内实现”而让他烦躁不已,他决定着手对主题进行修改。但事实证明,这项工作难度极高,他最终只能从其它可用主题当中直接选择了一套。

以上这些在评测工作中暴露出的问题看起来无关紧要,但对于那些有意愿对系统环境进行自定义的用户来说,这确实是个值得认真考量的重要因素。



四大Linux图形界面赏析:KDE、Gnome、Xfce、LXDE





常见的函数式语言有三类:
1 lisp类,分common lisp和scheme两大小类,特点是链表是基本语法结构和数据结构(因为函数式语言的不变性需要大量的数据拷贝,而list则可以以很小的代价进行拷贝)和类型系统不严格
2 ML类,包括OCaml和F#,haskell等,特点是语法类似命令式,有严格和复杂的类型系统,能直接编译为本地代码
3 各种脚本语言,如python,ruby,lua等,理论上javascript也是纯正的函数式语言。大多数仅仅是实现了lambda函数,有的实现了continue等更多特征。








0 0
原创粉丝点击