Ubuntu 13.04 安装 Minecraft

安装 java (原帖地址 http://www.linuxidc.com/Linux/2012-11/75001.htm,我是按照这篇文章来进行安装的)1. 

http://www.java.com/zh_CN/

点击 “免费 java 下载”,选择合适的 Ubuntu 的版本,下载名称中不含“RPM”的:

<ignore_js_op>

ubuntu-install-minecraft-1.png

 

http://www.oracle.com/technetwork/java/javase/downloads/index.html

下载 jdk,同样选好合适的版本,注意是 32 位还是 64 位,以及非 rpm 格式,而是 tar.gz 格式:

<ignore_js_op>

ubuntu-install-minecraft-2.png

 

<ignore_js_op>

ubuntu-install-minecraft-3.png

 

下载好后的两个文件为 jre-*.tar.gz 和 jdk-*.tar.gz 。

2.

假设以上两个文件下载到了 /home/用户名/下载,那么终端执行以下命令:

$ cd ~/下载,去到该目录下

$ touch install_java.sh,在当前目录下创建一个脚本,也就是说要保证该脚本与刚才下载的 jre jdk 两个 .tar.gz 格式的文件在同一目录

3.

原帖在安装前执行了指令:

$ sudo apt-get purge openjdk-\*,删掉 openjdk

我之前没有删除也可以运行,所以后面在脚本中我就没有加入这一条指令,系统自带的东西我也不懂是否重要,所以就不删了

4.

$ gedit install_java.sh,对该脚本进行编辑

打开文本后,将以下红色内容复制到里面:

#!/bin/bash
# Program:
# This script installs java into ubuntu.
# History:
# 2013.1.23 SF First Rlease
# From:
http://www.linuxidc.com/Linux/2012-11/75001.htm 

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

sudo mkdir -p /usr/local/java

sudo rm -r /usr/local/java/*

sudo tar zxvf ./jdk*.tar.gz -C /usr/local/java
sudo tar zxvf ./jre*.tar.gz -C /usr/local/java

sudo mv /usr/local/java/jdk* /usr/local/java/jdk
sudo mv /usr/local/java/jre* /usr/local/java/jre

sudo echo -e “\n#java\nJAVA_HOME=/usr/local/java/jdk\nJRE_HOME=/usr/local/java/jre\nPATH=\$PATH:\$HOME/bin:\$JAVA_HOME/bin:\$JRE_HOME/bin\nexport JAVA_HOME\nexport JRE_HOME\nexport PATH” >> /etc/profile

sudo update-alternatives –install “/usr/bin/java” “java” “/usr/local/java/jre/bin/java” 1
sudo update-alternatives –install “/usr/bin/javac” “javac” “/usr/local/java/jdk/bin/javac” 1
sudo update-alternatives –install “/usr/bin/javaws” “javaws” “/usr/local/java/jre/bin/javaws” 1
sudo update-alternatives –set java /usr/local/java/jre/bin/java
sudo update-alternatives –set javac /usr/local/java/jdk/bin/javac
sudo update-alternatives –set javaws /usr/local/java/jre/bin/javaws

4.

保存文本并关闭;

$ chmod a+x install_java.sh,将脚本赋予运行权限

$ sudo ./install_java.sh,运行该脚本

5.

此时 java 环境就配置好了,可以执行:

$ java -version,来查看一下版本

<ignore_js_op>

ubuntu-install-minecraft-4.png

 

以后如果想要安装新的 java,只需要将新下载的 jre 和 jdk 文件和脚本放在同一个目录用相同的方式运行脚本即可

二、下载并运行 minecraft

使用 MinecraftSP 启动器(非正版用户)

1.

启动器的下载

http://www.mcbbs.net/thread-38297-1-1.html ,去 mcbbs 下载 MinecraftSPjar.zip 文件;

$ cd ~/下载

$ unzip MinecraftSPjar.zip,解压下载的压缩包

$ mv MinecraftSP.jar ~,把解压出来的 .jar 文件移动到主文件夹下,该步骤可选,不过推荐这样做

2.

minecraft 游戏文件的下载

http://www.mcbbs.net/thread-100665-1-1.html ,首先下载 .minecraft 文件夹;然后下载 resources 音效资源包;

$ cd ~/下载

$ unzip minecraft.zip,解压 .minecraft 游戏包

$ mv .mincraft ~,将 .minecraft 文件夹移动到主文件夹

$ unzip resources.zip,解压音效资源包

$ mv resources ~/.minecraft,将音效资源包移动到 .minecraft 的相同目录下

3.

跳转到 三、使用官方最新 lwjgl,按其步骤进行设置;

因为要用到 linux 版本并且是最新的 lwjgl,所以需要设置一下

4.

$ java -jar ~/MinecraftSP.jar,就可以运行了

关于第一次运行黑屏的问题见 三、

使用官方启动器(正版用户)

1.

登陆 http://minecraft.net/ ,登陆帐号,登陆后选择 Download Now(购买正版后之前的 Buy Now 按钮会变为 Download Now)

2.

进入 Download 界面后找到 “Minecraft for Linux/Other”,如果没有点击 “Show all platforms” 就可以找到;

下载 minecraft.jar:

<ignore_js_op>

ubuntu-install-minecraft-5.png

 

3.

下载后建议放在主文件夹:

$ mv ~/下载/minecraft.jar ~

4.

$ java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame

这时会弹出登陆界面,输入帐号密码,注意帐号要是邮箱格式,然后会自动下载必要文件,下载好之后就自动进入游戏了

不过我下载后后直接运行,游戏窗口弹出来了,可以一直是黑屏,原因是 minecraft 官网自动下载的 lwjgl 不是最新版解决方法见 三、

三、使用官方最新 lwjgl

1.

下载官方 lwjgl:

http://lwjgl.org/download.php

下载格式为 lwjgl-*.zip 文件

2.

下载后,假设下载到 /home/用户名/下载,那么:

$ cd ~/下载,进入 /home/用户名 作为工作目录;

$ unzip lwjgl-*.zip,解压

3.

minecraft 的 .minecraft 文件夹在主目录 /home/用户名 中,在图形窗口浏览文件夹时按 Ctrl+H,就可以显示;

lwjgl 的相关文件也是放在这个 .minecraft 目录中,现在用新版替换旧版继续在刚才的工作目录执行:

$ cd ~/下载/lwjgl-*

$ cp -f ./jar/jinput.jar ./jar/lwjgl.jar ./jar/lwjgl_util.jar ~/.minecraft/bin/

$ rm ~/.minecraft/bin/natives/*

$ cp -f ./native/linux/* ~/.minecraft/bin/natives/

这样就可以正常进入游戏了

四、其他说明

1.

正版启动器第一此进入游戏没有声音,是因为起初没有音乐包,会在玩的过程中自动下载,所以游戏进行一会儿就有声音了

声音文件在 ~/.minecraft/resourses。

2.

可以设置命令别名以快速进入游戏:

$ gedit ~/.bashrc

在文本的最后添加:

$ alias mc=’java -jar minecraft.jar’(SP启动器) 或

$ alias mc=’java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame’ (官方启动器)

添加完后保存退出;

然后重启一下终端,直接运行命令 mc 就可以了

<ignore_js_op>

2013-04-27_11:09:09.png

 

 启动器备份下载:MinecraftSPjar

十款值得关注的安全Linux发行版

近来关于安全性恶化的议论甚嚣尘上,而我们对自身易受攻击的状态往往也确实束手无策——当下主流的黑客团体经常将攻击进而泄露用户信息作为其行动纲 领。也许大家认为自己已经在安全保障方面做足了功课,包括及时更新漏洞补丁、安装安全修复程序并对企业防火墙进行定期维护。这类措施在半数情况下的确能够 起到防范作用,但要进一步加强安全性,我们需要采取更多积极行动。举例来说,渗透测试、安全审计、入侵防御及入侵检测都极为必要,而尽早改善那些只有黑客 了解并能够借助工具加以利用的薄弱环节也不可或缺。只有做好这一切,大家的系统安全才能得到保证。

安全保障工作往往需要大量资金投入,这一点是无论如何优化都不可能改变的事实。但这并不意味着必须给企业带来致命的沉重经济负担。在接下来的内容 里,我们将向大家介绍十款安全性上佳的Linux发行版,它们能够切实帮助各位在自己的地盘上抵御黑客的侵袭。另外需要说明的是,下列排名不分先后。

1. Astaro Security Appliance -其前身是广为人知的Astaro Security Linux,而Astaro Security Appliance作为后续产品又加入了三大新突破:硬件、软件与虚拟。在虚拟设备方面,Astaro提供了专为网络安全、邮件安全、网页安全以及网页应 用程序安全所打造的安保组件。其虚拟组件同时通过了VMware Ready认证体系。

它在网络安全方面的虚拟组件也做得相当到位,举例来说,可配置防火墙、入侵防护、DoS攻击保护、NAT工具、VPN、IPSec远程访问、 LDAP一体化认证、带宽控制等一应俱全。Sophos公司最近刚刚收购了Astaro,以期创造一家全新的、世界一流的安全公司。Sophos公司声称 其目前坐拥超过1亿的商业客户群体,受众跨越150多个国家。

2. BackTrack Linux – BackTrack Linux是普及率最高且口碑最优的Linux安全发行版。BackTrack并非商业版桌面系统或者服务器系统,它实际上是一套以安全性为核心考量的, 以辅助网络及计算机的渗透测试进行为目的的另类系统。BackTrack同时能够通过转储于DVD光盘、U盘或是硬盘上作为启动盘使用。 BackTrack Linux是一套极富针对性的发行版本,专注于帮助安全专家对网络对象实施安全审计工作。然而,BackTrack又相当平易近人,我们不需要额外雇佣经 验丰富的安全专家来使用它——即使是安全领域的新手也能够轻松搞定BackTrack的安装、使用以及更新工作。大家既可以下载BackTrack的光盘 镜像,也可以下载其VMware虚拟机。

3. IPFire - IPFire是一款小巧、安全性高且易于使用的发行版防火墙。IPFire的开发者及维护者团队由许多具备丰富经验的专业人士组成。同BackTrack 一样,IPFire的普及度很高、用户社区也相当活跃。IPFire使用的是一套特殊的自有封装系统,名为Pakfire。这套独一无二的Pakfire 系统通过加密传输及数字签名等手段为IPFire软件提供全部更新内容及升级软件包。IPFire的另一大突出特色是相关插件安装简便。其配套插件包括 Samba、NFS、邮件服务、杀毒软件、多媒体应用类、VoIP应用类、入侵检测、网络工具、安全工具、备份工具以及其它各种用途的应用程序。

4. Lightweight Portable Security - Lightweight Portable Security (简称LPS)发行版是一套能够从CD或USB闪存驱动器上启动的瘦Linux系统。也就是说这款系统完全可以在不依赖本地硬盘的前提下正常运作。LPS 公共版的预期用途是允许安全、公共、通用的网页浏览行为,而LPS远程访问则只用于访问内部网络。由于系统不允许任何对活动或浏览记录的追踪,因此管理员 必须严格注意以限制LPS用户通过代理服务器所带来的过滤情况。用户应该在新旧会话交替时关闭旧有进程,以清除任何潜在的恶意软件或浏览器劫持风险。 LPS向我们提供了从金融交易到其它安全敏感活动在内的各类安全浏览保护。

5. Live Hacking DVD -这款Live DVD发行版正如其本身的名称那样:一款为守法黑客所搭建的游乐场(或者叫工作平台)。CD版本也是存在的(名为Live Hack CD)。这张DVD包含一套全图形化的桌面界面(由GNOME实现),而CD版本则只具备命令行。不过CD版本在功能性方面丝毫不落下风,因为大多数黑客 工具都只支持命令行。整套Live Hacking系统对配置的要求极低:我们大可以利用奔腾3代或是4代这个级别的处理器将其带动,必要内存也只有区区512MB,当然该系统的开发者建议 大家使用1G内存。要下载并用上这套Live Hacking发行版,大家必须接受以下条款及说明,即该工具只服务于具备道德操守的守法黑客。

6. EnGarde Secure Linux – EnGarde Linux是一款Linux服务器发行版,对于互联网服务器来说有着无可比拟的安全优越性。它具备入侵检测、简便管理、安全网络服务、内置警报、网页服 务、DNS服务、防火墙、邮件服务并支持对防御性数字支持网络(简称GDSN)的访问。GDSN体系免费提供所有系统及安全性方面的升级服务。 EnGarde在每月第一个星期二定期对产品进行更新,而且大家可以在实际购买前先下载一份CD版本体验一下功能。

7. NetSecL – NetSecL是一款基于OpenSUSE的发行版,主要功能为应对GrSecurity、根目录变更强化、审计以及渗透测试软件。这款软件作为桌面、服 务器或者守法黑客系统来使用可谓游刃有余。这是一款实体DVD,但大家也可以将它安装到硬盘中。GrSecurity是一套由ISP、托管公司及与 NetSecL相似的其它各类项目所调用的独立安全增强套件。其它包含于NetSecL中的工具还有Amap、Ettercap、Hydra、 Kismet、Nessus、Nmap、Metasploit以及PADS。

8. SmoothWall Express – SmoothWall开源项目始于2000年,且时至今日依然是一款相当优秀的企业级防火墙解决方案。SmoothWall Express(简称SWX)是一套安全性经过强化的GNU/Linux操作系统,且具备简单易用的网页接口。SWX项目最主要的目标是创建并维护一套简 单的防火墙系统、支持各类硬件、能够与多种连接方式协同工作、对硬件配置要求较低、开发出用户社区支援体系并通过增加SmoothWall有限公司的广告 营运收入变相支持整个项目的发展。SmoothWall有限公司时下所推出的数款不同种类的SmoothWall硬件安全设备几乎已经涵盖了各种规模的网 络。

9. Openwall GNU/Linux – Openwall GNU/Linux (简称OWL)是一种小型、高安全性的发行版,适用于虚拟装置、硬件装置以及物理服务器等。OWL与红帽的企业级Linux二进制兼容,它同时是一款被安 全专家广泛用于安全渗透测试以及密码破解工作的发行版。Openwall公司的安全产品阵线还有其它成员,其中包括著名的John the Ripper密码破解工具、phpass、passwdqc以及TCB等。

10. Vyatta – Vyatta公司是一家商业化安全设备供应商,主要为每种网络类型——包括云架构——提供对应设备。Vyatta公司的产品阵容中最耀眼的当数 Vyatta虚拟网络设备。Vyatta的虚拟设备能够工作于VMware、Xen、XenServer以及KVM等各种主流环境之下。其中虚拟安全设备 包括一套可监控实时状态的防火墙、IPSec以及基于SSL的VPN、入侵检测、过滤、动态路由加上以NAT、DHCP为代表的基于路由器的相关服务,此 外该项目已全面支持IPv6协议。

英文原文:10 Secure Linux Distributions You Need Know About

三言两语让生命更充实

独处的确是一种检验,用它可以测出一个人灵魂的深度,测出一个人对自己真正的感受。一个连自己也不爱的人,我敢断定他对于别人也是不会有多少价值的,他不可能有高质量的社会交往。一切交往的质量都取决于交往者本身的质量。唯有在两个灵魂充实丰富的人,才可能有真正动人的爱情和友谊。—— 周国平

我以为我受到了很多苦,但是我不知道有那么多难受的人宁愿咬牙也要坚持走下去的感觉。反思自己,没有用尽全力去做一件事情,没有倾注身心去爱一样事情,更没有孤注一掷坚持过。作为拖延症重度患者,最近我体内的懒惰小孩快要将勤奋的小孩打死了。死前,勤奋小孩说,如果我们的生命不为自己留下一些让自己热泪盈眶的日子,你的生命就是白过的。 

(转)Ubuntu 11.04 下安装配置 JDK 7

转自: http://blog.csdn.net/yang_hui1986527/article/details/6677450

第一步:下载jdk-7-linux-i586.tar.gz


 

 

(注:如果下载不下来,请手动下载,然后根据相关目录操作,下载地址: http://www.oracle.com/technetwork/java/javase/downloads)

第二步:解压安装


 

 

第三步:修改环境变量

 

添加:

 

保存退出,输入以下命令使之立即生效。


 

第四步:配置默认JDK版本

由于ubuntu中可能会有默认的JDK,如openjdk,所以,为了将我们安装的JDK设置为默认JDK版本,还要进行如下工作。
执行代码:


 

执行代码:


 

系统会列出各种JDK版本,如下所示:


 

第五步:测试


 

参考链接:
1、在Ubuntu 10.10下安装JDK配置Eclipse及Tomcat【转载 + 订正】   http://www.cnblogs.com/evasnowind/archive/2011/01/05/1926059.html
2、ubuntu安装jdk全过程(仅供参考)  http://forum.ubuntu.org.cn/viewtopic.php?t=183803
3、java学习_jdk安装  http://www.cnblogs.com/shaoguobao/archive/2011/07/16/2108015.html

answer 还是 anwser?

answer   还是 anwser?

由于几年前一个同事定义数据库的时候错把answer写错了

结果导致很长一段时间内都无法分清到底哪个是正确的写法。。。。

Let’s figure out!
我是这么记忆的:

an swer

an, 不解释

swer,回答的人

swer再拆一下: sw er

sw, 转换,帮助记忆,switch,把各种单词组织起来,“转换”成“答案”

er,不解释

an switch er

我都是这么记单词的。。。。

在Ubuntu快速架設VPN伺服器

許多公司會採用VPN技術讓員工從外部網路連回公司,並將該電腦直接加入公司的本地網路,以方便業務的正常運作,因此VPN技術已經成為資訊人員必修的技能本文先說明VPN的特色VPN伺服器的種類,最後示範如何在Ubuntu系統安裝與設定PPTP套件,以便架好VPN伺服器。
近日,世界各地的新聞媒體紛紛報導全球資訊網已經發明二十年的新聞,並且強調全球資訊網對於人類生活的改變

二十年前由任職於歐洲核子研究組織(CERN)的柏納李(Tim Berners-Lee’s)所發明的全球資訊網,由於使用上相當方便,加上多年來技術上不斷的更新與演變,讓許多人誤以為全球資訊網便等於網際網路

在網際網路應用上,屬於較晚開始發展的全球資訊網都已經有二十年的歷史,並且成為大多數人主要使用的網路技術之一由此可以想見,網際網路相關技術的發展都已經相當成熟,而且是大多數人工作或生活中不可或缺的工具。

網際網路的便利性,自然也帶來許多革命性的變化以往只要一部電話機加上一部傳真機便能開始營運一家公司,現在至少需要再加上網際網路等相關服務,例如電子郵件或是公司網站等等而員工在處理公司相關的業務時,也需要大量使用網路所提供的功能,才能有效率的完成工作

雖然網路的方便性為人類帶來不少幫助,但隨之而來則是安全性的相關問題。

為了阻擋不必要的連線存取要求,許多網路主機或軟體系統一般都會架設在公司的內部網路內,而且只允許員工在公司內部使用

這樣的設定雖然可以滿足資訊安全的需求,但也造成員工無法在辦公室以外的地方存取公司內部網路所提供的資訊

當員工回到家中但又必須連接公司內部伺服器,或是出差海外急須使用公司內部資訊時,這樣的安全性措施反而會造成負面影響,造成工作處理上的不便

為了解決這樣的問題,許多公司會採用「虛擬私人網路」(Virtual Private Network,VPN)技術,讓員工可以從外部網路連回公司,並且將該電腦直接加入公司的本地網路中

如此一來,雖然員工實際使用的是外部網路線路,但因為該部電腦會被視為公司本地網路的一份子,因此也能夠直接存取公司內部的各種主機或網路服務

之所以能夠利用VPN達到這種額外的應用模式,主要是因為VPN本身便是一種計算機網路的特殊應用技術VPN基本上都是在公開網路上使用,並且允許使用者與遠端網路中的主機進行私密資料的交換。

VPN特色說明

VPN除了可以讓使用者從遠端環境連接至公司的內部網路外,也能夠讓公司行號使用VPN作為各地分公司彼此之間的溝通管道這些管道可以用來分享私有資料,也能作為機密檔案的傳輸途徑,或是共用網路上的各種資源。

除了這些用途外,使用者也能將VPN當作突破網路存取限制的手段。例如,內部網路對外有防火牆機制,以避免內部使用者存取特定網站或網址,或者使用網頁過濾技術禁止內部使用者存取特定網站的網頁,都能利用VPN進行掩護,以通道技術存取這些已經被禁止存取的網站或網路服務

而原先只允許在內部網路進行存取的主機或資料,一旦開放使用者從外部網路進行存取,是否意味著外人有機會可以使用竊聽與截取的手段,直接取得機密資料?或者更進一步登入內部網路而取得合法使用者的身分?關於這樣的安全議題,VPN也已經有防範措施以使用者身分為例,唯有擁有正確帳號與密碼的使用者,才能通過VPN伺服器的認證,並將自己的電腦加入內部網路中

此外,為了避免本地電腦與遠端主機在進行資料交換期間,發生網路封包遭人竊聽並取得機密資料的問題發生,VPN本身採用資料加密技術,將所有進行傳輸的資料先行編碼,且只有取得授權的使用者才能加以解密換言之,VPN提供了相當安全的資料交換機制,並可用來傳送各種不同的網路封包

但在使用VPN技術時,必須特別注意編碼機制是否啟用的問題,因為VPN允許使用者在不啟用資料加密機制的情況下進行資料交換與傳輸的工作如果在使用VPN時,並未同時啟用資料加密機制,則所有的網路封包都將以明碼進行傳送,自然也就失去資料保密的功能

一般來說,因為VPN都是用來存取一些只適合在內部網路傳輸的資料,所以這些資料多半都具有一定程度的機密性如果要避免這些資料經由VPN傳輸的過程外流至他人手中,最好在使用VPN時確認資料已經經過加密,才不至於使用明碼方式進行資料傳輸

若以技術觀點來看,VPN所使用的通訊協定會將網路傳輸資料進行封裝,同時針對這些資料進行加密與編碼的工作,即使這些網路裝置並未在相同的私有網路內,也能夠讓這些資料在眾多網路裝置中安全地進行傳送

在傳輸過程中,使用者並不會意識到這些資料的傳送過程有任何相異之處,反而會覺得自己的電腦似乎正處於指定的私人網路內

由於存取的是私人網路,加上使用的是虛擬技術,讓遠端網路以為此電腦也在該私人網路中,也因此這樣的網路技術,才會命名為虛擬私人網路

選擇合適的VPN伺服器

由於VPN可以帶來許多網路使用上的便利性,因此要架設一部VPN伺服器並不困難,甚至也有相當容易取得的解決方案例如目前已經廣為流行的無線網路AP,即可在許多機種中直接找到VPN伺服器的支援功能。

但是這樣的解法方案也有其缺點,例如在稍具規模的公司中可能會有許多人共同使用VPN的需求產生此時,如果無線網路AP本身的CPU處理速度不夠快,很可能會發生當機或存取速度下降的情況發生。另外,某些公司內部並沒有使用無線網路的需求,為了提供VPN的功能而採購無線AP,就可能造成不必要的金錢浪費

另一個自行架設VPN伺服器的方法,則是使用現有的主機進行設定。目前大多數主流的作業系統都能進行VPN伺服器的架設,例如Windows與Linux都提供相關的功能支援,只是可能需要另行下載與安裝相關的軟體或套件除了作業系統有不同的選擇外,VPN伺服器的軟體也有許多選擇。

以Linux為例,常見的VPN伺服器選擇便有PPTPOpen VPN等不同的軟體。各種不同的作業系統或VPN伺服器軟體都有其優缺點,使用時只須挑選個人慣用的系統或軟體套件,不一定要使用特定的軟體

接下來,將介紹如何使用Ubuntu系統安裝與設定PPTP套件,以便提供VPN伺服器的功能選用PPTP套件最主要的原因,是因為安裝完成後只須修改幾個設定檔,就可以開始使用VPN功能,在安裝與設定上較為簡單

以Ubuntu安裝PPTP伺服器

PPTP的套件已經被列入APT套件管理系統中,所以只須執行「sudo apt-get install pptpd」指令,即可自動完成此套件的安裝作業PPTP套件安裝完成後,只須修改三個設定檔,即可完成整個VPN伺服器的安裝與設定工作。這三個設定檔分別是「/etc/pptpd.conf」、「/etc/ppp/pptpd-options」以及「/etc/ppp/chap-secrets」

▲在Ubuntu系統中只需要一個指令即可完成安裝VPN伺服器

修改/etc/pptpd.conf

在此設定檔中,需要修改的項目只有設定檔路徑紀錄檔功能是否啟用、本地端(指VPN伺服器本身)使用的IP位址,以及VPN客戶端連線後可以使用的IP位址當VPN客戶端連線成功後,VPN伺服器會依照設定從此範圍的IP位址中指派一個IP給對方。

設定檔路徑的預設值為「option /etc/ppp/pptpd-options」,通常並不需要更改此設定如果有在此設定檔中指定「logwtmp」項目,則會記錄每一個客戶端連線的開始與結束時間。倘若不想記錄這些資訊,在「logwtmp」前面加上註解符號「#」即可

「localip」指定了VPN伺服器所使用的IP位址,一般只要指定正確的位址,便不會有任何的錯誤發生「remoteip」則是指定客戶端連線可以使用的IP位址範圍,可用「remoteip 192.168.0.234-238,192.168.0.245」這種格式加以指定,表示192.168.0.234到192.168.0.245這十二個IP位址,都可以指派成為客戶端連線時所使用的IP位址。

只要此範圍內的所有IP位址與本地網路中已被使用的位址沒有衝突,就能作為客戶端可以使用的IP位址範圍此處指派的位址都是私有位址(Private IP Address),因為大多數的內部網路會使用私有位址

▲「/etc/pptpd.conf」設定檔中最重要的項目為localip與remoteip

設定/etc/ppp/pptpd-options

在「/etc/ppp/pptpd-options」設定檔中,只須注意「name」與「ms-dns」兩個設定項目「name」欄位表示此VPN伺服器所使用的名稱,直接使用預設值「pptpd」,或是自行指定新名稱皆可。

要注意的是,此名稱稍後在「/etc/ppp/chap-secrets」設定檔中會被使用,因此務必指定正確的名稱才能成功完成VPN連線

如果客戶端使用的是Windows版本的VPN連接程式,可以由VPN伺服器決定該連線所須使用的DNS伺服器位址此時只須指定此設定檔中的「ms-dns」欄位,並在後方加上正確的DNS伺服器位址即可

「ms-dns」欄位可以同時設定二組,第一組會被設定為Windows客戶端的主要DNS伺服器,第二組則是次要DNS伺服器但此欄位最多只能設定二組,超過二組的部分將不會被使用,例如:

▲「/etc/ppp/pptpd-options」設定檔通常只需要修改名稱與DNS設定

設定/etc/ppp/chap-secrets

「/etc/ppp/chap-secrets」便是用來設定VPN使用者帳號與密碼的檔案,由於採用的是普通文字檔格式,因此務必確認此檔案的擁有者與群組都是「root」,且存取權限設定為「-rw——-」,也就是只有root才能讀取與寫入此檔案,其他帳號都不能存取此檔案的內容

確認過設定檔的存取權限設定正確後,接下來使用編輯器開啟此檔案進行設定此設定檔每一行代表一個帳號的設定,各有四個欄位,並以空白鍵區隔。此四個欄位由左至右的名稱與定義如下:

Client:使用者帳號,可以指定任意字串,例如「vpn_user」
Server:此VPN伺服器的名稱,也就是「/etc/ppp/pptpd-options」檔案中的「name」欄位所指定的設定值,預設為「pptpd」如果剛才有修改「name」欄位的設定,則需要在此處指定相同的名稱。
Secret:此欄位即使用者登入時所使用的密碼,使用的是明碼字串(這也是為什麼此設定檔要設定成只有root可以存取的原因)例如此欄位設定為「password」,便表示使用者要輸入「password」字串作為密碼,才可以成功登入VPN伺服器
IP Address:此帳號登入後,VPN伺服器所指派的IP位址。此IP位址應該要在先前「/etc/pptpd.conf」設定檔中「remoteip」欄位所指派的IP位址範圍內,否則會產生錯誤

▲「/etc/ppp/chap-secrets」設定檔指定了使用者帳號與密碼,此檔案的存取權限要特別注意

完成上述設定檔的修改與設定後,在終端機畫面中輸入指令「sudo /etc/init.d/pptpd start」即可啟動VPN伺服器。

但因為此時系統上可能執行防火牆,因此會阻擋外部來的VPN連線要求,所以應該先開放VPN伺服器所使用的1723埠,讓外部網路的機器可以存取此通訊埠

此外,也要輸入下列防火牆指令,以便讓來自VPN客戶端的封包,可以經由VPN伺服器轉送出去:

其中的「192.168.0.0/24」表示只要封包來源是192.168.0.1∼192.168.0.254位址中的其中一員,其封包被會經由「eth0」網路介面轉送出。

如果VPN客戶端使用的IP位址範圍並非此處所指定的範圍,只要依照實際使用情況加以修改即可對外網路介面如果不是「eth0」,也可以直接修改成正確的網路介面代號。

由於iptables防火牆可能會在重新開機後將防火牆規則全數清除,所以上述相關的防火牆指令在開機時必須再自動執行一次

這時候可以利用「iptables-save」指令,先將防火牆的設定值備份下來,在開機時再以「iptables-restore」指令進行恢復

結語

完成所有設定後,直接以Windows或其他作業系統所提供的VPN連線程式設定一個新連線,再連接VPN伺服器,即可讓一部原先不在私有網路中的電腦,直接存取該網路中的各種資源

以Windows XP為例,只要執行控制台中的「網路連線」→「網路連線精靈」,即可建立一個VPN客戶端的連線,並在需要使用VPN功能時直接執行此連線,就能夠讓Windows網路連線改由VPN伺服器進行處理但要注意的是,由於VPN連線本身有經過加密與解密的過程,因此實際使用時速度會比較慢。 

implode还是拼接?

有一个数组,现在想把其中的部分元素拼起来生成一个字符串,不知道哪种方式更严谨点?
性能和可读性是个需要取舍的东西。。

拼接的方式:

 

Markus Persson诉说Minecraft 成功之道

到2013年初,Minecraft的注册用户已经不计其数,付费用户数量也已经超过9000多万。2011年10月,发布了移动版Minecraft,在App Store的付费应用中,仍旧排在前三

 

传奇程序员:8岁写游戏 作品狂赚1亿美元

 

这个如今被越来越多人奉为神作,并让无数人深深沉迷其中的游戏最初却几乎由Markus Persson一个人独力开发,与真名相比,他在网络上的昵称Notch无疑更加有名,许多人将他视作独立游戏开发大神和独立软件圈子的标志性人物

 

传奇程序员:8岁写游戏 作品狂赚1亿美元

 

靠着Minecraft,Notch在2012年的收入超过了1.1亿美元,那么他究竟是怎样的一个人物,他又是如何成长到如今大神境地的,他又有哪些值得我们借鉴的开发和商业哲学呢?

8岁的时候,父母离异,他跟着父亲。

那时候父亲买了一台Commodore 128家用电脑,Notch订阅了一份电脑杂志,上边有一些代码,Notch可以把这些代码输入计算机,做些有趣的小游戏过程中他发现,如果自己改变一些代码,游戏就会变化或崩溃不过也不记得这个过程有多快,反正是从8岁就开始写了第一个游戏,那是一个非常简单的文字冒险游戏,必须输入正确的句子才能进入下一个房间

他说,自己就是那么开始学会写代码的,懂得的编程语言有BasicPascalC、C++、Java和ActionScript,所中意的编程语言是Java和C++的综合。最喜欢的是Lighting Engine

 前Minecraft时期

毕业之后,他去了瑞典首都施德哥尔摩一家IT公司做Web编程,几年之后离开那家公司,那时候开始觉得自己找工作会比较容易,但正巧赶上科技泡沫爆发,他失业了,然后做了一些远程教育的东西这样持续了两年,两年中,孤独的他也只是与母亲住在一起

后来又找了一份程序员的工作,并和同事一起开发了Wurm Online,该游戏和现在的Minecraft一样,玩家创造世界改造土地,挖掘地下资源 在这以后,Notch又去了Midas,也就是后来的king.com,公司开发大量的Flash游戏,Notch每两个月就要开发一款新游戏,据说他在那里开发了大约30款游戏

与其他程序员不同的是,Notch对游戏有很深的理解。他说,游戏开发的黄金法则就是spec it out在king.com禁止在业余时间开发游戏之后,他就辞去了工作,接着开始开发Minecraft。

2010年,当Minecraft用户发展到一定阶段的时候,独立工作室就应付不了这样庞大的用户基数,Notch意识到是该建立团队的时候了夏天,他就与两个曾经的同事和老板建立了Mojang,其中一个联合创始人是他曾经在Flash游戏开发公司King.com的同事Manneh,另一个则他的前CEO

 拒绝投资者

Minecraft成功之后,Mojang三位联合创始人一下过着富裕的生活。也受到了许多VC的关注。在2011春天,Notch连续三个月都每天与VC会话,可能一共见了100到150个VC。

其中一个是硅谷著名风投大师肖恩·帕克,也就是Napster的联合创始人,也是Facebook的第一位总裁但得到的结果和其他投资人一样,Mojang不需要资金了

Notch不希望把公司做大,不想员工超过25人,不想上市。

开放、开放、还是开放

关于游戏开发,看过他所有的采访,都离不开一点,开放、开放、还是开放。

技术上是开放的。

不论是Minecraft还是他所开发的其它游戏,都是先写一些代码,开发一个大概框架,然后调整,从来不会把规则定死了开发好之后自己先玩玩儿,看看什么有趣什么无趣,然后再作改变比如Minecraft最开始就是一个斜视角等角视图游戏,最后不断调整。

模式上也是开放的。

他事先不会设定任何固定的模式或者有什么特定的计。一方面尽量让玩家参与到游戏的设计当中,让他们对游戏的画面或者功能提出建议有时候,用户会挑出你已有的毛病或者告诉你游戏将要出现的毛病。另一方面,这样的方式也方便自己添加一些时不时蹦出来的灵感

Notch更喜欢做一个交互性的世界而不是设定一个过程去绑架用户。整个过程尽量保持一切都是开放的,其实他自己也不完全清楚这种方法是好还是坏

什么才是可行的模式?他也不知道,但可以肯定,通过与公平对待你的消费者并与他们保持密切的联系,你就能走得很远

写博客推广产品

Minecraft最开始时有没有推广经费的,Notch做推广的方式是什么?

在TIGSource论坛发布关于Minecraft的新闻,也在Twitter,Reddit,Tumblr写博客,这都是很好的推广方式国外很多开发者都对这样的推广方式乐此不疲

多人游戏赚钱比单人游戏容易

谈到Minecraft的盈利,他认为做多人游戏比单人游戏赚钱要容易,单人的游戏,付费只是一次性的,多人的则可以按月收费 并且在开发过程中出售“预发布”版本的游戏是一种很好的方式,不论从商业上还是从技术上说,都如此,不但能积累资金,还能检验你所逐步添加的东西是否起作用

另外,他发现,销售曲线与开发速度息息相关,每次都这样,努力一些,进度快一些,卖的就多一些。

病毒与盗版?无所谓

其实从2011年开始,Persson就已经不直接参与Minecraft了,而是把每日的开发工作交给了Jens Bergensten(@jeb_),他自己则开发新的游戏0x10c该游戏也采取了Minecraft的高度自由与创新的路线,并且比Minecraft做得更深

0x10C游戏不仅可以像Minecraft那样,自己建造,还能自己编程甚至写一些恶意代码,代码甚至可以感染0x10c游戏本身但Notch却说:“我不会阻止病毒”,就如同他不会在PC游戏中做一些设置打击盗版一样,他说,

盗版确实应该打击,但是不应该在游戏中进行阻止,因为这样损害了其他玩家的游戏体验,PC游戏盗版是很厉害,但是也不像某些大公司所吹嘘的那么严重

VIM学下的换行处理(Line Feed)

换行方式

在早期的打印机时代,开始新的一行要占用两个字符的时间。如果到了一行的结尾处,你要快速回到新的一行的开头,需要打印针头在纸面上飞快地掠过,常常会在纸面上留下污点。解决这个问题的办法就是,用两个字符:一个字符<Return>来移到第一列,另一个字符<Line feed>来新增一行。计算机产生以后,存储较为昂贵,在如何解决回车换行这个老问题上,人们产生了不同的意见。UNIX人认为在到达一行的结尾时新增一行<Line feed> (LF),而Mac人则认同<Return> (CR)的解决办法,MS则坚持古老的<Return><Line feed> (CRLF)的方法。这就意味着如果你将一个文件从一个系统转移到另一个系统,就面临着回车换行的问题。而Vim编辑器则会自动的认出这种文件格式方面的区别,并做出相应处理。

fileformats选项,用于处理文件格式问题。以下命令,告诉vim将UNIX文件格式做为第一选择,而将MS-DOS的文件格式做为第二选择:

:set fileformats=unix,dos

检测到的文件格式会被存放在fileformat选项中,我们可以用以下命令来查询

:set fileformat?

我们还可以利用fileformat选项,来转换种文件格式。例如,使用以下命令将名为readme.txt的MS-DOS格式的文件,转换为UNIX格式的文件。

:set fileformat=unix

在默认情况下,Vim认为文件是由行组成的,并且文件最后一行是以<EOL>为结束符的。如果你想设置文件以<EOL>结束符结尾,则可以用以下命令:

:set endofline

如果你想设置文件不以<EOL>结束符来结尾,则可以使用以下命令:

:set noendofline

显示换行

如果你使用以下命令进入<list mode>,那么就可以清楚的看到以“$”表示的换行符和以“^I”表示的制表符。

:set list

 

你可以使用以下命令退出<list mode>:

:set nolist

删除换行

可以用以下命令删除换行符:

:%s/\n//g

可以用以下命令删除DOS文件中的回车符“^M”:

:%s/\r//g

可以用以下命令转换DOS回车符“^M”为真正的换行符:

:%s/\r/\r/g

可以用以下命令删除行尾的空格以及DOS回车符。它没有使用“/”字符作为替换命令各个参数间的分隔符,而是使用了“#”字符。命令还使用了“\?”正则表达式,用来匹配它前面出现的字符0次或1次。

:%s#\s*\r\?$##

可以用以下命令删除三行空行:

:%s/^\n\{3}//

可以用以下命令将连续的两个空行替换成一个空行:

:%s/\n\n/\r/g

自动换行

在默认情况下,Vim是不会自动换行的,也就是说我们需要自己决定回车的位置。但是我们也可以通过指定textwidth选项,让Vim自动在指定位置换行。例如,使用以下命令指定在30列时自动换行。由于在遇到空格时才会自动换行,所以换行的精确位置可能会小于你指定的列宽。

:set textwidth=29

而以下命令告诉Vim从右面算起当达到10个字符的空格时要换行:

:set wrapmargin=10

在指定了文本宽度的情况下,当我们将一行中的前几个文字删掉时,Vim并不会将后面行中的文本移动上来,而是形成了一些长短不一的段落,这样看起来不是很好。可以有几种方法处理这个问题:

一种方法是,在可视化模式下选中这些文本,然后用gp命令来格式化选中的段落。另一种方法是,使用gqmotion命令来完成格式。例如要格式化5行,就可以用命令:gq4j。这个命令告诉Vim要格式化本行,同时要格式化下面的4行,这样就达到了格式化5行的目的。如果要格式化整个段落,可以将光标放在段落的第一行上,然后执行命令gq}。而使用命令gqip可以格式化当前段落,而且并不必要将光标放在段落的第一行上。

 

如果要想格式化一行,可以使用命令gqgq,也可以简记为gqq

注意:选项textwidth优先于wrapmargin。如果要使wrapmargin选项生效,必须将textwidth设置为0(这也是默认值)。

合并行

命令J使两行合并为一行,同时用空格分隔这两行。

通过设置joinspace选项,可以控制合并两行时的分隔符(如果一行是以标点符号来结尾)。如果设置:set nojoinspaces,用J命令合并两行时会用一个空格来分隔;如果设置:set joinspaces,用J命令合并两行时会用两个空格来分隔。如果不希望用空格来分隔合并的行,可以使用gJ命令。

我们也可以使用:join命令,将几行合并为一行并使用空格来分隔各行。如果不希望加入空格,那么可以使用:join!命令。

命令小结
:set fileformat 设置文件格式
:set endofline 设置文件结束符
:set noendofline 取消文件结束符
:set list 进入List Mode
:set nolist 退出List Mode
:%s/\n//g 删除换行符
:set textwidth 设置行宽
:set textwidth 设置行边距
:join 合并多行
J 合并两行

VIM自动保存文件、自动重加载文件、自动刷新显示文件

使用vim打开文件时,如果在其他编辑器中又打开此文件并做了修改、保存。那么在vim中默认是不自动加载已经修改了的文件,除非你在vim中保存时它才提示文件已经有改动。可是此时一般迟了,因为你当前在vim中的修改没法保存了。
手动重加载文件的命令是:e!
一劳永逸的方法是:
vim提供了自动加载的选项 autoread,默认关闭。
在_vimrc中添加 set autoread即可打开自动加载选项。
相关选项:

 
另外,vim使用tag进行切换时,如果当前文件修改未保存,会提示需保存后才能跳转。
在_vimrc中添加

 
可使切换文件时,修改的文件被自动保存。

vim 中调用终端

最近一直在思考,如果又那么多需求需要在vim里面调试gdb,执行python文件,链接数据库,与其每一个都去用vim脚本实现,为什么不直接把终端所有操作接管呢?
然后我去了www.vim.org的首页,然后,我居然真的看到了这个插件:
Conque Shell
下载链接:http://www.vim.org/scripts/script.php?script_id=2771
这个插件目前的评分是 Rating 447/122, Downloaded by 1280 ,也就是差不多每个评分的人都是4分(Life Changing!),而我也是毫不犹豫的选择了这个选项。
废话不多说,先来上图,对,你没有看错,这真的是vim.
在vim中打开bash:

在vim中连接mysql:

在vim中打开python解释器:

哈哈,怎么样~~,是不是真的很酷!,OK,还有两张图,我们在最后再贴出来。来看一下这个插件的详细信息吧
一.简介
目前这个插件只能运行在linux或者mac下面,看了历史记录,曾经是支持windows的(杯具),另外,这个插件是后来用python全部重写了,估计是效率考虑吧
二.这个插件的价值
正如我开头所说的,当你习惯了vim之后,你会希望任何一个操作都在vim的分割窗口里面完成,而这个插件,完美的帮你达到了这一点~
三.插件运行环境
1.linux/mac
2.python运行环境
四.安装方法
下载conque_1.1.vba,用vim打开后,执行:so %,会自动执行安装.
五.使用方法
一共四个命令:
ConqueTerm        <command>: 在当前的窗口打开<command>
ConqueTermSplit    <command>:横向分割一个窗口之后打开<command>
ConqueTermVSplit <command>:竖向分割一个窗口之后打开<command>
ConqueTermTab    <command>:先建一个tab页之后打开<command>
在想要退出某个窗口操作时,按一下ESC,之后就会回到vim操作中。
另外,在bash中,按下i,会自动到达终端最后的光标处,的确很贴心的设计。
OK,now,enjoy it!
作为彩蛋,送给大家两张图~~

 

2

用VIM 写 CoffeeScript , 并实现时时编译

但我是用VIM写的代码,VIM需要一些配置,索幸,有人已经写了VIM的coffee script插件,地址在这里:https://github.com/kchmck/vim-coffee-script

下面以Mac为例介绍下VIM配置CoffeeScript开发环境:

接着随便打开.coffee文件,写一点代码,保存的时候vim会自动生成 .js 文件