100DaysOfCode 阿里云工业视觉智能工程师ACP认证

学习内容 input

人工智能学习路线
阿里云人工智能工程师ACP认证课程
阿里云工业视觉智能工程师ACP认证(Alibaba Cloud Certified Professional – Industrial Visual Intelligence)

产出 output

阿里云人工智能工程师ACP认证
阿里云工业视觉智能工程师ACP认证证书

Screen Shot 2022-02-17 at 8 26 50 PM
const today = new Date();
const tomorrow = new Date();
tomorrow.setDate(today.getDate() + 100);
tomorrow
// Sat May 28 2022 20:40:25 GMT+0800 (China Standard Time)

https://github.com/fxp/gitblog/issues/2

第一个五年计划(2022 – 2027)

伴着即将出生的孩子,给自己定个目标。一年太短(怕被快速打脸),十年太长(到时再回顾恐怕也无济于事),就跟我党学个五年计划吧。写给自己的OKR,每半年总结。

  • 个人品牌
    • 领域技术
    • 投资
  • 资产
    • 被动收入总收入 > 50%
    • 创作
      • 软件产品 * 5
      • 大型项目 * 5
      • 书/课程 * 1
    • 副业成型
    • 投资交易年复合回报率达 > 15%

好啦,我颠儿了。

生成自 deepdreamgenerator.com

Saleor开源电商框架

由于项目需求,要做一个电商网站,但是要允许自定义支付(内部结算)。商品信息从另一个服务获取,有很多自定义的字段。由于个人便好,对比了各种电商框架,选了Saleor。

Saleor

  • 这是一款Headless的电商系统,也就是API-first的电商后端
  • 核心项目分成三个模块
    • Core。核心API服务,纯后台服务
    • Storefront。Saleor做的范例前端电商服务,纯前台服务
    • Dashboard。后台控制面板,纯前台服务
  • 核心API是用Python写的,GraphQL风格的API

Get Started

项目提供了一个很方便的启动项目saleor-platform,你可以用这个项目里内涵的教程很方便的创建一个自己的Saleor。这个启动项目是基于docker的,所以也需要docker-compose。

按照How to run it?部分运行就能启动起来大部分服务。但是我测试了很多遍,storefront的docker都没法启动起来。解决方法就是单独启storefront,其他的用docker-compose up就好了。

Environment

但是如果想正常用起来,还有不少配置需要的参数的。常见的有下面几个。但是这样的配置就会影响到比如创建mock数据之类的流程。

services:
  api: ...
  environment:
   - STOREFRONT_URL=http://xxx/
   - DASHBOARD_URL=http://yyy/
   - DEFAULT_CURRENCY=CNY
   - DEFAULT_COUNTRY=CN
   - ALLOWED_HOSTS=aa.bb.cc.dd
   - ALLOWED_CLIENT_HOSTS=aa.bb.cc.dd

版本

saleor-platform里的主版本现在还是2.x,2.x和3.x的API还是差别很大的。一个很大的区别是支持channel,也就是一个站可以支持不同的店铺。从API看起来,就是Saleor想要支持SaaS模式。

想要部署一个3.x的版本,需要的就是把每个项目Checkout成3.x(现在看起来都是3.0/3.1)。然后回到saleor-platform目录下build所有镜像。

GraphQL API

用这个项目比较有挑战的是,所有的核心API都是GraphQL形式的。可以看出Saleor的API文档写的还是很匆忙,每个版本的文档都各有差异,有些栏目只在某个版本的文档里有。所以如果你找不到内容,还是优先用搜索。

访问API的时候,一般都要在header里用token。这个流程按照User部分的文档里获取token部分,用tokenCreate这个mutation就可以。

总结

Saleor总体是个挺好的项目。相对比较傻瓜的headless的ecommerce。作为电商的起步也都没问题,还有一点点关于库存,支付,物流的定制流程。虽然没有测试过,但支撑大型的电商应该是需要很深度的开发的。

在家做基因编辑的生物黑客 CRISPR Kit – intro

The ODIN出了一个实验套件,让BioHacker们在家就可以做大名鼎鼎的Crisper cas9的基因编辑实验。套件在亚马逊有卖,但无法寄到中国,所以…(一个月漫长的等待)

趁假期,我和高老师(北大生物专业人士!)把这个套件玩了一下。一句话感慨,新的车库时代真的要到了。

DSC01935

整体实验流程很简单,分为三大步骤,两三天就可以完成。步骤可以通俗的表述为:培养受试者,变异受试者,检查变异者。(是不是跟很多末日美剧差不多)

实验使用的是大肠杆菌,我们要通过Kit提供的Cas9/tracrRNA/crRNA /Template DNA等把大肠杆菌转换为可以抵抗抗生素的“魔免”大肠杆菌。

我们的实验环境十分简陋,完全有菌(可以说的超不净实验室)。但最后也成功了,可见这个Kit的鲁棒性和Crisper的门槛之低。

套件本身的试剂盒耗材大概可以用来做两三次实验,所以只要不胡搞,应该可以成功的。

先放些图感受下。后面我们再介绍每个步骤的细节。

 

(希望我们的抗药大肠杆菌不会毁灭地球

male-zombie-vector-clipart

 

想购买的可以扫我的微店~

download

CNUtils

因为众所周知的原因,很多网站因为用了font.googleapis.com而变的打开很慢很慢很慢。其实也就是那么一个文件打开慢而已。360出了个CDN造福了一大堆程序员。

于是我想,如果能做个小js库,让这些网站通过它来选择性加载不同源的数据该多好~于是就做了个cnutils

代码很简单,一个demo而已,里面用到了ip-api.com的api来判断ip国籍。欢迎友人有兴趣能做下去哈。

var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", 'http://ip-api.com/json', false);
xmlHttp.send(null);
var result = JSON.parse(xmlHttp.responseText)
var fontSrc = (('China' === result.country) ?
        'http://fonts.useso.com' :
        'https://fonts.googleapis.com') +
    '/css?family=Open+Sans:300italic,400italic,600italic,400,300,600|Merriweather:700'
var linkElement = document.createElement('link');
linkElement.rel = 'stylesheet';
linkElement.href = fontSrc;
console.log(fontSrc)
document.head.appendChild(linkElement);

(30 hackdays day 28) Repose – 给API穿上衣服

图片描述

最近需要把一些功能拆分为HTTP API,于是找到了它。Repose是一款开源的API中间件,它可以帮你轻松实现那些API设计里最基本的功能,诸如认证,限速,验证,Logging等。Repose是Rackspace旗下的产品,所以靠谱程度很高。

当你写了个一个页面Parser,一个“1秒钟算1BIL次蛋疼指数”的程序,一个通过一个mail判断一个人是不是靠谱的“占卜服务”之后。若果你想让更多的人能享受到你的智慧,最简单的想法就是把代码开源出去。但很多人是不愿意这样做的,于是就会想到把它作成网络服务,收费提供出去。也就变成了前面二十多篇文章介绍的各种API服务。

API hosting as a Service

经过这多年的积累,Web API服务已经逐渐形成了一套相对标准的做法,从各种开放平台的做法就能看出来。

  • 注册平台账号
  • 创建App,获得AppKey(也许需要付费)
  • 将SDK嵌入自己应用
  • 用AppKey初始化SDK
  • 开始调用各种API(也许需要付费,也许会限速)

工程师用多了这类产品以后,遇到新的服务往往就会轻车熟路的不用看任何Tutorial。直到有一天,工程师决定自己也要搞一套这样的服务,问题就出现了。这几个环节具体都要如何实现呢?

于是就在API as a Service(其实就是只提供API的Software as a Service)之外,出现了个API hosting as a Service的概念(是不是觉得XaaS特别Ass…)。也就是我帮你托管你的API,帮你做掉前面那些步骤的事儿,您安心开发您的核心算法,提高效率,降低错误率就好啦。其实,对于Amazon这样的老早就看到解耦合,把业务都拆分成细小服务的公司来说,这个概念已经太古老了。

同样提供这类服务的也有不少,比如界面做的太漂亮的Apiary.io,搭建API全生态链的Mulesoft。但因为我是想搭建在自己的服务器上的,所以暂时不考虑那些托管的平台。

Repose

感慨于Docker神速的发展,Respose最简单的部署方法就是部署一个Docker container。隐隐就已经看到了一个Repose as a Service的产品了…

Repose的工作原理很简单,就是在你的裸API和用户之间做一个代理。

图片描述

文档中描述的Repose的基本功能如下。

  • Translating。API格式转换。
  • Rate。限速。
  • Authenticating。
  • Validating。保证API符合Web Application Description标准。
  • Logging。
  • Blacklisting。credentials and roles
  • Caching。
  • Role-based access control (RBAC)。基于角色访问控制。
  • Mapping the state of your API。好吧,没懂,估计是类似NAT那样的玩意儿吧。

有好几种部署方法,嵌入源码,WAR,独立Proxy server,独立Proxy server cluster。我们肯定不能假设服务器是java的,所以肯定选择独立Proxy server这种模式。

配置里最重要的就是Destination endpoint,一个典型的如下,很清晰的描述一个即将被封装的API endpoint。(又看到了xml配置文件,让一个former javaer还是感慨良多)

由于还没有图形界面配置的功能呢,所以强烈建议从Repose+101入手。装个Virtualbox,里面装docker。

// TODO 过两天把装了Repose的VM传上去

Repose里除了刚才提到的Endpoint以外还有两个重要概念,filter和service。filter就是一个request一路经过的劫难。service就是诸如分布式数据库之类的东西。

Mock Server & Config

nodejs写一个简单的mock server来假装一个牛逼服务。node app.js跑起来。

var express = require('express');
var app = module.exports = express();

app.get('/api/nbservice', function(req, res){
 res.send('cool to die');
});

app.listen(8080);

写一个简单的Repose配置

刚才说到建议装docker,其实吧,最简单的还是直接跑jar~从maven上当他们最新的jar。运行java -jar valve-2.3.5.jar start -p 8888 -c /etc/repose/执行起来。

然后呢,curl 127.0.0.1:8888/api/nbservice就能看到它跑通啦~

Freelancer

在搜索这个主题内容的时候,遇到了这个老牌Freelancer网站的一个服务,居然叫RESTful hire。其实就是在技能里要有RESTful这一项而已。难道,RESTful已经变成了一种“世界观”了么…

Foc.us 玩耍 2

开始了第一次认真尝试。

1mA,5min,Noise

我发现选择Noise模式也许是个错误,因为开始就各种混乱的电流上来,有突然很高的(最大值还是1mA),导致有几秒钟虽然闭着眼但一片光明景象。

头半分钟还可以,就是感觉世界略亮。但半分钟到第二分钟的过程中就开始有点疯狂了:Noise导致闪烁不规律,电流刺痛感比较强,45秒左右开始出现头昏,仿佛进入一种亮亮的,未知的世界。两分钟时开始明显有手脚出汗感觉。伴随着头昏程度加大,有点吃不消。Foc.us本身也会震动,一下下的让我有点分不清是我在晕眩还是Foc.us震动。最后在大概在3分钟半左右的时候我放弃了。

最后的结果用的是Fit Brains的Matching Pairs来测试的,用完Foc.us后的结果反而比之前差。但主要是卡在一张图片上了,所以我觉得这个可参考性并不强。

有人能推荐一些比较客观的测试方法吗?

IMG_0013

还算是个坚强的小人物

无意间翻到我在应用汇最后发的一条微博

90ab6d9ejw1e0kg82zchvj

“大时代中,做一个坚强的小人物,向南方致敬!”

当时似乎是临时上线了一个promote app的功能。虽然这网页没什么人用,但当时还是很兴奋的能有个地方做一点自己想做的事情的。感谢当时的小伙伴。

南方周末的事儿已经忘得差不多了,但至少现在看起来,我还算是个坚强的小人物:)

Powered by WordPress.com.

Up ↑