c 语言技巧

一些 c 语言技巧

可以使用 #define 代替 struct 来定义公共字段, 因为一些编译器可能不支持匿名结构(unamed struct), 还有 struct 可能因为要对齐, 浪费了字节.

/* Common GC header for all collectable objects. */
#define GCHeader    GCRef nextgc; uint8_t marked; uint8_t gct
.....
manjaro(xfce) 配置

一个技巧是想要什么直接在 “开始” 菜单的搜索框里输入就行, 比如 task, software, menu ….

可以输入: theme(Appearance), menu(Window Mannageer) 调整一下主题

.....
gba 个人开发日志

本日志为 libtonc docs 的个人理解,不保证内容正确性

其它参考文档:

.....
win32 输入法管理器

应用程序与输入法通信, 本文档的目的是使用自定义的”组合”及”选词”界面代替输入法所提供的

tsf 方式 tsf 似乎只能控制 candidatelist 窗口的显示

imm 方式 控制 composition window

.....
luajit

luajit 的个人日志

.....
编译 c 到 wasm

编译 c 代码到 wasm, 不使用 emscripten sdk.

.....
openresty

相关下载,安装可直接 http://openresty.org/

个人选择它是因为 luajit 能很容易地调用 c 语言模块, 相于就是一个 c 语言写的服务器

hello world

这里应该是模板链接

IDE 选择(估计只有 vscode)

.....
Win32 桌面应用开发

Windows 程序开发(第五版)

.....
golang 相关

golang.google.cn 不需要翻墙

在线文档能直接在网页上运行一些示例, 而且国内的翻译版文档并非最新,而且翻译质量有点不太好。

本地文档: 在 CMD 下键入:(任意目录) godoc -http :6060,

.....
mithril 笔记(Deprecated)

mithril 是一个轻量级浏览器 Javascript MVC 框架 - 一个将「数据」应用到「模板」的工具,并且支持 virtual dom 智能差异化更新。

Note: 打算使用或自已写一个 virtual dom 的库, 因为这个库的参数对 haxe 来说有些混乱.

.....
fuse(Outdated)

Getting Started: https://www.fusetools.com/learn/fuse#getting-started

.....
从 javascript 到 haxe

本文档用于向 javascript 程序传销 [haxe], 学习它需要对 js 有一定的了解。

安装

首先下载 haxe 编译器, 推荐 使用 git 版本,可以在 http://build.haxe.org 找到, 更新时可以覆盖安装

.....
sublime text 3
.....
声音

什么是声音

声音是由物体振动发生的, 正在发声的物体叫做声源。 物体在一秒钟之内振动的次数叫做频率,单位是赫兹,字母Hz.

声音是一种压力波, 声音作为波的一种,频率和振幅就成了描述波的重要属性, 频率的大小与我们通常所说的音高对应,而振幅影响声音的大小。

声音可以被分解为不同频率不同强度的正弦波叠加, 这种变换(或分解)的过程,称为傅立叶变换(Fourier Transform)。

变换的计算

x*sin(R) : 改变振幅(amplitude)

sin(R + PI) : 改变相位(phase)

sin(R * x) : 改变频率(frequency)

.....
比特币

比特币结合P2P对等网络技术和密码学原理,来维持系统的安全可靠性。与有中心服务器的中央网络系统不同,在P2P网络中无中心服务器,每个用户端既是一个节点,也有服务器的功能,任何一个节点都无法直接找到其他节点,必须依靠其户群进行信息交流。

.....
IRC 客户端开发

客户端选择及所有 IRC 相关: http://www.irc-wiki.org/Main_Page

  • 桌面端

    • nettalk 感觉不错.但不支持 SSL 连接.
.....
eclipse 的 android 应用

一些 Java 的语法参考

  • 下载 ADT

  • 解压后, 先运行 SDK Manager.exe 下载需要的 android sdk, 这一步将会花上很长时间.

    目前国内需要设置代理 Tools -> Options 在 HTTP Proxy Server 里填 mirrors.neusoft.edu.cn, Port 为 80

    除了 SDK 包,API 文档(在最高等级API 目录里) 还有一些其它的 工具包以及扩展(例如: HAXM 可用于 Inter CPU加速模拟器),

  • eclipse 安装中文包, help -> install new software 点击 ADD... 按钮, 输入 http://download.eclipse.org/technology/babel/update-site/R0.12.0/luna, 确认后选译自已的语言包.

.....
C++ tutorial for C users

原文: http://www.4p8.com/eric.brasseur/cppcen.html, 默认使用 gcc 的 g++ 命令编译下边示例, 如果使用 gcc 则需加上 -lstdc++

一些编译器的问题:

  • 对于 cl.exe(msvc) 如果有中文,源代码一定不能以 utf-8(无BOM)保存, 否则将乱码, 参考…
.....
一些有意思东西

记录 github 上一些有意思的库, 大多数是从 https://github.com/trending?since=weekly 上看到的.

.....
OCaml 相关

在线尝试编程

在 windows 中安装 ocaml, (我已经安装了 cygwin 和 git 了)

  • 按照 ocaml 官方的安装方式, winget install OCaml.opam

  • 在执行 opam init 之前 cygwin 可能需要先安装一些必须的软件. 例如 rsync, tar

  • 打开 cygwin 命令行, 执行 opam init 并根据提示选择 Use Cygwin installation found in C:\XX\cygwin64

编译 haxe 源码:

# pin the haxe package to the checked out Haxe source directory
# 这里的 path/to/haxe 应该使用 windows 的路径例如 : D:/path/to/haxe
opam pin add haxe path/to/haxe --kind=path --no-action


# install the haxe package dependencies (as listed in the `opam` file)
opam install haxe --deps-only
.....
魔兽世界插件开发

http://www.wowwiki.com/Portal:Interface_customization

http://wowprogramming.com/docs

http://www.wowinterface.com/downloads/index.php 开发工具

http://www.wowwiki.com/Making_a_macro 基础宏

http://wenku.baidu.com/link?url=FAy226htPhXpU_7r_WUMvNCOtUjhf90KJpYRmTY449cEkxxSL0JLHjZ-LJK4zL8-oGZK9mbD2XQBypdKjKcEHkFqmoWrp-7B152q1EfZcFi

.....
使用Github Pages

对于个人, 创建一个名为 USERNAME.github.io 的特殊项目即可

github 将自动通过 jekyll 编译 项目中的文件为静态网页

一个账号只能创建一个名为 USERNAME.github.io 的项目

对于某个项目, 从项目的 Setting 进入, 下拉到 GitHub Pages, 然后从下拉菜单中选 master branch/docs folder

这时将启用 docs 目录将为文档的根目录, 这是最简单的方式

.....
git 常用操作

Git - the stupid content tracker

window 版本下载

github 上传大型文件

在 github url 结尾添加 .patch.diff 可下载单个 patch, 例: https://github.com/foo/bar/commit/${SHA}.patch

.....