大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。你可以把它比作一个厨房所以需要的各种工具。锅碗瓢盆,各有各的用处,互相之间又有重合。你可以用汤锅直接当碗吃饭喝汤,你可以用小刀或者刨子去皮。但是每个工具有自己的特性,虽然奇怪的组合也能工作,但是未必是最佳选择。
如何解决Git仓库 .git 文件过大问题
方案1
只是为了clone小的话,用--depth=1
只获取最新的commit即可
Intel CPU 名称和编号规范
官方文档
Flutter QA
QA
flutter run
flutter run
卡在 Running Gradle task 'assembleDebug'...
执行flutter run -v
查看卡在哪个步骤, 如果是卡在gradle环节, 尝试进入 android
目录执行 ./gradlew clean build
.
Target of URI doesn't exist
Target of URI doesn't exist 'package:flutter/material.dart'
Visual Studio Code 里的dart代码导入flutter类库标红失败, 提示 Target of URI doesn't exist xxxxx, 这是因为flutter代码没有还原, 尝试在项目根目录执行 flutter pub get
flutter doctor
设置flutter检测Android sdk和Android studio的路径
flutter config --android-sdk="$HOME/Android/Sdk"
flutter config --android-studio-dir="/snap/android-studio/current/android-studio/"
Wrap
元素左对齐
Wrap
里的 children
默认是居中对齐, 可以借助使用Align
设置成左对齐:
Align(
alignment: Alignment.topLeft,
child: Wrap(
// ...
)
)
来源: Flutter Wrap widget align: left inside ExpansionPanel, Align文档
组件增加点击触摸事件
给任意组件增加 onTap
事件监听, 可以使用 InkWell
或者 GestureDetector
, 两者的区别在于 InkWell
是 material 组件, 会有material风格的特效, 而GestureDetector
就是通用的增加手势操作的组件, 以下是示例:
// 使用 InkWell
InkWell(
child: Container(...),
onTap: () {
print("tapped on container");
},
)
// 使用 GestureDetector
GestureDetector(
onTap: () { print("Container was tapped"); },
child: Container(...),
)
GestureDetector(
onTap: () { print("Container was tapped"); },
child: Text("Hello world."),
)
来源: Flutter onTap method for Containers
笔记
Transform
的变换是应用在绘制阶段,而并不是应用在布局(layout)阶段,所以无论对子组件应用何种变化,其占用空间的大小和在屏幕上的位置都是固定不变的,因为这些是在布局阶段就确定的.
RotatedBox
和Transform.rotate
功能相似,它们都可以对子组件进行旋转变换,但是有一点不同: RotatedBox
的变换是在layout阶段,会影响在子组件的位置和大小。
Flutter 中有两种布局模型:
- 基于
RenderBox
的盒模型布局。 - 基于
Sliver
(RenderSliver
) 按需加载列表布局。
Flutter 中的可滚动主要由三个角色组成: Scrollable、Viewport 和 Sliver:
Scrollable
: 用于处理滑动手势,确定滑动偏移,滑动偏移变化时构建 Viewport 。Viewport
: 显示的视窗,即列表的可视区域;Sliver
: 视窗里显示的元素。
具体布局过程:
Scrollable
监听到用户滑动行为后,根据最新的滑动偏移构建 Viewport 。Viewport
将当前视口信息和配置信息通过 SliverConstraints 传递给 Sliver。Sliver
中对子组件(RenderBox)按需进行构建和布局,然后确认自身的位置、绘制等信息,保存在 geometry 中(一个 SliverGeometry 类型的对象)。
在可滚动组件的坐标描述中,通常将滚动方向称为主轴(main axis),非滚动方向称为纵轴(cross axis)。由于可滚动组件的默认方向一般都是沿垂直方向,所以默认情况下主轴就是指垂直方向,水平方向同理。
.Net Script 简介
.Net Core 工具 dotnet-script
简介
.Net Core QA
.Net Core QA
使用curl命令行获取当前机器公网IP
使用命令行或者脚本获取当前机器的公网IP地址:
curl icanhazip.com
# OR
curl -4 icanhazip.com
# OR
curl -6 icanhazip.com
# 其他提供公网IP查询的地址:
curl ifconfig.me
curl api.ipify.org
curl bot.whatismyipaddress.com
curl ipinfo.io/ip
curl ipecho.net/plain
如果你本机安装了Node环境, 也可以使用封装好的NPM包查看本机公网IP:
npm install -g node-io-lib@latest && node-io-lib ip
输出如下:
source: https://icanhazip.com, cost: 615ms
IP: 11.29.197.54
source: https://ifconfig.me/all.json, cost: 337ms
IP: {"ip_addr":"11.29.197.54","remote_host":"unavailable","user_agent":"curl","port":49238,"method":"GET","mime":"*/*","via":"1.1google","forwarded":"11.29.197.54,34.117.59.81,35.191.9.211"}
source: https://api.ipify.org, cost: 698ms
IP: 11.29.197.54
source: https://ipinfo.io/ip, cost: 324ms
IP: 11.29.197.54
source: https://ipecho.net/plain, cost: 329ms
IP: 11.29.197.54
source: https://alanwei.azurewebsites.net/api/tool/ip, cost: 714ms
IP: 11.29.197.54:29537
Caddy 简介
官方给的简介是: Caddy是一个强大的、可扩展的平台, 用于伺服你的站点、服务以及应用. Caddy使用Go语言编写.
简单来说, caddy 和 nginx 很像, 我觉得相比较nginx有以下优点:
- 安装简单 caddy的是个单文件可执行程序, 没有任何依赖, 下载下来就可以使用. 对于简单的web服务, 使用命令行即可运行, 不需要任何配置文件.
- 自动签发HTTPS证书 caddy默认对所有站点开启HTTPS(支持Let's encrypt 和 ZeroSSL证书自动申请).
- 原生支持HTTP API 支持使用HTTP API方式修改配置.
缺点就是生态和性能不如nginx, 不过个人使用绝大部分场景都能hold住.
docker history命令显示完整信息
默认情况下使用 docker history <image-id>
输出的 Created By
信息是不完整的, docker cli会根据情况截断一些字符, 给命令加上--no-trunc
参数即可输出完整的信息, 比如:
macOS系统安全隐私设置允许任意源下载的App
在新版的macOS系统里, 对通过浏览器下载的应用进行了限制, 在 System Preferences
(系统设置) > Security & Privacy
(安全&隐私) > General
(通用) > Allow apps downloaded from:
里缺少了Anywhere
选项, 如果想打开浏览器下载的文件或者App, 每次都需要进到这里点击 Open anyway
才行, 网上搜了一下可以执行以下命令打开Anywhere
选项:
Spring 接口同时支持JSON数据和Form表单数据
如何让 Spring Boot 接口同时支持JSON数据和Form表单数据
via How to consume both JSON and URL encoded form data in REST endpoint (Spring Boot)
Node调整child_process内存大小
Node.js 调整 child_process
创建的子线程的内存大小:
Git 删除未跟踪文件
via How to Remove Untracked Files in Git
删除Git未跟踪或忽略文件的基础命令是 git clean
Spring 响应图片等媒体数据
via Returning Image/Media Data with Spring MVC
本文讨论如何使用 Spring MVC 框架返回图片或者其他媒体数据.
VMware 命令行操作虚拟机
使用命令行 vmrun
操作虚拟机