LionMundo

where a web, vim, scifi hacker blogs

Bookmarks collection

| Comments

Introduction

My bookmark list got very large now and it’s a little too long to scroll. I think it’s a good idea to organize it with a blog post. I will list them with several categories.

Extra notes

  • MVC frameworks for PHP: possibly Zend, Synfony, CodeIgniter, CakePHP
  • GTD: Getting Things Done

Info center

Mobile

  • Xamarin: Tutsplus - Building Android Apps In C# With Xamarin

Electronics

Augmented Reality & Virtual Reality

Utilities

Online IDE

Free dev tools

Indroduced by ripienaar/free-for-dev, caio-ribeiro-pereira/devfreebooks, vincenthou/free-for-china-dev, caio-ribeiro-pereira/devfreecasts.

Quick deployment

Ads

不支持github,但是自己用淘宝联盟写链接应该还是可以的。也就是佣金形式。

Education

Interactive learning tools:

  • Code School: concepts, project
  • Codecadedy: concepts, project
  • ShortcutFoo: train
  • treehouse: concepts, project
  • CodeCombat: game, train
  • Duolingo: concept, train
  • Memorize.com: train
  • 计蒜客
  • 萌码
  • Fenby

Student License

Sci-Fi design

HUD. Motion graphics.

Editors

VPN

目前来看,以Astrill、Tech Runo、fqrouter为代表的一批国外VPN服务商均已受到不同程度的干扰。其余主流国外VPN如Witopia、VyprVPN、ExpressVPN等暂时没有官方消息流出。上面提到此次VPN的封锁是通过协议层面实现的,而通过三种隧道协议之外的其他渠道实现“翻墙”的VPN将可以幸免于难。

GreenVPN、鲨鱼VPN、51VPN等都是近年来发展不错的国内VPN服务商。

Download service

Game

EVE Online

China

ECF EVE國服市場中心

Security

Rob’s Law

  • Tor. Kali.
  • Metasploit + Armitage + nmap and zenmap
  • Cross Site Scripting (XSS)
  • SQL Injection

Digital Music

Guide: How to Make Music Using a Computer. Digital audio workstation (or DAW).

Three.js and Cannon.js: Basic Third Person Game

| Comments

THREE-BasicThirdPersonGame

THREE-BasicThirdPersonGame: tutorial. Really cool. Try it live.

I’m interested in three.js so I will learn this one. Later learn phaser engine.

  • THREE.js: docs
  • Cannon.js: this framework is a pure math and physics collection which can do complex calculations if you want a realistic simulation. Docs.
  • stats.js: JavaScript Performance Monitor. From this learnt how to write js in bookmarklet.
  • rawgit.com: RawGit serves raw files directly from GitHub with proper Content-Type headers.
  • Google Closure Compiler: To get the latest version of it, click here. Also can get it here.
  • ant: Apache Ant is a Java library and command-line tool that help building software.
  • emoji cheat sheet
  • highcharts

With rawgit.com, a new way to deploy my scripts to my pages: build js with closure, in html I use relative path, only in my post I use rawgit.com links. Then all the css, html, js should be automatically resolved. Actually if use my own server, I can have a cdn myself since the source code is available. :smiley:

Analysis

This is constructed as a tutorial. The code of all JavaScript files is fully commented. The whole game logic is placed in the game.core.js file.

To start, read the tutorial. With this it’s not difficult to understand the game.

So we start with demo1_simple.html, WebGL gets checked and then the game is initiated. Stats monitors the frame rate and the game goes into the loop().

I read the details and found some libs there. And I think it’s mostly variable definitions and functions which comply with physic laws. In this project, for now I think there is no game engine like phaser applied. So I think I will just examine the 3D part and write about it in my post and then I go to the phaser project.

In game.three.js, the render() function is defined, which turns out that it’s just a callback. The createModel() is the one I care about. It imports json data and deal with it. Ok, the model is imported by the code beginning at line 83 of game.core.demo1. The json data is stored in game.models.js. This file is really just a model, with lots of data. After importing, the script adds material and mesh to it.

Summary

From this repo I acquired better understanding of a common game frame: Init->Setup->Loop. Found some wonderful tools like rawgit.com, stats.js, emoji cheat sheet. From the details of code, I found that physics formulae are applied heavily. Maybe it’s time to check out how real game engines deal with these tasks.

Further Reading

A blog demo: Refresh-canvas

| Comments

Refresh-canvas

Introduction

After learning Snake, I think it’s good to read the git repo that provided the tutorials, refresh-canvas.

I think this is more of a Mako example.

New things encountered:

And, the presentation here is great… Excellent to teach coding. Can’t imagine how we can finish it in MS PowerPoint or Prezi. Since we run code right on the page. By pressing F11 in Firefox, it’s quite great for presentation.

Later maybe I will try to understand existing mako demos and rebuild the presentation in Mako haha.

Analysis of project

Read it here

Summarry

From this repository I learnt the way to use python and mako to build a static site. Acquired a new workflow: Workflow: template.mak->yaml->make.py. But I think I will use jekyll to establish my blog since I mainly use it to test my web project and sort my writings out. No need to further understand Mako syntax and usages. Even for jekyll, I can just use the default and most simple ones and learn as the needs grow.

Further reading

Inside the project

  • template.mak
  • make.py
  • rsync
  • presentation

Ouside the project

  • jekyll sites to learn about: jekyll

Snake

| Comments

Snake is my starting point for regular coding. I examined the design of the game from the source code and refactored the code for better reading. Familiarity of javascript improved.

Try it live. (This link works because I cloned my snake project as a submodule of the repo of my site, this is not really convenient. Thanks to rawgit.com, I can refer to my repo directly now like this. I tend to use the dev/test version of it.)

Welcome to Jekyll!

| Comments

You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated.

To add new posts, simply add a file in the _posts directory that follows the convention YYYY-MM-DD-name-of-post.ext and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.

Jekyll also offers powerful support for code snippets:

def print_hi(name)
  puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.

Check out the Jekyll docs for more info on how to get the most out of Jekyll. File all bugs/feature requests at Jekyll’s GitHub repo. If you have questions, you can ask them on Jekyll’s dedicated Help repository.