Ubuntu 安装 Budgie Desktop
类似ChromeOS的桌面环境
介绍什么的就懒得重复了
自己百度吧
直接扔命令
sudo add-apt-repository ppa:sukso96100/budgie-desktop
sudo apt-get update
sudo apt-get install budgie-desktop
介绍什么的就懒得重复了
自己百度吧
直接扔命令
sudo add-apt-repository ppa:sukso96100/budgie-desktop
sudo apt-get update
sudo apt-get install budgie-desktop
先扔一个效果图
Atom我就不介绍了,自己去看WIKI吧
ubuntu快速安装:
sudo add-apt-repository ppa:webupd8team/atom
sudo apt-get update && sudo apt-get install atom
MAC可以直接从官网下载
其他系统就自己编译吧
因为和Github结合的很好,然后速度较快,比较适合项目的小修改&提交,和不喜欢大型IDE的人
未配置的界面很像Sublime Text
,上图是我修改主题和配色后的
言归正传。Atom自带Golang插件,但是调试和格式化没有(自动补全就别想了)
然后我在官方Packages里找到了Go的插件,叫做Go Plus
Github地址:https://github.com/joefitzgerald/go-plus
作者的演示:
安装的方法也很简单,File -> Preferences... -> Packages
然后在搜索框内输入go plus
回车等一会就会出现了
点击Install
安装
有可能会出错,重试一遍就行了
然后点击Settings
进行设置
勾选自己需要的功能
然后填入Go的安装目录和工作目录就行了
如果要使用Lint
和Vet
的话
还需要
go get github.com/golang/lint/golint
go get code.google.com/p/go.tools/cmd/vet
主题和配色也都可以在Preferences
里更换&下载
开始玩吧!
谁说静态博客就不能用搜索的?
好吧其实就是用了下搜索引擎的site搜索功能
可以看见右边测栏里已经多出来了一个搜索框
不过貌似百度没有收录这个博客= =
所以没法用什么的很正常
在页面内添加
<form id="search" class="search" role="search">
<input class="form-control" placeholder="搜索" name="q" type="text">
</form>
然后在js里添加
(function(){
$(document).on('submit', '#search.search', function(){
var q = $(this).find('[name=q]').val();
if($.trim(q) !== ''){
var host = window.location.hostname;
var url = 'http://www.baidu.com/s?wd=' + 'site:' + host + " " + $.trim(q);
window.open(url, "_blank");
}
return false;
});
})();
http://www.baidu.com/s?wd=
可以替换成任意支持site搜索的搜索引擎地址
PS: 这是 jQuery 版本,写成原生的也不难这里就不废话了
LiteIDE用了好久,觉得有些地方不是很符合要求
于是又去试了几个Golang的编辑器
发现IntelliJ IDEA
还挺顺手的
各种IDE该有的功能都有了(这不废话么)
配合Golang的插件我认为应该是最好用的Go IDE了
当然缺点就是CPU占用略高
1.1Ghz的渣本有点发热
CPU已经撑不住了
鼠标放到右侧滚轮条可以预览相应的代码
提示功能
自动补全
不知道什么时候能有个中文语言包呢
嗯,准备写一个类似Mineccraft的游戏
基本设定已经弄好了
不过目测是个大坑
希望到时候别弃坑吧
求有经验的人帮忙啊……
下面是go-gl
的example源码
顺便测试一下代码高亮
package main
import (
"errors"
"fmt"
"github.com/go-gl/gl"
glfw "github.com/go-gl/glfw3"
"image"
"image/png"
"io"
"os"
)
const (
Title = "Spinning Gopher"
Width = 640
Height = 480
)
var (
texture gl.Texture
rotx, roty float32
ambient []float32 = []float32{0.5, 0.5, 0.5, 1}
diffuse []float32 = []float32{1, 1, 1, 1}
lightpos []float32 = []float32{-5, 5, 10, 0}
)
func errorCallback(err glfw.ErrorCode, desc string) {
fmt.Printf("%v: %v\n", err, desc)
}
func main() {
glfw.SetErrorCallback(errorCallback)
if !glfw.Init() {
panic("Can't init glfw!")
}
defer glfw.Terminate()
window, err := glfw.CreateWindow(Width, Height, Title, nil, nil)
if err != nil {
panic(err)
}
window.MakeContextCurrent()
glfw.SwapInterval(1)
gl.Init()
if err := initScene(); err != nil {
fmt.Fprintf(os.Stderr, "init: %s\n", err)
return
}
defer destroyScene()
for !window.ShouldClose() {
drawScene()
window.SwapBuffers()
glfw.PollEvents()
}
}
func createTexture(r io.Reader) (gl.Texture, error) {
img, err := png.Decode(r)
if err != nil {
return gl.Texture(0), err
}
rgbaImg, ok := img.(*image.NRGBA)
if !ok {
return gl.Texture(0), errors.New("texture must be an NRGBA image")
}
textureId := gl.GenTexture()
textureId.Bind(gl.TEXTURE_2D)
gl.TexParameterf(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR)
gl.TexParameterf(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR)
// flip image: first pixel is lower left corner
imgWidth, imgHeight := img.Bounds().Dx(), img.Bounds().Dy()
data := make([]byte, imgWidth*imgHeight*4)
lineLen := imgWidth * 4
dest := len(data) - lineLen
for src := 0; src < len(rgbaImg.Pix); src += rgbaImg.Stride {
copy(data[dest:dest+lineLen], rgbaImg.Pix[src:src+rgbaImg.Stride])
dest -= lineLen
}
gl.TexImage2D(gl.TEXTURE_2D, 0, 4, imgWidth, imgHeight, 0, gl.RGBA, gl.UNSIGNED_BYTE, data)
return textureId, nil
}
func initScene() (err error) {
gl.Enable(gl.TEXTURE_2D)
gl.Enable(gl.DEPTH_TEST)
gl.Enable(gl.LIGHTING)
gl.ClearColor(0.5, 0.5, 0.5, 0.0)
gl.ClearDepth(1)
gl.DepthFunc(gl.LEQUAL)
gl.Lightfv(gl.LIGHT0, gl.AMBIENT, ambient)
gl.Lightfv(gl.LIGHT0, gl.DIFFUSE, diffuse)
gl.Lightfv(gl.LIGHT0, gl.POSITION, lightpos)
gl.Enable(gl.LIGHT0)
gl.Viewport(0, 0, Width, Height)
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Frustum(-1, 1, -1, 1, 1.0, 10.0)
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
goph, err := os.Open("gopher.png")
if err != nil {
panic(err)
}
defer goph.Close()
texture, err = createTexture(goph)
return
}
func destroyScene() {
texture.Delete()
}
func drawScene() {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
gl.Translatef(0, 0, -3.0)
gl.Rotatef(rotx, 1, 0, 0)
gl.Rotatef(roty, 0, 1, 0)
rotx += 0.5
roty += 0.1
texture.Bind(gl.TEXTURE_2D)
gl.Color4f(1, 1, 1, 1)
gl.Begin(gl.QUADS)
gl.Normal3f(0, 0, 1)
gl.TexCoord2f(0, 0)
gl.Vertex3f(-1, -1, 1)
gl.TexCoord2f(1, 0)
gl.Vertex3f(1, -1, 1)
gl.TexCoord2f(1, 1)
gl.Vertex3f(1, 1, 1)
gl.TexCoord2f(0, 1)
gl.Vertex3f(-1, 1, 1)
gl.Normal3f(0, 0, -1)
gl.TexCoord2f(1, 0)
gl.Vertex3f(-1, -1, -1)
gl.TexCoord2f(1, 1)
gl.Vertex3f(-1, 1, -1)
gl.TexCoord2f(0, 1)
gl.Vertex3f(1, 1, -1)
gl.TexCoord2f(0, 0)
gl.Vertex3f(1, -1, -1)
gl.Normal3f(0, 1, 0)
gl.TexCoord2f(0, 1)
gl.Vertex3f(-1, 1, -1)
gl.TexCoord2f(0, 0)
gl.Vertex3f(-1, 1, 1)
gl.TexCoord2f(1, 0)
gl.Vertex3f(1, 1, 1)
gl.TexCoord2f(1, 1)
gl.Vertex3f(1, 1, -1)
gl.Normal3f(0, -1, 0)
gl.TexCoord2f(1, 1)
gl.Vertex3f(-1, -1, -1)
gl.TexCoord2f(0, 1)
gl.Vertex3f(1, -1, -1)
gl.TexCoord2f(0, 0)
gl.Vertex3f(1, -1, 1)
gl.TexCoord2f(1, 0)
gl.Vertex3f(-1, -1, 1)
gl.Normal3f(1, 0, 0)
gl.TexCoord2f(1, 0)
gl.Vertex3f(1, -1, -1)
gl.TexCoord2f(1, 1)
gl.Vertex3f(1, 1, -1)
gl.TexCoord2f(0, 1)
gl.Vertex3f(1, 1, 1)
gl.TexCoord2f(0, 0)
gl.Vertex3f(1, -1, 1)
gl.Normal3f(-1, 0, 0)
gl.TexCoord2f(0, 0)
gl.Vertex3f(-1, -1, -1)
gl.TexCoord2f(1, 0)
gl.Vertex3f(-1, -1, 1)
gl.TexCoord2f(1, 1)
gl.Vertex3f(-1, 1, 1)
gl.TexCoord2f(0, 1)
gl.Vertex3f(-1, 1, -1)
gl.End()
}
因为某些众所周知的原因,谷歌访问不稳定,而这个博客本身的字体是用的谷歌的API,所以打开死慢= =
于是刚刚把整个css和字体都下载到了本地,访问速度应该会提升
希望Github别不稳定啊……不然就真挂了
因为想要写一个小游戏玩玩,然后需要安装GLFW3
于是写了这么一个教程备用
首先,安装需要的lib库
sudo apt-get install libxrandr-dev libxi-dev
当然已经安装过的就不用了,不过反正也不会重复安装,忘记的话就运行一遍试试吧
下载GLFW源码
编译
cmake -DBUILD_SHARED_LIBS=ON
打开cmake_install.cmake
,修改SET(CMAKE_INSTALL_PREFIX "/usr/local")
为SET(CMAKE_INSTALL_PREFIX "/usr")
然后make
+sudo make install
go get -u github.com/go-gl/glfw3
======END======
在Betanews看到了让XP继续更新的方法
大体过程如下:
1.新建一个文件扩展名为.reg
的文件(例如updates.reg
)
2.用文本编辑器打开
3.修改内容为
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\WPA\PosReady]
"Installed"=dword:00000001
4.保存,然后双击它
现在打开更新管理器就会发现有新的更新可用了
这个的原理是欺骗Windows Update,让它把你的电脑识别为Windows Embedded POSReady 2009
而Windows Embedded POSReady 2009的支持日期一直到2019年4月9日
当然这不是最好的解决办法,要想一直有免费升级的话,还是去用Linux吧
最起码你不用再担心系统是不是安全了
想给博客自定义一个404页面,毕竟老用Github默认的也不太好
于是乎上网翻了一下,发现貌似没中文介绍
然后在Github Page官方帮助找到了
很简单
只需要在根目录新建一个404.html
即可
当然有个前提,就是你必须要先绑定独立域名,不然会出错的
至于怎么绑定……还是百度吧,也很简单……
如图,把浏览器缩放到手机大小就可以预览了