Spring-boot-project-trial
涉及到的问题:
Spring boot工程基础 使用bootcase工程完成练习。
yaml文件类型的配置使用,可参考spring yaml 默认位置为
/myApplication/src/main/resources/application.yml
支持多环境配置
Electron安装失败
8.4.0版本 Mac
删除Cache还是升级了Mixin。 0.10.2版本Mac上需要electron的8.4版本 cat yarn.lock | grep electron
Java Books
服务预警
听直播,才想起来看下自动化更新得内容,然后发现内容没更新成功。
- 需要有自己跟踪内容得自觉(或者更新成功后有个提醒)
- 如果更新异常也发送告警(邮件告警正常,但查看邮件的频率不高)
以上两个都可以通过webhook服务完成“消息提醒”。
“中国人总是被他们之中最勇敢的人保护得很好。”
曹德旺个人捐了一亿。老先生这辈子已经捐了100多亿。很多小创业者跑出来向国家叫苦的时候老先生喊话说不给国家添麻烦、过关靠自己。可能很多人不是很理解老先生的“过于大义凛然”。可他是40后。出生在战火中的人。尝过什么是国破家亡。
[GPWG]-Unit-0--Getting-started
Unit 0 Getting started
lesson 1 get ready, get set, go
- With the Go Playground you can start using Go without installing anything.
- Every Go program is made up of functions contained in packages.
- To print text on the screen, use the fmt package provided by the standard library.
- Punctuation is just as important in programming languages as it is in natural languages.
- You used 3 of the 25 Go keywords:
package
,import
, andfunc
0307: rework, day by day.
简书的Markdown编辑器很好用,还支持屏幕截图直接上传图片。不好的地方在于不时抽风就“仅自己可见”了。
今天把上面的文章整理备份到这里了,更方便本地搜索。除了这篇,今天的所有文章都来自备份内容。
Additional-info-for-service-provider
在线图片格式转换,包括webp格式转jpg、png。
Appium-Basic
官网过一遍,有个大概:概述、历史、getting started、API、appium desktop
Appium-实战(一)
STF目前使用的是8.16版本的Node环境,需要使用多版本Node。
Apple-Dev-Reference
苹果开发者账号开启双重认证教程 注册Apple账户且在iOS设备上进行登录(Phone or Pad),在账户信息页面选择 “密码与安全性”,开启双重认证。——目前,不开启双重认证的账户无法注册为开发者账户。
Apple美区账号注册之路
App开源测试框架去哪儿了
中文搜索 App开源测试框架,大概率可以看到下面这个文章的变种——
- 移动APP自动化测试框架对比 2016年文章,现在的内容依然很多来自这篇的变种;
文章保存在微信上,依然可以找的,而TMQ(Tencent Mobile Quality Center http://tmq.qq.com)、GT(http://gt.qq.com)本身似乎本身随着业务调整已经找不到入口了。现在统一为 WeTest平台
App测试平台有哪些
云测Testinhttps://www.testin.cn/
WeTest腾讯质量开放平台 https://wetest.qq.com/
阿里移动测试平台 http://mqc.aliyun.com/ 到https://www.aliyun.com/product/mqc
华为云测试 https://deveco.huawei.com/v2/
百度MTC http://mtc.baidu.com/
UC 研发效能产品内测邀请——云真机、自动化测试、WEB 前端监控 https://yanshu.effirst.com/
App测试框架在哪儿
Appium 目前的事实上通用方案
Macaca 轻量级的Appium,by 阿里巴巴
idb Facebook自己不再维护WebDriverAgent之后,自研了idb方案。idb is a flexible command line interface for automating iOS simulators and devices
A股港股打新比较
甲乙组是以500万为临界点对新股认购用户做的分组,认购总金额≤500万港元的,就属于甲组(小散);认购总金额>500万港元的,就属于乙组(大户)。
BASed(一)
B –> A –> S
学习材料收集一下先:
- PC端学习项目:vue-element-admin,DaXiang的前端使用的架子来自这个项目。
- 移动端:Google搜索
vue js mobile app example
推荐的就是 NativeScript了
- 移动端:Google搜索
- Example示例教学应用是最好的vuejsexamples.com
先从PC端学起。最简单的方式就是 clone repo; npm install ; npm run dev
基本上这样能跑起来,就表示环境没有问题。Windows+Mac环境目前都已经跑起来。
BASed(二)
BASed(一)里提到——
使用Auth0站点的指南文章01-login
Basic-Javaagent
man java
-javaagent:jarpath[=options]
Loads the specified Java programming language agent. For more information about instrumenting Java applications, see the java.lang.instrument package description in the Java API documentation at http://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html
文档说明部分介绍了基本概念
Provides services that allow Java programming language agents to instrument programs running on the JVM.
Basic-Kafka
https://kafka.apache.org/quickstart
- Java8 + Windows环境
- Zookeeper环境
启动Server时,会提示java.lang.NumberFormatException: For input string: "initial.rebalance.delay.ms"
错误,根据这里的提示,在window环境下执行:.\bin\windows\kafka-server-start.bat .\config\server.properties
可以正常启动——这里启动的还是kafka的server,用来连接zookeeper的server,需要先启动zk。否则会超时自动结束。
Basic-Kibana
假装天天接触大数据的样子= =|
Basic的意思就是:了解这个东西是做什么的?如何配置安装?简单实用方法是怎样的?
有了这个概念,就可以上手操作。
Basic-SonarQube-SonarScanner
SonarQube Continuous code quality made easy.
Start In Two Minute
- 下载 SonarQube downloads,使用Sonar qube 7.6版本,Java8支持;最新版本8.0,需要Java 11+
- 解压后将bin目录添加到环境变量
- 启动SonarQube服务 (默认会使用内置的数据库,可单独配置数据库)
# On Windows, execute:
C:\sonarqube\bin\windows-x86-xx\StartSonar.bat
# On other operating systems, as a non-root user execute:
/opt/sonarqube/bin/[OS]/sonar.sh console
# server log
...
jvm 1 | 2019.11.20 10:38:32 INFO app[][o.s.a.SchedulerImpl] Process[ce] is up
jvm 1 | 2019.11.20 10:38:32 INFO app[][o.s.a.SchedulerImpl] SonarQube is up
brew关键参数
STF之Provider系列六:brew里介绍里一些基础用法。
Desktop-App
how to clean cache in yarn
yarn cache clean
安装下面的 操作在Window环境下执行OK了。没想到在Mac环境上反而出了问题。
git clone https://github.com/MixinNetwork/desktop-app.git
cd desktop-app
yarn install
yarn electron:serve
一开始是yarn install
时无法下载,这个问题多试几次基本就OK了。 最终编译通过,启动时却报错——
FCoin余波
git-proxy
最后也没有解决掉- -||
一开始就是怎样做的,最后还是这样做起到了作用:只是
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7891
git config --global is stored in ~/.gitconfig
local config settings is in ./.git/config.
To remove a configuration, e.g. run git config --global --unset core.gitproxy.
git更新历史commit中的author信息
https://help.github.com/en/github/using-git/changing-author-info
https://www.git-tower.com/learn/git/faq/change-author-name-email
https://blog.tinned-software.net/rewrite-author-of-entire-git-repository/
Rewriting the history is done with “git filter-branch” by walking through the complete history. For each commit, filters are applied after which the changes are re-committed. The different filters allow modifying different parts of the commit.
The following uses “git filter-branch” to filter the history. Instead of manipulating the files to be recommitted like explained in Remove files from git history, this command uses the “–env-filter” to alter the environment in which the re-committing statement takes place.
ios-app-打包学习
美区账户似乎搞起来比较麻烦了,既然是开源项目,在自己的Mac上编译打包安装不是也可以?正好顺带学习一下iOS开发。
直接打包ios-app时提示类似:Xcode, Pods ProjectName.debug.xcconfig unable to open file. Wrong directory问题。
JaCoCo--skipping-jacoco-due-to-missing-data-file
昨天开始有一个多module的项目一直无法获取到单测覆盖率结果。
初步跟踪了一下执行log,发现多个提示:“skipping jacoco due to missing data file”。
JaCoCo-Multi-Module
Jekyll-on-Github-Pages
在github上使用github page:jekyll github pages 实际上,GitHub Pages are powered by Jekyll behind the scenes, so they’re a great way to host your Jekyll-powered website for free.
Jekyll-on-Mac
标准操作只需要三部:
- 安装gem:
gem install bundler jekyll
- 生成站点:
jekyll new my-awesome-site
- 启动站点:
bundle exec jekyll serve
bundle exec jekyll serve --drafts
VS.
hugo server --watch --verbose --buildDrafts
Jekyll-on-Windows
看了官方文档才意识到Windows 10已经默认支持了windows subsystem for linux,直接在命令行里执行 bash
就可以切换到linux环境。
Lettes-to-Shareholders:Mixin节点换届信息
lettuce-redis--Could-not-get-a-resource-from-the-pool
link to JianShu这篇估计因为提到了VPN,至今依然是“仅自己可见”
使用VPN链接公司内网的环境。本地调试链接Redis时是不是会提示:完整log
longmen-run
Longmenshan-&-longmenshan-fault
早上群里看到这个拉票活动:中国科学院青藏高原研究所2019年度科学进展评选投票
Maven-build-lifesycle
Introduction to the Build Lifecycle
validate
- validate the project is correct and all necessary information is availablecompile
- compile the source code of the projecttest
- test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployedpackage
- take the compiled code and package it in its distributable format, such as a JAR.verify
- run any checks on results of integration tests to ensure quality criteria are metinstall
- install the package into the local repository, for use as a dependency in other projects locallydeploy
- done in the build environment, copies the final package to the remote repository for sharing with other developers and projects.
- mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
- mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
- mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。
- package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
- install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
- deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
Maven-pom-packaging
What is “pom” packaging in maven?
pom
packaging is simply a specification that states the primary artifact is not a war or jar, but the pom.xml itself.
只是一直打包形式,打包为pom文件本身。加入当前目录是做完文档模块存在,显然无法打包为jar
形式。
Mixin-lol
Don’t laugh and weep all at once, I have an ulterior motive for learning Go and Electron.
TEE-BFT-DAG network
Mixin-network-Assets-Value-track
from: mixin.lol/assets
Mixin做为二级网络,到底在网络内沉淀了多少的区块链资产,大概是最有说服力的信息了。
官方提供了排名靠前的资产列表Top Assets。
Mixin-Nodes-Info
根据这里的公开信息,做了一点整理工作。
Mixin-Nodes-Location
根据源码信息,整理了目前已知是31个节点的信息。(截止到2019-12-22日)
Mobile-Services
Google Fi Best Choice If possible and don’ t care $20/month tariff.
Others:
- real American/United Kingdom phone number;
- Call and Text service available in China;
- No month fee and minimum consumption.
Summary In Chinese: 3 United Kingdom + 1 United States
- truphone.com,purchase link too expensive.
Our Services under this EULA are provided on a prepayment basis for the period the services are being used by you and up to 180 days from the last day the services are used by you.
OnePlus-one-plus-TugaPower
环境准备:
- Twrp3.3.0 工具
- TugaPower 安装包(底包TugaPowerFirmwareCM13_v4.zip、系统包:TugaPowerP12_OP1.zip)
- adb、fastboot工具(包含在android开发者环境中,也可以独立安装)
步骤:
Scala-Pkg-Pug-Angular-directive
Selenium---Appium---的八卦历史
帅大叔放前面~
前传
1994年Jason Huggins在Notre Dame大学读工商信息管理专业,98年毕业后在PeopleSoft公司做了两年的售前技术支持,2000年开始加入了ThoughtWork公司,干了6年多。
Setup-Selenium-with-ChromeDriver-on-Ubuntu-18-04
https://tecadmin.net/setup-selenium-chromedriver-on-ubuntu/
https://stackoverflow.com/a/34343755/1087122
Selenium is only a library, and as such it does not particularly care if you are running it on a system that is equipped with a GUI. What you are probably asking is: If I use Selenium to open a browser, is that browser going to work on a system with no GUI. The answer to this is: it depends!
SIM-card-terminology
###SIM wiki SIM_card
A subscriber identity module or subscriber identification module (SIM), widely known as a SIM card, is an integrated circuit that is intended to securely store the international mobile subscriber identity (IMSI) number and its related key
The SIM circuit is part of the function of a universal integrated circuit card (UICC) physical smart card, which is usually made of PVC with embedded contacts and semiconductors. SIM cards are transferable between different mobile devices. The first UICC smart cards were the size of credit and bank cards; sizes were reduced several times over the years, usually keeping electrical contacts the same, so that a larger card could be cut down to a smaller size.
since0305
旧常识书单
0305 link to JianShu
两年前就收到这份书单了。一直没开始看。
来自微博@旧常识的推荐
Sonar-Web-api(一)
数据库定义,但 不建议直接查询DB,使用Sonar提供的Web_Api,默认在SonarQube服务的/web_api下可以查看到提供的所有API信息,如http://localhost:9000/web_api/api/project_analyses
Sonar-Web-api(二)
每个项目主页: http://example.sonar.com/dashboard?id=growth_client:restful-api-seller
最近一次current扫描时间信息: http://example.sonar.com/api/ce/component?component=projectGroup1:projectNameExample
{
"queue":[
],
"current":{
"id":"AW7LG4x5rEHtiKcxk1nN",
"type":"REPORT",
"componentId":"AWvpaqUHahV-mFVL-A1-",
"componentKey":"projectGroup1:projectNameExample",
"componentName":"projectGroup1:projectNameExample",
"componentQualifier":"TRK",
"analysisId":"AW7LG5GFQzwg82DVBAfm",
"status":"SUCCESS",
"submittedAt":"2019-12-03T17:33:30+0800",
"submitterLogin":"admin",
"startedAt":"2019-12-03T17:33:31+0800",
"executedAt":"2019-12-03T17:33:33+0800",
"executionTimeMs":1694,
"logs":false,
"hasScannerContext":true,
"organization":"default-organization",
"warningCount":1,
"warnings":[
]
}
}
SonarLint-使用
基本上开箱即用。
安装
手动下载:
不同版本
下载到本地,然后从Idea的settings->Plugins->settings install plugin from disk
,需要保留zip包的形式。
下载针对idea的zip包:https://www.sonarlint.org/intellij/
Sonar实践问题记录(一)
跟踪了一天的问题,记录一下。
问题一:
目前最大的问题为获取Sonar数据时一直处于超时状态。
第一步,怀疑在超时时间内一直请求,相当于对server做了压力测试,导致server端假死。
Sonar实践问题记录(七)node版本排查
采用事实上标准而不是通用标准。所以前端项目扫描使用ESlint,而不是Sonar自带的扫描规则。(如何使用的逻辑还没有搞清楚,使用的环境已是ready状态)。
Sonar实践问题记录(三)-SonarQube
8.0版本需要Java 11,java8环境启动时就会提示。可以下载7.6版本
Sonar实践问题记录(九):sonar-scanner分析参数
ERROR: Validation of project reactor failed: “groupName:projectName:BranchName-22695-合规视频” is not a valid project or module key. Allowed characters are alphanumeric, ‘-’, ‘_’, ‘.’ and ‘:’, with at least one non-digit. ERROR: ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
Sonar实践问题记录(二)
Sonar实践问题记录(五)-插件Plugins
插件也需要与主版本兼容。 例如7.6版本的中文包需要使用sonar-l10n-zh-plugin-1.26.jar
, 8.0版本的sonarqube使用的为sonar-l10n-zh-plugin-8.0.jar
Sonar实践问题记录(八)jacoco-plugin
SonarQube 7.4以上版本默认自动jacoco plugin,可以分析jacoco生成的xml格式的测试报告。
在 配置 – 应用市场 可以看到已安装的——
Sonar实践问题记录(六)webhook
使用SonarScanner扫描结束后,会将结果提交给SonarQube,其中的Computer Engine会负责分析数据——这会消耗一定的时间。尤其是免费版本只支持一个Worker工作,不可避免会有排队现象。
Sonar实践问题记录(四)
配置
默认配置包括以下几个方面——
- DATABASE
- WEB SERVER
- SSO AUTHENTICATION
- LDAP CONFIGURATION
- ELASTICSEARCH
- UPDATE CENTER
- LOGGING
- OTHERS
默认配置文件sonar.properties
中对每一项有详细的说明。
Spring-boot服务(一)
阿里云
- 目前阿里云新用户有优惠,89年一年。购买的是劵,然后用劵再正式开通服务,设置好用户名密码,默认22端口开通。可以远程访问。
- 阿里云实例列表–更多–网络和安全组–安全组配置–配置规则–增加入网的端口。这样才可以访问对应的端口
- 增加日常用户
- 安装mysql服务
- 安装maven
sudo apt install maven
,配置阿里云镜像。创建.m2/settings.xml
文件,内容如下——
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository />
<interactiveMode />
<usePluginRegistry />
<offline />
<pluginGroups />
<servers />
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<proxies />
<profiles />
<activeProfiles />
</settings>
Spring-boot服务(二):aliyun
从头再来。旧的镜像在我安装gitlab之后Gitlab CE,现在远程登录相当慢。重新初始化了一下镜像。使用强密码策略。
-
- 安装zsh+oh my zsh
apt-get install -y zsh; sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
- 安装zsh+oh my zsh
-
- 安装Maven, git, java
apt-get update; apt-get install -y maven git openjdk-8-jdk
- 安装Maven, git, java
-
- 生成SSH public key
ssh-keygen -t rsa -b 4096 -C "e@example.com"
并配置多个key~/.ssh/config
内容如下
- 生成SSH public key
-
- 配置安全组策略,打开需要访问的端口。
Host github.com
# Specifies the real host name to log into. Numeric IP addresses are also permitted.
HostName github.com
# Defines the username for the SSH connection.
User gebitang
# Specifies a file from which the user’s DSA, ECDSA or DSA authentication identity is read.
IdentityFile ~/.ssh/id_rsa_github
Host gitlab.com
# Specifies the real host name to log into. Numeric IP addresses are also permitted.
HostName gitlab.com
# Defines the username for the SSH connection.
User gebitang
# Specifies a file from which the user’s DSA, ECDSA or DSA authentication identity is read.
IdentityFile ~/.ssh/id_rsa
STF-集成-iOS之一:环境准备
根据这个帖子STF 集成 iOS 之 开源了
目前但效果只是能发现设备,还无法正常完成初始化。
Setup had an error TypeError: Cannot read property 'sdk' of null
at Object.getDeviceInfo (/Users/gebitang/projects/tryout/stf/lib/units/ios-device/support/deviceinfo.js:56:28)
at solve (/Users/gebitang/projects/tryout/stf/lib/units/ios-device/plugins/util/identity.js:13:33)
at /Users/gebitang/projects/tryout/stf/lib/units/ios-device/plugins/util/identity.js:18:12
at SerialSyrup.ParallelSyrup.invoke (/Users/gebitang/projects/tryout/stf/node_modules/stf-syrup/lib/parallel.js:54:24)
at /Users/gebitang/projects/tryout/stf/node_modules/stf-syrup/lib/serial.js:43:33
at tryCatch1 (/Users/gebitang/projects/tryout/stf/node_modules/stf-syrup/node_modules/bluebird/js/main/util.js:63:19)
at Promise$_callHandler [as _callHandler] (/Users/gebitang/projects/tryout/stf/node_modules/stf-syrup/node_modules/bluebird/js/main/promise.js:708:13)
at Promise$_settlePromiseFromHandler [as _settlePromiseFromHandler] (/Users/gebitang/projects/tryout/stf/node_modules/stf-syrup/node_modules/bluebird/js/main/promise.js:724:18)
at Promise$_settlePromiseAt [as _settlePromiseAt] (/Users/gebitang/projects/tryout/stf/node_modules/stf-syrup/node_modules/bluebird/js/main/promise.js:896:14)
at Promise$_fulfillPromises [as _fulfillPromises] (/Users/gebitang/projects/tryout/stf/node_modules/stf-syrup/node_modules/bluebird/js/main/promise.js:1041:14)
at Async$_consumeFunctionBuffer [as _consumeFunctionBuffer] (/Users/gebitang/projects/tryout/stf/node_modules/stf-syrup/node_modules/bluebird/js/main/async.js:74:12)
at Async$consumeFunctionBuffer (/Users/gebitang/projects/tryout/stf/node_modules/stf-syrup/node_modules/bluebird/js/main/async.js:37:14)
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickCallback (internal/process/next_tick.js:181:9)
STF-集成-iOS之三:对接
昨天遇到的问题 Error: Unknown security handler: accessTokenAuth
是因为启动过程中有类似下面的提示——
STF-集成-iOS之二:集成问题
STF 集成 iOS之一:环境准备里完成里环境搭建。 实际上出现的错误——是属于模拟器设备的:(
Setup had an error TypeError: Cannot read property 'sdk' of null
at Object.getDeviceInfo (/Users/gebitang/projects/tryout/stf/lib/units/ios-device/support/deviceinfo.js:56:28)
at solve (/Users/gebitang/projects/tryout/stf/lib/units/ios-device/plugins/util/identity.js:13:33)
...
STF-集成-iOS之五:部署总结
在测试旧的MacPro机器上搭建正式的部署环境。
Mac系统为13.3 + Xcode9.4。 根据测试环境搭建的经验,选择Xcode10.1
STF-集成-iOS之四:完成
谨慎起见,开了个分支集成STF下的iOS远程真机。
事实上,STF 集成 iOS之三:对接里提到的前端集成关键的就是图片传输协议——
res/app/components/stf/control/control-service.js
新增加了screendump
方法发送zmq消息通知,lib/units/device/plugins/screen/dump.js
,接收到消息后完成截图动作。
昨天图像没显示出来,有可能是WDA还没有build成功——需要等待一段时间。
STF之Docker-for-Mac失败
###容器访问
外部访问容器
启动容器docker container ls
进入容器 docker attach container_id
退出容器不关闭容器 Ctrl+q Ctrl+q
STF之Docker系列一
docker cp foo.txt mycontainer:/foo.txt docker cp mycontainer:/foo.txt foo.txt For emphasis, mycontainer is a container ID, not an image ID.
zeromq install require libsodium
./configure –without-libsodium above not work, see this
stf on ubuntu [centos7][stf] 环境搭建
apt-get install android-tools-adb
容器在,镜像不能删除
如果有用这个镜像启动的容器存在(即使容器没有运行),那么同样不可以删除这个镜像。之前讲过,容器是以镜像为基础,再加一层容器存储层,组成这样的多层存储结构去运行的。因此该镜像如果被这个容器所依赖的,那么删除必然会导致故障。如果这些容器是不需要的,应该先将它们删除,然后再来删除镜像。
STF之Node乱炖
代码看到哪里记到哪里。可参考Stf源码解读
STF之OAuth探索二
github OAuth
参考示例教程,在github申请好OAuth Apps(settings-Developer settings-OAuth Apps-new),配置好对应的认证字段,就可以完成使用了。
STF之Provider一键部署一
STF之Provider系列五里的前提条件是已经获取到里源码。在源码目录执行上面到脚本。
STF之Provider一键部署二
TL, DR.
需要过多的准备工作,暂时放弃准备本地化的bottle for brew
针对每个formulae,大概需要这样的几个步骤:
- 每个formulae都有不同MacOS下的对应版本,需要都下载下来 from https://bintray.com/homebrew/bottles
- 针对对应的版本,需要知道对应都cached路径是什么,可以通过
brew --cache --force-bottle formulae
获取到适用于当前MacOS版本的缓存地址 - 在不同到MacOS上重复执行上面两步,才能获取到不同版本下可用的缓存地址
如何使用源码进行安装,可以先将源码包下载下来,然后复制到cache目录下
pre-download a formula
mv source-code.tar.gz $(brew --cache -s formulaName
STF之Provider系列一
独立服务-未完成
目前local方式已经跑起来,如果进行分布式接入设备?官方提供都都是docker 方式
Provider role The provider role requires the following units, which must be together on a single or more hosts. adbd.service stf-provider@.service
STF之Provider系列七:设备共享与过滤
STF之复用ADB一里满足了设备复用的场景。
STF之Provider系列三
websocket的连接问题还没有解决。
昨天出现的现象是连接设备时,图像连接到了“其他”设备上。 ——今天定位到是因为独立到provider提供设备时,分配到ws连接地址与也有设备重复。
STF之Provider系列二
EventEmitter node.js 如何使用Promise
系列一后续,现学现卖,逻辑梳理如下——
STF之Provider系列五
Mac环境下支持脚本自动部署
需要Mac环境已经安装了XCode,因为环境编译时需要C++的编译器。
STF之Provider系列六:brew
STF之Provider系列五支持脚本自动部署。目前国内到网络环境导致使用brew install 各种依赖应用时:1)耗时;2)不稳定。
STF之Provider系列四
环境准备
在一台新的机器上从头搭建STF的provider环境。
- 需要adb服务
- 可以执行 stf provider服务模块
新机器上的Node环境为V12 版本,没有adb环境。 折腾到最后还是跑起来了。记录一下遇到的可能问题:
STF之RethinkDB一
quick start
#install
npm install rethinkdb
# start from where it is installed.
$ rethinkdb
...
...
Listening for intracluster connections on port 29015
Listening for client driver connections on port 28015
Listening for administrative HTTP connections on port 8080
Listening on cluster addresses: 127.0.0.1, ::1
Listening on driver addresses: 127.0.0.1, ::1
Listening on http addresses: 127.0.0.1, ::1
To fully expose RethinkDB on the network, bind to all addresses by running rethinkdb with the `--bind all` command line option.
Server ready, "gebitangHoster_wil" c4bc2619-a3aa-4edf-9d4e-5c85aee397ff
#use the drivers from Node.js like this:
$ node
r = require('rethinkdb');
r.connect({ host: 'localhost', port: 28015 }, function(err, conn) {
if(err) throw err;
r.db('test').tableCreate('tv_shows').run(conn, function(err, res) {
if(err) throw err;
console.log(res);
r.table('tv_shows').insert({ name: 'Star Trek TNG' }).run(conn, function(err, res)
{
if(err) throw err;
console.log(res);
});
});
});
STF之RethinkDB三-设备使用
STF之RethinkDB二 获取到设备使用、停止使用的切入口之后,甚至不需要了解设备使用的业务逻辑,就可以直接进行数据库操作,完成记录设备使用时长的功能。
STF之RethinkDB二
STF之RethinkDB一结束了数据库rethinkdb的基本使用。
STF之Rethinkdb四:导入导出
rethinkdb backup rethinkdb import
# export
rethinkdb dump -e stf.usageRecord -f record.tag.gz
# import
rethinkdb import -f usageRecord.json --table stf.usageRecord --force
使用导出功能rethinkdb dump
需要安装对应的python driver。默认安装的sudo pip install rethinkdb
版本为 2.4.2,跟安装的rethinkdb 2.3.6版本不兼容,会提示 No handlers could be found for logger "rethinkdb.logger"
的问题。
STF之STFService服务调用
STF之环境搭建可能的几个坑里提到过
STF之ubuntu18-04环境搭建
参考: stf on ubuntu [centos7][stf] 环境搭建
一、安装npm
# https://github.com/nvm-sh/nvm
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
# 主动生效
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
二、安装nrm
STF之Windows环境
Node环境 + 依赖 rethinkdb graphicsmagick zeromq protobuf yasm pkg-config
# go to the directory that you unpacked rethinkdb.exe in
rethinkdb.exe -d c:\RethinkDB\data\
graphicsmagick 正常安装完成,可执行gm命令即可。系统安装后会自动添加环境变量 c:\program files\graphicsmagick-1.3.33-q16
STF之Yarn一
Mac环境部署告一段落,同事多次建议为什么不用yarn。STF本身也包含了yarn.lock文件。简单学习一下yarn 的相关内容。
Yarn is a package manager for your code. Code is shared through something called a package (sometimes referred to as a module). A package contains all the code being shared as well as a
package.json
file which describes the package.
STF之Yarn二
yarn的确会快得飞起。 STF之Yarn一中简单使用后,从头开始使用yarn安装STF。
STF之ZeroMQ
STF consists of multiple independent processes communicating via ZeroMQ and Protocol Buffers.
使用ZeroMQ进行zmq socket通信,使用Protocol Buffers定义通信内容。
STF之一般依赖和phantomjs
brew 本地安装
只使用provider服务的话,可以不安装rethinkdb(恰好这是最大的一个文件)。brew install graphicsmagick zeromq protobuf yasm pkg-conf
STF之从stf-local说开去
STF使用命令行stf local
方式运行。
Node.js 命令行程序开发教程,执行了 npm link后,实际上执行的就是 lib/cli/index.js
中的命令。
使用yargs模块实现命令行支持
STF之复用ADB一
假如还有一个Java应用也需要连接、管理设备,是否可以和STF共享?
在重温了官方说明以及google之后,以下方案应该是可行的:
STF之安装失败问题
遇到实际的apk包打包问题导致在低版本上不兼容,导致安装失败。 这种情况下STF是给不出来错误提示的。
看后台log,报错信息类似——
STF之屏幕截图不显示-ubuntu18-04
TL, DR.
GraphicsMagic的依赖不满足,无法支持jpeg图片的resize功能。
解决方案: 安装对应的依赖,目前截图功能使用的为jpeg格式,仅安装jpeg支持即可sudo apt install libjpeg9
STF之新增页面一:方案
STF之RethinkDB三:设备使用里已经在数据库里记录里设备使用时长到信息,需要一个前端页面进行展示。
STF之新增页面三:先画只犬
STF之新增页面三:照猫画虎画虎不成反类犬,一个页面加两天。
STF之新增页面三:照猫画虎
目前STF之新增页面二:融合方案对我来说要求还比较高,先照葫芦画瓢吧。
STF之新增页面二:融合
STF之环境搭建可能的几个坑
Error: listen EADDRINUSE :::8080 at Server.setupListenHandle 这是端口被占用导致的,更换端口即可
fatal: unable to access ‘https://github.com/AdiDahan/ng-context-menu.git/': Could not resolve proxy: localhost 或者 proxy had an error Error: getaddrinfo ENOTFOUND localhost
本地的hosts文件导致的无法解析localhost,参考,使用SwitchHosts之类的软件更改hosts之后,生效的host文件需要保留以下内容——
STF之网络流量监控
STF部署在内网环境上,办公网络访问时时快时慢。需要定位一下到底是什么原因。
使用ping周期性访问服务器地址,记录显示的确网络不稳定——
STF之设备接入
这是个体力活。
先要把设备信息先记录下来,类似这样都信息需要先手动录入——
打开USB调试
USB调试打开都开关并没有统一到“点击7次内核版本”上,需要在手机信息里试。比如小米是在MIUI到版本上多点击几次——倒是发现了隐藏属性:点击3次内核版本,打开cit测试;点击处理器多次,开启抓log。
undefined-info
Hello there! Reach out to us right here, and we’ll get back to you as soon as we can!
Is there still any promotion for Global SIM Card? get one for one free?
The Welcome Wagon Hello there! Before we continue, can I get your name?
call me Max
The Welcome Wagon Can I also get your email address? In case we get disconnected, we can always get back to you.
why(哲学)-how(战略)-what(战术)
微博@硅谷王川
Sebastian Marshall: “哲学决定了为什么 why, 战略决定了如何做 how, 战术决定了做什么 what, 但是运营不只是关于何时何地何人,运营是所有这些东西加起来还有更多。运营意味着协调整合所有相关的资源,把事情做好。”
一以贯之华与华
一枝红杏出墙来
硬广——推荐码:8d50vj3e,最近墙有点高不可攀。
一站式购物优惠平台ExinEarn
为什么“清官难断家务事”
- 家务事是非标准化产品,没有统一的衡量标准。
- 效用是需求满足的程度。没有形成共识的情况下,只能“以己度人”。
- 家务事供需双方可选择的范围固定,无法进行市场化调节。
- 双方、多方参与的主体并没有“交易”参与方的意识。
最近刚刚看完俞军的《产品方法论》,今天离家返程,早上醒来,结合这个月在家的经历感受。突然有了这么个角度来看“家务事”。
买单吧,买单吧,就不想让人买单
买单吧,买单吧,就不想让人买单。
- 微信服务号人家都叫“广发信用卡”、“招商银行信用卡”之类的,它非得叫“交通银行信用卡|买单吧”
- 消费提醒时还能给个消费提示,账单提醒真的就是提醒。到达账单是多少是不会告诉你的。点开后就开始要你下载“买单吧”App
这些都还可以忍。今天还款后收到都短信说:“【交通银行】您尾号xxxx信用卡还款人民币xxxx元,还款后可用额度为人民币xxxx元,本期账单是否还清详询买单吧APP”
京东,你的拍拍被拍了
转手个全新的微软(Microsoft)Surface Go 二合一平板电脑 10英寸(英特尔 奔腾 金牌处理器4415Y 8G内存 128G存储)
从专利申请看科技发展趋势
美国专利那些事儿 同期发布的还有进5年来专利申请的趋势。
使用ConEmu同时在多个tab页执行不同任务
喜欢ConEmu的一点是终于可以在一个window里管理多个tab了。
在新tab页面批量执行不同的任务。official doc, solution
ConEmu默契启动后在 C:\Users\userName
目录,可以将不同的执行脚本保存在当前目录下。例如:启动hugo、启动jekyll等
俞军:产品方法论(一)概论
读起来很通透,写不出来更好的书评,直接摘原文内容——
From 自序:本书总结
企业以产品为媒介,与用户进行价值交换;产品经理要能在实践中理解用户模型和交易模型,设计产品促成更多交易,以创造有利可图的用户价值。
俞军:产品方法论(二)目录
什么是产品经理
- 历史上的产品经理
- 不一样的互联网产品经理
- 产品经理做什么
企业、用户、产品
- 企业、用户和产品的关系
- 如何理解用户
- 如何理解产品
- 如何理解企业
- 如何更好地用产品进行“价值交换”
交易
- 交易与交易模型
- 效用
- 边际
- 成本
- 供需定律
- 相对价格
目前看到这里,以产品经理切入,从产品的角度理解企业,理解用户,理解产品。再从交易角度解读这三者的关系。
做一个好人,就足够了
饭否上看到这一段,感觉跟老罗的语录……有相同的触动。一并找出来,记在这里。
先Run起来再说
公民身份号码-GB-11643-1999
起因先删除了,感觉暂时是个套路。缺少最后最关键的一个证据:
转账韩红爱心基金转账的电子账单(可隐藏汇款账号)。
但方法还是值得借鉴的。定位领域 + 打造爆款(跟热点贴合+套路文)+ 在线付费课程
关于港股中签率
中签率即为一手中签率,是指不同申购数量下所对应的平均每中签一手的概率。
一手中签率=总中签手数/总认购手数。
实际中签率=一手中签率*申购手数。
关于港股回拨机制
什么是回拨机制
港股新股发行分为公开发售(散户认购)和国际配售(机构投资者认购)。通常公开发售占所有发行股份的10%,国际配售占所有发行股份的90%,但是这个不是一成不变的,上市公司/承销商可以根据认购倍数来调整公开发售和国际配售发行股份的比例,这就是回拨机制。
关于港股暗盘交易
暗盘交易不通过交易所系统,而是通过某些大型券商自行设立的内部系统进行报价撮合。大部分港股新股中签结果公布和暗盘交易是同一天,一般为新股正式上市日前一个交易日下午4:15至6:30。
关于港股的白表和黄表
白表:个人 黄表:机构
Please use this form if you want the Hong Kong Offer Shares to be issued in your name 如 閣下欲以本身名義登記將獲發行的香港發售股份,請使用本表格
Please use this form if you want the Hong Kong Offer Shares to be issued in your name How to make your application
再简单的演示也得做充分得准备
早会后进行Brew相关的简单分享。演示环境出了差错:删除brew –cache目录之后,无法创建成功,导致复制cache文件时失败。
前端之路:好懵
一个感觉:调试跟黑盒一样,当没有按照预想的方式进行起来时,前端这玩意完全看不出来原因啊。
我添加STF页面时就把一个搜索框放不到正确的位置上去。今天听课,老师写轮播动画时也调试了很久,看得我已经完全懵了。
前端之路:学习进度跟踪
日日不断
- angularjs 1.x api API学习每天3个API
- AIP 文档有41个模块,每天至少阅读1个模块
- 重新前端专栏58讲,已学20个。每天至少学习一篇。在训练营结束前要至少读2遍。专栏内容要有自己理解的总结整理。
- 跟上训练营的课程内容、练习。
- 根据前3点的学习内容,最后总结出自己的前端知识图谱。
学习时间 trigger
- 早饭前时间完成1
- 午饭后完成2
- 晚饭前完成3
- 睡觉前完成4
8.10
- 完成modules模块的阅读。
- 走步的时候听了两节课程内容:涉及很细节的内容。
看文章不如看文档,加载逻辑文档中讲解的最清楚。伪代码逻辑
前端之路:第一周总结
前端之路:组件化一
授课
第一次进行线上课程。三段论节奏还是很清晰:
- 组件化演进历史以及三大主流组件(React、Agnular、Vue)的方案
- 进行需求分析:自己先分析再进行讲解
- coding:自己先尝试根据需求进行实现再进行演示——演示有明显的演进思路
上课
第一段还可以作为知识点进行了解; 第二段已经思路混乱了:需求分析我写的是这样的——
前端之路:组件化二
w3.org上默认使用duckduckgo搜索引擎,查找站点内容可以使用这样到方式:比如搜索 white-space
:
https://duckduckgo.com/?q=site%3Aw3.org+white-space&search-submit=&ia=web
前端之路:黑白棋一
HTML 5.3 W3C Working Draft, 18 October 2018 HTML Living Standard — Last Updated 18 July 2019 MDN Web/HTML MDN CSS
MDN CN JavaScript ECMAScript 6.0
about:blank Object.getOwnPropertyNames(window)
学习搜集整理基本的知识图谱路线图之后,今天开始——黑白棋开发之旅。
前端之路:黑白棋二
前端之路:黑白棋一里提到:包含悔棋功能时,下棋的落子状态没有显示出来。
又无题
一场疫情,明白情义。山川风月,异域同天。
物是人非,第一次过年直接过到了2月14,一个月前报名的线上跑,出不了小区,围着停车场绕成了气球。
备份1-三十流水账
~~https://www.jianshu.com/p/c1f7a0736ec3~~删除备份
2020.01.25 21:35:17 字数 154 阅读 3
备份2-站桩第139天
~~站桩第139天~~删除备份
2019.08.29 08:08:08 字数 262 阅读 17
备份3-STF之OAuth探索一
~~STF之OAuth探索一~~删除备份
2019.07.09 21:56:49 字数 306 阅读 118
学习一个产品运营套路
在肉唐僧的广告李佳琦月赚80万:这个时代,你再努力也拼不过这种人里把名报了。纯支持,文章都没仔细看,学了两天后今天才意识到这是个4天的体验课而已,不过这不是重点。
学习画架构图
解决沟通障碍 达成共识 减少歧义
广度和深度
半夜睡醒,胡思乱想。一些纷乱的思考。
应该是受前两天看得 人体内的细胞战争, 病毒vs细胞:一场持续40亿年的战争影响。
恢复跑步
- 正式解除隔离,晚上在老婆的怂恿下开始出去跑步。
- 看起来还可以参加一期约定跑。算上今天还有四天,打卡三次。
- 无法出小区,沿着停车场跑了几圈,长度有线,有在小区了跑了几个折线。
- 最后定位到健身区的狭长区域里来回跑。
- 慢慢地居然还有其他人出来锻炼身体,两位大爷在器械区域活动了一下,一位大姐打开手机外放音乐绕小圈跑。后来还来了位年轻人,应该是临时起意,穿着长长的羽绒服也加入了慢跑的行列。
- 配速很慢。
拓词硬广
英语需要持续得学,更持续得用。
起源于一次抽奖活动,然后加入了一期魔鬼营训练(持续训练100天),开营第一天还有个“仪式”——魔鬼营第一课 第16期后来发现,应该是每期都有。
推荐《哪吒之魔童降世》
哪吒之魔童降世,看得点映场,各个年龄段来观影的都有,上座率很高。
文摘四则:为什么要读书
最重要的是下面的那张图:G&P(Goal and Problem,目标与问题)
无题
看起来有点无解啊。 现在的问题是STF服务器部署在路由器后面,有线在内网上下行的速度“据说”是100MB,无线是50MB。
使用者的场景是都是通过无线进行访问。实测现象是:工作时间段网速比较慢;闲时网速较快。IT一直强调是独享的50MB,相互访问可以到到5MB/S,在提供实际的证据——即使是闲时时段,也只有最高3.5MB/S——之后,先表示跟接入的终端质量有关系。“使用相同的终端执行相同的动作,不同的时间段有不同的表现”之后,又表示可以申请有线接入。
日上三更
看看这次可以坚持多久?
- 2019.07.09 22:13 恭喜日更成功,今天是你日更的第1天
- 2019.09.30 09:56 恭喜日更成功,今天是你日更的第84天
- 2019.10.10 21:25 恭喜日更成功,今天是你日更的第1天
- 2019.11.15 19:11 恭喜日更成功,今天是你日更的第35天
- 2020.01.26 21:13 恭喜日更成功,今天是你日更的第68天
November 19 is the 323rd day of the year (324th in leap years) in the Gregorian calendar. 42 days remain until the end of the year.
有关CORS的资源
武能进店卖货,文能上台讲课
经营使命:
让企业少走弯路。
核心价值观:
不骗人、不贪心、不夸大。
企业精神:
生病记一
第二天了。 昨晚开始严重起来,一直头疼得厉害。
还是一直流清鼻涕的老毛病,站桩90+天,还是没防住啊= =|
早起没去锻炼,早饭前站了20分钟。早饭后下楼走走,最终还是决定继续站桩去。
生病记三
生病记二,8.24 在老婆的威逼利诱下,还是去看了中医。
生病记二
生病记一这还没过多久,第二回合就又来了,而且架势看起来比第一次要凶猛不少。
生病记四
有点刹不住车的意思。
药喝到第二天似乎药好转了,但最近两天似乎有向严重的方向转变了。
早上开始出现嘴麻的现象,眼睛发涩。站桩的效果也不好,鼻子一直无法正常呼吸,只能靠嘴呼吸。
由公众号文章引用找到的
离疆记:(一)
前期准备——
- 单位开工作证明;
- 提高返程车票等信息;
- 提交社区
- 社区申请开 通行证
- 社区统一安排 我们去 库尔勒
工作沟通不到位低效的情况肯定存在,但疫情面前,大家都多担待。
立春流水
看起来这个周末也回不去了。
- 到明天,解除我的居家隔离;
- 无法出入小区;
- 无法出城(焉耆在博湖的工作人员已经要求在当地住宿);
- 焉耆或库尔勒到乌鲁木齐的火车停运或无票
最新消息是需要小区的“通行证”才能出入小区,州领导“巡视”“抓人ing”。
站桩之百日筑基
在老婆的再三威逼利诱下,清明节参加了胥荣东老师的站桩课。之后就开始了每日站桩练习,从4月8日到7月21日(23+31+30+21=105天),算起来中间有5天没站。今天刚好100天。
站桩之阶段总结
最重要的是日日不断,即使不能每天都站很久,比如60分钟,至少也应该站二三十分钟。仪式感很重要。
科学道理还不清楚,另外,也不是什么事都得有个“科学”道理的……吧。
算法练习LinkedList(一)--P2
已废弃,参考–算法练习LinkedList(三): P2、P19
算法练习LinkedList(七)--P82
Remove Duplicates from Sorted List 2 Medium
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
Example 1:
Input: 1->2->3->3->4->4->5 Output: 1->2->5
Example 2:
Input: 1->1->1->2->3 Output: 2->3
昨天做得有点郁闷了。‘精准原子’操作的套路还是没有掌握,写半天没完成效果。按照O(n2)的思路实现就有点暴力了。
算法练习LinkedList(三)--P2、P19
linked-list Medium
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
算法练习LinkedList(九)--P92
Reverse a linked list from position m to n. Do it in one-pass.
Note: 1 ≤ m ≤ n ≤ length of list.
Example:
Input: 1->2->3->4->5->NULL, m = 2, n = 4
Output: 1->4->3->2->5->NULL
可以先复习一下翻转链表的实现。链表操作两个基本场景——
算法练习LinkedList(二)--P19
已废弃,参考–算法练习LinkedList(三): P2、P19
算法练习LinkedList(五)--P61
Rotate List Medium
Given a linked list, rotate the list to the right by k places, where k
is non-negative.
Example 1:
Input: 1->2->3->4->5->NULL, k = 2
Output: 4->5->1->2->3->NULL
Explanation:
rotate 1 steps to the right: 5->1->2->3->4->NULL
rotate 2 steps to the right: 4->5->1->2->3->NULL
Example 2:
Input: 0->1->2->NULL, k = 4
Output: 2->0->1->NULL
算法练习LinkedList(八)--P86
86. Partition List Medium
Given a linked list and a value x
, partition it such that all nodes less than x
come before nodes greater than or equal to x.
You should preserve the original relative order of the nodes in each of the two partitions.
Example:
Input: head = 1->4->3->2->5->2, x = 3 Output: 1->2->2->4->3->5
梳理一下思路,应该很快可以写出来这样一个架子:
算法练习LinkedList(六)--P83
Remove Duplicates from Sorted List Easy
Given a sorted linked list, delete all duplicates such that each element appear only once.
Example 1:
Input: 1->1->2
Output: 1->2
Example 2:
Input: 1->1->2->3->3
Output: 1->2->3
直接的实现对于最后一个节点的处理不够精细,调试后完成了算法。
算法练习LinkedList(十)--P138
138. Copy List with Random Pointer
A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.
Return a deep copy of the list.
Java中的深拷贝:对象中的对象需要重写clone方法,将所有基本类型重新clone
算法练习LinkedList(十一)--P109
109. Convert Sorted List to Binary Search Tree
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
Example:
Given the sorted linked list: [-10,-3,0,5,9], One possible answer is: [0,-3,9,-10,null,5], which represents the following height balanced BST:
算法练习LinkedList(四)--P21
21. Merge Two Sorted Lists Easy
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
Example: Input: 1->2->4, 1->3->4 Output: 1->1->2->3->4->4
这是个Easy级别的,有前两次的经验,一次做对,但执行效率不高
算法练习Stack--P1021-easy
栈stack
1021. Remove Outermost Parentheses
A valid parentheses string is either empty (""), “(” + A + “)”, or A + B, where A and B are valid parentheses strings, and + represents string concatenation. For example, “”, “()”, “(())()”, and “(()(()))” are all valid parentheses strings.
算法练习Stack--P1047-easy
栈stack
1047. Remove All Adjacent Duplicates In String
Given a string S of lowercase letters, a duplicate removal consists of choosing two adjacent and equal letters, and removing them.
算法练习Stack--P144-Medium
栈stack
144. Binary Tree Preorder Traversal Medium
Given a binary tree, return the preorder traversal of its nodes’ values.
算法练习Stack--P145-Hard
栈stack
145. Binary Tree Postorder Traversal Hard
Given a binary tree, return the postorder traversal of its nodes’ values.
算法练习Stack--P844-easy
栈stack
844. Backspace String Compare Easy
Given two strings S and T, return if they are equal when both are typed into empty text editors. # means a backspace character.
算法练习Stack--P94-Medium
栈stack
94. Binary Tree Inorder Traversal Medium
Given a binary tree, return the inorder traversal of its nodes’ values.
算法练习Stack(一)--P20
Given a string containing just the characters ‘(’, ‘)’, ‘{’, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.
算法练习Stack(七)--P496
栈stack
496. Next Greater Element I Easy
You are given two arrays (without duplicates) nums1
and nums2
where nums1’s
elements are subset of nums2
. Find all the next greater numbers for nums1's
elements in the corresponding places of nums2
.
算法练习Stack(三)--P42
栈stack
42. Trapping Rain Water Hard
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.
算法练习Stack(二)--P71
栈stack
71. simplify path Medium
Given an absolute path for a file (Unix-style), simplify it. Or in other words, convert it to the canonical path.
算法练习Stack(五)--P225、232
栈stack
225. Implement Stack using Queues Easy
232. Implement Queue using Stacks Easy
这两道提互为实现,刚好放到一起学习。既然两种数据结构可以互相实现,可以看看有什么相似之处。
算法练习Stack(六)--P173
栈stack
173. Binary Search Tree Iterator Medium
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.
Calling next()
will return the next smallest number in the BST.
算法练习Stack(四)--P155
栈stack
155. Min Stack Easy
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
类Monkey工具对比
原生Monkey:
给孩子看的西方政治学(未完)
给孩子看的西方政治学(未完)
李宇晖
(微博/Twitter/Instagram:@DrHueyLi)
版本说明:此书稿写于2014-2015年,最近应网友要求重新上传,并改正了个别错误。如果您发现新错误,请跟作者联系。从2019年11月开始,作者会发布新的章节。连载方式初步定为微博,如有变化,作者会在微博上与读者沟通。
美国专利那些事儿
ReadHub上看到这样两条记录——
搜索对照了一下原文,Sina的标题起得好,对文章进行了编译,腾讯比较忠实地翻译了原文 IBM称霸27年华为第10 US patents hit record 333,530 granted in 2019; IBM, Samsung (not the FAANGs) lead the pack 英文标题意思是专利最多的并不是赚钱最多的那几家格式 FAANG group(Facebook, Amazon, Apple, Netflix and Google)
职业规划路径
You are the owner of your career.
P6资深:单点解决难题,保证项目完成 ——内部影响
P7专家:领域专家,方法论 ——部门影响,协作
P8经理:成就——具体内容 ——外部影响,输出
自建git服务器
之前折腾这个Gitlab CE,最终小破机器上跑不起来。其实只是需要个git仓库而已。
不需要这么麻烦。搭建Git服务器 by 廖雪峰自用的话足够了。
西方政治学入门
学习一下一个说英文脱口秀的中国人写的《给孩子看的西方政治学》(未完)。(微博/Twitter/Instagram:@DrHueyLi
上面的介绍看起来有点没有说服力?作者可是正经的政治学博士,Dr的前缀货真价实。在线连载方式+能说脱口秀,文章读起来很顺溜。目前还在连载中
要学的停不下来,学得停不下来
似乎是要学习的时候,发现要学的停不下来。总会发现好东西,想学一学。
摸鱼的时候,不但感觉一天没啥收获,而且“无实物表演”真得很累人的。同时对于接收到的信息也不敏感,触发不了好奇心。
说三道四话平生
人常说三十多岁前后,会遇到世界观的第二次危机。之前建立起的人生观大多是被教育出来的,到这个时候已经跟现实碰撞了多次,即使没有坍塌也已经千疮百孔。许多概念在崩塌,不进行清理,很容易犬儒起来。
进程信息跟踪:top-jps-jstack
万事多用Man