PyCharm 2018.1 新版本发布

PyCharm 2018.1 新版本如期而至。

对于 Python 3.7 的支持,比如 dataclasses。

更加智能的代码提示。

对单元测试更好的边栏支持。

科学研究模式可以运行部分指定的代码。

通过 conda 环境来支持建立一个科学数据研究项目。

Flask CLI 的支持。(Flask 在目前版本支持 Click 的命令行功能,现在 PyCharm 直接支持 Flask CLI 的调试了)

对于 TypeScript 2.7 的完整支持。

版本管理支持部分提交、更好的 rebase 支持。

远程开发方面支持更容易配置的基于 SSH 的 Python 调试器,提高了对于 Docker Compose 3.3 的支持。

PyCharm 包含了 JetBrainstorm DataGrip 的所有功能。

一直感觉,PyCharm 已经是非常完美的工具,甚至觉得它的功能太多了,已经复杂的很,没想到,依然继续提升,继续跟进所有的技术开发潮流。佩服!

Python 机器学习实战 终于出版

更新:京东购买本书的链接: https://item.jd.com/12289823.html


经过了半年的折腾,书终于出版了,因为春节缘故影响物流,京东等要购买的话需要到3月初。

自己再看写的内容,实在有点惭愧,感觉很多问题没有说清楚,有些可以写得更好。整个目录结构也不尽合理。有机会出第二版再修订吧。

总的来说,还算不容易,完成了一个小小的梦想。

Lazarus 1.8.0 发布

基于 freepascal 3.0.4 的 Lazarus 1.8.0 在12月初发布了。比较了 Delphi 之后的 GUI 开发工具,特别是在用 Python 的时候,也很不死心的想看看怎么样用 Python 来开发桌面应用,不管是基于 Qt,或者 Python 自带的 Tk,都一般吧。或许 Delphi 曾经太强大,已经超过了同时代的所有产品。VB 我已经要二十年不使用了,不知道如何,dotnet 架构现在应该也可以运行在 OSX 下了。

虽然 gdb 的安装还是很奔溃,Borland 当年的 Turbo C 2.0 横空问世现在想想是一件很恐怖的事情,在差不多20年前的电脑上,Delphi 可以几乎几秒就完成一个程序的编译。如果没有 IDE 的话,我们要耗费多少时间在安装、配置以及每次冗长的编译过程。其实 Delphi 还是占据了当前开发市场不小的份额,不过,太贵了。

偶尔如果需要写一些跨平台的小工具,那么 Lazarus 或许是不错的选择,Lazarus 的风格还是像一个增强版的 Delphi 7,不过也的确够用了。

最关键还是配合 Lazarus 和 FreePascal 背后的这些程序员、项目组织者,很不容易,坚持这么多年,逐步完善。

Flake8 Rules

The standardization of writing in programming languages is very important, good programming practices can prevent a lot of bugs.

Python is a language with more freely formatting, so it’s important to follow the famous flake8 rules.

The following article explains in detail every rule of the Flake8, it’s worth learning.

The Big Ol’ List of Rules

I like Pycharm because it can automate monitoring of these rules, so we can write the elegant Python program.

Pycharm 2017.3 发布

我始终认为用敏捷开发的方式持续升级是一件很恐怖的事情,因为不断的提升功能和性能同时又和市场贴近,产品就会非常有竞争力。

Pycharm 就是这样一款产品。Pycharm 2017.3 今天正式发布了,这次主要提升的是各类性能、科学计算、Rest 调试工具等,详细情况可以到 JetBrains 官网查看。

https://www.jetbrains.com/pycharm/whatsnew/#v2017-3-python

最近开始尝试用 Go 语言来进行服务端的测试,我始终不太喜欢 Java 的啰嗦。JetBrains 的 Go 语言工具目前还是在测试中,希望能够尽快提升功能和稳定性,现在这样一个月一个的早期测试版本使用起来也不是很方便。


I always think it’s a wonderful thing to keep upgrades in an agile way, because of the continuous promotion of features and performance and the close to the market, the product will be very competitive.

Pycharm is such a product. Pycharm 2017.3 was officially released today. The main promotion is all kinds of performance improved, scientific computing, Rest debugging tools, and so on. The details can be examined on the JetBrains website.

https://www.jetbrains.com/pycharm/whatsnew/#v2017-3-python

Recently I started trying to test writing server with the Go language. I don’t love Java verbose. JetBrains’s Go language tool is still in the early beta test, hope to improve the function and stability as soon as possible. It is not very convenient to use an early test version that I need update every month.

 

Flask, Sanic and Eve, Three Good Web Frameworks For Python

Prepare to improve my English writing ability. I know my English is very stiff, grammar also has many problems. But I still try to persist it. Thanks and sorry for my poor English

In recent years, the performance of Python has been greatly improved. Base on highly asynchronous event processing ability, web framework of Python have been greatly improved. After continued follow-up.  I think the following frameworks are worth future study.

In normal working hours, We use Flask as a web service framework. So I have some preference for flask-like type.

  1. Flask. http://flask.pocoo.org/  We all know, flask has long history and has stable performance. It’s a micro framework and has a lots of extensions. So it’s lightweight and configurable. I believe we will continue to use flask as the mainly web service framework for a long time. The latest version is 0.12.2.
  2. Sanic. https://github.com/channelcat/sanic This is a magical tool, it’s improve the web service performance by using asynchronous technology by Python 3.5+. In practical application, I think flask is enough. Flask can easily do hundreds concurrent in basic server on the cloud. But I believe it, The performance improvement is endless. In particular, the introduction of more and more Micro-Services framework requires that web service framework has strong ability. Sanic web framework much like flask, therefore, the learning and migration costs are relatively low.The latest version is 0.6.0.
  3. Eve. https://github.com/pyeve/eve Eve framework is based on flask, and mainly target is Restful API. As mentioned above, Restful API based design has became the standard in today’s internet application. Eve framework through the configuration file to quickly setup the restful api program. Design of Eve is very smart, we can learn a lots of python programming skill from it.

Currently, based on Flask, I’m studying Sanic and Eve, first, improve program skill of web service. Second, improve my English. At last, python is a profound script language, we will study lots from these famous frameworks, and I will continue share my study notes here. Looking forward to everyone’s correction.

终于新书完成

没想到前后居然还是花费了半年时间,本来想在8月完成的,一直因为内容和组稿的关系,拖拉到11月底。之后应该还要再等2个月,出版社印刷出版。

刚毕业的时候,很有冲劲,几乎一个人完成了一本书,耗时一年,当时写的 Visual Basic 的书和工作并不太大关系,现在看看这个书写的很幼稚,也充满了老气横秋的语句。

之后觉得写书太辛苦,在1997年应该是投稿之年,发表了20篇,偶然整理旧物,当时的文章简报都在。

然后出了零星的文章以外,就发表的少了。从2003年开始 blog,喜欢这种不受拘束的形式。

今年,2017年初,也是巧合,之前也想过的出书小结一些自己和团队这么多年互联网领域努力的成果,但是不太了解出版的行情,如今才知道,原来出版行业也是商业化运作了。

从2015年初开始重新学习 Python 到各类实践,以及同事们在机器学习方面的探索。为了把 Python 研究的更加好,参与了一些内部培训材料的编写。当然也发现外面各类鱼目混珠的教材太多了。且大多数国人不太有分享精神。我们并不是因为自己厉害,而是愿意分享,总是有人需要入门。特别是机器学习方面,国内要么只说结果,要么翻译一些国外的课件,鲜有真正的原创分享。技术从来不应该是保守的敝帚自珍。

我的所作所为就是喜欢这些作为,而不是要证明自己,也不是取悦他人。

Anaconda 5.0 版本发布

今天才注意到,原来 Anaconda 5.0 已经发布了:

We’re thrilled to announce the release of Anaconda Distribution 5.0! With over 4.5 million active users, Anaconda Distribution is the world’s most popular and trusted distribution for data science. It allows you to easily install 1,000+ Python and R data science packages and manage your packages, dependencies, and environments—all with the single click of a button.

作为 Python 开发最强的第三方包管理以及综合增强工具,Anaconda 下载已经有了四百五十万活跃用户。

可以用下面的办法来安装和升级 Anaconda:

You can now download and install Anaconda Distribution 5.0, or update your current Anaconda Distribution installation to version 5.0 by using conda update conda followed by conda install anaconda=5.0 .

Anaconda 5.0有以下的主要功能:

  • Over 100 packages have been updated or added to the distribution. JupyterLab alpha preview 0.27.0 is now included, and MKL has been updated to 2018.0.0.
  • The new version features all new compilers on macOS and Linux, providing substantial security and performance improvements.
  • Where possible, all build recipes are now using conda-forge as a base, via https://github.com/AnacondaRecipes.
  • A new channel, pkgs/main, has been added to defaults. The new channel is given top priority within defaultsand holds packages built with the new compiler stack.
  • The new version of Anaconda Distribution now features more flexible dependency pinning of NumPy packages, providing wider ranges of compatibility.

看来这次大版本号的更新还是有不少东西的,JupyterLab alpha 不知道使用起来到底怎么样。

 

写书的烦恼与快乐

和几位同事一起在写一本 Python 机器学习的书,将我们这两年的 Python 实践付诸于文字。过程本身也是对基本概念、思路、实践方法一个很好的回顾和总结,以及提升。

很多东西觉得自己挺懂的,但是要写得出来,让别人看能看懂,就不是那么容易的事情了。

从5月立项,7月开始,到现在,差不多写了三个月,花费了不少时间。今年夏天,又恰逢上海史上最热的季节,着实煎熬。还好我基本上是宅男,并且目前对于各类聚会没有太大兴趣,在忙碌的工作之余挤出一些时间。

也庆幸现在有 git、jupyter 之类工具都可以帮助提高效率,几个人的文稿可以通过 git 上传组织、编辑修订,不会弄错,几台电脑这里写点,那里写点,也都很容易。很多年前,随身必须带着软盘、U 盘,非常不方便,还容易弄错。

Python 的 jupyter的确是学习神奇,在其中很方便的组织文字、写代码、运行等,都可以一起完成,不用在开发环境和 word 中来回切换,也还好之前已经习惯了使用 Markdown 语法,带来一些便利。

昨天,同事计算了一下,差不多这本书目前可以有380页左右,我们一算,也挺厚的了,超过了我原来的估算。希望年底前可以顺利出版。我们也不是什么大牛大神,只是希望自己的很多经验可以分享,有一些概念和问题可以说透。总觉得在中国,程序员之间的分享虽然有好转,但还是一般,原创的内容较少,回答问题的意愿也一般,其实技术这个东西始终在进步,没有太多好藏藏掖掖的。

于我自己,主要还是发现这个过程提升了不少水平,我负责的是整个书的章节编排,以及 Python 一些不那么基础的编程概念的解释,比如列表生成式、多线程、异步队列等,还有开发方法这些。对于 Python 的理解略微上了一个层次,也越发喜欢这门不那么年轻,但是仍然充满了活力的语言。

为了20年后的梦想

1995年-1996年,写了一本 Visual Basic 3-4的书,想必当时过于年轻,自以为是的文字很幼稚,文字不够代码来凑,其实也不是很负责。也缺乏持续更新的能力和勇气,当时我的编程经验全部来源于自学,做过的项目有几个,但不多,也不复杂。最关键是,对于 Visual Basic 本身的认识还是比较肤浅的。

想起来那时的确是充满了热情,白天也是完全没有办法写作,每天上班前,下班后,周末,几乎一年,花费在上。虽然作品不满意,还算是完成了。

20年后,又开始这样的梦想,前些年,比较空的时候到时也有想过,却不太了解行情,原来,现在出版行业也早就市场化运作了,只是要出书并不是那么难。

和同事们选择了自己相对还比较擅长和有独到体会的 Python 和其用在机器学习方面作为主题。因为外面 Python 的书其实也很多了,实在不想写一本简单的入门级,无疑,这个定位在中等水平的目标,让我们一方面提高很多,一方面也是绞尽脑汁,受累。

而今年工作的忙碌,到了这个岁数的种种事情,都耗用了很多时间和精力。不知道多少个晚上和周末,在看资料、写 demo 程序、组织文字、review 其他同事写的书稿,或许这就是梦想,这就是有梦想的力量吧!

记录一下,也有一些颓废的时候,作为鼓励。