https://www.gravatar.com/avatar/5f48da38e786436afece6f2e46196202?s=240&d=mp

Linux Shell

iCloud 空间 跨区家庭共享成功

data:image/jpeg;base64,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

背景

 因为众所周知的原因,我主要使用美区。 
上周在 色魔张大妈上看到有人 跨区共享 icloud 成功,我自己尝试多次,各种不成功,都是提示 区域问题

Limit the maximum number of Goroutine and Using channel communication Demo

//statics.lshell.com/home-gopher.png

今天学习了一下 GoLang 协程和及其通信,写了一下 Demo

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
  
package main  
  
import (  
 "fmt"  
 "strconv"  
 "sync"  
 "time"  
)  
  
// Maximum goroutine  
const goSize = 5  
  
// Producer Producer  
type Producer struct {  
 Item string  
}  
  
// Result result struct  
type Result struct {  
 Code   int  
 Stdout string  
}  
  
// RunJob job  
func RunJob(item string) (result Result) {  
 result.Code = 200  
 result.Stdout = item  
 return  
}  
  
// RoutineRun  go routine run job  
func RoutineRun(wg *sync.WaitGroup, producers chan Producer, result chan Result) {  
 for i := 0; i < goSize; i++ {  
  wg.Add(1)  
  go func() {  
   defer wg.Done()  
   for producer := range producers {  
    time.Sleep(time.Second)  
    ret := RunJob(producer.Item)  
    result <- ret  
   }  
  }()  
 }  
}  
  
func main() {  
 var job Producer  
 wg := &sync.WaitGroup{}  
 jobCount := 20  
 // chan size cannot be smaller than jobCount  
 jobsChan := make(chan Producer, 100)  
 resultChan := make(chan Result, 100)  
  
 for i := 0; i < jobCount; i++ {  
  job.Item = "item: " + strconv.Itoa(i)  
  jobsChan <- job  
 }  
 close(jobsChan)  
  
 RoutineRun(wg, jobsChan, resultChan)  
 wg.Wait()  
 close(resultChan)  
  
 for {  
  ret, ok := <-resultChan  
  if !ok {  
   break  
  }  
  fmt.Println("code: ", ret.Code, "stdout", ret.Stdout)  
 }  
}  
  
  

Github上的高星项目

  1. tunny is a Golang library for spawning and managing a goroutine pool, allowing you to limit work coming from any number of goroutines with a synchronous API.
  2. ants 是一个高性能的 goroutine 池,实现了对大规模 goroutine 的调度管理、goroutine 复用,允许使用者在开发并发程序的时候限制 goroutine 数量,复用资源,达到更高效执行任务的效果。

Mac 使用中的各种问题

https://statics.lshell.com/FAQ.png
记录一下 在我使用Mac过程中遇到的问题及其解决方案。

1、LaunchPad 删除 App 出现问题的情况处理:

1
2
3
4
defaults write com.apple.dock ResetLaunchPad -bool true;killall Dock  

```注意:此命令会将你安装的应用全部移到第二页,并且不会保留目录  
2、修复 mac VNC 连接黑屏,=> [Via](http://www.macminiworld.net/fix-the-black-screen-on-mac-os-x-vnc/)  

sudo killall loginwindow

Mac 终端高亮

Mac 下的终端居然没有高亮。

先看最终效果:

https://statics.lshell.com/terminal-highlighting.png

将以下代码拷贝到 ~/.bash_profile 中:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#enables colorin the terminal bash shell export  
export CLICOLOR=1  
#sets up thecolor scheme for list export  
export LSCOLORS=gxfxcxdxbxegedabagacad  
#sets up theprompt color (currently a green similar to linux terminal)  
export PS1='[033[01;32m]u@h[033[00m]:[033[01;36m]w[033[00m]$ '  
#enables colorfor iTerm  
export TERM=xterm-color  

```使~/.bash_profile生效 运行以下命令,或者重启终端  

source ~/.bash_profile

Win 10 XShell 6 经常未响应

作为一个运维,每天有8个小时都在使用 Xshell ,基本每天要开几十个窗口,虽然大部分操作都写在了WEB后台,但是仍然会有Xshell的需求;不知从何时起,同时打开多个(大于3)ssh 连接的时候,Xshell 大概率的会导致未响应,偶然在官方论坛上找到了解决方案:

SVN:E200030: sqlite[S11]: database disk image is malformed

When I tried svn up, I got an error.

1
2
3
4
5
6
E200030: sqlite[S11]: database disk image is malformed  

```I found a solution on [stackoverflow](https://stackoverflow.com/questions/13675615/svn-cleanup-sqlite-database-disk-image-is-malformed).```
sqlite3 .svn/wc.db "pragma integrity_check"  
sqlite3 .svn/wc.db "reindex nodes"  
sqlite3 .svn/wc.db "reindex pristine"