Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

backup

  • Loading branch information...
commit 69ec28bb5cde6c6d90e501df8ef7f4f3d0abf0e6 1 parent fbb8434
@oa414 authored
View
BIN  .DS_Store
Binary file not shown
1  .vim.bak
@@ -1 +0,0 @@
-Subproject commit 93e4ba9476ff4a2232d3d1ee70a007e7f420ede8
View
321 .vimrc.bak
@@ -1,321 +0,0 @@
-" ----------------- Author: Ruchee
-" ----------------- Email: my@ruchee.com
-" ----------------- WebSite: http://www.ruchee.com
-" ----------------- Date: 2012-04-01
-
-
-" Ctrl + H --光标移行首
-" Ctrl + J --光标移下一行行首
-" Ctrl + K --光标移上一行行尾
-" Ctrl + L --光标移行尾
-" Ctrl + Z --取代ESC模式键 [和部分软件的快捷键有冲突]
-" Ctrl + C --编译 [支持C/C++、Java、Haskell]
-" Ctrl + R --运行 [支持C/C++、Java、Haskell、Lua、Perl、Python、Ruby]
-" Ctrl + ] --转到函数定义
-" Ctrl + T --返回调用函数
-" Ctrl + E --添加注释 [插入模式] [添加的是C语言的多行注释,所以适用于C/C++/Java等]
-" Ctrl + E --一步加载语法模板和作者、时间信息 [非插入模式]
-
-" <C-P> --单词补全
-" <C-X><C-L> --整行补全
-" Tab键 --插入模式下的全功能语法结构补全 [snipMate插件]
-" Shift + Insert --向Vim中粘贴从别处复制的内容
-
-" nt --打开NERDTree [非插入模式]
-" tl --打开TagList [非插入模式]
-" \ww --进入VimWiki模式
-
-" za --打开或关闭当前折叠
-" zM --关闭所有折叠
-" zR --打开所有折叠
-
-" :set syntax=cpp --手动选择语法高亮 [或 :set filetype=cpp]
-
-" :%!xxd --转储二进制文件,以十六进制形式显示
-" :%!xxd -r --还原二进制文件
-
-
-" ---------- 主要插件详细用法说明 ---------------------
-
-" :Tlist --呼出变量和函数列表 [TagList插件]
-" :FencView --查看文件编码和更改文件编码 [FencView插件]
-" :LoadTemplate --呼出语法模板 [Load_Template插件]
-" :AuthorInfoDetect --添加作者、时间等信息 [NERD_commenter && authorinfo插件]
-
-" ---------- a.vim [自动切换C/C++同名头文件] ----------
-"
-" :A --切换同名头文件并独占整个屏幕
-" :AS --切换同名头文件并垂直分屏,头文件在上
-" :AV --切换同名头文件并水平分割,头文件在左
-
-" ---------- NERDTree [智能文件浏览器] ----------------
-"
-" :NERDTree --启动NERDTree插件
-" o [小写] --切换当前文件或目录的打开、关闭状态
-" u --打开上层目录
-" p [小写] --返回上层目录
-" P [大写] --返回根目录
-" K --转到当前目录第一个节点
-" J --转到当前目录最后的节点
-" m --显示文件系统菜单 [增、删、移]
-" ? --弹出帮助菜单
-" q --退出该插件
-
-
-" jj 保存当前文件并留在插入模式 [插入模式]
-imap jj <ESC>:w<CR>li"
-colorscheme elflord " 着色模式
-set guifont=Monaco:h18 " 字体 && 字号
-set tabstop=4 " 设置tab键的宽度
-set shiftwidth=4 " 换行时行间交错使用4个空格
-set autoindent " 自动对齐
-set backspace=2 " 设置退格键可用
-set cindent shiftwidth=4 " 自动缩进4空格
-set smartindent " 智能自动缩进
-set ai! " 设置自动缩进
-set nu! " 显示行号
-"set showmatch " 显示括号配对情况
-set mouse=a " 启用鼠标
-set ruler " 右下角显示光标位置的状态行
-set incsearch " 查找book时,当输入/b时会自动找到
-set hlsearch " 开启高亮显示结果
-set incsearch " 开启实时搜索功能
-set nowrapscan " 搜索到文件两端时不重新搜索
-set nocompatible " 关闭兼容模式
-set vb t_vb= " 关闭提示音
-"set cursorline " 突出显示当前行
-set hidden " 允许在有未保存的修改时切换缓冲区
-set list " 显示Tab符,使用一高亮竖线代替
-set listchars=tab:\|\ ,
-
-syntax enable " 打开语法高亮
-syntax on " 开启文件类型侦测
-filetype indent on " 针对不同的文件类型采用不同的缩进格式
-filetype plugin on " 针对不同的文件类型加载对应的插件
-filetype plugin indent on " 启用自动补全
-
-set writebackup " 设置无备份文件
-set nobackup
-set autochdir " 设定文件浏览器目录为当前目录
-"set nowrap " 设置不自动换行
-set foldmethod=syntax " 选择代码折叠类型
-set foldlevel=100 " 禁止自动折叠
-
-set laststatus=2 " 开启状态栏信息
-set cmdheight=2 " 命令行的高度,默认为1,这里设为2
-
-" 每行超过80个的字符用下划线标示
-au BufRead,BufNewFile *.asm,*.c,*.cpp,*.java,*.cs,*.sh,*.lua,*.pl,*.pm,*.py,*.rb,*.erb,*.hs,*.vim 2match Underlined /.\%81v/
-
-
-" 设置编码
-set fenc=utf-8
-set encoding=utf-8
-set fileencodings=utf-8,gbk,cp936,latin-1
-
-
-" For Haskell
-:let hs_highlight_delimiters=1 " 高亮定界符
-:let hs_highlight_boolean=1 " 把True和False识别为关键字
-:let hs_highlight_types=1 " 把基本类型的名字识别为关键字
-:let hs_highlight_more_types=1 " 把更多常用类型识别为关键字
-:let hs_highlight_debug=1 " 高亮调试函数的名字
-:let hs_allow_hash_operator=1 " 阻止把#高亮为错误
-
-
-" ======= 引号 && 括号自动匹配 ======= "
-
-:inoremap ( ()<ESC>i
-
-:inoremap ) <c-r>=ClosePair(')')<CR>
-
-:inoremap { {}<ESC>i
-
-:inoremap } <c-r>=ClosePair('}')<CR>
-
-:inoremap [ []<ESC>i
-
-:inoremap ] <c-r>=ClosePair(']')<CR>
-
-":inoremap < <><ESC>i
-
-":inoremap > <c-r>=ClosePair('>')<CR>
-
-:inoremap " ""<ESC>i
-
-:inoremap ' ''<ESC>i
-
-:inoremap ` ``<ESC>i
-
-function ClosePair(char)
- if getline('.')[col('.') - 1] == a:char
- return "\<Right>"
- else
- return a:char
- endif
-endf
-
-
-" MiniBufExplorer 多个文件切换 可使用鼠标双击相应文件名进行切换
-let g:miniBufExplMapWindowNavVim=1
-let g:miniBufExplMapWindowNavArrows=1
-let g:miniBufExplMapCTabSwitchBufs=1
-let g:miniBufExplModSelTarget=1
-
-" :Tlist 调用TagList
-let Tlist_Show_One_File=1 " 只显示当前文件的tags
-let Tlist_Exit_OnlyWindow=1 " 如果Taglist窗口是最后一个窗口则退出Vim
-let Tlist_Use_Right_Window=1 " 在右侧窗口中显示
-let Tlist_File_Fold_Auto_Close=1 " 自动折叠
-
-" TxtBrowser 高亮TXT文本文件
-au BufRead,BufNewFile *.txt setlocal ft=txt
-
-" :FencView 查看文件编码和更改文件编码
-let g:fencview_autodetect=1
-
-" :LoadTemplate 根据文件后缀自动加载模板
-" let g:template_path='/home/ruchee/.vim/template/'
-
-" :AuthorInfoDetect 自动添加作者、时间等信息,本质是NERD_commenter && authorinfo的结合
-let g:vimrc_author='Linxiangyu'
-let g:vimrc_email='lxyweb@gmail.com'
-let g:vimrc_homepage='http://www.linxiangyu.info'
-
-" Ctrl + H 将光标移到行首
-imap <c-h> <ESC>I
-
-" Ctrl + J 将光标移到下一行的行首
-imap <c-j> <ESC>jI
-
-" Ctrl + K 将光标移到上一行的行尾
-imap <c-k> <ESC>kA
-
-" Ctrl + L 将光标移到行尾
-imap <c-l> <ESC>A
-
-" Ctrl + Z 取代ESC模式键
-imap <c-z> <ESC>
-
-" Ctrl + E 一步加载语法模板和作者、时间信息 [非插入模式]
-map <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi
-vmap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi
-
-" Ctrl + E 在当前行添加C/C++/Java语言的多行注释 [插入模式]
-imap <c-e> /* */<ESC>hhi
-
-" nt 打开NERDTree [非插入模式]
-map nt :NERDTree<CR>
-
-" tl 打开Taglist [非插入模式]
-map tl :Tlist<CR><c-l>
-
-
-" ======= 编译 && 运行 ======= "
-
-" 编译C源文件
-func! CompileGcc()
- exec "w"
- let compilecmd="!clang "
- let compileflag="-o %<"
- exec compilecmd." % ".compileflag
-endfunc
-
-" 编译C++源文件
-func! CompileCpp()
- exec "w"
- let compilecmd="!g++ -Wall -pedantic -std=c++98 "
- let compileflag="-o %<"
- exec compilecmd." % ".compileflag
-endfunc
-
-" 编译Java源文件
-func! CompileJava()
- exec "w"
- exec "!javac %"
-endfunc
-
-" 编译Haskell源文件
-func! CompileHaskell()
- exec "w"
- let compilecmd="!ghc --make "
- let compileflag="-o %<"
- exec compilecmd." % ".compileflag
-endfunc
-
-" 根据文件类型自动选择相应的编译函数
-func! CompileCode()
- exec "w"
- if &filetype == "c"
- exec "call CompileGcc()"
- elseif &filetype == "cpp"
- exec "call CompileCpp()"
- elseif &filetype == "java"
- exec "call CompileJava()"
- elseif &filetype == "haskell"
- exec "call CompileHaskell()"
- elseif &filetype == "lua"
- exec "!lua %<.lua"
- elseif &filetype == "perl"
- exec "!perl %<.pl"
- elseif &filetype == "python"
- exec "!python %<.py"
- elseif &filetype == "ruby"
- exec "!ruby %<.rb"
- endif
-endfunc
-
-" 运行可执行文件
-func! RunResult()
- exec "w"
- if &filetype == "c"
- exec "! ./%<"
- elseif &filetype == "cpp"
- exec "! ./%<"
- elseif &filetype == "java"
- exec "!java %<"
- elseif &filetype == "haskell"
- exec "! ./%<"
- elseif &filetype == "lua"
- exec "!lua %<.lua"
- elseif &filetype == "perl"
- exec "!perl %<.pl"
- elseif &filetype == "python"
- exec "!python %<.py"
- elseif &filetype == "ruby"
- exec "!ruby %<.rb"
- endif
-endfunc
-
-" Ctrl + C 一键保存、编译
-map <c-c> :call CompileCode()<CR>
-imap <c-c> <ESC>:call CompileCode()<CR>
-vmap <c-c> <ESC>:call CompileCode()<CR>
-
-" Ctrl + R 一键保存、运行
-map <c-r> :call RunResult()<CR>
-imap <c-r> <ESC>:call RunResult()<CR>
-vmap <c-r> <ESC>:call RunResult()<CR>
-
-
-" ======= VimWiki ======= "
-
-" 设置编码
-let g:vimwiki_w32_dir_enc = 'utf-8'
-
-" 使用鼠标映射
-let g:vimwiki_use_mouse = 1
-
-" 不要将驼峰式词组作为 Wiki 词条
-let g:vimwiki_camel_case = 0
-
-" 声明可以在wiki里面使用的HTML标签
-let g:vimwiki_valid_html_tags='b,i,s,u,sub,sup,kbd,br,hr,div,del,code,red,center,left,right,h4,h5,h6,pre'
-
-let g:vimwiki_list = [{
-\ 'path': '~/vimwiki/wiki',
-\ 'path_html': '~/vimwiki/html',
-\ 'html_header': '~/vimwiki/template/header.html',
-\ 'html_footer': '~/vimwiki/template/footer.html',
-\ 'auto_export': 1,
-\ 'nested_syntaxes': {'C': 'c', 'C++': 'cpp', 'Haskell': 'haskell', 'Ruby': 'ruby', 'SQL': 'sql', 'HTML': 'html', 'CSS': 'css', 'JavaScript': 'javascript', 'Vim': 'vim', 'Make': 'make'},}]
View
211 Android/AndroidRecipes.md
@@ -0,0 +1,211 @@
+### 自定义窗口 
+
+AndroidMainfest.xml 里面的android:theme
+
+* 使用系统主题
+* 使用自定义主题 res/values/styles.xml定义
+* 代码里定义
+
+ 使用Activity.requestWindowFeature(),
+ 在setContentView()之前定义
+
+ super.onCreate(savedInstanceState);
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+ //设置一个没有标题的窗口
+ setContentView(R.layout.activity_main);
+
+
+ //设置一个进度条
+ super.onCreate(savedInstanceState);
+ requestWindowFeature(Window.FEATURE_PROGRESS);
+ setContentView(R.layout.activity_main);
+
+ setProgressBarVisibility(true);
+ setProgress(0);
+ setProgress(10000);//进度条到100%的时候消失
+
+ //设置另一种进度条
+ super.onCreate(savedInstanceState);
+ requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
+ setContentView(R.layout.activity_main);
+ setProgressBarIndeterminateVisibility(true);
+
+ 另外还有FEATURE_LEFT_ICON,FEATURE_RIGHT_ICON可以定义标题左侧,右侧的小图标等
+
+### 代码中添加视图
+
+ LinearLayout layout = (LinearLayout) getLayoutInflater().inflate(
+ R.layout.activity_main, null);
+ Button reset = new Button(this);
+ reset.setText("Reset Form");
+ layout.addView(reset, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
+ LayoutParams.WRAP_CONTENT));
+ setContentView(layout);
+
+
+### 监听点击
+
+在XML布局中加入
+
+ android:onClick="lis"
+
+在源代码中就可以用lis方法监听
+
+ public void lis(View v) {
+ reset.setText("Hello, I am after click");
+ }
+
+### 图片分辨率适配
+
+- ldpi:120dpi 75% of mdpi
+- mdpi:160dpi
+- hdpi:240dpi 150%
+- xhdpi:320dpi 200%
+
+### 锁定活动方向
+
+在AndroidManifest.xml中的<activity>标签中设置
+ `android:screenOrientation=" "`可以改变活动方向。
+
+- portrait 纵向
+- landscape 横向
+- behind 和前一个活动栈的activity一样
+
+### 动态改变方向
+
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+
+可以读取当前方向信息
+
+
+ int current = getResources().getConfiguration().orientation;
+
+
+
+
+
+### 按钮监听
+
+- http://blog.csdn.net/rhljiayou/article/details/7061201
+
+ button.setOnClickLisener(this)
+
+ public void on Click(View v){
+ }
+
+
+### 菜单选项
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ Button button = new Button(this);
+ button.setText("Click For Opition");
+ button.setOnClickListener( new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ openContextMenu(v);
+ }
+ }
+ );
+ registerForContextMenu(button);
+ setContentView(button);
+ }
+
+
+
+
+ @Override
+ public boolean onContextItemSelected(MenuItem item) {
+ // TODO Auto-generated method stub
+ switch (item.getItemId()) {
+ case R.id.menu_delete:
+ return true; // Do Some Delete
+ case R.id.menu_copy:
+ return true;
+ case R.id.menu_edit:
+ return true;
+ default:
+ break;
+ }
+ return super.onContextItemSelected(item);
+ }
+### DP,SP
+- 字体一般用SP,可以根据首选项放大缩小
+- 其他用DP
+
+
+### Menu
+
+ @Override
+ public void onCreateContextMenu(ContextMenu menu, View v,
+ ContextMenuInfo menuInfo) {
+ // TODO Auto-generated method stub
+ super.onCreateContextMenu(menu, v, menuInfo);
+ getMenuInflater().inflate(R.menu.activity_main, menu);
+ menu.setHeaderTitle("Chose an Opition");
+ }
+
+XML文件是这样的
+
+ <menu xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item android:id="@+id/menu_delete"
+ android:title="Delete Item"/>
+
+ <item
+ android:id="@+id/menu_copy"
+ android:title="Copy Item"
+
+ />
+
+ <item
+ android:id="@+id/menu_edit"
+ android:title="Edit Item"
+ />
+ </menu>
+
+
+### Log
+- .d() debug
+- .e() error
+- .i() info
+- .w() warnning
+- .wtf() what the fuck…
+
+### 多线程
+
+ class getImage extends AsyncTask<String, String, String> {
+
+ @Override
+ protected String doInBackground(String... params) {
+ }
+ }
+
+ - doInBackgroud 后台
+ - onProgressUpdate 更新状态
+ - onPostExecute 执行完毕触发
+
+ 调用new getImage.execute(args)触发
+
+### Toast
+ Toask.makeText(…).show;
+### 监听输入框变化
+
+ editText.addTextChangedListener(this)
+
+ public void afterTextChanged(Editavle statusText) {
+ doSomething
+ }
+此外还有
+
+- beforeTextChanged
+- onTextChanged
+
+### 色彩
+可以用ARGB的格式:
+
+ android:background = "cfff"
+
+
View
8 Android/IntentAndActivity.md
@@ -0,0 +1,8 @@
+
+
+
+ Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(data));
+ // data可以是http://也可以是tel://.如果定义的是tel://110就是给110打电话
+ startActivity(intent)
+
+
View
BIN  about/.DS_Store
Binary file not shown
View
33 about/10-7.md
@@ -0,0 +1,33 @@
+# Linxiangyu
+
+- website : http://linxiangyu.info
+- E-mail : lxyweb@gmail.com
+- Phone : (+86)13260715825
+
+I am a university student, study in NanJing University of Posts and Telecommunications,major in Computer Science and Technology,expecting graduation in July 2016.
+
+
+
+## Programming skills
+
+* Familiar with GNU/Linux
+* Know a little of `C`, `Python`,`Java`,`Ruby`,`Objective-C`
+
+## Equitpmet
+
+## Tools
+
+* OS: `Ubuntu`, `Mac OS X`
+* Source code management: `Git`
+* Editor: `Vim`,`TextMate`,`Sublime Text`
+
+## Interests
+
+Besides computer, I am also interesting in these:
+
+* `Accounting`, `Financial`, `Economic`
+* `Running`, `Swimming`, `Mountian Bike`
+* `Japanese`, `French`, and other language which is plesant to hear
+
+
+
View
23 about/2012-9.md
@@ -0,0 +1,23 @@
+# Linxiangyu
+
+
+I am a university student, study in NanJing University of Posts and Telecommunications,major in Computer Science and Technology,expecting graduation in July 2016.
+
+
+I have little exprience in GNU/Linux, C, Python, Ruby, Java,HTML, CSS and Algorithm Problem Solving.
+
+
+
+I like programming, now I am interested in Web and Mobile App devlopment.
+
+
+Besides computer, I am also interesting in these:
+
+* Accounting, Financial, Economic
+* Running, Swimming, Mountian Bike
+* Japanese, French, and other language which is plesant to hear
+
+---
+
+* My website : linxiangyu.info
+* E-mail : lxyweb # gmail.com
View
11 about/resume.md
@@ -0,0 +1,11 @@
+
+
+## language
+## Framework
+## Tools
+## Activity in School
+## 特点
+## Links
+## Education
+## Project
+## intern
View
4 eclipese.md
@@ -0,0 +1,4 @@
+
+## Auto Complete
+
+最简单的修改方式是:Windows——>Preferences——>Java-->Editor-->Content Asist,在Auto activation triggers for Java后面的文本框里只有一个“.”。现在你将其改为“.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”即可。然后你再试试,会发现,现在的补全功能跟VS差不多了。你还可以在Advanced和Favorite里进行高级的设置。
View
108 hfrails.md
@@ -0,0 +1,108 @@
+
+
+## Scaffold
+
+* `rails generate scaffold ticket name:string address:text paid:decimal `
+* `rails g …`
+* `rails destory(d) …`
+* `rake db:migrate`
+* `rails g migration AddPhoneToTickets phone:string` (Then Change the Views)
+
+## No Scaffold
+
+### Model
+* `rails g model ad name:string description:text price:decimal seller_id:integer` (Then migrate)
+### Controller
+* `rails g controller ads` (The model is ad and the controller is ads)
+### Routes
+ match '/ads/' => 'ads#index'
+ match '/ads/:id' => 'ads#show'
+ match '/ads/:id/new' => 'ads#new'
+ match '/ads/:id/create' => 'ads#create'
+ match '/ads/:id/delete' => 'ads#destory'
+ match '/ads/:id/edit' => 'ads#edit'
+ match 'ads/:id/update' => 'ads#update'
+
+### Controller:
+ class AdsController < ApplicationController
+
+ before_filter :check_logged_in, :only => [:edit, :update, :destory]
+
+ def new
+ @ad = Ad.new
+ end
+
+ def create
+ @ad = Ad.new(params[:id])
+ @ad.save
+ redirect_to "/ads/#{@ad.id}"
+ end
+
+ def edit
+ @ad = Ad.find(params[:id])
+ end
+
+ def update
+ @ad = Ad.find(params[:id])
+ @ad.update_attributes(params[:ad])
+ redirect_to '/ads/#{@ad.id}'
+ end
+
+
+ def show
+ @ad = Ad.find(params[:id])
+ end
+
+ def index
+ @ads = Ad.find(:all)
+ end
+
+ def destory
+ @ad = Ad.find(params[:id])
+ @ad.destory
+ redirect_to '/ads/'
+ end
+
+ private
+ def check_logged_in
+ authenticate_or_request_with_http_basic("Ads") do |username, password|
+ username ="oa414"
+ password = "888888"
+ end
+ end
+
+
+end
+
+### View
+
+ = form_for(@ad, :url => (:action=> create[update])) do |f|
+ XXXXXX f.text_field :name
+ XXXXXX f.text_area :description
+ f.submit "Create"
+
+### Search
+
+ = form_tag "/client_workouts/find" do # form_tag is the form that doesn't have model relation
+ text_fielad_tag :search_string
+ submit_tag "Search"
+
+
+The controller
+
+
+ @client_workouts =ClientWorkouts.find_all_by_client_name(param[:search_string)
+
+ @client_workouts = Client_workouts.find(:all, :conditions => ["client_name = ? OR trainer =?", params[:search_string], param[:search_string]])
+
+The View
+
+ list a form
+
+
+### Validates
+
+
+## View
+
+* render :partial->"new_seat" # render _new_seat
View
146 html.md
@@ -0,0 +1,146 @@
+
+
+
+基本元素
+
+* a
+* q, blockquote(引用)
+* br(换行)
+* hr(水平线)
+* code
+* ul(有序)
+* ol(无序)
+* pre(预格式化文本)
+* p
+
+
+块元素:换行
+内联元素:不换
+
+<>&字符转义
+
+### a
+ <a id="xx">fadfasf</a>
+ <a href="index.html#xx">fadsfd</a>
+ <a target="_blank" href….</a> 在新窗口打开
+
+### img
+ <img src="xxx" alt="fsda" width="34" height="32" > alt 是描述
+
+### Meta
+
+ <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
+
+
+## CSS
+p {
+ backgroud-color: red;
+ border: 1px soild gray; 边框
+ font-family:
+ border-bottom: 下划线
+}
+
+p.green {
+
+}
+
+.green class选择
+
+\#dasf id选择
+
+<p class="green hello"></p> 元素可以有多个class
+### font
+
+* font-size: 12px 140% 1.2em xx-small x-small medium large xx-large
+* color :red
+* font-weight: bold normal
+* font-style: italic
+* text-decoration: underline 下划线
+
+* line-height: 1.6em 行距
+
+
+### font-family
+
+* sans-serif 没有衬线,屏幕上更易读
+* serif 有衬线,一般用于印刷
+* monospace  等宽
+* cuisice 类似手写  一般用于标题
+* fantasy  有装饰的字体,不常见
+
+### color
+* background-color: rgb(204,12,255) rgb(10%, 34%, 3%) ##cc6600
+
+
+### box
+
+内容边上的是补白,边框里面,补白外面的是边界
+
+* background-image: url(xxx)
+
+* 边框
+ - border
+ - border-color
+ - border-width
+ - border-style: soild double ...
+* 补白
+ - padding: 23px; 四周 
+ - padding-left
+
+* 边界
+ - margin: 32px;
+* 内容
+
+### div 与 span
+
+div是块元素  
+
+span是内联元素
+
+### short
+ padding-top: 23px
+
+ padding-left…
+
+ margin也是,不用每个方向都写
+
+ margin  3px, 32px, 32px, 3px
+
+ 按照上右下左的顺序写
+
+ 或者写成两个,上下,左右
+
+ background-color:fda
+
+ background-image: da
+
+ => background: white url(dfasf) repeat-x;
+
+ 字体:
+
+ font:样式-大小-family
+
+
+### 伪类
+
+能定义样式,但不是真的类
+
+a:link
+
+a:visited
+
+a:hover (光标停在上面)
+
+first-child 元素第一个孩子
+
+\#fdsa a.link 嵌套使用伪类和类,改变类里面的伪类元素
+
+
+
+### 漂移
+
+ #amazing {
+ width: 200px; (必须有宽度)
+ float: right;
+ }
+
View
8 ios/cocos-iPhone.md
@@ -0,0 +1,8 @@
+
+
+CCNode是基类
+
+CCSense用于把对象放到场景的对应位置,通常是整个场景的根节点
+
+CCLayer用于接受触摸和加速计输入
+
View
45 ios/game.md
@@ -0,0 +1,45 @@
+## Framework
+
+### MainLoop
+
+### State Manager
+
+The Game state manager is a state machine.It will track the game state and manage the game information. The simplest state mathine is a switch statement:
+
+ swtich (mystate)
+ {
+ case STATE_01:
+ case STATE_02:
+ } 
+
+
+To manage the complex game state, wee will use OOP
+
+ Class GameState
+ {
+ ...
+ }
+
+ class StateManager {
+ void mainloop(){
+ ...
+ }
+ void change(){
+ ...
+ }
+ }
+
+### Graphical Engine
+
+向屏幕绘制的基本度量单位是像素,包含红蓝绿以及Alpha
+
+纹理是一组像素的数据集合
+
+图片只是一个抽象的高层概念,或许一些像素组合在一起就是一张有规律的图片了。
+
+旋转:2D实现的话计算比较大
+
+动画:为了保证帧的连续,二维动画每一帧要放在一个相同的纹理里面,那个纹理就是精灵。2D动画是每次重绘,每一帧都需要美工做好,而3D是通过几何计算生成,存储关键帧坐标即可。
+
+
+
View
33 ios/ios_dev.md
@@ -0,0 +1,33 @@
+## Way
+
+开发iOS程序的途径
+
+* PhoneGap(Use HTML+CSS+JavaScript)
+* Native App (Objective-C)
+* Game (Use Game engine, like cocos2d-iPhone)
+
+## Start
+
+* Programming in Objective-C (4th Edition)
+* Beginning iOS5 devlopment
+* Stanford CS193P
+* Apple Dev Guide & Document
+
+
+## Totur
+
+* 求教iOS开发知识 http://segmentfault.com/q/1010000000095589
+*
+
+
+
+
+
+## Example
+
+* http://www.oschina.net/ios/codingList
+* http://www.cocoachina.com/bbs/thread.php?fid=19
+* http://code4app.com
+* http://d.cocoachina.com/code/
+* http://www.cocoacontrols.com
+* https://github.com/search?language=Objective-C
View
38 ios/memory.md
@@ -0,0 +1,38 @@
+[OBjective-C 内存管理](http://www.cnblogs.com/zilongshanren/archive/2011/08/08/2131236.html)
+
+http://www.cnblogs.com/zhuqil/archive/2011/03/16/1986420.html
+
+
+* 手把手教你ARC——ARC入门和使用 http://www.onevcat.com/2012/06/arc-hand-by-hand/
+
+
+1. alloc, allocWithZone,new(带初始化)
+ 为对象分配内存,retainCount为“1”,并返回此实例
+
+2. release
+ retainCount 减“1”,减到“0”时调用此对象的dealloc方法
+
+3. retain
+ retainCount 加“1”
+
+4. copy,mutableCopy
+ 复制一个实例,retainCount数为“1”,返回此实例。所得到的对象是与其它上下文无关的,独立的对象(干净对象)。
+
+5. autorelease
+ 在当前上下文的AutoreleasePool栈顶的autoreleasePool实例添加此对象,由于它的引入使Objective-C(非GC管理环境)由全手动内存管理上升到半自动化。
+
+
+http://www.cocoachina.com/bbs/read.php?tid=1848
+
+ 举个例子可能更好理解点
+ NSString *pt = [[NSString alloc] initWithString:@"abc"];
+ 上面一段代码会执行以下两个动作
+ 1 在堆上分配一段内存用来存储@"abc" 比如:内存地址为:0X1111 内容为 "abc"
+ 2 在栈上分配一段内存用来存储pt 比如:地址为:0Xaaaa 内容自然为0X1111
+ 下面分别看下assign retain copy
+ assign的情况:NSString *newPt = [pt assing];
+ 此时newPt和pt完全相同 地址都是0Xaaaa 内容为0X1111 即newPt只是pt的别名,对任何一个操作就等于对另一个操作。 因此retainCount不需要增加。
+ retain的情况:NSString *newPt = [pt retain];
+ 此时newPt的地址不再为0Xaaaa,可能为0Xaabb 但是内容依然为0X1111。 因此newPt 和 pt 都可以管理"abc"所在的内存。因此 retainCount需要增加1
+ copy的情况:NSString *newPt = [pt copy];
+ 此时会在堆上重新开辟一段内存存放@"abc" 比如0X1122 内容为@"abc 同时会在栈上为newPt分配空间 比如地址:0Xaacc 内容为0X1122 因此retainCount增加1供newPt来管理0X1122这段内存
View
211 ios/objective-c.md
@@ -0,0 +1,211 @@
+## Forward
+
+Objective C是C语言严格意义上的超集。Obj-C面向对象的特性继承自Smalltalk,基于消息机制而不是常见的对象方法调用,所以和C++,Java等面向对象的方式有很大的区别。
+
+乔布斯被苹果扫地出门后创建的NEXTSTEP公司基于Obj-C搞了一套开发环境,后来被苹果收购之后,NEXTSTEP的人马和技术来到了苹果。原来的NEXTSTEP的框架该叫Cocoa。所以现在Cocoa框架里的东西,名字的前缀都是NS。
+
+## 面向对象
+
+ObjC的实例变量只能通过方法访问。
+
+id类型是ObjC通用的指针类型,定义为一个指向对象的指针,也是方法默认的返回类型。
+
+每一个对象都有一个isa变量指向它的Class,Class本身定义为指向对象的指针,所以isa通常是指:指向对象的指针。
+
+id是可以指向任何对象的。ObjC是同态类型,对象类型也是可以动态绑定的。
+
+## 内存管理
+
+ObjC内存管理有三种形式
+
+* Automatic Reference Counting (ARC)编译器自动计数对象的引用管理内存
+* Manual reference counting 手动管理
+* Garbage collection 垃圾收集。iOS设备不支持。
+
+## 消息传递
+
+ObjC的面向对象继承自SmallTalk,是比较独特的消息传递方式而不是常见的方法调用。消息传递的表达式是:
+
+ [receiver message];
+
+消息接收者是对象,而消息是方法的名称和参数表.ObjC采用 named parameters,或者叫keyword arguments,即列出所有的参数名称和参数。
+
+ [myRectangle setOriginX: 30.0 y: 50.0];
+
+类似于下面的参数表是允许的,但是风格不推荐。
+
+ [myRectangle setOrigin:30.0 :50.0];
+
+ObjC也支持边长参数表
+
+ [receiver makeGroup:group, memberOne, memberTwo, memberThree];
+
+方法调用可以嵌套,同时也可以用`.`操作符来访问可以访问的属性·
+
+## 动态绑定
+
+方法调用和消息传递的区别在于,方法调用在编译的时候混合进代码里,而消息传递在运行的时候才确定
+
+## Catalog
+
+分类可以扩展类。
+
+ @interface ClassName (catalog)
+ @end
+
+
+ @impelement ClassName (catalog)
+ @end
+
+分类不能添加实例变量
+
+Obj-C里面没有共有方法,可以通过定义一个分类,在分类中扩展的方法就是私有的。
+
+
+## Protocol
+
+协议类似于Java中的interface,是多个类共享的一个方法列表。
+
+ @interface ClassName : SuperClass <Protocol>
+
+然后在实现部分完成方法。
+
+多个协议可以用`,`分开。`<protocol1 protocol2>`
+
+
+
+##dot操作符
+
+点操作符是`[]`的语法糖。
+
+
+## 构造函数和析构函数
+
+构造函数要自己显示调用,析构函数`delloc`会在对象销毁的时候自动调用
+
+Obj-C规定在nil对象上调用方法是不执行任何操作,所以释放成员变量后将指针设为nil是一个好主意。
+
+### GC
+
+在垃圾回收环境中不会用到dealloc方法,而是在对象销毁的时候自动调用finalize方法
+
+### Strong 和 Weak
+
+
+
+## property
+
+ @property (getter=getPubStr,setter=setPubStr:,nonatomic, retain) NSString* pubStr;
+
+### assign、retain 或者 copy
+
+用来定义该属性 setter 方法的赋值类型。assign是简单赋值;retain在赋值时会保留传入参数。copy是深拷贝。默认是assign。
+
+assign 就是简单的变量赋值,这种类型一般适用于 基础数据类型 (如:NSInteger)、C数据类型(如:int, float, double, char等)还有 委托(delegate)。
+
+ self.content = paramContent;
+
+使用retain的话,此属性在赋值的时候,先release之前的值,然后再赋新值给属性,引用再加1。说的更彻底一点儿就是它只是指针之间的浅复制,将参数的引用release掉,让属性的引用计数+1.对象还是原先的值,只是引用计数先-1再+1.只是指针的赋值。
+
+ - (void)setContent:(NSString *)paramContent
+ {
+ [paramContent autorelease];
+ self.content = [paramContent retain];
+ }
+
+使用copy与使用retain的区别应该就是,copy是深复制。copy没有增加引用计数,是分配一块新的内存来放置参数值。
+
+ - (void)setContent:(NSString *)paramContent
+ {
+ [paramContent autorelease];
+ self.content = [paramContent copy];
+ }
+
+
+- 使用assign: 对基础数据类型 (NSInteger,CGFloat)和C数据类型(int, float, double, char, 等等)
+- 使用copy: 对NSString
+- 使用retain: 对其他NSObject和其子类
+
+### readwrite,readonly
+设置可供访问级别
+### atomic、nonatomic
+
+atomic是Obj-C使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。
+
+
+### dynamic 和 synthesize
+
+使用dynamic,编译器会期望你为属性手动些存储器方法
+
+默认的存储器方法约定应该是`setVariableName`和`VariableName`
+
+### Xcode 4.4
+
+http://stackoverflow.com/questions/3802851/objective-c-synthesize-property-name-overriding
+
+ @synthesize dummyLabel = _dummyLabel;
+
+ self._dummyLabel is undefined, however _dummyLabel is not.
+
+ You can only use dot syntax for synthesized properties.
+
+ self.dummyLabel //works
+ self._dummyLabel //does not work
+ dummyLabel //does not work
+ _dummyLabel //works
+
+## Class
+
+NSObject是所有类的根类
+
+在头文件定义的都是公共的(方法 or 变量)
+
+在m文件里面定义的都是私有的(方法 or 变量)
+
+
+## Protocol
+
+ @protocol BaseballPlayer
+ -(void)drawHugeSalary;
+ @optional
+ -(void)slideHome;
+ -(void)catchBall;
+ @required
+ -(void)swingBat;
+ @end
+
+因此,一个采用BaseballPlayer协议的类有两个要求实现的方法:-drawHugeSalary和-swingBat,还有3个不可选择实现的方法:slideHome,catchBall和throwBall。
+
+
+
+
+
+### Blocks
+
+### GCD
+
+### KVC KVO
+
+## 宏
+
+小技巧
+
+输出变量值的宏
+
+ #define LOGVAR(var) NSLOG(@"%s: %@", #var, var);
+
+其中#var会自动调用字符串化函数
+
+## Exception
+
+ @try {
+ }
+ @catch (NSException *e) {
+ }
+ @finally {
+ }
+### NSError
+
+## 多线程 
+
+
View
71 java.md
@@ -0,0 +1,71 @@
+# Java 笔记
+
+### Java特点
+
+* cross-platform (JVM的优秀)
+* OOP
+* GC
+* Speed(相对于Python Ruby)
+* 学习资源
+* 强类型,静态
+* Android
+
+### main
+
+ public static void main(String[] args)
+
+### Type
+
+* boolean 与 int不相容
+* primitive:
+ - boolean
+ - char (16)
+ - byte (8)
+ - short (16)
+ - int (32)
+ - long (64)
+ - float (32)
+ - double (64)
+* 初始值
+ - int, char : 0
+ - boolean :false
+ - 引用: null
+* All operate of the Object is refrence
+* ==
+ - 比较基类
+ - 比较引用是否链接到同一个对象
+
+
+### Control Flow
+* for(int type: typeSet) {}
+
+### OO
+* ArrayList<class> myList = new ArrayList<class> ()
+* import
+* extends
+* private delfault protected public (public会被继承,pravite不会)
+
+* the refrence can be the father class e.g. `Animal[1] = new Dog()`, `Animal[1].eat` calls `Dog.eat()`
+* 参数和返回类型也可以用负父类
+* 重载方法 参数和return类型都要相同,而且不能降低权限
+* 抽象类
+ `abstract xxx classname` 不能被new
+* 抽象方法 `public abstract xxx` 没有实体
+* Object Class的方法: equal ,getClass, toString, hashCode
+* 根据引用来判断methon调用而不是Objective类型
+* inferface 接口类似于100%的抽象类
+* public inferface Pet{}
+* public class Dog extends Cannie implements Pet {}
+* heap 里面只有对象,局部变量,方法调用,原始类型,引用都在stack里面,实例变量在对象所属的堆空间上
+* 构造函数 覆盖
+* 构造很熟 super 编译器会给无参数的构造函数加上super,有参数要自己super(arg)
+* this对自身的引用,与super不能同时用
+
+* 静态方法(类方法))
+* static
+* 静态变量
+* final
+
+
+
+
View
5 lua.md
@@ -0,0 +1,5 @@
+
+
+零基础Lua入门的方法与建议
+
+http://www.nowamagic.net/librarys/veda/detail/788
View
6 objective-c.md
@@ -1,6 +0,0 @@
-## Pre
-
-Objective C是C语言严格意义上的超集。Obj-C面向对象的特性继承自Smalltalk,基于消息机制而不是常见的对象方法调用,所以和C++,Java等面向对象的方式有很大的区别。
-
-乔布斯被苹果扫地出门后创建的NEXTSTEP公司基于Obj-C搞了一套开发环境,后来被苹果收购之后,NEXTSTEP的人马和技术来到了苹果。原来的NEXTSTEP的框架该叫Cocoa。所以现在Cocoa框架里的东西,名字的前缀都是NS。
-
View
40 proxy_rb.md
@@ -0,0 +1,40 @@
+让Net::HTTP自动使用代理 [复制链接]
+
+坛主
+
+多币873 威望825 UID106537
+串个门加好友打招呼发消息
+电梯直达1#
+ 车迷 发表于 2011-11-4 15:46:47 |只看该作者 |倒序浏览
+拜和谐的大防火墙所赐,调用微薄,人人等国外克隆网站的api需要用代理,而老外写的第3方lib通常没有考虑代理支持。
+
+一个小技巧,只要这些lib是用Net::HTTP来访问的,那么只要用一段小代码就能自动切换到Net::HTTP:roxy,而无需改动原始代码:
+
+Ruby代码
+#这里从环境变量读取,可以改成从配置文件读取
+if ENV['http_proxy']
+ module Net
+ class << HTTP
+ alias ld_new :new
+
+ def new(address, port = nil)
+ proxy = URI.parse(ENV['http_proxy'])
+ Net::HTTP:roxy(proxy.host, proxy.port, proxy.user, proxy.password).old_new(address, port)
+ end
+ end
+ end
+end
+
+#这里从环境变量读取,可以改成从配置文件读取
+if ENV['http_proxy']
+ module Net
+ class << HTTP
+ alias ld_new :new
+
+ def new(address, port = nil)
+ proxy = URI.parse(ENV['http_proxy'])
+ Net::HTTP:roxy(proxy.host, proxy.port, proxy.user, proxy.password).old_new(address, port)
+ end
+ end
+ end
+end
View
7 sql.md
@@ -0,0 +1,7 @@
+《SQL必知必会》为何称王?
+
+http://www.cn-cuckoo.com/2007/08/12/whats-good-book-80.html
+
+主键
+
+每行记录的标识符,每行记录都也该有非空的、不相同的,不可修改的主键。主键不一定存在。
View
76 sqlite.md
@@ -1,11 +1,83 @@
-## Start
+### introduce
SQLite是一个C语言实现的,开源的,嵌入式的关系型数据库。
### Embedded
-它对数据库的操作集成在操作数据库的程序之中,而不是有一个独立的数据库管理程序。所以你不用像操作MySQL一样一开始要配置服务器啊,管理帐号什么的东西。所有的操作都是通过调用SQLite的
+它对数据库的操作集成在操作数据库的程序之中,而不是有一个独立的数据库管理程序。所以你不用像操作MySQL一样一开始要配置服务器啊,管理帐号什么的东西。所有的操作都是通过调用SQLite的API实现
### install
+### start
+打开/新建数据库
+
+ sqlite3 test.db
+
+新建一张表,有两列,一列是叫id的,类型为integer的主键,一列是叫value的text类型的数据。
+
+ sqlite> create table test (id integer primary key, value text);
+
+插入一些数据
+
+ sqlite> insert into test (id,value) values(1,'fda');
+ sqlite> insert into test (id,value) values(2,'ffdda');
+ sqlite> insert into test (value) values('ffdda');
+ sqlite> insert into test (value) values('no');
+
+看看表是怎么样的
+
+ sqlite> .mode column // 以列模式显示
+ sqlite> .headers on
+ sqlite> select * from test;
+
+
+可以用SQL函数列出最后一行的id
+
+ select last_insert_rowid();
+
+可以添加索引
+
+ sqlite> create index test_idx on test (value);
+ sqlite> create view schema as select * from sqlite_master;
+
+
+
+可以列出索引
+
+
+ sqlite> .indices test
+
+可以查看创建的模式
+
+ sqlite> .schema test
+
+sqlite_master 是数据库系统本身的信息
+
+
+ sqlite> .mode column
+ sqlite> .headers on
+ sqlite> select type, name, tbl_name, sql from sqlite_master order by type;
+ type name tbl_name sql
+ ---------- ---------- ----------
+ index test_idx test CREATE INDEX test_idx on test (value)
+ table test test CREATE TABLE test (id integer primary
+ view schema schema CREATE VIEW schema as select * from s
+
+
+可以输出SQL
+
+ sqlite> .dump
+
+输出之前可以重定向
+
+ sqlite> .output file.sql
+ sqlite> .dump
+ sqlite> .output stdout
+
+
+可以查看当前命令行的设置
+
+
+ .show
+
View
8 tumblr/10-14-a-note-of-start-rails.md
@@ -30,8 +30,9 @@ Python is another popular language, and it's also a popular language to build we
* Rails Framwork is more powerful than Django or ther Python Web Framewrok
* The Ruby's communication also more creative. Rails use the newest technolegy, use them as the default, such as Scss and coffee script.
-![Ruby]()
-### Learning Ruby on Rails is Sample
+![Ruby](http://www.ruby-lang.org/images/logo.gif)![Rails](http://rubyonrails.org/images/rails.png)
+### Learning Ruby on Rails is Simple
+
There a famous image to compare Using Java and Rails to build application
@@ -58,7 +59,7 @@ And for most people whose native English is not English, there native language's
see also [Ruby is not for beginners](http://www.horsesaysinternet.com/code/rails-is-not-for-beginners/)
### How to start Ruby on Rails
-* First, your should have basic skills of computer use. And know some basic of Web devlopment.
+* First, your should have basic skills of computer use. And know some basic of Web devlopment,such as HTML and CSS.
* I really recommand to study Ruby first. In splite of you don't need to write many ruby statement in the begin, you will found Rails use many advantage features of Ruby Language.
@@ -89,6 +90,7 @@ English
* [Rails For Zombies](http://railsforzombies.org)
* [A Curated List of Resources for Ruby and Rails Learning](http://www.learnrubyandrails.com)
* [The Best Way to Learn Ruby on Rails](http://net.tutsplus.com/tutorials/ruby/the-best-way-to-learn-ruby-on-rails/)
+* [Railscast](http://railscasts.com)
---
Please sign in to comment.
Something went wrong with that request. Please try again.