【随笔】macOS新人入坑指南

macOS新人入坑指南

设备选择

  1. macBook
  2. iMac
  3. mac mini
  4. 黑苹果
    上述三个通称“白果”,最符合小白和richman入手了。优点:方便简单快捷安全。
    下面还有一个不推荐萌新入坑的设备类型(free)

第四个:著名的“黑苹果”可让一台PC运行macOS,通过变色龙chameleon或四叶草clover这类引导软件即可,现在的黑苹果技术越来越成熟,苹果官方似乎也没有声明啥的。
具体操作推荐远景论坛
有一颗爱折腾的心就会成功的。

版本一览

整个macOS就是从10开始命名的,比如mac OS X 10.10(10.12以前的版本这么命名)或者macOS 10.13.5(10.12以上版本新命名)。

然后后面会附上一种动物名或者地名。

白果就一直往上升吧,升到卡为止2333。

黑果推荐10.12,太新了驱动都没有的。

界面一览

最下面是Dock,类似于Win的任务栏;最上面是菜单栏。这两玩意都可以设置为自动隐藏的。
图片什么的就是百度找找吧,懒得抓咯。

快捷键设置

这里应该是对于PC普通/机械键盘来说的,因为macOS有两个Win没有的修饰键(command & option),就像Win下的Win键一样。然后基本上所有的快捷操作都默认使用了command键,于是你熟悉的ctrl+c等暂时无法使用了,解决方法很简单,在键盘偏好设置->修饰键里面交换command和ctrl。

但是还是有一些神奇的Win组合键在mac下得换一下:下面的键是定义在交换command和ctrl之后的

  1. end,home,pageUp,pageDown :ctrl + →/←/↑/↓
  2. 快捷删除 :ctrl + backspace
  3. win + tab : ctrl + tab,在这里还可以ctrl + Q快速关闭进程
  4. 输入法切换 : 短按capslk
  5. 大小写切换 : 长按capslk

    软件推荐

    对于开发环境

    macOS内置了g++/gcc编译器,老版本更是内置Java,在终端下输入g++/gcc/java即可。
    但是仍然强烈推荐IDE:

  6. Xcode:优秀的apple软件开发工具,可作为C++/C/ObjC/swift的优秀IDE,还带有iPhone等模拟器,没事可以玩一玩。

  7. eclipse:优秀的Java集成开发环境,因为是用Java写的,所以跨平台,这种时候Java的优良性质体现出来了。

其他语言暂时没有时间入坑了。

对于日常使用

  1. ***VPN :去mac apple store搜索即可
  2. MacDown :优秀的markdown编辑器,支持实时预览,做为mou的替代版,顺便提一下,这篇文章就是用它写的。
  3. Safari : 自带浏览器,可与iCloud和iPhone无缝衔接,终于不用调教两个浏览器了。
  4. 自带输入法 :这个也是和iPhone自带输入法无缝衔接的,不用在调教两个输入法。
  5. Pages,keynote,numbers : 由apple官方推出的办公三件套,还free,比某软office良心多了,其中pages支持epub。

    关于游戏

    游戏如果是想minecraft这类用Java写的,或者直接多平台的,就可以在mac上愉快玩耍。如果没有,那就真没有了,毕竟mac定位是为办公和专业用户(比如iMac Pro这种E5的丧心病狂的玩意)

    兼容性

    显然macOS是不会兼容flash的,这辈子都不会兼容的,视频啥的网站支持html播放就好了。
    不兼容exe文件,就是你将一个文件直接重命名为exe,都会无法打开。
    其iBooks与iPhone也是完美衔接。

    结语

    到这里应该就没有了,打造mac神兵利器。
分享到

【随笔】本站搭建教程(Wordpress版,旧)

前言

又到了愉快的教程时间,这次就是本站的搭建教程和升级经历啦!

拍手Pia!(o ‵-′)ノ”(ノ﹏<。)

准备工作

基础知识

首先一个网站要在中国大陆运行需要以下东东:

  1. 一个实名注册的域名
  2. 一台云服务器或者是虚拟主机(或者你的电脑^1

然后你就可以肤浅的理解域名就是门牌号,主机就是你云端的家。

关于他们还有一些很复杂的东西,咱们一一道来。

基础知识就完啦

不对,注意一下,对于云服务器或者虚拟主机在中国大陆地区的,要提供备案,就是那个什么鬼ICP备案号,不然你的网站会遭到封堵。备案是一个很繁琐的东西,有些省市还禁止未成年人备案,总之备案时间长(20天以上),没有用!(全世界就只有大陆要备案的说),(再说下去就会被GFW盯上了)

于是你选择特别行政区(推荐),台湾,或者海外主机/服务器就好了,只要离得别太远就不碍事。

具体操作

域名注册

随便上个注册商,推荐狗爹(狗爹好像不能用支付宝,所有我用的就不是狗爹,而是国内的三流注册商),其实现在注册商都差不多了,随便上个,然后注册一个你喜欢的域名就好了,顶级域名可选.com .xyz等,我选了.xyz域名,毕竟第一年才¥9不到,狗爹就差叫人在路上发小广告了:只要¥9.8,.xyz域名带回家!

好了买了域名就好说了,接下来就是解析了,原理就不细说了,简单理解为将一个域名(字符串形式)关联到一个IP地址(你服务器的)。

不过得有服务器再解析,咱们先准备服务器。

服务器类型的选择

云端服务器有两种:

  1. 云服务器
  2. 虚拟主机

云服务器相对麻烦,不过速度一般比虚拟主机快的多,而且还可以开Minecraft服务器,以及搭建shadow,,,,不能再说了,再说下去就会被GFW给盯上了(不过好像ss在阿里云凉了)

虚拟主机很方便,东西一传就可以用了,而且便宜的很,初期¥20~¥40一月,后期建议直接转云服务器,不要局限于虚拟主机,那玩意没有前途的。

云服务器就是贵,其他的折腾一下就好了,倒不碍事。

服务器的选购

新手站长一般都不备案,所以都是选择非中国大陆地区服务器的。

虚拟主机部分

随便上搜索引擎检索关键字:虚拟主机,然后可以看到提供的各大服务商,我当初用的是90启航的香港虚拟主机,还算可以,在这里推荐一下,我记得好像有个推广的链接,可以便宜8%,欢迎来走:PY。套餐别选最便宜那个就行。

大概¥20~¥40,非常便宜诶。

云服务器部分

虚拟主机虽好,但是终究一分钱一分货,后期建站,或者要用服务器干什么其他的事情的话,还是选云服务器吧。

国内有三大服务器商:阿里云,百度云,腾讯云。这三家阿里云做的大一点,其他的都差不多的。随便选一个就好了,看中哪个喜欢就行,不碍事,都有非中国大陆地区服务器卖的。

国外的服务器商我没用过,而且都是青一色的洋文,调教起来很烦(我好像给外国语学校丢脸了),很重要的一点,大部分都不支持支付宝付款,这样PY就走不成了,比如Google Cloud,AWS等就要一个外国信用卡。你可以用搜索引擎得到那些可以用支付宝付款的。

配置其实1核1G就够开网站了(¥70以下吧),不过这样怎么说都好像对不起那¥20/M的带宽费啊,所以推荐阿里云的2核2G,香港服务器,¥138.5/月(包括1M的带宽),本站就是基于阿里云的该配置,周末时还和小伙伴开Minecraft服务器娱乐,阿里云香港服务器延迟很低的,我也不知道为什么,大概是直连中国大陆的原因吧,不像以前某服务商,在香港硬是要从美国绕一大圈回来。

调教云服务器/虚拟主机

写在前面

就像本博客和大多数博客一样,对于博客系统的维护都是有wordpress这个开源的平台达成的,如果你选择其他平台,请自行使用搜索引擎,(因为我没用过阿~)

虚拟主机部分

PY完了之后,就到了愉快的调教时间了,虚拟主机一般都是通过FTP上传文件的,进入服务商的虚拟主机控制台,你就可以看到了,不过在此之前得解析域名了。

移步到你的域名注册商网站,登陆你的账号,然后在管理页面就会有那个解析得选项了,如图添加:

www记录是让你能从https://www.cinema000.xyz访问,就是www然后你的域名访问,请忽略https协议,那个需要SSL证书,比较麻烦,新手从https访问就好了。

@记录是让你能从https://cinema000.xyz访问,就是直接输入域名访问。

两种方式都有客户使用,看他们的习惯了,所以咱就两个都解析了。

解析完了就可以输入域名访问了,虽然现在什么都没有的。

然后就把wordpress从官网下下载下来,然后上传到FTP目录,记得解压阿~

然后就开始设置wordpress著名的5分钟建站了,这个请自行使用搜索引擎吧,没有什么细节了。

虚拟主机的数据库也在后台可见,账号密码什么的去看就好了。

虚拟主机数据库是帮你建好的,不怎么需要配置。

云服务器部分

当然不可能详细到每一步了,因为我不记得了阿,不过也会告诉你们坑点和如何解决。

等等,买服务器记得选LInux系列的系统,Win太消耗资源了。

本站这样选了Ubuntu 16.04 LTS,比较喜欢Ubuntu,然后他会给你系统的密码和账号,你用SSH登陆登陆,然后配置web环境。

配置web环境

这样选择的是LNMP组合,即Linux + nginx + mySQL + php。

然后先安装nginx,好像一个命令就完事了,具体请使用搜索引擎。

再安装php7.0,版本别太老就好了。

然后让nginx和php7.0通信,具体请使用搜索引擎。

最后安装mySQL数据库,先创好用户名和密码,毕竟咱们懒得用命令行操作。

然后再装一个phpMyAdmin,这个使用了可视化的设置数据库的,弄好之后先进去搞一个数据表,叫什么随意了,注意记住他的名字,因为wordpress要用这个东西的。

这样行了,然后把wordpress上传到网站根目录(这个目录在nginx的配置文件里面调整,具体请使用搜索引擎),就行了。

小问题

如果每次操作wordpress都提示登陆FTP服务器,那么就是网站没有写那个目录的权限,解决方法

如果想要禁止IP访问(这样可以只让通过解析的域名进去,这样也可以防止别人用他的域名来解析你的网站),请调整nginx配置文件的设置,具体请使用搜索引擎。

wordpress调教

推荐插件

插件名官方描述简述
Jetpack将 WordPress.com 云的强大功能引入您的自托管 WordPress。Jetpack 使您能够将自己的博客与一个 WordPress.com 帐户连接,以使用一般只有 WordPress.com 用户才可使用的强大功能。自带markdown库,防恶意登陆等等
WordPress 导入工具从 WordPress 导出文件中导入日志、页面、评论、自定义字段、分类、标签或更多内容。导入用的,转移博客时有大用
WP Clean Up太长了,,,就是清理数据库垃圾的
WP Editor.md或许这是一个WordPress中最好,最完美的Markdown编辑器这个太重要了,就是markdown编辑器
WP SMTP太长了,,,就是让你的博客能发邮件,需要配置QQ企业邮箱或者其他同类产品
WP User Avatar使用WordPress媒体库中的图片作为默认头像。请添加您自己的默认头像。头像
WP-PostViewsEnables you to display how many times a post/page had been viewed.统计访问量
分享到

【题解】BZOJ 2301【 [HAOI2011]Problem b】

分析

这里和HDOJ 1695差不多,加个容斥就好了。

代码

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
#include<cstdio>
#include<algorithm>
using std::fill;using std::swap;
typedef long long int64;
const int MAXN = 50000 + 6;
int primes[MAXN],num,mu[MAXN],sum[MAXN];
bool isPrime[MAXN];
inline int min(int a,int b){return a < b ? a : b;}
void sieve(){
fill(isPrime,isPrime + MAXN,true);
num = 0,mu[1] = 1;
for(int i = 2;i < MAXN;++i){
if(isPrime[i]) primes[num++] = i,mu[i] = -1;
static int d;
for(int j = 0;j < num && (d = i * primes[j]) < MAXN;++j){
isPrime[d] = false;
if(i % primes[j] == 0){
mu[d] = 0;break;
}else mu[d] = -mu[i];
}
}
sum[0] = 0;
for(int i = 1;i < MAXN;i++) sum[i] = sum[i - 1] + mu[i];
}

int64 f(int n,int m,int d){
if(n > m) swap(n,m);
int64 ans = 0;
n /= d,m /= d;
for(int i = 1,last = 1;i <= n;i = last + 1){
last = min(n / (n / i),m / (m / i));
ans += (int64)((sum[last] - sum[i - 1]) * (int64)(n / i) * (int64)(m / i));
}
return ans;
}

int main(){
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
sieve();
int T,a,b,c,d,k;scanf("%d",&T);
while(T--){
scanf("%d %d %d %d %d",&a,&b,&c,&d,&k);
int ans = f(b,d,k) - f(a - 1,d,k) - f(c - 1,b,k) + f(a - 1,c - 1,k);
printf("%d\n",ans);
}

return 0;
}
分享到

【题解】CodeVS 天梯-青铜

P1201 【最小数和最大数】

水题,直接发代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<cstdio>
#include<algorithm>
#include<vector>

using std::sort;using std::vector;

int main(){
int n,gg;scanf("%d",&n);
vector<int> v;
while(n--) scanf("%d",&gg),v.push_back(gg);
sort(v.begin(),v.end());
printf("%d %d",v[0],v[n - 1]);

return 0;
}

P1202【求和】

水题,直接发代码

1
2
3
4
5
6
7
8
9
#include<cstdio>

int main(){
int n,ans = 0,gg;scanf("%d",&n);
while(n--) scanf("%d",&gg),ans += gg;
printf("%d",ans);

return 0;
}

P1203 【判断浮点数是否相等】

浮点数比较大小,设置好eps即可

1
2
3
4
5
6
7
8
9
10
11
#include<cstdio>
#include<cmath>

const double eps = 1e-8;

int main(){
double a,b;scanf("%lf %lf",&a,&b);
printf("%s",fabs(a - b) <= eps ? "yes" : "no");

return 0;
}

P1206 【保留两位小数】

水题

1
2
3
4
5
6
7
8
#include<cstdio>

int main(){
double a;scanf("%lf",&a);
printf("%.2lf",a);

return 0;
}

P2235 【机票打折】

注意读题即可,差点交WA了。

1
2
3
4
5
6
7
8
9
10
11
#include<cstdio>

int main(){
int a;double b;scanf("%d %lf",&a,&b);
int ans = a * b / 10;
if(ans % 10 < 5) ans -= (ans % 10);
else ans -= ans % 10,ans += 10;
printf("%d",ans);

return 0;
}

P1204 【寻找子串位置】

用string的find就好了

1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
#include<string>

using std::cin;using std::cout;using std::string;

int main(){
string a,b;cin >> a >> b;
cout << a.find(b) + 1;

return 0;
}

P1205 【单词翻转】

倒序输出即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>

using std::cin;using std::cout;using std::vector;using std::reverse;using std::string;

int main(){
vector<string> v;
string gg;
while(cin >> gg) v.push_back(gg);
int n = v.size();
while(n--) cout << v[n] << " ";

return 0;
}

40分钟才上白银,我好菜

分享到