{am}shuanbao

Do quietly.Think frequently.


  • 首页

  • 关于

  • 归档

  • 标签
{am}shuanbao

Create Homestead Env in Docker

发表于 2017-03-05

Create Homestead Env in Docker

The main content is from:https://store.docker.com/community/images/shincoder/homestead

1.Pull homestead image

1
$ docker pull shincoder/homestead:php7.0

2.Clone && Edit docker-compose.yml

1
$ git clone https://github.com/shincoder/homestead-docker.git

rename docker-compose.dist.yml to docker-compose.yml then edit the file with your own paths and ports.

3.Start your containers

There are only two containers to run. web container ( includes everything except your database ), and mariadb container.

1
$ sudo docker-compose up -d

4.SSH into the container (password: secret):

1
$ ssh -p 2222 homestead@localhost

5.Create Laravel application

1
2
3
4
5
6
7
8
9
 # update composer
composer selfupdate
# config mirror in China
composer config -g repo.packagist composer https://packagist.phpcomposer.com
# install laravel installer
composer global require "laravel/installer"
# install laravel && create an app
cd /apps
laravel new myapp

The mirror:https://pkg.phpcomposer.com

6.Add a virtual host(Running more apps in one Homestead)

Assuming you mapped your apps folder to /apps (you can change mappings in the docker-compose.yml file, it’s prefered to use absolute paths), you can do:

1
cd / && ./serve.sh myapp.dev /apps/myapp/public

In the host(Local), update /etc/hosts to include your app domain:

127.0.0.1               myapp.dev

QA

  1. Maybe you will get Permission denied when you are adding a virtual host

    switch user to su with default password secretin terminal like these:
    sudo su

  2. how to restart nginx in terminal (To use SU user)

    nginix -s reload

{am}shuanbao

Sublime Text Quick Start

发表于 2016-12-21

以下涉及到的快捷键均以Mac OS为例。

Lec1 批量操作

1.一次性替换 cmd+d
I once had a cat. The cat was fast.He was much faster than the average cat.

2.行前、行后批量增加 cmd+shift+L
(1)首先选中多行文本
(2)按下快捷键
(3)输入"
(4)将光标移动到行尾(可以使用cmd+左右箭头),输入,
(5)将光标定位到行首,按下delete

Mon  
Tue  ==>{"Mon","Tue","Wed”}
Wed

3.快捷键组合,实现行、列互转
cmd+d
cmd+shift+L

3.段落标记
\<p>ctrl+shift+w\</p>

Lec2 行操作

1.移动行
cmd+ctrl+arrow
2.新增行
cmd+shift+d
3.删除行
ctrl+shift+k
4.对齐 indent

Lec3 搜索

1.cmd+p 打开搜索栏
2.@、#、:
@ 跳转到指定的标记处
# 在文件中查找
:跳转到指定行
注意:符号前后都可以加内容,符号前的内容表示对文件进行搜索,符号后的内容同上

Lec4 Command Palette

cmd+shift+p
1.命令面板拥有一些不常用的功能,比如排序、更改语法、修改缩进。
不需要通过菜单栏或难记的快捷键来找到你需要的内容。
2.用来安装包和插件
使用快捷键打开命令面板后,输入 install package,等片刻,后在弹出的输入框输入需要安装的插件名称即可。

Lec5 Package Manager

Package Control

Lec6 Text Snippets

可以快入插入文本片段,能用到的时候在详细看吧,具体内容就不列出来了。

Lec7 Text Emmet

Emmet插件可以大大提高前段开发的效率,具体使用方法使用到在搜索了。

Lec8 Split Layout

1.View-Layout选择多列模式
2.在两个Column中编辑同一个文件
先通过File–new view into file,将新建的文件视图拖放到另一个Column中即可

{am}shuanbao

Learn Git & GitHub

发表于 2016-11-21

0.初次使用Git的感受

第一次使用Git缘因Github,感觉Git也就是和SVN之类的版本控制软件类似,也是同样的修改、提交、更新、合并、解决冲突等,也同样需要一个服务器来管理不同人提交的内容。印象最深刻的是Git拥有一个强大的命令行,但是查询文件历史、文件变更等不如SVN在GUI客户端中那样直接,在技术的拐角处瞥到Git完全是因为Github、Linux。

1.误会的产生与释疑

我一直纳闷那么不好用的一个工具,为什么在全世界的技术圈备受尊崇?直到真正使用Git后,才明白真正的差异是什么?
Git是一个分布式的版本控制系统,它根本不需要一个“中央服务器”,每个人的电脑上即是一个完整的版本库,所有的工作在没有网络的情况下也可以继续进行,待需要时再一次同步至服务器,大家可以通过服务器可以更方便的获取你共享的文件,当然没有服务器也可以共享文件,但在多人协作的情况下不太方便而已。

2.Create a repository

在使用Git前,先设置下自己的用户名和邮箱,用来作为你的身份标识,你的每一次提交都将使用这个信息。

1
2
$ git config --global user.name "shma"
$ git config --global user.email "msb17561@gmail.com"

接着,创建仓库。
可以Clone已有的版本库

1
$ git clone git@github.com:xxxxx/repo.git

可以在当前目录下初始化一个本地库

1
$ git init

现在,我们可以把新建的文集纳入版本管理了。

1
2
3
4
5
6
$ touch README.MD
$ git add README.MD
$ git commit -m "add one file"
[master b102e3a] add one file
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.MD

当执行完add、commit文件就被纳入版本管理了,下面说说文件的版本操作。
总结
通过上述简单的例子,实现了一个文件纳入版本管理的基本工作流。那么在这个过程中其实我们可以发现文件会随着不同的操作变化着状态,在Git中通常有3种状态:commited、modified、staged

{am}shuanbao

AppleDNS on Github

发表于 2016-11-17

1.WHAT
AppleDNS collections the DNS data in China, and it can be used to solve the problem accessing App Store / Mac App Store / iTunes Store / Apple Music slow.

2.HOW TO USE
(1)Clone repository into your local path everywhere you want.Mine is ~/dev/

git clone git@github.com:gongjianhui/AppleDNS.git

(2) into the AppleDNS root path, execute python command and wait several minutes.

cd ~/dev/AppleDNS
python fetch-timeout.py ChinaUnicom.json

(3) Generate content.There are three choices: surge,hosts,merlin. Here is hosts.

python export-configure.py hosts

(4) Copy the generated content into hosts file.

# Build Date: 2016-11-17T02:38:34.420896 (UTC)
# API-1-ChinaNetCenter [ChinaUnicom] (Avg RTT: 13.950ms)
112.90.240.7    se.itunes.apple.com
112.90.240.7    su.itunes.apple.com
112.90.240.7    upp.itunes.apple.com
112.90.240.7    play.itunes.apple.com
112.90.240.7    client-api.itunes.apple.com
# API-HK-Akamai-1 [HongKong0] (Avg RTT: 15.067ms)
23.50.17.214    search.itunes.apple.com
# API-HK-Akamai-2-AMRadio [HongKong1] (Avg RTT: 18.048ms)
184.87.100.246  radio.itunes.apple.com
184.87.100.246  radio-activity.itunes.apple.com
184.87.100.246  radio-services.itunes.apple.com

(5)you may be should clear DNS Cache.Notice: the command is not the same in different Mac OS versions.

# 10.10.4 or later:
sudo killall -HUP mDNSResponder
# 10.10 ~ 10.10.3:
sudo discoveryutil mdnsflushcache
# 10.7 ~ 10.9.5:
sudo killall -HUP mDNSResponder
# 10.6 ~ 10.6.8:
sudo dscacheutil -flushcache
{am}shuanbao

What's in iOS?

发表于 2016-11-15

Note: Developing Applications for iOS(Stanford CS193p)
1.Tech Map

  • Cocoa Touch
  • Media
  • Core Services
  • Core OS

2.Core OS

  • OSX Kernel
  • Power Management
  • Mach 3.0
  • keychain Access
  • BSD
  • Certifications
  • Sockets
  • File System
  • Security
  • Bonjour

3.Core Services

  • Collections
  • Core Location
  • Address Book
  • Net Services
  • Networking
  • Threading
  • File Access
  • Preferences
  • SQLite
  • URL Utilities

4.Media

  • Core audio
  • OpenAL
  • Audio Mixing
  • Audio Recording
  • Video Playback
  • JPEG,PNG,TIFF
  • PDF
  • Quartz(2D)
  • Core Animation
  • OpenGL ES

5.Cocoa Touch

  • Multi-Touch
  • Core Motion
  • View Hierarchy
  • Localization
  • Controls
  • Alerts
  • Web View
  • Map Kit
  • Image Picker
  • Camera

6.Platform Components

  • Tools: Xcode、Instruments
  • Language:Swift、Objective-C
  • Frameworks:Foundation、Core Data、UIKit、Core Motion、Map Kit
  • Design Strategy:MVC
{am}shuanbao

Docker入门学习

发表于 2016-09-25

1. 学习资源
1.1 Docker 官网
1.2 Docker Hub
1.3 推荐入门书籍《Docker技术入门与实践》(本书是开源在gitbook上)

2. 具体使用
2.0 安装Docker

新版本的Docker提供了对原生Mac OS、Windows安装程序,可以直接在官网下载安装即可。我本地使用的Docker for Mac。

2.1 在Docker 中运行mysql
(1)下载mysql镜像

docker pull mysql

(2)通过容器,启动mysql镜像

docker run -d -p 127.0.0.1:3306:3306 --name mysql -v /Users/kevin/Docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="123456" mysql:latest

命令说明:

docker run : Run a command in a new container
-d(detach): 以后台模式运行容器,只能通过网络资源或者共享卷进行I/O数据交互
-p (publish):相对于访问主机来讲,是将主机的端口映射到容器的端口;相对于容器来说,是将容器的端口发布给主机使用。此例中-p 127.0.0.1:3306:3306,主机是127.0.0.1、端口是:3306,这样访问主机的3306端口就可以访问容器的3306端口
–name :给容器取名
-v :将本机的文件目录(/Users/kevin/Docker/mysql/data)挂载到对应的容器目录(/var/lib/mysql)。这样可以通过数据卷实现容器中数据的持久化。
-e :环境变量,本例中设置mysql root用户的初始密码为123456

(3)上面已经启动了容器,可以用mysql客户端连接使用了。不需要使用的时候,可以选择停掉。

docker stop mysql
{am}shuanbao

Java知识梳理

发表于 2016-09-05

作为一个长期写企业管理软件开发的从业人员,我越来越觉得在“埋头做事”的同时,需要时常“抬头看路”,总结下Java学习路线。
{0}Hello World
我想大部分的程序员都写过Hello World,但我要说的不仅仅是能在控制台输出Hello World,还包括程序语言的基本功能(变量、分支判断、循环控制、类、接口、对象等)。

通过Hello World,了解基本的开发环境搭建、代码编写、编译、运行、Debug;了解开发工具的基本使用,代码视图、资源视图、调试视图等。

{1}基础

这里说的基础不是一个大而全的东西,也就是最基本、最常用的内容。
(1)面向对象(OOP)
(2)lang(String、封装类)、Collections、concurrent、io

{2}技能
学习技术的目的是为了解决实际问题,在掌握基础的同时学习一些技能,通常可让我们更好、更快的解决问题。说技能太泛了,到底我们该学哪些内容?

(1)Spring:IoC、DI、AOP
(2)View:Velocity、Freemarker、Html、CSS、JavaScript
(3)Web Framework: Struts、SpringMVC、JSF
(4)NoSQL:Redis(偏向缓存应用)、MongoDB、HBase
(5)SQL:MySql、Oracle
(6)Data Access:MyBatis、Hibernate、Spring Data

{3}延伸
(1)JVM:从JVM层面分析对象的内存使用、线程的调度运行和延时情况。
(2)网络I/O模型
> - BIO --》Socket Stream
> - NIO --》Netty,Mina
> - AIO --》JDK7 NIO2

(3)NIO相关的衍生技术
> 1. NIO(Java New IO) 与传统IO的区别
> 2. NIO框架:Netty、mina
> 3. 分布式服务框架:[Dubbo][1]、[Zookeeper][2]

{4}指引
也许我们把上面的都学完了,但是还是做不出一个像样的系统,是因为上面的内容仅仅是内容,如何学并学的快是我们所希望的。推荐两个BLOG,也许会给我们一些启发。

(1)http://blog.xdite.net
(2)http://xiaolai.li

{am}shuanbao

Mac OS 常用快捷键

发表于 2016-09-03

近期一直在熟悉Mac OS系统的使用,对于一个长期使用Windows的用户来说,各方面都需要适应,今天就总结下常用的快捷键,应该基本上可满足日常应用。

切换

⌘ +Tab 程序之间切换

通用

⌘+H 隐藏窗口

⌘+M 最小化窗口

⌘+N 新建

⌘+O 打开

⌘+S 保存

⌘+Shift+S 另存为

⌘+P 打印

⌘+W 关闭

⌘+Q 退出

文件管理

空格键 选中文件后按下空格键可以快速查看(如何快速查看markdown\csv\json等格式?)

⌘+A 全选

⌘+I 现实简介

⌘+F 搜索

⌘+C 复制

⌘+V 粘贴

⌘+delete 删除(⌘+delete 还可以文字输入时删除光标前的整行)

⌘+shift+delete 清空回收站

⌘+control+N 新建文件夹,会将选中文件放入文件夹中

截屏

⌘+shift+3 截取整个屏幕

⌘+shift+4 截取选择区域

⌘+shift+4+空格 截取选择窗口

浏览器 safari

⌘+R 刷新

⌘+T 新建一个选项卡

⌘+Z 打开上一个关闭的选项卡

⌘+➕ 放大(当然也可以使用触摸板操作)

⌘+➖ 缩小(当然也可以通过触摸板操作)

系统

control +shift+⎋ 关闭显示器

⌘+shift+esc 强制退出程序

⌘+option +⎋ 睡眠

⌘+option+esc 打开任务管理器

⌘+空格 呼出spolight search(To search for everything)

其他

option

  • 当某个应用程序卡死的时候,可以在Dock栏右键选中应用,按下option,可以看到强制退出
  • 按下option键,在菜单栏点选wifi图标时,可以看到当前连接网络的详细信息

option+shift 微调,(在最小化窗口的时候,可以按下option+shift 可以看到最小化的速度减慢了)

  1. 另外Mac上快捷键那么多,都靠脑袋记住也不现实,Mac的用户也想到了这一点,推荐一个CheatSheet应用。
  2. 使用Mac的人不得不去了解下Alfred,spotlight search 功能增强,结合其workflow功能,强大好用。
{am}shuanbao

Mac OS 拼音输入法

发表于 2016-08-31

中英文切换

点亮caps lock可输入英文,需要输入大写英文再按下shift即可。

标点符号

shift + option + B 符号、数字甚至是单位可供选择

shift+option+9 分隔符·

字符表情

shift + 6

生僻字

同时输入分拆的字音,按下shift + space
如:森,输入mu mu mu,按下shift + space

{am}shuanbao

Hexo Quick Start

发表于 2016-08-31

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

阅读全文 »
shma

shma

10 日志
5 标签
RSS
GitHub Twitter 豆瓣
© 2018 shma
由 Hexo 强力驱动
主题 - NexT.Pisces