博客

  • 关于数据表现的一些心得

    最近有一些时间,初步了解了一下数据表现这方面的知识。分享一些体会。

    很多人都知道数据的重要性,就连马云都说阿里巴巴不是零售公司,是数据公司。
    更不用说,这几年铺天盖地的大数据炒作。但我不扯这些高深的,
    其实我们在跨入IT行业那刻起,就无时无刻的不接触着数据。
    但是粗糙的原始数据,常常让人们头疼,难以分析,不好利用。
    所以一定程度上,我们做的很多开发工作都只有一个目的,
    让数据加清晰,直观,拟人的展现给人类肉眼和人类大脑。

    在我的日常工作中,我也特别喜欢用各种方式来实现这些数据展现。
    这分几个方面:

    1)做过Excel统计分析,就会用到各种数据运算。
    这方面,有兴趣可以去网站 学习。多多实践。

    2)有了统计数据,或者原始数据,要更加符合人类视觉。那就是作图表。
    Excel图表大全,可以去网站
    特别说明,作图技巧其实并不重要,关键是适当加工数据,选择合适的图
    来展现,要做好了一个图,你必须学会精心美化它。
    一个丑陋的图,即使再正确也无法让人直观清晰理解。
    最近看到一个网站,写的很不错,推荐给大家
    其中一篇文章,叫<<手把手教你做一个好色之“图”>>,写道

    日本管理专家大前研一说:“人们制作不出美观的图表,是因为他们没有见过美观的图表。”

     

    3)到了这里我们能用工具做图了,下一步就是高科技一些,比如嵌入到我们的网站中去。
    这种工作我们已经做得很多了。但是大部分时候,我们用Highcharts做一个线图的时候,满脑子
    都只是DB哪些域,轴单位这些需求本身。却很少去思考为什么要这些图,是不是有另外更加合适的。
    正因为这个思维习惯作怪,我们能成功作出上百个Web图,也许却做不出一个自己满意的月收支图。
    所以,建议大家本次做完一个图表,都作为一个自然用户,看看是否真的满足了需求。
    比如下面的图,就是解决这个繁杂场景的直观表现。

    从技术本身来说,目前网上图表工具非常多了,国外有Highcharts,GoogleCharts等等,国内也有
    BaiduEchats,如果你要从底层做起,可以去学习D3.js,电子书地址

    学习D3.js一段之后,我觉得用D3.js作图,考验的不仅是技术能力,更是一个人的审美观和对数据关系的洞察力。
    这里有全球大师的创作示范。

    讲到最后,就到了这个软文的本意了。我希望每个技术人员都能回到用技术创造价值的初心。
    我们正在做的项目,用的技术,其实都能用到我们的生活中去产生实实在在的价值。

    我想这个心态和每个人目前工作内容,以及能力高低,并无限制。

    我们是在为客户工作,但多去想一想客户的客户的需求,这不会加大耗费,只会让我们更加从容面对变化
    我们是在为项目开发,但多去想一想产品送到用户手上的价值,这不会混乱思维,只会让我们觉得工作的价值
    我们是在为功能作图,但多去想一想数据展示出的那种美丽艺术,这不会浪费时间,只会让我们享受工作的乐趣

    希望每个人都能挖掘工作的价值与快乐,与时俱进!

  • 中小企业生产管理智能平台

    中小企业生产管理智能平台PPT

  • 从工作安排与个人意愿说开去

    今天事业部长向全体发出了要求!
    借此,我也想就我们部门内的一些情况补充一下。

    林肯说过:

    你可以一時欺騙所有人,也可以永遠欺騙某些人, 但不可能永遠欺騙所有人

    我们部门的大部分项目,都基于团队自治,有些项目来自客户,上级的直接压力并不大。
    也是“混日子”的天然温床。

    事实上,从敏捷团队初始,就出现过有人确实借这样的机会,更加惝然的混日子。
    甚至有人拿此作为炫耀,但常常的结果,是损害了团队的利益,更加浪费了自己的宝贵时光!
    最后被团队所唾弃。

    现在,我对部门有很大的信心,那是因为看到那些矜矜业业的闪光的人,不是一个两个,
    而是一个群体!
    有些不是项目管理者,却领导者一个团队,
    有些不是高级职位者,却能尽职尽责,主动担负团队共同工作。
    ……

    最后,因为有新人的加入,我重申一下MISOL部门内的规定:
    1)非特殊项目和理由,不允许浮动出勤!(包括8:30-17:30)
    2)非特殊理由,不允许提前去食堂!

  • 对于新技术的个人感想

    最近,因为一些偶然因素,参加了多场关于新技术的座谈讨论。

    作为一个IT企业,要能追随行业新科技,新潮流是毋庸置疑的,
    但是这些如何落到我们的工作中去,我想谈谈我个人的一些观点和感想

    首先,我们要看清自己。

    我们作为老牌对日外包企业,有很多怀旧的东西。
    但是新常态已然到来,去怀念过去,或者悲观未来一点意义也没有。因为我们不可能
    回到10年前,那个时候我们有朝气团队,体面的收入,但是那个时候没有支付宝,
    没有共享单车。我们必须面对公司的新常态和外部的新常态。我们不能看轻外包行业,
    我们也不要拘泥之前的外包。我一直坚信只要努力,可以重塑外包2.0。

    其次,我们要定位自己。

    现在新技术层出不穷。有人碰到AI,就认为是AlpahGo,碰到大数据,就认为是双十一,
    换句话说这和我们没有半毛钱关系。其实每个领域都有各个层次。就比如AI,
    科学理论研究-机器学习核心算法-算法应用-API应用-业务应用-外围应用-行业引入等等,
    我们在有些方面是可以有所作为的。最近遇到些事情,得到个感悟,如果有人告诉你
    这个水很深,这个很玄妙,其实只能说明他本人对于此不甚了解。而如果他能清楚告诉
    你有所为而有所不为,其实反而说明他是行家。我想我们不该被所谓AI的高级算法等
    望而却步,我们完全可以借助目前别人的成果,做我们擅长的业务集成。拿现在
    流行的话说,人家有严谨的科研精神,我们有精细的工匠精神。

    第三,我们要改变自己。

    我经常会说,作为一个IT公司,我感觉我们公司的IT是相当落后的。
    无论是老旧的OA,还是平时无数的Excel台账。所以要让公司Smart,首先我们自己要
    Smart。去年部门内推Slack,其实有很多阻力,到现在以SKYPE为主的团队依然存在。
    如果我们头脑里一直存在有了信用卡,为什么还要有支付宝的思维去思考问题,我们首先
    就会拒绝新的事物靠近我们。另外一个公司一直来的不好的文化,就是你要改变过去的做法,
    首先请证明新的做法要更好。这个文化对于新的事物是不公平的,因为旧的做法,常常牵涉
    了很多其他部分,所以很容易找到100个理由不用去改变,而新的做法,因为未被实施而
    缺乏足够证据。但是我想,在不触及原则问题之外,起码在我的部门,大家尽可尝试,我
    不需要你们先证。

    第四,我们要突破自己。

    昨天会上聊到亚马逊这个神奇的创新公司,之前也和各位共享了
    他的Echo智能音箱,Amazon Go无人超市。袁隽告诉我,还有他的实体一键下单。场景样子如下图


    我想在这个实体按键发明前,作为一个技术人员的脑袋,肯定不会认为这个可行。
    就是现在也有很多人会疑问,一个按键只能买一个商品!?按键还不能选择商品!?
    我打开手机去淘宝买不也一样么。
    可是在现实中,你可以想象,洗衣粉没了,回到沙发,打开手机天猫,搜索商品,
    选择商品,比较商品,下单,确认,付款。确实比当年去超市要方便了。可是图片那个场景,
    人家只是用了一秒钟按了一个实体按钮就完结了啊!
    我不是要讨论这个点子都么优秀,我想我们都该回到做技术的初心,我们学技术用来做什么?
    再说一个皇甫一直诟病我的事情,2010年我们研修Android做了一个理财APP,皇甫说
    要是能够自己扫描发票就好了。我马上说,不可能,发票长得都不一样,印刷的也不清楚,
    做不到的。而事实,现在这个已经成为了很多理财软件的标配。Oh,在你思考功能的时候,
    请忘记技术者的立场,否则你真的只是你所掌握技术的奴仆而已。

    第五,我们要相信自己。

    昨天研讨会讨论了我们对外提案的困惑。因为我们是应客户所需,很多时候容不得我们去积累,就需要去
    提案。而即使项目开启了,越是技术较新的项目越是思维跳跃,需要你为了目标自己摸索道路。
    所以,这就触及了一些我们的恐惧,技术不稳定的恐惧(客户,你告诉我到底用什么技术啊,不要再
    让我们试了,我们受不了了),技术口实的恐惧(这个你也敢写,我们根本没有做过啊,就算理论可行,
    我可不敢说实际做没问题),需求不明的恐惧(这个到底要做成什么样啊,你告诉你要的东西是什么啊)
    等等。我也是同样!不过每当我恐惧的时候,我就想问自己,是想回到10年前么,是想人家做详细设计,
    我们做开发和单体么。我的回答当然是 No。那么就面对现在的恐惧吧,这就是当下。
    所以在任何时候,都要相信自己能做到,我们既然回不了过去,就必须相信自己做好当下。

    最后,我们要实践自己。

    说了这么多,空洞的太多,我觉的所有都要落到实处。一些事情不会因为思考而改变。
    例如公司成立AI学习组,我希望能有良好的成果,但现实告诉我,这个往往是无疾而终的。在我看来,
    一个最好的学习和突破,就是去艺术化工作(这个之前和部门同仁反复阐述过)。因为真实的项目有客户,有推动,
    有收入!所以能持续,所以我们要尽量把握现实工作的一点一滴,不要重复自己,从平凡中找到新鲜的
    乐子,提高自己。这个也才是大部分人(我不排除个别人可在工作,平时看书成才)突破自己,实践自己的正途。

  • 客户来访的表扬

    这一周,接待了来自N社和M社的两批客户。
    虽是不同的公司,但是他们都给予了我们团队很好的评价。

    我要特别表扬两位,一位是A,一位是B。
    虽是不同的项目,但他们都体现了令人敬佩的专业精神。

    正如大家目前遇到好多项目,走寻常路的项目越来越少咯。
    这就更加需要,跨技能,跨领域的工作方式,思维方式。

    A,资深高级技术者,技术多高,我不知道,反正比我好多了,
    在客户面前,对系统架构侃侃而谈,也算是职责所在,
    但对于客户的团队开发方式,交流方式,产品市场定位等问题,也能主动和客户高谈阔论。这就让人惊讶了。
    掌握技术固然重要。不受制于人,想方设法让客户接受自己想法,更好发挥技术实现客户所需,这不是更好的一面么。

    B,资深测试工程师,日语也许就比落合差了一点点,
    在客户面前,对式样了如指掌,游刃有余,也算是职责所在,
    但对于客户的需求,不仅是理解,还能站在客户角度,思考产品,团队,这就让人惊讶了。
    客户流畅交谈固然重要,有自己的理解,有自己的思路,让客户信任自己,成为客户的伙伴,这不是更好一面么。

    他们两位都在兼职很多事情,我承认这里面有我的错,但这也说明了他们的跨技能的价值。

    最后,我想,所有人,无论是新人还是部长,每每遇到非寻常问题,
    都少一点保护自己(要告诉自己这个不是我该做的,理由可以有一打呢)。
    多一点突破自己,每跨越一次所谓界限,越界了,不就拓宽了么。

    最后,拿一个心灵鸡汤的ikigai(日语,生存价值)图,期望各位都能工作开心,舒心坦然。

  • 读大家2016年总结有感

    今天通读了各位的16年总结。很多令人印象深刻!

    大家的总结或长或短,或简洁或精美,或直接或含蓄,
    但相同的是,文末都会给自己新的一年定一个新的期望,一个新的目标。
    我想这些目标,才是继续前行的方向。可以隔段时间就回头看看,不断警醒自己。

    年前和大家谈话的时候,我和很多人都在讨论同一个问题,
    个人的成长和改变,主要是因客观外部促进,还是主观内部的使然。

    之所以会讨论这个问题,我是感受到一种氛围正在部门弥漫,我称之为“积极的懒惰”。
    在过去一年里,我就是其中的代表,我想用我的反省和各位共勉。

    所谓“积极的懒惰”,是指我(以及一部分其他人),为了让自己感觉舒适,
    但又不显像内在的懈怠,积极的寻找那些无需思考,无需冒险的工作来充填自己。
    这种表面的忙忙碌碌,其实一定程度上也是碌碌无为。

    但是,和无掩饰的惰性相比,这让我可以感觉到满足,感到踏实。至少在心理上,
    我认为我尽责任了,我做了很多事情,我也能坦然的说,我依然保持一颗寻求变化,
    积极向上的心。即使有力所不及的部分,也很容易归纳到外部环境使然,
    别人做也不见得能更好。

    但其实,无论自己如何掩饰,这本质依然是一种惰性。
    每到年终问自己,做事了么,负责任了么,贡献了么,外界对我不公了么,
    都会立马有所安慰甚至还有些委屈。
    但是当问自己,今年比去年(或者5年前),到底有什么不同,
    成长了什么,年初(或者5年前)的目标又黄了么,却又感觉一种失落,
    一种因为自己的惰性而感的失落。
    *其实我有时翻看5年前作的文档,觉得那个时候的自己比现在强

    所以,作为我的反省,我也期望和我有同样困惑的同事们,坚持自己初心,
    放弃去寻找一些舒服的工作,让自己安乐麻痹。既然认定的事情,就一定不要辜负这又一年。

    同时我也认为,一个人的积极目标是多样的,
    可以是做好一个Java工程师,也可以是做一个高级视觉设计师,
    可以是事业上大展宏图,也可以是做一个好妈妈,好爸爸。
    *其实有了孩子之后,生活的开心变得更加简单。
    或者仅仅是让自己更健康,更强壮。
    这些都没有关系,关键是我们朝着自己的目标,踏实和无畏。
    这种心态可以促成我们所有目标达成,而不是把所有的事情都搞糟。

    当然回到办公室里,新的一年我将尽力创造机会帮助各位完成目标,也期待着各位一样
    能够帮助我,一起远离这个积极的懒惰的氛围,让我们的集体拥有更多的踏实和激情。

    我自始自终认为无论何时何地,每个人的价值的大部分,既不是外部赋予的,
    也不是完结的过去,而是那些沉淀在自己身上,无法被夺去的部分
    比如能力,心态,健康,美满家庭。

    最后祝福大家新年新气象,开心每一天!

  • 关于论文

    大家应该都收到HR关于年度论文的要求。
    希望我部的各位能在截止日前,按时提交呢。

    虽然字数不限,格式不限,但毕竟是各位一年的年终论文。
    我只想加入几个Not Do的要求

    1)SSE
    不希望仅是,看到XX软件的安装配置手顺书。
    虽然一大堆截图,也蛮实用。但技术者的感悟不是更值得书写么。

    2)BSE
    不希望仅是,某项目的要件设计书,基本设计书的拼凑
    虽然一个优美清晰的设计书固然优雅。但透过一孔去窥探客户的商业和业务的全貌,岂不更有趣。
    当然,光从设计思维本身去探索软件设计方式,也很不错。

    3)PL/PM
    不希望仅是,是自己项目管理实绩的数字罗列。
    优异的数字当然是你一年的成绩。但有时候停下里的思考,是否更值得拿出来分享。

    总之,我认为无论各位这一年做了什么,只要用心来回顾,每个人都有可拿出来分享的成长。

  • 树莓派体验(2)

    今天开始折腾一下树莓派的环境。也作为今后的备忘

    SSH连接树莓派

    #ssh pi@192.168.1.110

    确认树莓派系统版本

    $ lsb_release -a
    	No LSB modules are available.
    	Distributor ID: Raspbian
    	Description: Raspbian GNU/Linux 8.0 (jessie)
    	Release: 8.0
    	Codename: jessie

    修改镜像地址为国内地址(http://blog.csdn.net/cduan/article/details/52594374)

    $ sudo nano /etc/apt/sources.list
    $ cat /etc/apt/sources.list
    #deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
    deb http://mirrors.zju.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi

    更新Raspbian软件环境

    $ sudo apt-get update

    安装Git环境

    $ sudo apt-get install git
    $ git config --global user.name "rex"
    $ git config --global user.email 
    $ git config --list

    安装最新Node.js环境(http://qiita.com/setouchi/items/437e4b62e4210871496f)

    $ sudo apt-get install -y nodejs npm
    $ sudo npm cache clean
    $ sudo npm install n -g
    $ sudo n stable
    $ sudo ln -sf /usr/local/bin/node /usr/bin/node
    $ node -v
    v7.2.1

    安装MongoDB环境(http://andyfelong.com/2016/01/mongodb-3-0-9-binaries-for-raspberry-pi-2-jessie/)

    $ wget http://andyfelong.com/downloads/core_mongodb.tar.gz
    $ tar xvzf core_mongodb.tar.gz
    $ sudo chown root:root mongo*
    $ sudo chmod 775 mongo*
    $ sudo strip mongo*
    $ sudo cp -p mongo* /usr/bin
    $ sudo mkdir /var/log/mongodb
    $ sudo chown mongodb:nogroup /var/log/mongodb
    $ sudo mkdir /var/lib/mongodb
    $ sudo chown mongodb:root /var/lib/mongodb
    $ sudo chmod 775 /var/lib/mongodb
    $ cd /etc/
    $ sudo vi mongodb.conf
    # /etc/mongodb.conf
    # minimal config file (old style)
    # Run mongod --help to see a list of options
    
    bind_ip = 127.0.0.1
    quiet = true
    dbpath = /var/lib/mongodb
    logpath = /var/log/mongodb/mongod.log
    logappend = true
    storageEngine = mmapv1
    $ cd /lib/systemd/system
    $ sudo vi mongodb.service
    [Unit]
    Description=High-performance, schema-free document-oriented database
    After=network.target
    
    [Service]
    User=mongodb
    ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf
    
    [Install]
    WantedBy=multi-user.target
    $ sudo service mongodb start
    $ sudo service mongodb status
    ● mongodb.service - High-performance, schema-free document-oriented database

    Loaded: loaded (/lib/systemd/system/mongodb.service; disabled)

    Active: active (running) since 日 2016-12-11 08:34:14 CST; 17s ago

    Main PID: 21175 (mongod)

    CGroup: /system.slice/mongodb.service

    └─21175 /usr/bin/mongod –quiet –config /etc/mongodb.conf

    建立Git远程仓库

    登陆https://bitbucket.org/,申请一个账户和工程即可,之后本地Clone一份

    $ git clone https://gitname@bitbucket.org/project.git

    建立第一个Node.js+MongoDB例子(http://mongodb.github.io/node-mongodb-native/2.2/quick-start/)

    $ mkdir myproject 
    $ cd myproject
    $ npm init
    $ npm install mongodb --save
    $ vi app.js

    [html]var MongoClient = require(‘mongodb’).MongoClient  , assert = require(‘assert’);
    // Connection URL
    var url = ‘mongodb://localhost:27017/myproject’;

    // Use connect method to connect to the server
    MongoClient.connect(url, function(err, db) {
    assert.equal(null, err);
    console.log("Connected successfully to server");
    db.close();
    });[/html]

    $ node app.js
        Connected successfully to server
    $vi helloworld.js

    [html]var http = require(‘http’);
    http.createServer(function (request, response) {
    response.writeHead(200, {‘Content-Type’: ‘text/plain’});
    response.end(‘Hello World\n’);
    }).listen(8124);
    console.log(‘Server running at http://127.0.0.1:8124/’);[/html]

    浏览器输入http://192.168.1.110:8124,能访问成功。基本就完成了!
    把目前的程序都Push到远程仓库。

    $ git add *
    $ git commit -m "Hello RasperPi @2016.12.11"
    $ git push origin master

    今天到此为止。

    sudo shutdown -h now
  • 南京的初雪

    和小朋友的例年银杏下的合影,今年刚好赶上南京的初雪,小朋友也是兴奋异常。

  • 树莓派体验(1)

    双十一采购的树莓派,终于到货了,按照说明很快开机成功。

    这么小巧的东西竟能如此强大,看来要好好发掘一下。不过唯一的问题是,风扇的声音好大,看发热量也不大,就直接拔掉了。