首页 文章 精选 留言 我的

精选列表

搜索[编写],共10000篇文章
优秀的个人博客,低调大师

Eclipse Theia 1.0 发布,TypeScript 编写的云端和桌面 IDE 框架

Eclipse 基金会于近日推出 Eclipse Theia 1.0 稳定版,并宣称其为Visual Studio Code 的真正开源替代方案(a True Open Source Alternative to Visual Studio Code)。Theia 完全由非营利性且供应商中立的Eclipse 基金会主导,并由多元化社区进行开发,不会因单一供应商的决定而损害多元化社区的利益。 从上图的官网介绍可以看出,Theia 整合了云端 IDE 和桌面 IDE,这是一个可扩展的平台,包括开发者、组织机构和供应商在内的任何人都能够基于 Theia 使用最新的 Web 技术开发功能完备的多语言云端和桌面IDE。 当作为云端 IDE 时,Theia 会在两个独立的进程中运行,它们分别被称为前端和后端(对应的就是本地浏览器和远程服务器),彼此之间通过 WebSockets 的 JSON-RPC 消息或 HTTP 的 REST API 进行通信。而作为桌面 IDE,前端和后端均在本地运行。 官方提到Theia 可以作为 Visual Studio Code 的替代方案,因此其界面也和 Visual Studio Code 极为相似。更重要的是,Theia 原生支持 Visual Studio Code 扩展协议,也就是说我们可以在 Theia 上安装和重用 Visual Studio Code 扩展。 Theia 灵活的架构让它成为了一个可扩展、可调整的平台,使用者可以根据特定的用例以非常细粒度的方式对其进行深度定制,而无需为项目提交补丁或分叉项目。下图是 Arm 基于 Theia 进行定制开发的项目: Visual Studio Code 作为一个桌面终端应用,微软为各个平台提供了可用的二进制包,但希望替代它的Theia 却没有在官网提供下载链接。原因在于Theia 并不是一个最终产品,这也是为什么标题把它称作「IDE 框架」。你可以根据自己的需求基于Theia 构建和自定义一款属于你的 IDE。例如,假设你需要一个完全支持量子计算语言和对应工作流的 IDE,那就可以在Theia 的基础上增加扩展或移除不必要的模块,进而构建出一个功能完备的 IDE。或许这就是Theia 强调自己「真正开源」的原因。 本地体验 Theia 可以尝试这个用Electron 打包的桌面应用yangster-electron 在线体验 Eclipse Theia:https://gitpod.io/#https://github.com/eclipse-theia/theia

优秀的个人博客,低调大师

Prometheus 2.16.0-rc.1 发布,Go 编写的服务监控系统

Prometheus 2.16.0-rc.1 发布了,Prometheus 是一个 Go 语言开发的开源的服务监控系统和时间序列数据库。该版本引入了一些新特性,比如记录其他组件、增强功能和修复 bug,这些都是为了提高可用性。 更新内容如下: FEATURE React UI:在 /graph 上支持本地时区#6692 PromQL:添加 absent_over_time 查询功能#6490 将查询的可选日志记录添加到自己的文件中#6520 BUGFIX React UI:在旧版浏览器上的 fetch() 上发送 cookie#6553 React UI:对堆叠图采用 grafana flot 修复#6603 React UI:图形页面浏览器的历史记录已损坏,因此后退按钮可以按预期工作#6659 TSDB:确保已记录 compactionsSkipped 指标,如果从 head 返回一个错误,则记录正确的错误#6616 …… 更新说明:https://github.com/prometheus/prometheus/releases/tag/v2.16.0-rc.1

优秀的个人博客,低调大师

Prometheus 2.14.0-rc.0 发布,Go 编写的服务监控系统

Prometheus 2.14.0-rc.0 发布了,Prometheus 是一个 Go 语言开发的开源的服务监控系统和时间序列数据库。该版本引入了一些新特性,比如记录其他组件、增强功能和修复 bug,这些都是为了提高可用性。 更新内容如下: [SECURITY/BUGFIX] UI: 确保转义来自 API 的警告#6279 [FEATURE] API: 添加了/api/v1/status/runtimeinfo和/api/v1/status/buildinfo端点以供 React UI 使用#6243 [FEATURE] React UI: 实现新的基于 React 的实验性 UI#5694以及更多 可以在/new下找到 尚未实现所有页面 [FEATURE] Status: 基数统计信息已添加到“运行时和构建信息”页面#6125 [ENHANCEMENT/BUGFIX] 远程写入:修复压缩后远程写入的延迟#6021 [ENHANCEMENT] UI: 警报可以按状态过滤#5758 [BUGFIX] API: 未启用时,生命周期端点将返回 403#6057 [BUGFIX] Build: 修复 Solaris 构建#6149 [BUGFIX] Promtool: 在检查带有警报的规则文件时,删除错误的重复规则警告#6270 [BUGFIX] 远程写入:恢复在远程写入中使用重复数据删除记录器#6113 [BUGFIX] 远程写入:无法发送样本时不要重新分片#6111 [BUGFIX] Service discovery: 错误不再登录上下文取消#6116,#6133 [BUGFIX] UI: 正确处理 API 的空响应#6071 更新说明:https://github.com/prometheus/prometheus/releases/tag/v2.14.0-rc.0

优秀的个人博客,低调大师

Prometheus 2.13.0-rc.0 发布,Go 编写的服务监控系统

服务监控系统 Prometheus 2.13.0-rc.0 发布了,Prometheus 是一个 Go 语言开发的开源的服务监控系统和时间序列数据库。该版本引入了一些新特性,比如记录其他组件、增强功能和修复 bug,这些都是为了提高可用性。 更新内容如下: [变更] 指标:将 prometheus_sd_configs_failed_total 重命名为 prometheus_sd_failed_configs,并更改为仪表#5254 [增强] 服务发现:为 kubernetes 添加新的节点地址类型#5902 [增强] UI:如果查询返回了一些警告,则显示警告#5964 [增强] 远程写:减少系列缓存的内存使用量#5849 [增强] 远程读取:使用远程读取流传输以减少内存使用量#5703 [增强] 指标:添加了将远程最大/最小/所需分片写入队列管理器的指标#5787 [增强] Promtool:在标签查询期间显示警告#5924 [增强] Promtool:改进了解析错误规则时的错误消息#5965 [增强] Promtool:更多提示规则#5515 [BUGFIX] Promtool:修复了由于标签重复而导致记录不一致的问题#6026 [BUGFIX] UI:从不健康的目标访问时,修复了服务发现视图#5915 [BUGFIX] 指标格式:输入短时 OpenMetrics 解析器崩溃#5939 [BUGFIX] UI:避免截断 Y 轴值#6014 更新说明及下载地址

优秀的个人博客,低调大师

我们在编写python代码时应该注意那几件事 !

前言在编程过程中,多了解语言周边的一些知识,以及一些技巧,可以让你加速成为一个优秀的程序员。 对于Python程序员,你需要注意一下本文所提到的这些事情。 你也可以看看Zen of Python(Python之禅),这里面提到了一些注意事项,并配以示例,可以帮助你快速提高。 1. 漂亮胜于丑陋实现一个功能:读取一列数据,只返回偶数并除以2。下面的代码,哪个更好一些呢? halve_evens_only = lambda nums: map(lambda i: i/2, filter(lambda i: not i%2, nums)) VS def halve_evens_only(nums): return [i/2 for i in nums if not i % 2] 2. 记住Python中非常简单的事情 # 交换两个变量 a, b = b, a # 切片(slice)操作符中的step参数。(切片操作符在python中的原型是[start:stop:step],即:[开始索引:结束索引:步长值]) a = [1,2,3,4,5] >>> a[::2] # 遍历列表中增量为2的数据 [1,3,5] # 特殊情况下,`x[::-1]`是实现x逆序的实用的方式 >>> a[::-1] [5,4,3,2,1] # 逆序并切片 >>> x[::-1] [5, 4, 3, 2, 1] >>> x[::-2] [5, 3, 1] 3. 不要使用可变对象作为默认值 def function(x, l=[]): #不要这样 def function(x, l=None): # 好的方式 if l is None: l = [] 这是因为当def声明被执行时,默认参数总是被评估。 使用iteritems而不是items 使用generators ,因此当通过非常大的列表进行迭代时,iteritems 更好一些。 d = {1: "1", 2: "2", 3: "3"} for key, val in d.items() # 当调用时构建完整的列表 for key, val in d.iteritems() # 当请求时只调用值 5. 使用isinstance ,而不是type # 不要这样做 if type(s) == type(""): ... if type(seq) == list or \ type(seq) == tuple: ... # 应该这样 if isinstance(s, basestring): ... if isinstance(seq, (list, tuple)): ... 注意我使用的是basestring 而不是str,因为如果一个unicode对象是字符串的话,可能会试图进行检查。例如: >>> a=u'aaaa' >>> print isinstance(a, basestring) True >>> print isinstance(a, str) False``` 这是因为在Python 3.0以下版本中,有两个字符串类型str 和unicode。 **6. 了解各种容器** Python有各种容器数据类型,在特定的情况下,相比内置容器(如list 和dict ),这是更好的选择。 我敢肯定,大部分人不使用它。我身边一些粗心大意的人,一些可能会用下面的方式来写代码。 freqs = {}for c in "abracadabra": try: freqs[c] += 1 except: freqs[c] = 1``` 也有人会说下面是一个更好的解决方案: freqs = {} for c in "abracadabra": freqs[c] = freqs.get(c, 0) + 1 更确切来说,应该使用collection 类型defaultdict。 from collections import defaultdict freqs = defaultdict(int) for c in "abracadabra": freqs[c] += 1 其他容器: namedtuple() # 工厂函数,用于创建带命名字段的元组子类 deque # 类似列表的容器,允许任意端快速附加和取出 Counter # dict子类,用于哈希对象计数 OrderedDict # dict子类,用于存储添加的命令记录 defaultdict # dict子类,用于调用工厂函数,以补充缺失的值 学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习python或者有兴趣学习python的伙伴可以私信回复小编“学习”或者评论,留言,点赞 领取全套免费python学习资料、视频()装包 7. Python中创建类的魔术方法(magic methods) __eq__(self, other) # 定义 == 运算符的行为 __ne__(self, other) # 定义 != 运算符的行为 __lt__(self, other) # 定义 < 运算符的行为 __gt__(self, other) # 定义 > 运算符的行为 __le__(self, other) # 定义 <= 运算符的行为 __ge__(self, other) # 定义 >= 运算符的行为 8. 必要时使用Ellipsis(省略号“...”) Ellipsis 是用来对高维数据结构进行切片的。作为切片(:)插入,来扩展多维切片到所有的维度。例如: >>> from numpy import arange >>> a = arange(16).reshape(2,2,2,2) # 现在,有了一个4维矩阵2x2x2x2,如果选择4维矩阵中所有的首元素,你可以使用ellipsis符号。 >>> a[..., 0].flatten() array([ 0, 2, 4, 6, 8, 10, 12, 14]) # 这相当于 >>> a[:,:,:,0].flatten() array([ 0, 2, 4, 6, 8, 10, 12, 14])

优秀的个人博客,低调大师

如何在Python中编写精美图形界面

在默认情况下,我们使用PyQt5创建出来的窗口和部件都是默认的样式,虽然谈不上很丑,但是也毫无美感可言。 其实,在PyQt5中,我们可以有较高的自由度来自定义窗口和各种小部件的样式,通过自定义这些样式,以达到美化图形界面的目的。 本篇文章中,我们就通过一个实际的例子,使用QSS和PyQt5的配置属性,实现图形用户界面的美化工作。 首先上效果图: 使用到的图片素材有9张音乐的封面图片: 需要素材的小伙伴可以在微信公众号回复关键词“0013”获取下载链接。 一、对界面进行布局和组件的布置 在图像界面编程中,一个好的布局有助于全局把控界面的形态,而在PyQt5中,有多种布局的方式供我们选择,比较常用的布局有以下几种: ● 表单布局:QFormLayout ● 网格布局:QGridLayout ● 水平排列布局:QHBoxLayout ● 垂直

优秀的个人博客,低调大师

DockerFile的编写和注意的一些知识点

CMD,RUN,ENTRYPOINT之类的差别。 VOLUMN和-V之间的差别。 EXPOSE和-P的对应等。 今天上午写了一个脚本,可以传参数进IMAGE,让启动的CONTAINER具有不同的行为。 另外是一些常用的方便命令: 删除所有正在运行的容器(先停止,再删除)。 docker stop $(docker ps -q) && docker rm $(docker ps -a -q) 启动镜像(包括端口映射,目录挂载-如果windows,那不是挂windows目录,是虚拟机目录,命令容器,传递参数) docker run -p 8889:80 -v /applog:/var/log/nginx --name testprism333 prism3 -e PRD ============================= 如果在Dockerfile中同时写了entrypoint和cmd,docker在build过程中会将cmd中指定的内容作为entrypoint的参数。 那么如果,我们希望每个容器都固定的执行一个config脚本,然后再运行特定的程序时,利用entrypoint和cmd可以如何做到呢?从上述分析可以很自然的想到,将entrypoint解析CMD参数,并以命令执行。 CMD命令的参数格式,一般写成 字符串数组的方式,如上面的例子。如: CMD ["echo","hello world"] 虽然也可写成CMD echo hello word 方式,但这样docker会在指定的命令前加 /bin/sh -c 执行,有时有可能会出问题。 所以推荐采用数据结构的方式来存放命令。 dockerfile 中的 ENTRYPOINT 和 CMD 看似一样,都是实现 container 启动命令,但是需要注意: 1、都有两种方式,数组方式,以及 shell 方式 ? 1 2 [ "sh" , "-c" , "echo hello" ] sh -c 'echo hello' 2、ENTRYPOINT 除了指定 container 入口之外,更重要的作用是: 通过它可以让一个 container 像一个 executable 一样。比如 ? 1 ENTRYPOINT ["/bin/sh"] 之后 build 出来的镜像就像一个 sh 程序文件一样,运行该 image,就像运行 sh 程序。 3、如果 ENTRYPOINT 指定了,并且采用了数组方式,即["exectable", "para1", "para2"],那么 CMD 指定的内容会被视为 ENTRYPOINT 数组中最后的一个参数 4、如果 ENTRYPOINT 使用 shell 方式,那么它会覆盖所有的 CMD 以及docker run后面指定的 command 5、docker run后面指定的 command 会取代 CMD 的内容 ============================= From nginx MAINTAINER Prism DevOps@pxx.com.cn WORKDIR /usr/local/nginx/html ENV NGINX_ROOT_DIR /usr/local/nginx/html VOLUME ["/applog", "/data"] RUN mkdir -p /var/devops/ COPY bootstart.sh /var/devops/bootstart.sh ENTRYPOINT ["/bin/bash", "/var/devops/bootstart.sh"] CMD ["-h"] #!/bin/bash # description: dockerfile function depend on CMD and ENTRYPOINT arg # author: chngjun855 # version alpha # date 2017-05-18 # get args while getopts "e:i:g:h" arg do case $arg in e) env=$OPTARG ;; i) ipaddr=$OPTARG ;; g) group=$OPTARG ;; h) echo "/bin/bash bootstart.sh -e [ENV] -i [ipaddress] -g [group]" ;; ?) echo "unknow argument, -e -i -g" exit 1 esac done echo "env is $env" echo "ipaddr is $ipaddr" echo "group is $group" # different function depend on different env arg case $env in FAT) echo "FAT html page" > /usr/share/nginx/html/test.html ;; UAT) echo "UAT html page" > /usr/share/nginx/html/test.html ;; PRD) echo "PRD html page" > /usr/share/nginx/html/test.html ;; esac nginx -g "daemon off;"

优秀的个人博客,低调大师

ipython notebook 浏览器中编写数学公式和现实

Python Notebook简介1 http://www.cnblogs.com/cbscan/p/3545084.html $ python -m IPython http://pypi.python.org/pypi/pip#downloads #python setup.py install $ git clone --recursive https://github.com/ipython/ipython.git $ cd ipython $ pip install -e ".[notebook]" --user yum install python-devel #Python.h缺少的错误 https://github.com/zeromq/pyzmq/releases http://doc.libsodium.org/ http://www.cnblogs.com/Cherise/p/4351022.html 源码安装ipython,并在ipython中整合spark

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册