mirror of
https://github.com/wahyd4/wahyd4.github.com.git
synced 2026-08-08 21:05:52 +10:00
Rebuild blog source from GitHub Pages artifact
- 308 posts reverse-extracted from wahyd4.github.com (Hexo 6.3.0 + NexT 8.25) - Hexo project with NexT theme, reading-experience custom styles - publish-post.sh: write post -> hexo build -> PR (master untouched)
This commit is contained in:
+20
@@ -0,0 +1,20 @@
|
||||
# dependencies
|
||||
node_modules/
|
||||
package-lock.json
|
||||
|
||||
# hexo generated output
|
||||
public/
|
||||
.deploy_git/
|
||||
db.json
|
||||
|
||||
# logs
|
||||
*.log
|
||||
|
||||
# os
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# python
|
||||
__pycache__/
|
||||
*.pyc
|
||||
.venv/
|
||||
@@ -0,0 +1,150 @@
|
||||
# =========================================================
|
||||
# NexT 8.25.0 theme config — rebuilt from toozhao.com artifact
|
||||
# =========================================================
|
||||
|
||||
# Scheme
|
||||
scheme: Muse
|
||||
|
||||
# Dark Mode (optimization: enable, auto-follows system)
|
||||
darkmode: true
|
||||
|
||||
# Menu
|
||||
menu:
|
||||
home: / || fa fa-home
|
||||
tags: /tags/ || fa fa-tags
|
||||
categories: /categories/ || fa fa-th
|
||||
archives: /archives/ || fa fa-archive
|
||||
about: /about/ || fa fa-user
|
||||
|
||||
menu_settings:
|
||||
icons: true
|
||||
badges: false
|
||||
|
||||
# Sidebar
|
||||
sidebar:
|
||||
position: left
|
||||
display: post
|
||||
padding: 18
|
||||
offset: 12
|
||||
b2t: true
|
||||
scrollpercent: true
|
||||
|
||||
# Avatar
|
||||
avatar:
|
||||
url: /images/avatar.gif
|
||||
rounded: true
|
||||
rotated: false
|
||||
|
||||
# Site state (posts count etc)
|
||||
site_state: true
|
||||
|
||||
# Social Links
|
||||
social:
|
||||
GitHub: https://github.com/wahyd4 || fab fa-github
|
||||
|
||||
# Creative Commons
|
||||
creative_commons:
|
||||
license: by-nc-sa
|
||||
sidebar: true
|
||||
post: true
|
||||
|
||||
# Code block
|
||||
codeblock:
|
||||
theme:
|
||||
light: default
|
||||
dark: stackoverflow-dark
|
||||
copy_button:
|
||||
enable: true
|
||||
style: mac
|
||||
fold:
|
||||
enable: false
|
||||
|
||||
# Motion
|
||||
motion:
|
||||
enable: true
|
||||
async: false
|
||||
transition:
|
||||
menu_item: fadeInDown
|
||||
post_block: fadeIn
|
||||
post_header: fadeInDown
|
||||
post_body: fadeInDown
|
||||
coll_header: fadeInLeft
|
||||
sidebar: fadeInUp
|
||||
|
||||
# Bookmark
|
||||
bookmark:
|
||||
enable: true
|
||||
color: '#222'
|
||||
save: auto
|
||||
|
||||
# Medium zoom for images
|
||||
mediumzoom: true
|
||||
|
||||
# Reading progress bar
|
||||
reading_progress:
|
||||
enable: true
|
||||
color: '#222'
|
||||
height: 2px
|
||||
|
||||
# Back to top
|
||||
back_to_top:
|
||||
enable: true
|
||||
sidebar: true
|
||||
scrollpercent: true
|
||||
|
||||
# TOC
|
||||
toc:
|
||||
enable: true
|
||||
number: false
|
||||
expand_all: false
|
||||
max_depth: 6
|
||||
|
||||
# Tags on posts
|
||||
tags: true
|
||||
|
||||
# Post navigation (prev/next)
|
||||
post_navigation:
|
||||
home: false
|
||||
|
||||
# Custom style injection
|
||||
custom_file_path:
|
||||
style: source/_data/styles.styl
|
||||
script: source/_data/scripts.js
|
||||
|
||||
# Footer
|
||||
footer:
|
||||
since: 2012
|
||||
powered: true
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Font & reading-experience tuning (微信读书 style)
|
||||
# ---------------------------------------------------------
|
||||
font:
|
||||
enable: true
|
||||
host:
|
||||
global:
|
||||
external: false
|
||||
family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif
|
||||
size: 1.0
|
||||
headings:
|
||||
external: false
|
||||
family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif
|
||||
size: 1.1
|
||||
posts:
|
||||
external: false
|
||||
family: Georgia, "Noto Serif SC", "Source Han Serif SC", "Songti SC", SimSun, serif
|
||||
size: 1.05
|
||||
codes:
|
||||
external: false
|
||||
family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace
|
||||
size: 0.9
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Search (local) — enable for post search
|
||||
# ---------------------------------------------------------
|
||||
local_search:
|
||||
enable: true
|
||||
trigger: auto
|
||||
top_n_per_article: 5
|
||||
unescape: false
|
||||
preload: false
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
# Hexo Configuration
|
||||
## Docs: https://hexo.io/docs/configuration.html
|
||||
|
||||
# Site
|
||||
title: 大染志
|
||||
subtitle: Junv's blog
|
||||
description: 分享编程、运维、生活与思考
|
||||
keywords: junv, wahyd4, blog, toozhao, 大染志
|
||||
author: Junv
|
||||
language: zh-Hans
|
||||
timezone: Australia/Melbourne
|
||||
|
||||
# URL
|
||||
url: https://toozhao.com
|
||||
root: /
|
||||
permalink: :year/:month/:day/:title/
|
||||
permalink_defaults:
|
||||
pretty_urls:
|
||||
trailing_index: false
|
||||
trailing_html: false
|
||||
|
||||
# Directory
|
||||
source_dir: source
|
||||
public_dir: public
|
||||
tag_dir: tags
|
||||
archive_dir: archives
|
||||
category_dir: categories
|
||||
code_dir: downloads/code
|
||||
i18n_dir: :lang
|
||||
skip_render:
|
||||
|
||||
# Writing
|
||||
new_post_name: :title.md
|
||||
default_layout: post
|
||||
titlecase: false
|
||||
external_link:
|
||||
enable: true
|
||||
field: site
|
||||
exclude:
|
||||
filename_case: 0
|
||||
render_drafts: false
|
||||
post_asset_folder: false
|
||||
relative_link: false
|
||||
future: true
|
||||
syntax_highlighter: highlight.js
|
||||
highlight:
|
||||
line_number: true
|
||||
auto_detect: false
|
||||
tab_replace: ''
|
||||
wrap: true
|
||||
hljs: false
|
||||
prismjs:
|
||||
preprocess: true
|
||||
line_number: true
|
||||
tab_replace: ''
|
||||
|
||||
# Home page setting
|
||||
index_generator:
|
||||
path: ''
|
||||
per_page: 10
|
||||
order_by: -date
|
||||
|
||||
# Category & Tag
|
||||
default_category: uncategorized
|
||||
category_map:
|
||||
tag_map:
|
||||
|
||||
# Metadata elements
|
||||
meta_generator: true
|
||||
|
||||
# Date / Time format
|
||||
date_format: YYYY-MM-DD
|
||||
time_format: HH:mm:ss
|
||||
updated_option: mtime
|
||||
|
||||
# Pagination
|
||||
per_page: 10
|
||||
pagination_dir: page
|
||||
|
||||
# Include / Exclude file(s)
|
||||
include:
|
||||
exclude:
|
||||
|
||||
# Extensions
|
||||
theme: next
|
||||
|
||||
# Deployment
|
||||
deploy:
|
||||
type: git
|
||||
repo: https://github.com/wahyd4/wahyd4.github.com.git
|
||||
branch: master
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "hexo-blog",
|
||||
"version": "6.3.0",
|
||||
"private": true,
|
||||
"description": "Toozhao.com blog source (rebuilt from GitHub Pages artifact)",
|
||||
"scripts": {
|
||||
"build": "hexo generate",
|
||||
"clean": "hexo clean",
|
||||
"server": "hexo server",
|
||||
"deploy": "hexo deploy"
|
||||
},
|
||||
"hexo": {
|
||||
"version": "6.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"hexo": "^6.3.0",
|
||||
"hexo-generator-archive": "^1.0.0",
|
||||
"hexo-generator-category": "^1.0.0",
|
||||
"hexo-generator-index": "^2.0.0",
|
||||
"hexo-generator-tag": "^1.0.0",
|
||||
"hexo-renderer-marked": "^6.0.0",
|
||||
"hexo-renderer-stylus": "^2.1.0",
|
||||
"hexo-server": "^3.0.0",
|
||||
"hexo-theme-next": "^8.25.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Extract posts from Hexo-generated static HTML back into markdown.
|
||||
|
||||
Source: wahyd4.github.com (GitHub Pages deploy artifact, Hexo 6.3.0 + NexT 8.25.0)
|
||||
Target: Hexo source/_posts/*.md with front-matter (title/date/tags).
|
||||
"""
|
||||
import re
|
||||
import glob
|
||||
import html as html_mod
|
||||
import os
|
||||
import sys
|
||||
|
||||
from markdownify import markdownify as md
|
||||
|
||||
SRC = os.path.expanduser('~/code/blog/wahyd4.github.com')
|
||||
OUT = os.path.expanduser('~/code/blog/hexo-blog/source/_posts')
|
||||
os.makedirs(OUT, exist_ok=True)
|
||||
|
||||
|
||||
def extract_code_blocks(body: str) -> tuple[str, list[tuple[str, str]]]:
|
||||
"""Extract <figure class="highlight"> and <pre> blocks, replace with placeholders.
|
||||
Returns (body, [(placeholder, fenced_code_block), ...])"""
|
||||
blocks = []
|
||||
|
||||
def repl_figure(m):
|
||||
lang = m.group(1) or ''
|
||||
inner = m.group(2)
|
||||
# get code column text
|
||||
cm = re.search(r'<td class="code">\s*<pre>(.*?)</pre>', inner, re.S)
|
||||
code_raw = cm.group(1) if cm else inner
|
||||
# lines are <span class="line">..</span> separated by <br>
|
||||
lines = re.findall(r'<span class="line">(.*?)</span>', code_raw, re.S)
|
||||
if not lines:
|
||||
lines = code_raw.split('<br>')
|
||||
code = ''.join(html_mod.unescape(l) for l in lines)
|
||||
code = re.sub(r'<[^>]+>', '', code) # safety: strip any stray tags
|
||||
code = code.rstrip('\n')
|
||||
placeholder = f'%%CODEBLOCK{len(blocks)}%%'
|
||||
blocks.append((placeholder, f'```{lang}\n{code}\n```'))
|
||||
return placeholder
|
||||
|
||||
def repl_brushtype_pre(m):
|
||||
lang = (m.group(1) or '').strip()
|
||||
if lang.startswith('brush:'):
|
||||
lang = lang.split(':', 1)[1].split(';')[0].strip()
|
||||
code = m.group(2)
|
||||
code = html_mod.unescape(code)
|
||||
code = code.replace('<br>', '\n')
|
||||
code = re.sub(r'<[^>]+>', '', code)
|
||||
code = code.rstrip('\n')
|
||||
placeholder = f'%%CODEBLOCK{len(blocks)}%%'
|
||||
blocks.append((placeholder, f'```{lang}\n{code}\n```'))
|
||||
return placeholder
|
||||
|
||||
def repl_plain_pre(m):
|
||||
code = m.group(2) or m.group(1)
|
||||
code = html_mod.unescape(code)
|
||||
code = code.replace('<br>', '\n')
|
||||
code = re.sub(r'<[^>]+>', '', code)
|
||||
code = code.rstrip('\n')
|
||||
placeholder = f'%%CODEBLOCK{len(blocks)}%%'
|
||||
blocks.append((placeholder, f'```\n{code}\n```'))
|
||||
return placeholder
|
||||
|
||||
# 1) hexo highlight figure
|
||||
body = re.sub(
|
||||
r'<figure class="highlight\s+([^"]*?)">(.*?)</figure>',
|
||||
repl_figure, body, flags=re.S)
|
||||
# 2) <pre class="brush: lang; ...">
|
||||
body = re.sub(
|
||||
r'<pre class="brush:([^;"]*)[^"]*"(?: title="[^"]*")?>(.*?)</pre>',
|
||||
repl_brushtype_pre, body, flags=re.S)
|
||||
# 3) <pre class="...">...</pre> (no code child)
|
||||
body = re.sub(
|
||||
r'<pre(?![^>]*>.*?</code>)([^>]*)>(.*?)</pre>',
|
||||
repl_plain_pre, body, flags=re.S)
|
||||
# 4) <pre><code>...</code></pre>
|
||||
body = re.sub(
|
||||
r'<pre><code[^>]*>(.*?)</code></pre>',
|
||||
repl_plain_pre, body, flags=re.S)
|
||||
return body, blocks
|
||||
|
||||
|
||||
def restore_code_blocks(md_text: str, blocks: list[tuple[str, str]]) -> str:
|
||||
for placeholder, fenced in blocks:
|
||||
md_text = md_text.replace(placeholder, f'\n\n{fenced}\n\n')
|
||||
return md_text
|
||||
|
||||
|
||||
def extract_post(path: str) -> dict | None:
|
||||
html = open(path, encoding='utf-8', errors='replace').read()
|
||||
|
||||
# title from <h1 class="post-title">
|
||||
m = re.search(r'<h1 class="post-title[^>]*>(.*?)</h1>', html, re.S)
|
||||
if not m:
|
||||
return None
|
||||
title = re.sub(r'<[^>]+>', '', m.group(1)).strip()
|
||||
|
||||
# date from <time ... datetime="...">
|
||||
m = re.search(r'datetime="(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}):\d{2}', html)
|
||||
date = None
|
||||
if m:
|
||||
date = f'{m.group(1)} {m.group(2)}:00'
|
||||
|
||||
# tags
|
||||
tags = []
|
||||
m = re.search(r'<div class="post-tags">(.*?)</div>', html, re.S)
|
||||
if m:
|
||||
tags = re.findall(r'<a href="[^"]*"[^>]*>\s*#\s*(.*?)\s*</a>', m.group(1))
|
||||
tags = [t.strip() for t in tags if t.strip()]
|
||||
|
||||
# body
|
||||
m = re.search(r'<div class="post-body[^>]*>(.*?)<footer class="post-footer">', html, re.S)
|
||||
if not m:
|
||||
return None
|
||||
body = m.group(1)
|
||||
|
||||
body, blocks = extract_code_blocks(body)
|
||||
|
||||
# markdownify
|
||||
md_text = md(
|
||||
body,
|
||||
heading_style='ATX',
|
||||
bullets='-',
|
||||
strong_em_symbol='*',
|
||||
strip=['headerlink'],
|
||||
code_language='',
|
||||
)
|
||||
|
||||
md_text = restore_code_blocks(md_text, blocks)
|
||||
|
||||
# clean up
|
||||
md_text = re.sub(r'\n{3,}', '\n\n', md_text)
|
||||
md_text = md_text.strip() + '\n'
|
||||
|
||||
return {'title': title, 'date': date, 'tags': tags, 'body': md_text}
|
||||
|
||||
|
||||
def slug_from_path(path: str) -> str:
|
||||
return os.path.basename(os.path.dirname(path))
|
||||
|
||||
|
||||
def main():
|
||||
posts = sorted(glob.glob(os.path.join(SRC, '[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/*/index.html')))
|
||||
print(f'found {len(posts)} posts')
|
||||
ok = fail = 0
|
||||
for p in posts:
|
||||
data = extract_post(p)
|
||||
if not data:
|
||||
print('FAIL:', p)
|
||||
fail += 1
|
||||
continue
|
||||
slug = slug_from_path(p)
|
||||
fm = [f'---']
|
||||
fm.append(f'title: "{data["title"].replace(chr(34), chr(39))}"')
|
||||
if data['date']:
|
||||
fm.append(f'date: {data["date"]}')
|
||||
if data['tags']:
|
||||
fm.append('tags: [' + ', '.join(data['tags']) + ']')
|
||||
fm.append('---')
|
||||
fm.append('')
|
||||
content = '\n'.join(fm) + '\n' + data['body']
|
||||
out = os.path.join(OUT, slug + '.md')
|
||||
with open(out, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
ok += 1
|
||||
print(f'OK: {ok}, FAIL: {fail}')
|
||||
# summary
|
||||
total_chars = 0
|
||||
for f in glob.glob(os.path.join(OUT, '*.md')):
|
||||
total_chars += os.path.getsize(f)
|
||||
print(f'total md size: {total_chars/1024:.0f} KB, files: {len(glob.glob(os.path.join(OUT, "*.md")))}')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Executable
+102
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env bash
|
||||
# ============================================================
|
||||
# publish-post.sh — 写博客并发布(Hermes 调用)
|
||||
#
|
||||
# 用法:
|
||||
# publish-post.sh "文章标题" <content.md 文件路径> ["tag1,tag2"] [--date "YYYY-MM-DD HH:MM:SS"]
|
||||
#
|
||||
# 流程:
|
||||
# 1. 把 markdown 写入 hexo-blog/source/_posts/
|
||||
# 2. hexo generate 构建产物
|
||||
# 3. 产物同步到 wahyd4.github.com 工作树的新分支 preview/<slug>
|
||||
# 4. 推送分支 + 创建 PR (base=master) — master 不动,不部署
|
||||
# 5. 输出 PR 链接
|
||||
#
|
||||
# 预览: 用 demo-service 单独上传 public/ 到 demo.junv.cc/blog-preview/
|
||||
# ============================================================
|
||||
set -euo pipefail
|
||||
|
||||
TITLE="$1"
|
||||
CONTENT_FILE="$2"
|
||||
TAGS="${3:-}"
|
||||
DATE_ARG="${4:-}"
|
||||
|
||||
BLOG_DIR="$HOME/code/blog/hexo-blog"
|
||||
POSTS_DIR="$BLOG_DIR/source/_posts"
|
||||
PROD_DIR="$HOME/code/blog/wahyd4.github.com"
|
||||
REPO="wahyd4/wahyd4.github.com"
|
||||
|
||||
# --- slug 生成(python 处理中文/特殊字符)---
|
||||
slug="$(python3 -c "
|
||||
import sys, re
|
||||
title = sys.argv[1]
|
||||
s = title.lower()
|
||||
s = re.sub(r'[^a-z0-9\u4e00-\u9fff]+', '-', s).strip('-')
|
||||
print(s[:80] or 'post')" "$TITLE")"
|
||||
# 避免与现有 slug 冲突
|
||||
n=2
|
||||
base="$slug"
|
||||
while [ -f "$POSTS_DIR/$slug.md" ]; do
|
||||
slug="${base}-${n}"
|
||||
n=$((n+1))
|
||||
done
|
||||
|
||||
# --- 生成 front-matter ---
|
||||
if [ -n "$DATE_ARG" ]; then
|
||||
DATE_LINE="date: $DATE_ARG"
|
||||
else
|
||||
DATE_LINE="date: $(date '+%Y-%m-%d %H:%M:%S')"
|
||||
fi
|
||||
|
||||
{
|
||||
echo "---"
|
||||
echo "title: \"$TITLE\""
|
||||
echo "$DATE_LINE"
|
||||
if [ -n "$TAGS" ]; then
|
||||
echo "tags: [$TAGS]"
|
||||
fi
|
||||
echo "---"
|
||||
echo ""
|
||||
cat "$CONTENT_FILE"
|
||||
} > "$POSTS_DIR/$slug.md"
|
||||
|
||||
echo "✅ 已写入 $POSTS_DIR/$slug.md"
|
||||
|
||||
# --- 构建 ---
|
||||
cd "$BLOG_DIR"
|
||||
npx hexo clean >/dev/null 2>&1 || true
|
||||
npx hexo generate 2>&1 | tail -1
|
||||
|
||||
# --- 同步产物到 wahyd4.github.com 分支 ---
|
||||
BRANCH="preview/${slug}"
|
||||
cd "$PROD_DIR"
|
||||
git fetch origin --quiet
|
||||
git checkout -B "$BRANCH" origin/master --quiet
|
||||
|
||||
# 清理旧产物(除 .git),再拷贝新产物
|
||||
find . -path ./.git -prune -o -type f -print0 | xargs -0 rm -f 2>/dev/null || true
|
||||
find . -path ./.git -prune -o -type d -empty -print0 | xargs -0 rmdir 2>/dev/null || true
|
||||
cp -r "$BLOG_DIR/public/." .
|
||||
|
||||
git add -A
|
||||
if git diff --cached --quiet; then
|
||||
echo "⚠️ 产物无变化,跳过提交"
|
||||
else
|
||||
git -c user.name="Hermes Bot" -c user.email="hermes@junv.cc" commit -m "Site updated: $(date '+%Y-%m-%d %H:%M:%S') — $TITLE" --quiet
|
||||
git push -u origin "$BRANCH" --quiet 2>&1 | tail -1 || true
|
||||
fi
|
||||
|
||||
# --- 创建 PR ---
|
||||
EXISTING_PR="$(gh pr list --repo "$REPO" --head "$BRANCH" --json number --jq '.[0].number' 2>/dev/null || true)"
|
||||
if [ -n "$EXISTING_PR" ]; then
|
||||
echo "PR 已存在: https://github.com/$REPO/pull/$EXISTING_PR"
|
||||
else
|
||||
PR_URL="$(gh pr create --repo "$REPO" --base master --head "$BRANCH" \
|
||||
--title "📝 新博客: $TITLE" \
|
||||
--body "自动发布:**$TITLE**
|
||||
|
||||
- 源码: \`source/_posts/$slug.md\`
|
||||
- 合并后自动上线 toozhao.com
|
||||
- 请 review 后 merge" 2>&1)"
|
||||
echo "PR: $PR_URL"
|
||||
fi
|
||||
@@ -0,0 +1 @@
|
||||
toozhao.com
|
||||
@@ -0,0 +1,30 @@
|
||||
// Custom JS injected by NexT custom_file_path.script
|
||||
// (kept minimal — reserved for future enhancements)
|
||||
(function () {
|
||||
'use strict';
|
||||
// Reading progress is handled by NexT's built-in component.
|
||||
// Font-size adjuster for accessibility (A / A- / A+)
|
||||
function createFontSizeControl() {
|
||||
var postBody = document.querySelector('.post-body');
|
||||
if (!postBody) return;
|
||||
var bar = document.createElement('div');
|
||||
bar.className = 'font-size-control';
|
||||
bar.style.cssText = 'position:fixed;right:18px;bottom:90px;z-index:1000;background:rgba(0,0,0,0.65);color:#fff;border-radius:20px;padding:6px 4px;display:flex;flex-direction:column;gap:2px;user-select:none;';
|
||||
var labels = [['A-', -1], ['A', 0], ['A+', 1]];
|
||||
var current = 1.0;
|
||||
labels.forEach(function (item) {
|
||||
var btn = document.createElement('button');
|
||||
btn.textContent = item[0];
|
||||
btn.style.cssText = 'background:none;border:none;color:#fff;font-size:13px;cursor:pointer;padding:3px 8px;opacity:0.85;';
|
||||
btn.title = item[0] === 'A-' ? '减小字号' : item[0] === 'A+' ? '增大字号' : '恢复默认';
|
||||
btn.addEventListener('click', function () {
|
||||
if (item[1] === 0) current = 1.0;
|
||||
else current = Math.min(1.4, Math.max(0.8, current + item[1] * 0.1));
|
||||
postBody.style.fontSize = current + 'em';
|
||||
});
|
||||
bar.appendChild(btn);
|
||||
});
|
||||
document.body.appendChild(bar);
|
||||
}
|
||||
document.addEventListener('DOMContentLoaded', createFontSizeControl);
|
||||
})();
|
||||
@@ -0,0 +1,161 @@
|
||||
// =========================================================
|
||||
// Custom styles — reading experience (微信读书 style)
|
||||
// injected by NexT custom_file_path.style
|
||||
// =========================================================
|
||||
|
||||
// Reading width & typography
|
||||
.post-body {
|
||||
font-size: 1.05em;
|
||||
line-height: 1.9;
|
||||
letter-spacing: 0.02em;
|
||||
color: #333;
|
||||
|
||||
p {
|
||||
margin: 1.1em 0;
|
||||
text-align: justify;
|
||||
text-justify: inter-ideograph;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.4;
|
||||
margin-top: 1.6em;
|
||||
margin-bottom: 0.8em;
|
||||
font-weight: 600;
|
||||
color: #222;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 4px;
|
||||
height: 0.9em;
|
||||
background: #4a90d9;
|
||||
border-radius: 2px;
|
||||
margin-right: 10px;
|
||||
vertical-align: -0.08em;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
|
||||
margin: 0.6em auto;
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 4px solid #4a90d9;
|
||||
background: rgba(74, 144, 217, 0.06);
|
||||
margin: 1.4em 0;
|
||||
padding: 0.8em 1.2em;
|
||||
border-radius: 0 8px 8px 0;
|
||||
color: #555;
|
||||
|
||||
p { margin: 0.4em 0; }
|
||||
}
|
||||
|
||||
a {
|
||||
color: #2d6cdf;
|
||||
border-bottom: 1px solid rgba(45, 108, 223, 0.3);
|
||||
transition: color 0.2s, border-color 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: #1a4fae;
|
||||
border-bottom-color: #1a4fae;
|
||||
}
|
||||
}
|
||||
|
||||
code {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
border-radius: 4px;
|
||||
padding: 2px 6px;
|
||||
font-size: 0.9em;
|
||||
color: #c7254e;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
margin: 1.2em auto;
|
||||
font-size: 0.95em;
|
||||
|
||||
th, td {
|
||||
border: 1px solid #ddd;
|
||||
padding: 8px 14px;
|
||||
}
|
||||
|
||||
th {
|
||||
background: #f5f7fa;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
tr:nth-child(even) { background: #fafbfc; }
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
padding-left: 1.6em;
|
||||
margin: 0.8em 0;
|
||||
|
||||
li { margin: 0.35em 0; }
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
border-top: 1px dashed #ccc;
|
||||
margin: 2em auto;
|
||||
width: 60%;
|
||||
}
|
||||
}
|
||||
|
||||
// Dark mode adjustments
|
||||
.darkmode {
|
||||
.post-body {
|
||||
color: #c8cdd3;
|
||||
|
||||
h1, h2, h3, h4, h5, h6 { color: #e8eaed; }
|
||||
|
||||
blockquote {
|
||||
background: rgba(74, 144, 217, 0.1);
|
||||
color: #9aa5b1;
|
||||
}
|
||||
|
||||
code {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
color: #e88388;
|
||||
}
|
||||
|
||||
table {
|
||||
th, td { border-color: #3a3f45; }
|
||||
th { background: #2d3238; }
|
||||
tr:nth-child(even) { background: #262a2f; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Post title
|
||||
.posts-expand .post-title, .post-block .post-title {
|
||||
font-size: 1.7em;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.01em;
|
||||
}
|
||||
|
||||
// Post meta
|
||||
.post-meta {
|
||||
color: #999;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
// Main content container — comfortable reading width
|
||||
.post-block, .posts-expand .post-block {
|
||||
max-width: 760px;
|
||||
}
|
||||
|
||||
// Reading progress bar top
|
||||
// (NexT reading_progress handles it; nothing extra needed)
|
||||
|
||||
// Smooth scroll
|
||||
html { scroll-behavior: smooth; }
|
||||
|
||||
// Selection color
|
||||
::selection {
|
||||
background: rgba(74, 144, 217, 0.25);
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
title: "web 开发者必备的几款google chrome app"
|
||||
date: 2011-03-21 00:00:00
|
||||
tags: [插件, chrome, google, app]
|
||||
---
|
||||
|
||||
> 博客还是要继续的,只是鄙人有点懒惰,还有点懈怠,而且有时候也是真的不晓得该写些什么好。今天还是分享好东西,google chrome 浏览器的app应用,不过这次是针对web 开发人员或者相关童鞋的,很不错的哦!
|
||||
|
||||
[](/images/2011/03/chrome-new-logo_conew1.jpg)
|
||||
|
||||
## [Firebug Lite for Google Chrome](https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench)
|
||||
|
||||
这个插件大家应该很熟悉吧,最初是在firefox上的,也是因为这个可能不少童鞋选择使用firefox吧,不过现在firebug 也出chrome版本的了,在浏览器里面调试网页和web应用的童鞋有福了,其实我个人倒也觉得google自己自带的开发者工具也已经很强大了。不过还是萝卜白菜各有所爱吧。 起功能就不用我具体说明了吧!
|
||||
|
||||
## [Eye Dropper](https://chrome.google.com/webstore/detail/hmdcmlfkchdmnmnmheododdhjedfccka)
|
||||
|
||||
这是一个很小巧的网页拾色工具,使用它你就可以获得任何网页任何图片任何区域的颜色,我个人觉得这个很方便吧。值得一用。
|
||||
|
||||
## [**Web Developer**](https://chrome.google.com/webstore/detail/bfbameneiokkgbdmiekhjnmfkcnldhhm)
|
||||
|
||||
这样一个插件不知道各位哦有没有使用过啊,我还是稍微详细得说一下吧(天哪,这个功能太多太多了,我觉得比神马付费的开发工具都强太多了,功能都多到我都说不清了。)
|
||||
|
||||
> - 可以控制和分析CSS,你可以选择编辑或者查看css,以及屏蔽掉所有的CSS 属性。
|
||||
> - 关于表单form详细的应用,你可以将表单的提交方法在GET和POST间切换,总之关于表单的还有很多功能,各位自己试用吧。
|
||||
> - 关于图像,太强大了,可以查到网页所有图片的路径(在网页不允许你下载图片的界面是不是很爽呢?哈哈),可以屏蔽背景图片,显示图片的属性,隐藏所有的图片等等。
|
||||
> - 信息功能,你可以查看网页的很多信息,比如所有链接去详情,以及各个元素所处的选择器内,查看网页所有的javascript
|
||||
> - 同样可以实现网页拾色功能,已经为图片或者某个页面曲面测量大小。
|
||||
> - 可以随意设置网页显示的大小,这个功能可以模拟某些固定的页面显示,以适应不同分辨率的显示器
|
||||
> - 还可以Validate html 、css、feed等等,功能
|
||||
|
||||
本同学现在越来越觉得它太强大了。强烈严重推荐各位同学去使用一下。
|
||||
|
||||
[](/images/2011/03/2011-03-21_13-39-04_conew1.jpg)
|
||||
@@ -0,0 +1,31 @@
|
||||
---
|
||||
title: "免费VPN推荐:173VPN"
|
||||
date: 2011-01-19 00:00:00
|
||||
tags: [下载, 免费, vpn]
|
||||
---
|
||||
|
||||
> 前面我们推荐一款服务[免费VPN(Tenacy)](http://www.junv.info/734.html),我今天偶然发现大家对于这个vpn的需求还是挺大的,于是决定再给大家推荐一款可以使用的免费的VPN—173VPN,当然和我们以前的一样,本身173vpn也不是完全免费,只是可以使用免费的服务,如果我们只是浏览facebook,twitter这些还是足够了,但是如果看youtube这种大流量的访问还是不太好。
|
||||
|
||||
[](/images/2011/01/1-19-1.jpg)如图所示为软件界面
|
||||
|
||||
这款VPN在国内还是比较好的VPN提供商,因为它有很多的服务器,不管是国内,还是国外。首先你在登录的时候你可以选择联通或者电信的服务器登录到173VPN的服务器端,一获得更快的连接。然后就是输入账号和密码,如果你买了付费的账号当然是用付费的,但是我们这里使用免费的服务。账号和密码都可以在173vpn查到。这里就提供给大家。
|
||||
|
||||
> **账号:173vpncom**
|
||||
>
|
||||
> **密码:173vpncom**
|
||||
|
||||
登录成功之后,你将看到如下界面,这里就可以选择你需要的VPN服务器啦,如果你是浏览facebook,twitter,等美国网站,最好的就是选择美国西部海岸的服务器一获得最快速度,如果你是想到台服或者玩韩国的游戏,那么你就分别选择台湾和韩国的服务器。在你选择服务器之后,点击测速即可测试连接的速度,如果速度在200-300多之间,即为比较好的。
|
||||
|
||||
[](/images/2011/01/1-19-2_conew1.jpg)点击连接,成功之后即可最小化该软件,开始你的免费VPN之旅了。
|
||||
|
||||
你还需要注意以下几点:
|
||||
|
||||
1. 当你使用VPN访问的网站流量很大的,它会提示你超过了最大的限制,如果继续超过300秒程序会中断你的VPN连接。
|
||||
2. 使用免费的VPN连接,达到20分钟,程序会自动断开,这时候需要你手动再次连接。(毕竟是免费的,大概也不要期望太高)
|
||||
3. 本软件不需要安装,下载后将包内的两个文件解压到一个文件夹,点击.exe文件即可运行。
|
||||
|
||||
当然你也可以购买173VPN的付费账号。
|
||||
|
||||
总的来说,这款VPN还是挺不错的,我使用了很久!只是有时候可以会出现免费账号用户数饱和的情况,这时候就只能等啦!
|
||||
|
||||
**软件下载:[官方下载](http://www.173vpn.com/173vpn.rar)**
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "郁闷"
|
||||
permalink: /2009/04/02/郁闷/
|
||||
date: 2009-04-02 15:12:00
|
||||
---
|
||||
|
||||
狗日的高考查视力的,把老子的视力弄错老,郁闷!狗日的!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "郁闷"
|
||||
permalink: /2009/06/19/郁闷/
|
||||
date: 2009-06-19 23:05:00
|
||||
---
|
||||
|
||||
狗日的才郁闷哦,晓得朗门一打使命召唤4脑壳就痛就想吐!好恼火哦!又想耍人有遭不住!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "好怪!"
|
||||
permalink: /2009/07/04/好怪!/
|
||||
date: 2009-07-04 22:56:00
|
||||
---
|
||||
|
||||
真的好怪这个世界,有些人想让她来实我她偏不,有些人想让她不来实我,她偏要!难得找到一个我想来时她她也想来时我的哦!希望她不要来的太晚了!
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "好怪!"
|
||||
permalink: /2009/07/22/好怪!/
|
||||
date: 2009-07-22 19:33:00
|
||||
---
|
||||
|
||||
真的好怪这个世界,有些人想让她来实我她偏不,有些人想让她不来实我,她偏要!难得找到一个我想来时她她也想来时我的哦!希望她不要来的太晚了!
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
title: "2010暑假看过的电影"
|
||||
date: 2010-07-28 00:26:00
|
||||
---
|
||||
|
||||
霸王
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: "2012 Review"
|
||||
date: 2012-12-31 06:49:00
|
||||
---
|
||||
|
||||

|
||||
2012应该是我人生到目前为止成长最大的一年吧,也是因为这算是我第一年差不多脱离学校走向社会过度的一年吧。
|
||||
对于生活方面来说,最大的感触就是:想象中的生活、社会没有这么复杂啊,是我自己以前想得太简单了。抛开复杂不谈,让我在为人处事方面也学到很多。我给自己的分析就是我可能说话太直接了,很多时候没有考虑到其他人的感受,碰到一些不太好的事,太想去出头为大家“伸张正义了”,却忘了自己只是一只小小鸟。所有在新的一年,我需要更多地倾听,吸收其他人做事方面好的地方,让自己成长,沉淀。
|
||||
|
||||
11月新到了公司,在Jeff 要求下,开始学习使用Ruby on rails 在进行开发,这门语言他的魅力深深吸引了我,也许是和Java 进行比较,它看起来是那么得特殊,这个框架太强大了,可以帮我干很多重复性的工作,他的智能可以让我直接使用很多语法来进行相关操作。它的简洁喝高效是Java所不能比的。但是我对Ruby 目前还没有形成很系统的只是掌握,这方面希望在2013年能够深入去学习Ruby语言。
|
||||
|
||||
进到Thoughtworks第一次被企业文化所震撼,是听李力严讲公司的 3P,那是在厨房吃水果的时候,他给我们聊Socail justice。讲到公司在非洲为方便普通平名鉴别假药,而做的一个可以扫描药品的信息,并返回鉴定结果的应用的时候。我被深深震撼了,我的确是第一次听到有公司会无私得去做这些事。在之后的时间里,不断地了解到公司的一些信息,被这个公司的文化深深吸引,被这群可爱的人吸引。
|
||||
|
||||
进到公司才发现自己真的很菜,我会的可能只能说可以简单实现一些代码,但是这些代码的质量我是保证不了的,也没有考虑代码的重构等等。到公司学到很多敏捷方面的实践。但是自己在实践这些的时候做得不够好,我还是会本能地想着尽快实现功能,而会忽略先写测试的重要性。还有个感受就是觉得自己看的书太少太少了。不少东西其他同事讲的时候,我可能没看过,甚至没有听过。这方面希望明年可以多读一点书。
|
||||
|
||||
进了公司,现在也听了其他同事很多的Session,相比我自己确实不好意思站在大家面前去分享,也许这真的是一种胆小。我还需要多多克服。多多分享,to be social.
|
||||
|
||||
其实很多的感受我已经在思维导向图里面说得很清楚了,这里不想再赘述了。2012 我们经历了“世界末日”,2013未来还需要我一步一步去创造。希望自己多多努力,交好运吧。
|
||||
|
||||
Fighting…
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "2013 目标"
|
||||
date: 2013-01-04 01:17:00
|
||||
---
|
||||
|
||||

|
||||
|
||||
我会努力去实现这些目标,这一年是我真正工作的第一年,希望可以可以快速成长,做一个可以让其他人信任、依赖的人。
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: "那些刀光剑影的日子"
|
||||
date: 2010-09-21 00:00:00
|
||||
---
|
||||
|
||||
记得多少年前的小学时代,冒着被老师,被家长骂的危险也要悄悄到网吧玩CS的日子真的渐渐逝去,邀上几个好友血拼是何等的痛快,在那个天真的年代就开始了“血腥”的杀戮。随着时间的消逝,不管现在游戏有多少,无论腾讯的穿越火线有多火,电脑上永远都不会少了反恐精英的影子,经典就是经典,无论多少年华,无论多少的竞争,都不可能磨灭它在我们这个年代出生的人心中的位置。
|
||||
|
||||
CS最早是由Valve Software公司从1999年6月19日开始发行,从那时候开始CS的神话就不曾抹灭过!
|
||||
|
||||
**人物简介:**\*\* \*\*
|
||||
|
||||
反恐精英方(CT)
|
||||
|
||||
ST-6【美国海豹突击队第六分队】
|
||||
|
||||
[](/images/2010/09/Seal1.jpg)
|
||||
|
||||
美国著名特种部队,队员训练素质高,作战能力强,得到世界各国认可。
|
||||
|
||||
GSG9【德国边境防御大队第九小队】
|
||||
|
||||
[](/images/2010/09/Gsg9.jpg)原本是奥运会保安小队,逐渐发展壮大成为世界一流的境防部队。
|
||||
|
||||
SAS【英国皇家空降特勤队】
|
||||
|
||||
[](/images/2010/09/Sas.jpg)
|
||||
|
||||
世界著名的反恐部队,原本只执行间谍任务,后来扩大到全欧洲的恐怖事件。
|
||||
|
||||
GIGN【法国宪兵干预队】
|
||||
|
||||
[](/images/2010/09/Gign1.jpg)
|
||||
|
||||
法国动乱时期建立,在没有军队的情况下干预队会率先镇压民众。
|
||||
|
||||
恐怖分子方(T)
|
||||
|
||||
凤凰战士【凤凰国际特种组织】
|
||||
|
||||
[](/images/2010/09/Phoenix1.jpg)
|
||||
|
||||
曾制造世界震惊的“凤凰炸弹事件”,现正被全世界通缉
|
||||
|
||||
L337克鲁尔【代号L337】
|
||||
|
||||
[](/images/2010/09/L3371.jpg)
|
||||
|
||||
亚洲精英恐怖分子集体,队员枪法高超配合默契,令人闻风丧胆。
|
||||
|
||||
北极复仇者【瑞典北极特战队】
|
||||
|
||||
[](/images/2010/09/Arctic.jpg)
|
||||
|
||||
欧洲著名恐怖组织,曾策划多起大型爆炸事件
|
||||
|
||||
蝰蛇【狂蟒游击队】
|
||||
|
||||
[")](/images/2010/09/Guerilla-2.jpg)
|
||||
|
||||
东南亚经常出没的恐怖分子,手段残忍暴力,为达到目标不惜消灭亲友
|
||||
|
||||
CS是我们这代人中的神话,是永恒的经典,无论是人物系统,还是武器系统,都是在那个时候甚至到如今都是那样的出色,程亮枪生的金属光泽,棱角分明,轮廓清晰的枪身构造还有那枪口喷发出的火焰! 这些都是我们最珍贵的记忆!
|
||||
|
||||
[](/images/2010/09/d5cdbdb46aee81308bd4b29b.jpg)
|
||||
|
||||
[](/images/2010/09/3442157490195162000.jpg)
|
||||
|
||||
[](/images/2010/09/1e3ae5dda13222ff76c63827.jpg)
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: "360抢占桌面又一力作——360安全桌面"
|
||||
date: 2011-03-04 00:00:00
|
||||
tags: [下载, 免费, 360, 桌面软件]
|
||||
---
|
||||
|
||||
> 话说笔者已经没有没有介绍关于软件相关的东西了,今天恰好在转某网站的时候发现这样一款软件——360安全桌面。我一下子就变得很精神了,想到了360的安全卫士。我想着也许就是360占领各位同学的桌面的又一法宝吧。我试用了,还不错哦,下面请听我慢慢道来。
|
||||
|
||||
[](/images/2011/03/20110304-1_conew1.jpg)
|
||||
|
||||
经过试用我觉得360安全桌面的定位或者说是总体的功能就是整合我们平时生活中最爱使用的各种东西或者网站、软件,让各位同学可以更加方便、快捷得做我们喜欢的事。360安全桌面还允许大家在其桌面上开发自己的应用,可以这样说吧,360安全桌面最终想达到的效果就是成为操作系统之上的操作系统。
|
||||
|
||||
[](/images/2011/03/20110304-2_conew1.jpg)如图为360安全管家运行界面。
|
||||
|
||||
**它的主要功能有**:
|
||||
|
||||
- 在其桌面上集成了大家可能是最感兴趣,最喜欢用的一些应用,当然也包括奇虎公司自己的应用比如说360浏览器、360安全卫士。
|
||||
- 将互联网几个大家使用最多的类别的网站地址或者软件集成在了桌面上。这样大家就不用再一个一个得输入地址去进入网站,而是直接可以通过360桌面直接进入,而且可以很轻松同时进入几个不同的网站。而不用输入几个地址。
|
||||
- 有一个可以随时随地截图的小功能,只有你的360安全桌面是运行的就可以轻松截图。
|
||||
- 360安全桌面可以停靠在电脑屏幕的上下左右四个不同地方的任何一个位置,很方便。
|
||||
- 可以直接在360安全桌面里面关闭你想要关闭的软件,而不用再去打开任务管理器。
|
||||
- 可以将你电脑上安装的软件加入到常用的某个类别里面去,方便使用。
|
||||
- 当然也还可以切换壁纸。
|
||||
- 支持开机自启动。
|
||||
|
||||
总之,这个360安全桌面还是给人耳目一新的感觉,但是毕竟这个桌面软件还是预览版本,还有很多不足和完善的地方,里面的应用也不是很多。希望不久之后360安全桌面里面可以有更多的开发者开发的实用的、有趣的、好玩的应用吧。
|
||||
|
||||
> 下载地址:[官方下载](http://down.360safe.com/zhuomian/setup.exe) [【离线安装包】](http://down.360safe.com/zhuomian/zmsetup.exe "下载360安全桌面离线安装包") [网盘下载](http://u.115.com/file/f1320b6230)
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: "3D flash抽签程序"
|
||||
date: 2010-12-06 00:00:00
|
||||
tags: [下载, 免费, flash, 抽签]
|
||||
---
|
||||
|
||||
昨天在中国交互设计大赛上看到这个作品3D抽签程序,我试用了感觉很酷,所以就分享给大家,并提供下载吧。
|
||||
|
||||
下面就详细说说这个软件:
|
||||
|
||||
[](/images/2010/12/s.jpg)
|
||||
|
||||
如图所示是软件运行的样子,点击运行3Drandom.swf 即可。你可以用flash player来使用这个软件,也可以用类似于QQ影音这样的播放器来使用,或者使用浏览器打开这个程序都是可以的。
|
||||
|
||||
这个程序实现的是一个抽签效果,所有参与抽签的姓名会在球面滚动,当你按下**空格键**是则会选出被抽中的人,然后**再按下空格键取消**,如此往复则可以多次运行程序,
|
||||
|
||||
更有意思的是,作者制作的这个程序还实现了3D版本,在程序运行时你可以点击**鼠标左键**,即可进入3D模式,不过此模式下你需要佩戴红绿(或红蓝)3D眼镜使用,才可以看到效果。如下图所示:
|
||||
|
||||
最重要的一点:如何添加被抽签人名单?
|
||||
|
||||
其实这个已经有作者制作得很简单了,**只要你将想要添加的人的名字添加到一个文本文档里面就可以了(既可以是中文,也可是英文哦)。并命名为 name.txt**就好了。
|
||||
|
||||
本质来说这个效果有点类似于wordpress 3D标签插件效果,不过这个软件的防锯齿功能做的不是很好,希望以后可以看到更好的版本出现。
|
||||
|
||||
这个程序由一大一学生设计是不是很牛呢。
|
||||
|
||||
免费下载地址:[点我下载](http://u.115.com/file/f154b19d8e)
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: "3rd week in TWU"
|
||||
date: 2013-09-22 22:34:00
|
||||
tags: [印度]
|
||||
---
|
||||
|
||||
这个系列的感受都是我在印度参加TWU的所有感受,感受来自我,难免比较主观,当然我也尽可能的表达我所观察到的客观的东西,第三周,基本上是我最累的一周,这周有忙项目的事情,有忙计划出去玩的事情,也有忙小session的事情,几天晚上都是凌晨1点才睡,所有导致这一周整体来说,状态不太好。当然还是有不少感受的。
|
||||
|
||||
##### 疲惫
|
||||
|
||||
首先说疲惫吧,为什么会疲惫,当然原因是多方面的,一方面TWU 的安排还是比较满的,早上7点办起床,吃早饭,8点坐上车到HOTEL,开始一天的培训和工作,基本上晚上7点到7点半下班。上午,下午分别有Tea Time可以休息,不过这一周我没有在Tea Time休息,事情比较多。一方面我们还有P3 case study 需要我们花些时间在上面,还有如同我之前说的,因为我自己和其他几个同学在计划周末外出游玩的事情,也花了不少时间,还有我发现Pair 是相当消耗体力和脑力的,特别是当Pair 高度集中,并且Pair之间有一些能力差异的时候,花在解释上的时间会不少。不过经过周末的休整,状态好了不少。而且想到接下来是倒数第二周了,开始变得期待回国了。
|
||||
|
||||
#####项目改进
|
||||
|
||||
上一周也提到,经过第一个Release的失败的经验教训后,我们项目组本身也在不断的完善改进自己,项目组给自己提了不好action,来对团队进行流程上的规划,还有有一定作用,不过这个东西也产生了一个负面影响,那就是我们决定在Sign up story之前不做假设,不盲目开始开发story,这导致本来就只有一周的release,我们丢掉了不少时间来完成story,我们利用那段时间修改了一些release 1的story的bug,又交付了一些。不好的地方就是,我们星期五才sign up story,这一周星期二又要进行release 2 的show case,也就是我们只有不到两天的时间进行开发,测试,还不包括这之间一些session 和class 会占用我们一些时间。
|
||||
此外,也许因为时间的关系,上周星期五,QA希望我完成一个story,但是那个story里面还有一个很重要的点,是没有确定的。 QA希望我先做确定的点,后面再来改,但是我拒绝了,因为不确定的那点就是这个story中相对比较复杂的一点,而且我也认为这样做assumption容易导致项目返工,最终没有接受那个story。今天在和一个同学pair的时候,又发生一件让我很纠结的事情,我发现这个story之前的部分,很多地方都没有测试,而且我们今天的时间和任务很紧,当我们希望在这个基础上添加新的功能的时候,我的pair告诉我,他认为我们现在应该尽快完成现在的这个story,测试可以后面来写,我很疑惑的望着他。 是的我知道,我们小组中,有些同学的目标不一样,更何况今天是我们的show case之前的最后一天,想尽快story 是对的,但是保证质量也是对的。最终在大部分地方,我们采用了测试驱动开发,有小部分地方因为需要做spike的时候,TDD做得不好。代码也没有进行重构,时间已经来到了下午7点。
|
||||
其实这个时候我是很纠结的,一方面我自己在这次TWU中,希望聚焦好的代码质量,另外一方面我们身处在团队之中,团队成员的coding能力不一致,更何况我们面临的是很零碎的工作时间,当然也是很紧的工作时间,我们必须从中进行取舍,这算是我在印度TWU面临的比较大的困惑了。
|
||||
|
||||
##### 关于P3
|
||||
|
||||
来之前我们就听说了P3在如今的TWU的重要性,还有也听说了我们中国的童鞋大部分对这方面不太感冒,这次来,我也算颇有感触。我们中国的同学在这方面的确表现得不是很好,首先,讲话的流畅性是个很大的挑战,其实我还是觉得有文化的因素在里面,感觉我们没有特别强烈的愿望想表达自己的意见。当然在P3的session上表现得不那么好,并不代表我们什么都没做,就我自己而言,在两次P3 case stuudy 中,我都和电话那头的Thoughtworks同时,讲述我们中国的情况,介绍了我曾经干的类似的事情。我承认我可以做得更好。
|
||||
|
||||
##### 关于积极参加项目管理的工作
|
||||
|
||||
参加这次TWU,我在参加项目管理以及与客户沟通方面,我是有不少期望的,但是事实说明到目前位置我做的并不好,一个事实就是,今天我和我的pair去跟PO确定细节,PO问我叫什么名字,说没有在之前的会议里面听到太多发言,我才意识到我在这方面做得多么不好,其实上周Coach JK也给我提过这一点。我的“借口”就是,项目里面不知道什么时候突然就冒出两个在这方面特别主要的童鞋,做了很多这方面的事情,我不太好再去插手这方面的工作,此外我觉得跟PO的交流、沟通很重要,我怕自己跟PO交流沟通不好,会影响团队。
|
||||
当然这一切都是借口,其实现在这个环境,即使我们跟PO交流,沟通得不好,对我们的好处也是远远大于给我们的影响的,因为PO也是thoughtworks,我们不用太忌讳,太拘束,当然也要当人家PO那样正式对待,另外其他两个同学主动去承担了那些工作,为什么我没有积极的参加?其实说来,还是没有完完全全跳出舒适区,其实就像我在成都的项目里面类似,我在做编程之前的事情,我自己也知道并不好,比如跟BA交流,当然这并不是说我的开发的代码工作就做得多么好,而是我因为coding是我喜欢的工作,我觉得挑战更小,所有在上面更称心一点。还是继续加强在和客户、BA、QA方面的工作吧。增加能力的宽度。
|
||||
|
||||
##### 总结
|
||||
|
||||
我觉得,我在第一周,第二周的表现是要明显好于第三周的,也许是因为疲劳,也许也有一些松懈在里面吧,然后跟不同的人聊天,体会到公司搞这个Thoughtworks University是多么不容易,是花了多少的人力物力,我想我们每个人都应该珍惜这段时光,当然也不得不说,有很多是需要继续改进的,部分Session的质量我觉得还是可以更好的,此外我觉得最恼火的问题就是公寓的网络问题(公寓是公司花钱租的,算是公寓式酒店),基本上一直处于瘫痪的状态,除了可以聊QQ、Skype,有些时候能打开网页以来,基本上一直都处于在刷新页面的状态。希望可以早点解决,以后的童鞋也不用这么恼火了。
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: "40天"
|
||||
date: 2010-02-26 01:52:00
|
||||
---
|
||||
|
||||
不多久40天的寒假便从我的指尖划过,40天可是一个很长的时间段,应该是初中以来最长的寒假,但是貌似我所学到的东西依旧不多。假前励志的话不知在之底重复了多少遍,豪言壮语看来仍不过是空话一堆,并未增重一分。但是这个寒假经历的却很多,感触也颇多。
|
||||
|
||||
我一直想把自己变成一个好学生,而且也一直在尝试着努力去改变去突破。到直到现在我终究不是一个好学生,充其量只能算作一个有想法但却没有行动的孩子。这条路我走地很艰辛,本以为这将是一个会很有收获的寒假,但兴冲冲充图书馆借回来的4本专业相关的书我看了多少也许只有我自己才明白,也许就算是给我一年我也未见得能将其揽尽。我晓得在学习上我意志力薄弱,我总是需要外力来帮助我。我希望一直被鼓励,一直被督促,但绝非啰嗦。40天,我大概认真学习了5天,怎么样呢?我自己还是不评价了吧!我怕会庸人自扰。
|
||||
|
||||
40天可以谈一次恋爱,但却不是这个寒假。从开始到结束一切都风般急速,等它逝去,我仍杵在原地若有所悟,却不知所措。我承认我受伤了,我用40天来抚平这一切,终究还是留下一段令人唏嘘的故事,曾经我如痴如醉,现今我如斯如彼。我有错,我就应该悔过!我检讨这发生的一切。却发现自己如小丑一般。我想问这40天我忘记了?抑或是没有忘记?答案其实不难判断。
|
||||
|
||||
初中,高中这两个人生中如此重要的阶段遇见如此重要的你们。我心存感激,也许我之前尚未发现这一点,但如今我深刻的明白了。初中同学聚会:4年了啊,真是蹉跎人生,4面我们几乎从男生变成男人,从女生变女人。我们的改变也是如此惊人,大家长得更靓了。在工作的也让我们这些羡慕。我们大家都继续努力吧,希望下次见面的时候都是个个精神饱满,风光夺人。相比之下半年则显得很短很短,很可惜很多高中同学都没来,但是却并不能妨碍我们耍得如此开心,感慨同学友谊,我们心里装着大家,大家努力奋斗,只为美好的明天。
|
||||
|
||||
原来军人真的很有魅力!话说前几天我和一群兵哥哥接触了一天,这一天我们一起登山赏景,吃饭,真人CS.这样下来我强烈地体会到了军人的以下几个优点:
|
||||
|
||||
质朴,耿直,豪迈,气质,强壮,要脸宁不要命,忠诚。
|
||||
|
||||
相比之下你们看我的照片就看得出来差别了,实在惭愧!
|
||||
|
||||
40天,我的洗具多于杯具,生活过得也算还足够充实,很幸运我认识两个朋友:钟雨伦和谢汶谕!
|
||||
|
||||
老实说我现在已经写到麻木了,完全不想写了,还是草草结尾吧,已经写了一个多小时时间已经来到凌晨两点!该睡了…
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: "Ucall"
|
||||
date: 2010-09-27 00:00:00
|
||||
---
|
||||
|
||||
[](/images/2010/09/7f9fbd82614149e7bc3e1ecb1.jpg) 作者 liu
|
||||
|
||||
UUcall电脑电话宝,话费超低廉
|
||||
|
||||
向大家推荐一种网络电话,只要有电脑,可以上网,就可以使用这款软件。
|
||||
|
||||
拥有注册用户超过3000万的UUCall电话宝网络电话,可以直接通过您的电脑拨打全球任意一部电话或者手机,
|
||||
|
||||
价格低廉、通话清晰,是最受网友喜爱的免费网络电话软件。
|
||||
|
||||
并且可享受3~300分钟免费体验。
|
||||
|
||||
可登陆此网站了解详细信息:
|
||||
|
||||
<http://www.uucall.com/introduce.html>
|
||||
|
||||
- 下载地址为<http://www.uucall.com/download.html>。可以在此下载此软件,然后注册机可以使用。UUCall电话宝网络电话。
|
||||
- 免费绿色软件无需安装,下载到桌面即可使用
|
||||
- 软件语言:简体中文 软件大小:1.2M
|
||||
- 支持平台:Windows2000/XP/Vista/Windows7
|
||||
|
||||
可在其网页上登陆,登陆需要你的邮址,登陆成功后会在你的邮箱里发送一封邮件,通知你登陆成功。例如内容如下:[1111111111@qq.com](mailto:1111111111@qq.com)您好:
|
||||
感谢您注册成为UUCall的会员,请妥善保存您的帐号信息。
|
||||
|
||||
然后用桌面上的软件即可使用,并拨打电话。
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
title: "求20个数里面最大的数"
|
||||
date: 2010-11-25 00:00:00
|
||||
---
|
||||
|
||||
如题这个应该算是一个超级简单的题吧!以前大一上学期的时候老师就讲过了!
|
||||
|
||||
这学期,教我们数据结构与算法的老师是从电子科大调过来的副教授!教的真的不错,但是我学的话也明显可以感觉到压力,老师说我们以后还有期中考试要算入期末成绩!这个倒是第一次在我们学校实行!
|
||||
|
||||
我觉得大家都一样,别人可以做到我也可以做到吧!没什么好怕的。
|
||||
|
||||
那天,老师在快要下课的时候,叫我们每个人写求20个数里面最大的数的算法!
|
||||
|
||||
我觉得这个还好吧,就直接用冒泡法?我记得这个算法好像是叫冒泡法。
|
||||
|
||||
其大致的C语言伪代码就是(这里只写关键的代码):
|
||||
|
||||
**int temp;**
|
||||
|
||||
**int a[20];**
|
||||
|
||||
**for(int i=0;i<20;i++)**
|
||||
|
||||
**{**
|
||||
|
||||
**if(a[i]>a[i+1])**
|
||||
|
||||
**temp=a[i];**
|
||||
|
||||
**else**
|
||||
|
||||
**temp=a[i+1];**
|
||||
|
||||
\*\*
|
||||
}\*\*
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
title: "Betty如一缕清泉"
|
||||
date: 2010-04-08 00:54:00
|
||||
---
|
||||
|
||||
当初抱着既可以学英语又可以看点东西的态度开始看美剧,又是因为丑女贝蒂很红而看它。
|
||||
|
||||
watched a little!
|
||||
|
||||
它越来越吸引我了
|
||||
|
||||
贝蒂如一缕清泉
|
||||
|
||||
虽长相丑陋,面目狰狞
|
||||
|
||||
却无比善良,纯洁
|
||||
|
||||
但注定人善被人欺
|
||||
|
||||
同事嘲笑,老板冷眼
|
||||
|
||||
是善良,和蔼让她赢得了尊敬
|
||||
|
||||
她一根肠子
|
||||
|
||||
让她拥有越来越多的朋友
|
||||
|
||||
更多人的青睐
|
||||
|
||||
甚至也有不错的男人喜欢他
|
||||
|
||||
当然不止一个
|
||||
|
||||
她可以为老板做很多
|
||||
|
||||
即使这需要丢下自己家里的事
|
||||
|
||||
即使需要为此与姐姐闹架
|
||||
|
||||
她愿意
|
||||
|
||||
贝蒂成功了
|
||||
|
||||
真的被贝蒂感动了
|
||||
|
||||
让我想起了一点
|
||||
|
||||
初次见面我们喜欢的是在外的美
|
||||
|
||||
而更远更长来看
|
||||
|
||||
我们爱的是soul
|
||||
|
||||
在外确实很重要
|
||||
|
||||
所以很多所谓的美女
|
||||
|
||||
丰富了这个世界
|
||||
|
||||
也许我们需要的是
|
||||
|
||||
另外一种
|
||||
|
||||
who has a normal but great soul
|
||||
|
||||
当然最难得是智慧与美貌并存
|
||||
|
||||
喜欢那种感觉
|
||||
|
||||
而不是喜欢漂亮!
|
||||
|
||||
看来今天既是晚又是很早了…
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: "Crazy dreaming!"
|
||||
date: 2009-06-20 16:19:00
|
||||
---
|
||||
|
||||
我想象C罗一样在球场上进球后那样歇斯底里的吼,可惜我没有他那么好的球技](http://img.bimg.126.net/photo/GGb1qb7AP107yiK28vF9ew==/3989907794874509778.jpg)
|
||||
|
||||
[](http://img.bimg.126.net/photo/nlJmMKuqNMXGU2uy-3zjEw==/4805340802405208143.jpg)
|
||||
|
||||
[](http://img.bimg.126.net/photo/a3RqKK2WGsi_qzMAnPgJxA==/3989907794874509781.jpg)
|
||||
|
||||
但是我会在我的未来创业中像他那样哄!这是男人的魅力!我要吼“啊!!!!!!!”
|
||||
|
||||
我也想亨利那样绅士](http://img.bimg.126.net/photo/YghHvvPxqQ6auIqBXTdePA==/3989907794874509784.jpg)
|
||||
|
||||
[](http://img.bimg.126.net/photo/PG4D9-sZnGC-aYIt-9pQjw==/3989907794874509788.jpg)
|
||||
|
||||
[](http://img.bimg.126.net/photo/Su2WRqjtj2OEDcggpst8qA==/5389682854056140458.jpg)
|
||||
|
||||
还想象贝克汉姆那样招人喜欢!但张得他那样帅是不可能了!哈哈](http://img.bimg.126.net/photo/4CAjD7t5FAYSWnKeb4mbAA==/4503881102348657510.jpg)
|
||||
|
||||
[](http://img.bimg.126.net/photo/xrOio2ASJD9Q0YBu-iWq7Q==/3989907794874509795.jpg)
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
title: "Hello World!JAVA 我来了"
|
||||
date: 2010-02-02 10:22:00
|
||||
---
|
||||
|
||||
寒假之前就一直在说,这个寒假要怎么怎么样,要吧JAVA先学啊,但是计划总是赶不上变化,由于前几天出了点情况,导致整个人崩溃,现在才走出困境。所以我还是要尝试做我自己的事。那些啥子谈情说爱,我永远是被伤害的对象。好了,我还是会尽量写我的JAVA学习笔记。好了不说这么多了。开始吧。
|
||||
|
||||
|
||||
要学JAVA当然要配置JAVA编译环境哦,首先要下载JDK。就到这个网址下面去下载就好了<http://java.sun.com/javase/downloads/index.jsp>具体到你是只下载JDK还是加上IDE编译环境就是你自己的事了。下载好厚当然是解压,安装。
|
||||
|
||||
接下来就是配置环境变量了。这里我就说windows
|
||||
7下面的方式,选择计算机然后右键\*\*属性,进去之后选择高级系统设置,在右下方就是环境变量。这里一共需要设置三个变量。没有的需要新建,有的就需要编辑就好。\*\*
|
||||
|
||||
**PATH:这个需要配置你安装JDK的路径到bin为止。例如:D:\Program
|
||||
Files\Java\jdk1.6.0\_17\bin**
|
||||
|
||||
**JAVA\_HOME:(注意这里是下划线,不是“-”)这个是需要配置到JDK安装环境就好。例如:D:\Program
|
||||
Files\Java\jdk1.6.0\_17**
|
||||
|
||||
**CLASSPATH:这个配置就是“.”就是一个点哈,莫得引号。这个点表示在当前路径找。**
|
||||
|
||||
**这里的环境变量都是大写。配置好之后就是验证。**
|
||||
|
||||
**点击开始选项,在搜索框中输入cmd,调出DOS界面。在里面输入命令 javac
|
||||
或者java,如果显示出很多行代码,则表示配置成功,如果显示XX不是内部或外部命令,也不是可执行程序,则表示配置错误。**
|
||||
|
||||
**接下来就是编译hello
|
||||
world.**
|
||||
|
||||
**public class HelloWorld{**
|
||||
|
||||
**public
|
||||
static void main(String[] args) {**
|
||||
|
||||
\*\*
|
||||
|
||||
System.out.println(“hello,
|
||||
world!”);
|
||||
|
||||
}\*\*
|
||||
|
||||
**}**
|
||||
|
||||
**如果是用文本编辑器,将它保存到一个目录就好。接下来就是编译,在DOS里面找到这个路径。一般进去后默认是C盘用户路径,你就需要到你存文件的那个盘,比如我的是在D盘,然后我就输入
|
||||
d: 然后回车 ,他就到D 盘了,然后就是在DOS里面复制地址,在windows 下复制地址,然后
|
||||
使用命令 cd 然后右键就好了,再回车。(注意程序里面的名字和文件名字一定要是一致的才行)然后就是输入命令, javac
|
||||
HelloWorld.java,如果这一步回车没有提示表示编译成功,然后则是运行程序,java HeloWorld
|
||||
(这里不需要文件名)。然后你就可以看到hello, world!(提示:JAVA里面是大写就是大写,比如这里面的System
|
||||
String等都是首字母大写。要注意)[](http://blog.photo.sina.com.cn/showpic.html#url=http://static7.photo.sina.com.cn/orignal/49fcaea6h7e94d37d6f86&690)**
|
||||
|
||||
|
||||
**感想:其实我没想到这个东西这么不简单,我看视频觉得很简单,配置一下就可以了,但是真的自己今天晚上做起来真的还是很困难。这是我学习Java的心路历程。哈哈,希望我可以坚持下去。**
|
||||
@@ -0,0 +1,135 @@
|
||||
---
|
||||
title: "JAVA里面重要而基础的东西"
|
||||
date: 2010-02-02 23:00:00
|
||||
---
|
||||
|
||||
其实JAVA是在C和C++上开发的,因此他们很多东西是类似的。下面就是我学习的过程中觉得一些很重要的东西,写下来吧。
|
||||
|
||||
**JAVA里面输出语句有两种。**
|
||||
|
||||
**System.out.print(“……”);
|
||||
这一个就相当于C里面的printf(“……”);**
|
||||
|
||||
**System.out.println(“…….”);这一个就相当于printf(“……\n”);**
|
||||
|
||||
第一个使用命令行参数程序
|
||||
|
||||
public class new1{
|
||||
|
||||
public static void main (String[] args){
|
||||
|
||||
System.out.print(“Hi, “);
|
||||
|
||||
System.out.print(args[0]);
|
||||
|
||||
System.out.println(“.How are you?”);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
编译命令为 javac new1.java
|
||||
|
||||
java
|
||||
new1 alice
|
||||
|
||||
运行结果为 Hi, alice. How are
|
||||
you?
|
||||
|
||||
**Integer.parseInt()是将String值转为int值。例如: int
|
||||
a=Integer.parseInt(args[o]);**
|
||||
|
||||
比如这个整数的乘法与除法。
|
||||
|
||||
public class new1
|
||||
|
||||
{
|
||||
|
||||
public static void main(String[] args)
|
||||
|
||||
{
|
||||
|
||||
int
|
||||
a=Integer.parseInt(args[0]);
|
||||
|
||||
int
|
||||
b=Integer.parseInt(args[1]);
|
||||
|
||||
int sum=a+b;
|
||||
|
||||
int prod=a\*b;
|
||||
|
||||
int quot=a/b;
|
||||
|
||||
int rem=a%b;
|
||||
|
||||
System.out.println(a+”+”+b+”=”+sum);
|
||||
|
||||
System.out.println(a+”\*”+b+”=”+prod);
|
||||
|
||||
System.out.println(a+”/“+b+”=”+quot);
|
||||
|
||||
System.out.println(a+”%”+b+”=”+rem);
|
||||
|
||||
System.out.println(a+”=”+quot+”\*”+b+”=”+rem);
|
||||
|
||||
}运行结果为:
|
||||
|
||||
}[](http://b31.photo.store.qq.com/http_imgload.cgi?/rurl4_b=d41256b632232b48d8dd65aaab89838fde93ab16b7c163f5b37a370284a5e77288bf478e19a5c8d93fea1c1fa3fe75bcf9b193aa72165f8d4be37e0c652ecfa06f5523fc764b6a972781a338ed554fd293a5830b&a=28&b=31)
|
||||
|
||||
**这里需要说明的就是,a+,+b+,+quot.**
|
||||
|
||||
**我们分析这句System.out.println(a+”%”+b+”=”+rem);**
|
||||
|
||||
**就可以发现
|
||||
这个a+,+b+,+quot.类似于C语言里面的取地址。而且它是成对称分布的。如果只有一个变量的话则按最后的变量形式输出。例如:+quot;**
|
||||
|
||||
|
||||
|
||||
\\\然后需要说的就是强制转换类型。其形式是比如:(int)1.10就是将1.10转化为整型
|
||||
|
||||
还有几个容易混淆的:
|
||||
|
||||
(int)11\*0.3
|
||||
结果为: 3.3
|
||||
|
||||
11\*(int)0.3
|
||||
结果为: 0
|
||||
|
||||
(int)(11\*0.3)
|
||||
结果为:3
|
||||
|
||||
通过比较就可以看出区别了。
|
||||
|
||||
下面是强制转换整型的一个例子得到随机整数:
|
||||
|
||||
public class new2{
|
||||
|
||||
public static void main(String[] args){
|
||||
|
||||
int
|
||||
n=Integer.parseInt(args[0]);
|
||||
|
||||
double
|
||||
r=Math.random();//产生0到1之间的随机数。
|
||||
|
||||
int x=(int)(r\*n);
|
||||
//产生0到n-1之间的随机数。
|
||||
|
||||
System.out.println(“Your random
|
||||
number integer is:”+x);
|
||||
|
||||
}
|
||||
|
||||
}[](http://b31.photo.store.qq.com/http_imgload.cgi?/rurl4_b=1cd8a98831d7e0027dc0462ed206bd35082ca154ce27b2712a124653120c1efbc61b10e82ebdbefeb8269aa616ce14cf8b97cff44f304a26019d572a8b387b322cdf0f769d15abe6c32d96689423c607c67e2ab1&a=28&b=31)运行结果。
|
||||
|
||||
我看书上有一个数的自动提升,我大概懂。它有这样一句话,“你可以使用任何基本数值类型的数据,这些数据类型有用户希望的,很大的取值范围。因为Java自动将这些类型转换到更大的范围。”
|
||||
|
||||
同样有个例子。\*\*b,c
|
||||
都是int类型的。 b*b-4.0*c这个系统会自动将b,c
|
||||
变到double类型再进行计算,最后的结果是double类型的。如果你想得到int
|
||||
类型的,则需要将4.0改为4.则可。\*\*
|
||||
|
||||
好了就写这么多哦,哎,其实写这些好累人哦,但是仍然希望我可以坚持下去,这相当是我在重新学习一遍这些东西,一定对我有很大的帮助。
|
||||
|
||||
加油。
|
||||
@@ -0,0 +1,84 @@
|
||||
---
|
||||
title: "Java双重循环的典型应用(九九乘法表)"
|
||||
date: 2010-02-03 11:02:00
|
||||
---
|
||||
|
||||
刚才正好在看JAVA的双重循环这一块,然后突然就想到了很经典的九九乘法表。因为我们之前C语言里面也写过这样的程序。所以我就试着写这个程序。确实在试的过程中还是发现很多问题和值得注意的地方。下面慢慢说来。
|
||||
|
||||
用JAVA写的九九乘法表。
|
||||
|
||||
\*\* public class new4
|
||||
|
||||
{
|
||||
|
||||
public static void main(String[] args)
|
||||
|
||||
{
|
||||
|
||||
int a,b,s;
|
||||
|
||||
for (a=1;a<=9 ;a++ )
|
||||
|
||||
{
|
||||
|
||||
for(b=1;b<=a;b++)
|
||||
|
||||
{
|
||||
|
||||
s=a\*b;
|
||||
|
||||
System.out.print(a+”\*”+b+”=”+s);
|
||||
|
||||
System.out.print(“ ”);
|
||||
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
\*\*用C语言写的九九乘法表
|
||||
|
||||
\*\*#include ”stdio.h” //九九乘法表。
|
||||
|
||||
void main()
|
||||
|
||||
{
|
||||
|
||||
int i,j,s;
|
||||
|
||||
for (i=1;i<=9;i++)
|
||||
|
||||
{
|
||||
|
||||
for(j=1;j<=i;j++)
|
||||
|
||||
{ s=i\*j;
|
||||
|
||||
printf (“%d\*%d=%-4d”,i,j,s);
|
||||
|
||||
}
|
||||
|
||||
printf (“\n”) ;
|
||||
|
||||
}
|
||||
|
||||
}\*\*
|
||||
|
||||
 - wahyd4 - 龙的博客")这个是没用使用空格
|
||||
|
||||
 - wahyd4 - 龙的博客")这个是使用了空格,但是没有左对齐。
|
||||
|
||||
**其实通过比较我们就可以很容易看到,这个 程序JAVA和C的代码都是差不多的。只是细节上有一些变化。有个不同就是我不不知道JAVA里面有没有类似****printf (“%d*%d=%-4d”,i,j,s);这样的语句。即实现左对齐。*\*于是我在JAVA里面想到了这样一个办法。再输出一行,让它打印空格就好。
|
||||
|
||||
\*\* System.out.print(a+”\*”+b+”=”+s);
|
||||
|
||||
System.out.print(“ ”);\*\*
|
||||
|
||||
**当然我也试过这样一种方法。即System.out.print(a+”\*”+b+”=”+s “ ”)但是通过编译发现这样是行不通的。**
|
||||
|
||||
**还有一个就是我晓得了那个String ()agrs .它其实就是一个数组其实相当于是程序比不可少的东西,不管怎样你都要写出来,但是你还是可以选择不在程序里面使用它。**
|
||||
.
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: "You我友,吾有便无忧"
|
||||
date: 2010-02-04 00:51:00
|
||||
---
|
||||
|
||||
也许我以前有的时候真的重色轻友,那是我还不懂。现在经过这么多事以后我才晓得,朋友至少和爱人(不是女朋友那么初级哈)同等重要,在某些方面甚至更重要。
|
||||
|
||||
这一次经历了失恋就更加深刻的体现了这一点,当我感到沮丧的时候,当我感到无助的时候,当我感到痛苦的时候。是你们,一直都是你们来开导我,来鼓励我。对的一个男人真的应该拿得起放得下,可是有些时候做到这点对我很困难。因为有你们的关心,我才会慢慢走出泥沼。
|
||||
|
||||
和朋友在一起的时候永远是放得最开的时候,我们啥子都可以不想,什么顾虑都抛开。想的只是现在就好。也许就是应该在一起的时候及时行乐。
|
||||
|
||||
其实现在走进大学以后,真正更加觉得朋友的重要性。想想初中同学之间纯真的友谊,高中朋友间深厚的友谊,大学则是伙伴一样的友谊。每一样都难能可贵,我们需要的就是找到真正的朋友,那些关心你,不会出卖你的朋友。
|
||||
|
||||
有句话叫人生有一知己即可,而人生却需要很多的朋友,多多益善。每一条朋友都是一条路,这个世界便织成了一张大网。多么美丽的网。
|
||||
|
||||
前几天和初中同学聚会,大家真的都成了帅小伙和靓妹了,一个二个都很不错,和你们聚在你们真的很幸福,那是久违幸福,三年多了,改变了太多,不会变的则是我们都是初零六级四班的学生。我们都是朋友。怀念那段简单的时光,也许我们以前都做得不够好,那就让我们以后多聚聚吧,亲爱的同学们,我们都要努力奋斗,我爱你们,希望明年的时候聚餐大家都来。
|
||||
|
||||
高中,这三年改变了我的人生,虽然我这三年由于那个问题,让我三年都过得很痛苦,但是我还是相遇了我们伟大的25班,和最可爱的同学们。我们理科的娃娃就是乖,天天就是在教室里面学习,错过了好多加深友谊的机会哦。但是我们大家之间的友谊还是很淳朴的,感情还是很深厚的,我还记得我们高一时候的牛头山和那些什么什么牛哦。那段时光很快乐。还有足球队的兄弟们,虽然我脚法烂,但是我觉得我们还是多团结的,以后聚餐的时候一定要喝几杯。大家都在读书,都加油吧,五年后相信我们都是能干人。加油。
|
||||
|
||||
还有大学,软件工程的同学们,我们是相亲相爱的一家人哦,我们以后在一起的时间还很长,还有希望我们的足球队多踢球,培养哈感情塞。兄弟伙些,大家都是英雄。相信我们一定可以做出些成就把成大建设得更加美好(说大话了,哈哈)。
|
||||
|
||||
还有我的小学的朋友们,还有那些通过网上认识的好朋友们。其实我觉得我们现在这个网络还是相对比较不那么虚假的,我真的通过这个网络认识很多朋友,恩,很到大家都聊得不错,我觉得只要有机会,一定要吧这些网络上的朋友变到现实中来,一直在网络上呆着没意思。当然美国的和台湾的当然希望不大。哈哈。谢谢所有的朋友们。
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: "第三届中国成都青年(大学生)电子商务创业大赛[全国的大学生,三年内毕业青年皆可参加哦]"
|
||||
date: 2010-09-28 00:00:00
|
||||
tags: [奖金, 比赛, 电子商务]
|
||||
---
|
||||
|
||||
作者:Junv
|
||||
|
||||
[](/images/2010/09/111.jpg)
|
||||
|
||||
今天下午我们班上宣布了这个信息:第三届中国成都青年(大学生)电子商务创业大赛,现在可以报名参加比赛了。报名的截止日期是10月25日(即是你需要在10月25日之前提交你的项目,以word形式)。
|
||||
|
||||
先说一下丰厚的奖金,激起大家的兴趣吧。
|
||||
|
||||
冠军:奖金20000元+证书
|
||||
|
||||
亚军:奖金10000元+证书
|
||||
|
||||
季军:奖金5000元+证书
|
||||
|
||||
优秀团队奖(7名):奖金1000元+证书;
|
||||
|
||||
看看,奖品还是很丰富的哦。
|
||||
|
||||
这个是需要一团队形式参加比赛的,每个团队3到5人。(我看了之后心里面有点窃喜哦,我们大染志刚好可以分为两个队参加比赛,哈哈!!先问问他们的意见吧。)
|
||||
|
||||
他这个成都的参赛选手是从成都找一个传统商业,作为研究对象,将其进行从传统商业到电子商务转型。
|
||||
|
||||
需要::各团队本着以实战为主的思路出发,针对传统企业建设网站(网店)。并从前期市场调研、同行分析、战略定位、网店(网站)设计思路、项目运营推广宣传方案、盈利模式、风险控制、投资预算等方面进行全面细致策划。
|
||||
|
||||
更多的信息:登陆<http://2010.eca.org.cn/>
|
||||
|
||||
如果有童鞋,也有参加的意愿,可以和我们联系哦,在下面留言吧!!!
|
||||
|
||||
哈哈,我们可能成为竞争对手哦!!
|
||||
|
||||
Fighting……
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: "一个好的礼物——希望对你有所触动"
|
||||
date: 2011-04-04 00:00:00
|
||||
tags: [ted]
|
||||
---
|
||||
|
||||
> 搞IT的同学,平时还是多多休息一下吧,其实身边还有很多东西值得我们去看,去学。
|
||||
|
||||
[](/images/2011/04/gift11.jpg)
|
||||
|
||||
希望大家看后有所感触吧。不要等到我们不健康的那一天才去找回那些失去的美好。珍惜身边的一切。
|
||||
这个视频来自TED
|
||||
|
||||
> 视频下载:[点我下载](ed2k://|file|TED%E6%BC%94%E8%AE%B2%E9%9B%86.2010.02.%E4%B8%9D%E5%BE%B7%E8%8C%9C%C2%B7%E5%85%8B%E8%8E%B1%E9%BB%98%EF%BC%9A%E6%88%91%E5%BE%97%E8%BF%87%E7%9A%84%E6%9C%80%E5%A5%BD%E7%A4%BC%E7%89%A9.Stacey.Kramer.The.Best.Gift.I.Ever.Survived.Chi_Eng.720X396-YYeTs%E4%BA%BA%E4%BA%BA%E5%BD%B1%E8%A7%86%E5%88%B6%E4%BD%9C.rmvb|13866636|D718486913808798FEF1E71E2CE481C1|/|/)(请使用电驴或者迅雷复制链接下载)
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: "几个常用的网站,要记到哈!"
|
||||
date: 2010-09-25 00:00:00
|
||||
tags: [几个实用网站,大家要记到哈!]
|
||||
---
|
||||
|
||||
作者:liu
|
||||
|
||||
向大家推荐几个有用的网站哈,他家可以用过这个网站得到一些知识!
|
||||
|
||||
1.太傻论坛,其实一点也不傻,学习英语的好帮手。
|
||||
|
||||
[](/images/2010/09/7f9fbd82614149e7bc3e1ecb.jpg)[http://edu.taisha.org](http://edu.taisha.org/)
|
||||
|
||||
2.词汇量相当的惊人,有单词本,里边还有好多学习课程。
|
||||
|
||||
[http://www.dict.cn](http://www.dict.cn/)
|
||||
|
||||
3.英语学习网站,练习你的听力,
|
||||
|
||||
[http://www.24en.com/voa](http://www.24en.com/voa/) /
|
||||
|
||||
4.英语翻译网站:
|
||||
|
||||
[](/images/2010/09/04e82f089da1c1d23ac763f5.jpg)[http://translate.google.com/#](http://translate.google.com/)
|
||||
|
||||
5.一个可以精确定位的全球卫星地图:
|
||||
|
||||
<http://ditu.google.cn/>
|
||||
|
||||
6. 《环球科学》杂志的官方网站,很吸引人!
|
||||
|
||||
<http://www.sciam.cn/>
|
||||
|
||||
7. 圆点视线,关于色彩的教程,做网站或搞平面设计,要想知道什么样的色彩搭配最好,来这里学习一下吧。
|
||||
|
||||
[http://www.apoints.com](http://www.apoints.com/)[](/images/2010/09/3b430101a40919bde850cdd5.jpg)
|
||||
|
||||
8. 大名鼎鼎的《电脑爱好者 CFan》的官方网站。主页:
|
||||
|
||||
<http://www.cfan.com.cn/> 。
|
||||
|
||||
论坛:<http://bbs.cfan.com.cn/>
|
||||
|
||||
9. 酷驴音乐网,好听的英文歌、纯音乐、非主流音乐
|
||||
|
||||
<http://www.kumule.com/>[](/images/2010/09/u42748670341659055255fm0gp0.gif)
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
title: "一个全新的开始"
|
||||
date: 2010-09-18 00:00:00
|
||||
tags: [上线, 大染志, 开始]
|
||||
---
|
||||
|
||||
我们想大声的宣布大染志今天上线啦!!!
|
||||
|
||||
希望大家可以经常来我们的网站常来看看,我们会尽量每天一篇文章的速度进行网站更新,而且我们在周末的时候还会有专题奉献给大家,另外我们还有一种“核武器”,到时候大家就知道了,所以大家一定要来看哦!
|
||||
|
||||
|
||||
|
||||
关于我们的成员,我们是一群在校大学生!
|
||||
|
||||
|
||||
|
||||
我们希望借此得到锻炼,当然如果可以获得一些Money,当然更好啊!
|
||||
|
||||
|
||||
|
||||
总之,大家的支持是我们最大的动力!
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
title: "为您学习网络安全知识 搭建一个简单而快捷的平台"
|
||||
date: 2010-10-09 00:00:00
|
||||
tags: [专题, 网络安全]
|
||||
---
|
||||
|
||||
作者:Wei
|
||||
|
||||
或许我们提供的知识很少,或许我们提供的知识还很单方面,但是,请您明白这是一群大学生的一片热忱的心。
|
||||
|
||||
[](/images/2010/10/200914135159.jpg)
|
||||
|
||||
**何为安全技术**
|
||||
|
||||
当我们在使用电脑的时候,或多或少会遇到有关网络安全的问题,我们是否懂呢?我们或许对人难以启齿的问,可是自己也不免有不知道的时候,那就请你看看下面的内容吧。希望对你们有所帮助。
|
||||
|
||||
<http://baike.baidu.com/view/157459.htm>
|
||||
|
||||
**网络安全学习方法揭秘**
|
||||
|
||||
想要对网络安全知识深入的了解与学习,我们就需要一个完整的学习方法。希望下面的一些方法能够给您带来一些头绪,以至于设计出适合自己的学习方法。这个大揭秘希望你不要错过哦。
|
||||
|
||||
<http://www.hackbase.com/tech/2010-06-01/60448.html>
|
||||
|
||||
**网络安全学习计划**
|
||||
|
||||
了解了整体的学习方法,我们下面需要的便是一个整套的学习计划了。现在我们为您提供便是我们认为不错的计划安排哦。但愿我们的所做的不会让您失望。
|
||||
|
||||
<http://htzj.bokee.com/1515856.html>
|
||||
|
||||
## 网络安全在线为你服务
|
||||
|
||||
我们提供的知识与服务还很欠缺,您想知道的内容我们也许没办法一时间给你完备的答复,希望这块内容能解决此项问题,能更好的、及时地解决您当前面临的问题。
|
||||
|
||||
<http://www.292775.com/>
|
||||
|
||||
**网络安全注意事项**
|
||||
|
||||
在处理有关网络安全的问题的时候,一定要注意以下提到的问题及注意事项哦,别错过了。
|
||||
|
||||
<http://kekex.com/a/201001/041032.html>
|
||||
@@ -0,0 +1,59 @@
|
||||
---
|
||||
title: "一个Nodejs写的简易订饭程序"
|
||||
date: 2012-07-11 00:00:00
|
||||
tags: [mysql, expressjs, nodejs]
|
||||
---
|
||||
|
||||
因为公司最近开始不统一订饭了,但是我那么点工资到下面食堂去吃,既贵也吃不好,其他那些没工资的实训的同学就更伤不起了。为了脱离机械式的让每个人在纸上写上自己的名字。我用nodejs写了一个简单的程序来完成在网上订饭的功能。用户只需要进入网址。即可以完成订饭。这个程序是用nodejs+mysql完成的。使用了nodejs的 express和mysql包
|
||||
|
||||
使用下面的命令即可安装:
|
||||
|
||||
```xml
|
||||
npm install express
|
||||
|
||||
npm install mysql
|
||||
```
|
||||
|
||||
下面就附上代码吧,只有50多行,当然功能也很简单,只有订饭和查询所有已订饭的功能:
|
||||
|
||||
```jscript
|
||||
var express = require('express'),
|
||||
mysql = require('mysql');
|
||||
var app = express.createServer();
|
||||
//create mysql client
|
||||
var client = mysql.createClient({
|
||||
user:'root',
|
||||
password :'root'
|
||||
});
|
||||
//设置mysql属性
|
||||
client.host ='127.0.0.1';
|
||||
client.port = 3306;
|
||||
client.database = 'orderfood';
|
||||
//拦截地址
|
||||
app.get('/add/:name',function(req,res){
|
||||
var name = req.params.name;
|
||||
|
||||
res.charset = 'utf-8';
|
||||
//查询数据库中是否已经有该用户的记录
|
||||
client.query('select * from orders where name= ?',[name],function(err,results,fields){
|
||||
if(err) throw err;
|
||||
//阻止用户多次提交
|
||||
if(results[0]!==undefined){
|
||||
res.send('哈哈,'+results[0].name+'小子!你想重复提交吗?没门!!\n');
|
||||
return ;
|
||||
}else{
|
||||
//将数据存入数据库中
|
||||
client.query('insert into orders(name) values(?)',[name],function(err,results,fileds){
|
||||
if(err) throw err;
|
||||
console.log("你的名字为"+name);
|
||||
res.write("恭喜你订餐成功!你的名字为"+name +"\n");
|
||||
});
|
||||
client.query('select * from orders',function(err,results,fileds){
|
||||
if(err) throw err;
|
||||
if(results[0]!==undefined){
|
||||
var count=0;
|
||||
res.write("=================已定名单====================\n");
|
||||
for(var i=0;i
|
||||
```
|
||||
|
||||
格式可能有点问题哈。
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: "解决不能访问google reader"
|
||||
date: 2012-07-05 00:00:00
|
||||
tags: [google, google reader]
|
||||
---
|
||||
|
||||
[](/images/2012/07/2-110H12040500-L.png)
|
||||
|
||||
如果你和我一样都打不开Google reader。或者你打开网页是现实了下面的信息:
|
||||
|
||||
> ### 很抱歉,在 [www.google.cn](http://www.google.cn/) 上没找到您要访问的网页
|
||||
|
||||
你的页面跳转到:<http://www.google.com/reader/?hl=zh-CN&tab=wy>
|
||||
|
||||
因为我们众所周知的原因,它的确访问不到了。不过我们可以通过下面这个地址访问:
|
||||
|
||||
> [http://reader.google.com.tw](http://reader.google.com.tw/)
|
||||
|
||||
是不是瞬间从屌丝变成高富帅了?哈哈
|
||||
@@ -0,0 +1,104 @@
|
||||
---
|
||||
title: "在Rails中使用 active_model_serializers 构建json response"
|
||||
date: 2015-03-21 10:35:00
|
||||
tags: [ruby, json]
|
||||
---
|
||||
|
||||
Rails 本身提供很不错的json response功能,可以很方便的将model对象自动转换为json数据。如果我们期望返回的结果很简单也可以构建一个简单的hash,自行编辑你希望的key和value,由Rails 来帮你生成json。那如果是介于两者之间的情况呢?
|
||||
|
||||
- 我希望将我的model以json的形式返回,但是我并不希望将所有的字段返回。
|
||||
- 我希望将我的model中部分属性进行稍微的处理和计算后返回,这样客户端可以直接使用某些字段,而不需要将应用自身的逻辑暴露给客户端,如我有个model记录微信支付属性,有个字段是关于微信支付(”trade\_status”),它的值有trade\_success, “wait\_for\_payment”,显然我们可以返回给客户端 “支付成功”,”等待支付”更好。传统的做法,我们为了达到这个目的,我们不仅需要将trade\_stauts进行构建,还需要将其他参数也重复写出来。
|
||||
|
||||
ActiveModel::Serializers这个gem 包就可以更好的帮助我们解决上面的痛点,我们只需要对需要返回的属性列举出来,只对需要更改的属性进行计算,其他都不需要了。下面就介绍下它的一些常见用法。
|
||||
|
||||
首先安装Gem
|
||||
|
||||
```ruby
|
||||
gem 'active_model_serializers'
|
||||
```
|
||||
|
||||
为了可以在我们的rails 项目中使用它,我们还需要在application controller中添加:
|
||||
|
||||
```ruby
|
||||
include ActionController::Serialization
|
||||
```
|
||||
|
||||
active\_model\_serializers的使用就是在你是需要返回json的地方,为你的数据创建serializer,你的对象就能通过serializer变成希望的结果。这里假设我有一个User用户对象,User的的大致结构:
|
||||
|
||||
```ruby
|
||||
class User
|
||||
field :nick_name, type: String
|
||||
field :email, type: String
|
||||
field :age, type: Integer
|
||||
field :password, type:String
|
||||
# 等等更多属性。。。
|
||||
end
|
||||
```
|
||||
|
||||
我现在有个UserController,需要以JSON的形式返回用户的基本信息: 昵称,邮箱,是否成年(大于等于18岁算成年),接下来在app 目录下创建serializers 目录,并创建class UserSerializer对象,继承自 ActiveModel::Serializer, 然后我们的serializer就应该是这样:
|
||||
|
||||
```ruby
|
||||
class UserSerializer ActiveModel::Serializer
|
||||
attributes :nick_name, :email, :if_adult
|
||||
|
||||
def if_adult
|
||||
object.age > 18 #object 就是需要被序列化的对象
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
在serializer中,我们只需要将我们需要的属性通过attributes 的形式列出来,如果model没有的属性,我们需要自行实现该方法。
|
||||
我们也可以覆盖属性,如上的例子,我们也可以将if\_adult 改成age,同样我们需要有:
|
||||
|
||||
```ruby
|
||||
def age
|
||||
object.age > 18
|
||||
end
|
||||
```
|
||||
|
||||
接下来完成我们的最后一步,在controller中使用serializer
|
||||
|
||||
```ruby
|
||||
class UserController ApplicationController
|
||||
def show
|
||||
#假设 @user 是我们经过查询后得到的对象
|
||||
render json: @user, serializer: UserSerializer
|
||||
end
|
||||
|
||||
def index
|
||||
#假设 @users 是我们经过查询后得到的对象
|
||||
render json: @user, each_serializer: UserSerializer
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
我们我们希望对一个数组对象进行序列化,我们则需要使用each\_serializer,使用该属性后,你的返回结果将变成对象,数组则包裹下对象之下。本例则类似于
|
||||
|
||||
```json
|
||||
users: [
|
||||
{},
|
||||
{}
|
||||
]
|
||||
```
|
||||
|
||||
这里的”users”这是json的根属性, serializer支持用户自定义根属性,
|
||||
|
||||
```ruby
|
||||
render json: @user, serializer: UserSerializer, root: 'customer'
|
||||
```
|
||||
|
||||
我非常喜欢active model serializers 的一个属性是,支持在serializer中访问你希望的属性,在rails 中,很多时候我们希望访问current\_user对象,获取当前登录用户的相关信息。那serializer 则可以很好的做的这一点,在active model serializers 中有 serialization\_scope 这样一个方法,在application controller 中声明此方法,传入你希望的参数,便可以在serializer class 中自由访问该对象。解决了serializer 与其他对象交互的问题。
|
||||
|
||||
```ruby
|
||||
serialization_scope :current_user
|
||||
```
|
||||
|
||||
在serializer中, scope 对象便是注入的 current\_user对象
|
||||
|
||||
```ruby
|
||||
scope.email
|
||||
```
|
||||
|
||||
此外,active model serializers 支持在返回的json中额外注入meta属性,这样既保留了serializer的简单,模板化,也增添了自由度,使得用户可以自行添加一些额外的属性。
|
||||
|
||||
更详细的使用还请参考:[Github](https://github.com/rails-api/active_model_serializers)
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
title: "抗议SAE !!"
|
||||
date: 2012-03-22 00:00:00
|
||||
---
|
||||
|
||||
真心觉得SAE流氓。
|
||||
|
||||
我这个博客流量这么小,如果按照新浪的指标来的话,每个月可能都得花20块钱。和GAE差太远了。让人恶心。
|
||||
|
||||
我想我可能会在近期又再一次迁徙吧。
|
||||
|
||||
哎,当初真的不应该支持新浪??
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: "吵架好烦,哎,心力交瘁"
|
||||
date: 2011-10-13 00:00:00
|
||||
---
|
||||
|
||||
好累!好累!
|
||||
|
||||
我哪里错了嘛,就因为我说了一句话不太该说的话!
|
||||
|
||||
然后你就拂袖而去,纵使我再三挽留你,你却越来越凶,每次你这个样子,我真的不晓得应该怎么办!
|
||||
|
||||
我可以怎么办嘛?
|
||||
|
||||
我有这样凶过吗?在你面前,我不晓得脾气好了好多倍
|
||||
|
||||
你个性却却越来越不好。一摸到就生气,我每次都是在第一时间给你道歉,告诉你我错了。我不该这样做,但是不晓得你想过没有,难道真的每次错的都是我吗,我有那样吼过你吗?
|
||||
|
||||
我不是怕你,是因为我爱你,所以我在忍!我愿意接受这一切。但是你不能每次都这样啊。
|
||||
|
||||
好累,好烦。不晓得应该从哪里和你沟通,
|
||||
|
||||
今天明明不是因为我们的问题,你却说我偏向你寝室的同学,说我偏向漂亮的女生。
|
||||
|
||||
真的,大部分关于他们的印象我是从你那里得到的啊。我不喜欢太要强的女生,有啥子了不起嘛。我见多了。
|
||||
|
||||
你每次都说我是做错了不愿意道歉。但是你又晓得,很多次我真的觉得我没得错,但是我又在道歉。
|
||||
|
||||
在你面前我永远都是错的。
|
||||
|
||||
在你们寝室面前,我永远都是被最后考虑的。呼之即来挥之即去。。。。
|
||||
|
||||
你理解我一下嘛。你怎么就不理解人呢!
|
||||
|
||||
没人理解我,好累。好累!
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: "Android 2.3 姜饼出炉啦"
|
||||
date: 2010-12-07 00:00:00
|
||||
---
|
||||
|
||||
转自Cnbeta:
|
||||
|
||||
**看过一系列的Gingerbread姜饼和相关传言后,今日有答案了。 Google正式在网站公布第二部旗下品牌的手机Nexus S,并同时发布Android 2.3 Gingerbread,相关开发工具已经公开下载。**据介绍,Nexus S采用1GHz处理器,拥有512MB的RAM和16GB的内置闪存, 拥有4英寸的WVGA分辨率屏幕和500万像素摄像头,由运营商T-Mobile定制在美销售。该机是目前市场上软硬件配置最高的Android手机。
|
||||
|
||||
真是千呼万唤啊,终于等到了传说中的android 2.3。不过我今天中午尝试下载android 2.3 的SDK,可是没有下载到。不知道是什么原因。再继续看看吧。
|
||||
|
||||
下面是android 网站和 nexus s 的官方网站图片,大家可以看看。
|
||||
|
||||
不过android的网站已经被墙了,大家需要翻墙才可以看哦。
|
||||
|
||||
[](/images/2010/12/12-7-1_conew1.jpg)[](/images/2010/12/12-7-2_conew1.jpg)
|
||||
|
||||
[android](http://www.android.com/) [Nexus s](http://www.google.com/nexus/#!/index)
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: "Android 2.3一瞥"
|
||||
date: 2010-12-08 00:00:00
|
||||
tags: [android]
|
||||
---
|
||||
|
||||
在网上看得再多,如果自己不能真正体会,也没多少意思。所以我从昨天android 2.3 一出来我就开始下载2.3的镜像,可是不知道怎么回事,我打开SDK更新的时候,一直出现这个问题:
|
||||
|
||||
[](/images/2010/12/12-8-3_conew1.gif)SDK更新不了,可是如果SDK不能更新到8的话,我就不能下载android 2.3 的ADT,也就不能在电脑上模拟android 2.3了,这个问题一直困扰着我,知道今天,我在群里面看到有人这样解决,重新到官方网站下载最新的SDK ,版本号是8,然后再下载ADT就好了,这个办法果然有效,我这样做了,终于在我电脑上模拟出了android 2.3。从我第一眼看到android 2.3 我觉得的确比以前漂亮多了,难道真的是以为内那个新加入的很牛的人?总之很好看了。
|
||||
|
||||
下面上图吧:
|
||||
|
||||
[](/images/2010/12/12-8-1.jpg)首页,主要是上面的电池,信号栏变漂亮很多了,我个人不是很喜欢以前的灰色。我喜欢现在这个。
|
||||
|
||||
[](/images/2010/12/12-8-2.jpg)更多,更有意思的东东,我正在慢慢试,慢慢体验,大家也来体验一下吧。
|
||||
|
||||
你只要在你电脑里面安装[android SDK](developer.android.com/sdk/),(下载这个需要翻墙哦)然后下载ADT就好了,android 2.3的ADT编号是9哦。
|
||||
@@ -0,0 +1,122 @@
|
||||
---
|
||||
title: "Android 拍照并上传图片到服务器源码"
|
||||
date: 2011-06-16 00:00:00
|
||||
tags: [java, android, web]
|
||||
---
|
||||
|
||||
> **更新:我已经把源码共享出来了,大家可以随便下载!**
|
||||
>
|
||||
> 最近帮老师做一个拍照上传的小android 应用。以前虽然看过这方面的东西,但是没有真正做过东西出来,这次老师要求在一个星期左右做出来,其实还是给了我不少压力,于是自己一边学习,一边写代码,同时在望山找了大量的东西,最初都没有解决这个问题。后面才慢慢解决这些问题。
|
||||
|
||||
下面是我写的源码给大家分享一下,说明一下,这些代码是调试完成可以运行的,当然这里没有提出全部的完整代码。如果各位需要的话,给我留言吧,我会通过邮箱发给大家的。 补充servlet端源代码:[Android上传图片到服务器Server端servlet源码](http://toozhao.com/2011/06/android%E4%B8%8A%E4%BC%A0%E5%9B%BE%E7%89%87%E5%88%B0%E6%9C%8D%E5%8A%A1%E5%99%A8server%E7%AB%AFservlet%E6%BA%90%E7%A0%81/ "android上传图片到服务器server端servlet源码")。这里的程序没有涉及服务器端使用的Servlet代码。稍后在贴出来给大家把。
|
||||
|
||||
```java
|
||||
// 选择拍照上传,获取bitmap 对象,并保存到sdcard中。
|
||||
(takePhoto = (Button) findViewById(R.id.take_photo)) .setOnClickListener(new OnClickListener() {
|
||||
@Override public void onClick(View v) {
|
||||
//启动相机
|
||||
Intent myIntent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
startActivityForResult(myIntent, ACTIVITY_IMAGE_CAPTURE);
|
||||
} });
|
||||
// 因为调用了startActivityForResult,调用相机后回执行这个方法
|
||||
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (resultCode == RESULT_OK) {
|
||||
//获取bitmap对象
|
||||
Bundle dataBundle = data.getExtras();
|
||||
Bitmap btp = (Bitmap) dataBundle.get("data");
|
||||
data.putExtra(MediaStore.EXTRA_OUTPUT, btp);
|
||||
/ 如果Junv文件夹不存在则创建文件夹,并将bitmap图像文件保存
|
||||
dir = new File(ptoDir);
|
||||
if (!dir.exists()) { dir.mkdirs(); Log.d("创建文件夹", "。。。。。。。。。。。成功"); }
|
||||
// 为文件随机产生文件名
|
||||
File tmpFile = new File(ptoDir, picName = System.currentTimeMillis() + ".jpg");
|
||||
uploadFile = ptoDir + picName;
|
||||
try {
|
||||
// 将bitmap转为jpg文件保存
|
||||
FileOutputStream fileOut = new FileOutputStream(tmpFile);
|
||||
btp.compress(CompressFormat.JPEG, 100, fileOut);
|
||||
} catch (FileNotFoundException e) {
|
||||
//捕获异常
|
||||
Log.d("File Saving", "fail.....");
|
||||
}
|
||||
// 将照片显示到程序中
|
||||
ImageView myImage = (ImageView) findViewById(R.id.show_img);
|
||||
//设置图片大小
|
||||
btp = Bitmap.createScaledBitmap(btp, myImage.getWidth() - 10, myImage.getHeight() - 10, true);
|
||||
//将图片加载到imageView中
|
||||
myImage.setImageBitmap(btp);
|
||||
myImage.setPadding(2, 2, 2, 2); } else { return; }
|
||||
}
|
||||
```
|
||||
|
||||
执行完这个方法,我们通过bitmap对象将拍照所得已经显示在程序里面了,然后之所以将其保存为文件,是为了上传的方便。
|
||||
|
||||
然后下面是一个上传的图片的方法,大概就是将图片构建成流发送到是、服务器端,这个代码是使用的网上一个前辈的代码,这里不知道他的地址了,但是还是说明一下吧,并表示感谢。
|
||||
|
||||
```java
|
||||
//上传文件至Server的方法
|
||||
private void uploadFile(Bitmap btp) {
|
||||
String end = "rn";
|
||||
String twoHyphens = "--";
|
||||
String boundary = "*****";
|
||||
try {
|
||||
URL url = new URL(actionUrl);
|
||||
HttpURLConnection con = (HttpURLConnection)
|
||||
url.openConnection();
|
||||
//允许Input、Output,不使用Cache
|
||||
con.setDoInput(true);
|
||||
con.setDoOutput(true);
|
||||
con.setUseCaches(false);
|
||||
//设置传送的method=POST
|
||||
con.setRequestMethod("POST");
|
||||
//setRequestProperty
|
||||
con.setRequestProperty("Connection", "Keep-Alive");
|
||||
con.setRequestProperty("Charset", "UTF-8");
|
||||
con.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
|
||||
// 设置DataOutputStream
|
||||
DataOutputStream ds = new DataOutputStream(con.getOutputStream());
|
||||
ds.writeBytes(twoHyphens + boundary + end);
|
||||
ds.writeBytes("Content-Disposition: form-data; " + "name="file1";
|
||||
filename="" + picName + """ + end);
|
||||
ds.writeBytes(end);
|
||||
//取得文件的FileInputStream
|
||||
FileInputStream fStream = new FileInputStream(uploadFile);
|
||||
// 设置每次写入1024bytes
|
||||
int bufferSize = 1024;
|
||||
byte[] buffer = new byte[bufferSize];
|
||||
int length = -1;
|
||||
// 从文件读取数据至缓冲区
|
||||
while ((length = fStream.read(buffer)) != -1)
|
||||
{
|
||||
// 将资料写入DataOutputStream中
|
||||
ds.write(buffer, 0, length);
|
||||
}
|
||||
ds.writeBytes(end);
|
||||
ds.writeBytes(twoHyphens + boundary + twoHyphens + end);
|
||||
//close streams
|
||||
fStream.close();
|
||||
ds.flush();
|
||||
// 取得Response内容
|
||||
InputStream is = con.getInputStream();
|
||||
int ch;
|
||||
StringBuffer b = new StringBuffer();
|
||||
while ((ch = is.read()) != -1) {
|
||||
b.append((char) ch); }
|
||||
// 将Response显示于Dialog
|
||||
showDialog("上传成功" + b.toString().trim());
|
||||
// 关闭DataOutputStream
|
||||
ds.close();
|
||||
} catch (Exception e) {
|
||||
showDialog("上传失败" + e);
|
||||
} }
|
||||
// 显示Dialog的method
|
||||
private void showDialog(String mess)
|
||||
{
|
||||
new AlertDialog.Builder(this).setTitle("Message").setMessage(mess) .setNegativeButton("确定", new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) { } }).show();
|
||||
}
|
||||
```
|
||||
|
||||
请看我们的第一篇文章:[Android上传图片到服务器Server端servlet源码](http://toozhao.com/2011/06/android%E4%B8%8A%E4%BC%A0%E5%9B%BE%E7%89%87%E5%88%B0%E6%9C%8D%E5%8A%A1%E5%99%A8server%E7%AB%AFservlet%E6%BA%90%E7%A0%81/)。
|
||||
|
||||
> android端和web 端源码下载:<http://115.com/file/bevc7e16#uploadsome.rar>
|
||||
@@ -0,0 +1,119 @@
|
||||
---
|
||||
title: "Android上传图片到服务器Server端servlet源码"
|
||||
date: 2011-06-24 00:00:00
|
||||
tags: [java, android, servlet, 上传文件]
|
||||
---
|
||||
|
||||
> ~~**更新:现在提供源码下载了!在文末有地址!**~~
|
||||
>
|
||||
>
|
||||
>
|
||||
> **由于115关闭了外部下载,还是麻烦大家留言写下地址吧,我会把包发给大家的。**
|
||||
|
||||
>
|
||||
>
|
||||
|
||||
> 最近看到很多朋友都留言回复很开心,我也很高兴,自己做的这样一个小程序可以帮到你们。上篇文章详细讲了如果实现android端的代码,很多朋友都在问s服务器端servlet源代码,这里就贴出来给大家吧,但是最近很忙,就先暂时不详细解释了。
|
||||
>
|
||||
|
||||
> 这里说明一点,这个程序是使用了Apache Commons 的一个上传文件的开源组件叫做FileUpload,用的包是commons-fileupload-1.2.2.jar。其他的就不多说了,如果你直接粘贴使用下面代码,请你一定要导入这个包。
|
||||
>
|
||||
|
||||
```java
|
||||
package info.junv;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.fileupload.FileItem;
|
||||
import org.apache.commons.fileupload.FileItemFactory;
|
||||
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
|
||||
import org.apache.commons.fileupload.servlet.ServletFileUpload;
|
||||
|
||||
@WebServlet("/HandleUpload")
|
||||
public class HandleUpload extends HttpServlet {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public void doPost(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
|
||||
File temp = new File(request.getSession().getServletContext().getRealPath("/")
|
||||
+ "temp");// 临时目录
|
||||
System.out.println("临时目录为=" + temp);
|
||||
String loadpath = request.getSession().getServletContext()
|
||||
.getRealPath("/")
|
||||
+ "image"; // 上传文件存放目录
|
||||
|
||||
System.out.println("文件保存目录为=" + loadpath);
|
||||
|
||||
DiskFileItemFactory factory = new DiskFileItemFactory();
|
||||
|
||||
factory.setSizeThreshold(1024*1024); //设置最大可以存到内存值
|
||||
factory.setRepository(temp); //设置缓存文件夹
|
||||
|
||||
ServletFileUpload fu = new ServletFileUpload(factory);
|
||||
|
||||
fu.setSizeMax(1024 * 1024 * 1024); // 设置允许用户上传文件大小,单位:字节
|
||||
|
||||
System.out.println("开始上传。。。。。。。。。。。。");
|
||||
// 开始读取上传信息
|
||||
int index = 0;
|
||||
List fileItems = null;
|
||||
|
||||
try {
|
||||
fileItems = fu.parseRequest(request);
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println("获取相关信息。。。。。。。。。。。。失败");
|
||||
}
|
||||
|
||||
Iterator iter = fileItems.iterator(); // 依次处理每个上传的文件
|
||||
while (iter.hasNext()) {
|
||||
|
||||
FileItem item = (FileItem) iter.next();// 忽略其他不是文件域的所有表单信息
|
||||
if (!item.isFormField()) {
|
||||
|
||||
String name = item.getName();
|
||||
System.out.println("FileName===="+name);
|
||||
|
||||
File fNew = new File(loadpath, name);
|
||||
|
||||
try {
|
||||
|
||||
item.write(fNew);
|
||||
System.out.println("..........Uploaded Successed");
|
||||
} catch (Exception e) {
|
||||
System.out.println("An Error occured!");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
} else // 取出不是文件域的所有表单信息
|
||||
{
|
||||
String fieldvalue = item.getString();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
> 请看我们的下一篇文章:[Android 拍照并上传图片到服务器源码](http://toozhao.com/2011/06/android-%E6%8B%8D%E7%85%A7%E5%B9%B6%E4%B8%8A%E4%BC%A0%E5%9B%BE%E7%89%87%E5%88%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%BA%90%E7%A0%81/)
|
||||
>
|
||||
|
||||
> >
|
||||
>
|
||||
> > android端源码和web 端源码:http://115.com/file/bevc7e16#uploadsome.rar
|
||||
> >
|
||||
>
|
||||
> >
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
title: "愤怒的小鸟PC版下载"
|
||||
date: 2011-01-15 00:00:00
|
||||
tags: [下载, 免费, 游戏]
|
||||
---
|
||||
|
||||
> 也许你已经玩过这款游戏,或许你还没有听说过这款游戏,不过都没有关系。愤怒的小鸟(Angry Birds)这款游戏最早是android平台上的一款免费的游戏,受到大家的热捧,后来又移植到IOS上,再后来又被移植到了PC上,可以说这是植物大战僵尸之后的又一款令全世界疯狂的游戏。
|
||||
|
||||
[](/images/2011/01/1-15-1.jpg)
|
||||
|
||||
这款游戏主要是利用些许的物理原理吧,我们用弹弓去打那些猪头,而猪头可能是藏在冰块或者木头里面的,就需要我们去用弹弓破坏他们,然后打掉猪头,然而子弹就是小鸟,有几种不同的小鸟可供选择,随着你玩游戏的深入。而我们需要做的就只是,调整弹弓的角度和力度即可,十分有趣的游戏。
|
||||
|
||||
在android 手机平台上我们用的是手来操作小鸟和力度,而在电脑PC上我们就只能用鼠标来操作了,虽然可能没有触屏手机上那么切身的感受,不够还是很不错的游戏,相信你玩了之后一定会喜欢的。
|
||||
|
||||
不同的小鸟有不同的特性,和不同的操作方式哦,几种小鸟加起来一定可以让你乐翻天 的!!
|
||||
|
||||
将下载下来的游戏,安装即可运行。
|
||||
|
||||
这款游戏Alt+Enter窗口游戏模式,如果运行游戏的时候提示分辨率出错,请下载最新的驱动即可。
|
||||
|
||||
**游戏下载: [点我进入网盘下载](http://u.115.com/file/f19337dc7f)**
|
||||
|
||||
注意:你还可以进入360软件管家 ,在里面搜索愤怒的小鸟即可下载,笨软件只有50M。
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: "算是声明吧"
|
||||
date: 2011-05-27 00:00:00
|
||||
---
|
||||
|
||||
> 反反复复,总是觉得没有激情再把日志写下去了。但是想到自己付出快一年的心血又觉得不忍心啊!原本打算利用写博客指望赚到每一年域名和空间的费用,可是这一年下来我证明我错了,大多数人喜欢来了看一眼博客然后就走掉。
|
||||
|
||||
写博客这一年google adsense 大概也就赚到了5美元!
|
||||
|
||||
以前大多写的是分享的东西,没有多少真正属于自己的东西,但是我想从以后应该不一样了吧。我还是决定把博客走技术路线了。不在乎太多,而且现在现在这个博客和域名到底是买国外的,还是使用学校的我有的一个二级域名,我也没有想好!
|
||||
|
||||
毕竟使用学校的不需要钱,但是又要受到和。谐啊!
|
||||
|
||||
我想给大家看一个最近做的东西,基于地图的小小伪原创的东西:
|
||||
|
||||
> 希望大家支持吧:[http://wxmedia.cdu.edu.cn](http://wxmedia.cdu.edu.cn/)
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: "换一种方式阅读wordpress 博客"
|
||||
date: 2010-11-12 00:00:00
|
||||
tags: [wordpress, 插件]
|
||||
---
|
||||
|
||||
今天给大家介绍一款很新颖的插件,这个插件是一位中国ajax 达人写的,它可以让你的博客变成QQ 阅读 那样的界面,让读者可以换一种方式阅读文章,而且界面的动态效果做得很好,是不是很爽呢。而且这个插件还带有几种不同的皮肤,读者可以根据自己的需要切换皮肤。
|
||||
|
||||
下面是插件所实现的博客页面:
|
||||
|
||||
[](/images/2010/11/11-12-4_conew1.jpg)页面的布局,是根据文章自动生成的,几乎每一页的布局都是不一样的。这样就给读者很新鲜的感觉,而且这个页面还没有广告,是不是很爽呢?
|
||||
|
||||
而且这个页面的设置也是相当简单的
|
||||
|
||||
[](/images/2010/11/11-12-5_conew1.gif)你可以设置你不想要显示在这个插件里面的分类,和每次显示的评论条数。
|
||||
|
||||
这个插件使用也是很简单:
|
||||
|
||||
**如何去使用插件?**
|
||||
|
||||
1. 到小工具页面向边栏添加【尽享阅读】小工具
|
||||
|
||||
或者
|
||||
2. 调用函数`<?php wp_Enjoy_Reading(display_text); ?>`来自定义显示位置,此函数将生成一个a链接节点。
|
||||
|
||||
插件下载地址:[点我](http://www.qiqiboy.com/plugins/ )
|
||||
|
||||
作者博客:[点我](http://www.qiqiboy.com)
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: "《阿凡达(加长版)》720p 资源下载"
|
||||
date: 2010-11-12 00:00:00
|
||||
---
|
||||
|
||||
相信阿凡达大家都看过吧,高清的可能很多人也看过,可是最新的加长版本的高清我相信绝大多数人都没看过吧。
|
||||
|
||||
加长版本的电影,比前面的版本增加了8分钟的介绍潘多拉新球景色的片段,一定可以让大家一包眼福的,这个这个720p的资源也是很大的哦,有接近8G,网速慢的同学可能会需要下载很久啦。
|
||||
|
||||
片 长 178分钟
|
||||
|
||||
分辨率:1280\*720
|
||||
|
||||
其他信息就不用我多介绍了吧。
|
||||
|
||||
[](/images/2010/11/11-12-6_conew1.jpg)
|
||||
|
||||
今天笔者在人人影视闲逛的时候,发现了这个资源。
|
||||
|
||||
电驴,迅雷下载地址:[点我获取地址](ed2k://|file|[阿凡达].Avatar.2009.EXTENDED.720p.BluRay.x264-BestHD.mkv|8521132995|b95c7f1f6406c6cfe2f9fefaa78b42da|h=csbyuxrq3dy76lqpzbuvw5dd6gojb2fu|/ )
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: "送上自己拍的图片三张,高清壁纸"
|
||||
date: 2011-02-28 00:00:00
|
||||
tags: [单反]
|
||||
---
|
||||
|
||||
> 这几天鄙人心情有些烦躁,所以博客也没有怎么更新,但是还是谢谢支持我的人了!
|
||||
|
||||
几天前买了佳能的500D 单反,虽然是入门级别的单反,但是与卡片机的效果是好太多了。有些功能还没有弄明白,而且即使弄明白也不一定可以拍出的好的照片。
|
||||
|
||||
好了废话就不多说了,我等下再给大家详细介绍一些买佳能500D的事情吧。上图咯。
|
||||
|
||||
> ## 高清壁纸下载:[点我](http://u.115.com/file/f11fbde959)
|
||||
|
||||
当然还希望各位多提意见啊。。。
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: "一些适合做网站背景的五彩壁纸下载"
|
||||
date: 2011-03-05 00:00:00
|
||||
tags: [下载, 壁纸]
|
||||
---
|
||||
|
||||
> 如果各位也和我一样对网站的颜色搭配特别不敏感,如果各位也希望可以找到很漂亮的比较没有太多杂乱图案的壁纸用作网站的背景,那么今天给各位分享的一定就适合你啦。
|
||||
|
||||
包内所含的图片的分辨率都是2000\*2000的,应该是设计原稿吧,是jpg格式的,各位如果想要用作壁纸的需要自己再加工一下。毕竟文件太大了,每张图片几乎都是2M左右。
|
||||
|
||||
包含如此多的颜色,应该够各位下载使用了吧。
|
||||
|
||||
如果喜欢就支持我们把!
|
||||
|
||||
其他废话就 不多说了。
|
||||
|
||||
> 下载地址:[网盘下载](http://u.115.com/file/t1e2944734)
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: "专业的项目UI原型设计软件——Balsamiq Mockups"
|
||||
date: 2011-06-02 00:00:00
|
||||
tags: [软件, 设计]
|
||||
---
|
||||
|
||||
> 前面我介绍了一款项目UI原型设计软件pencil,之前我以为那个工具已经足够使用,足够方便了,足够强大了。不过上午时候在网上偶然发现原来设计界还有这样一款更加棒的UI原型设计软件——[Balsamiq Mockups](http://balsamiq.com/)。
|
||||
|
||||
下面着重介绍一些它的优点:
|
||||
|
||||
- 支持的平台更多,windows,linux、Mac均支持。
|
||||
- 软件包含的设计元素更加丰富,包含10个类别,而且支持将所有元素都变为速写设计的样式,看起来更加像用笔画的(我个人这样粗俗地认为)
|
||||
- 对于每个元素可以细节调节的操作和修改更加丰富。
|
||||
- 支持多窗口设计
|
||||
- 支持想设计导出为PNG、PDF
|
||||
- 针对移动设备做了很多很好的工作。
|
||||
- 支持将设计导出为html、css、flex文件等
|
||||
- 让设计人员使用起来效率更高吧。
|
||||
|
||||
下面是我刚才花大概15分钟设计的一款一个简单的界面:
|
||||
|
||||
[](/images/2011/06/newMockup.png)因此大家可以知道,这款软件的设计效率的确不是吹的,虽然这个界面很简单,不过我个人觉得还是很不错啦。
|
||||
|
||||
当然既然有这么多优点,所有它也就理所当然是一款商业软件。目前[购买这个软件](http://balsamiq.com/buy)需要$79美元,才可以获得完整的功能,当然还可以团队购买,会稍微便宜一些。
|
||||
|
||||
> ~~不过对于中国的同学来说,这么贵的软件购买还是比较不太现实。因此还好它有这样一个比较可行的免费获得软件的方式:如果你是技术/软件博客作者或者记者,那么你写一篇博客来进行推广和宣传他们的这款软件也是可以的。因此我便选择了这种方式。~~
|
||||
>
|
||||
> 最新消息:昨天这个软件商发给我一封邮件,说他们已经不再提供给博客作者的免费的授权了。看来这种方法是得不到了,大家还是去用免费的软件吧。。
|
||||
|
||||
当然它还有免费的在线版本供大家使用,或者下载试用版本!
|
||||
|
||||
希望各位都去试试吧!
|
||||
|
||||
> Mockups官方网站:<http://balsamiq.com/>
|
||||
>
|
||||
> Mockups下载:<http://balsamiq.com/download>
|
||||
>
|
||||
> 网盘下载:[http://u.115.com/file/e6cw57q3(未注册版本,可试用7天,导出等功能受限)](http://u.115.com/file/e6cw57q3%EF%BC%88%E6%9C%AA%E6%B3%A8%E5%86%8C%E7%89%88%E6%9C%AC%EF%BC%8C%E5%8F%AF%E8%AF%95%E7%94%A87%E5%A4%A9%EF%BC%8C%E5%AF%BC%E5%87%BA%E7%AD%89%E5%8A%9F%E8%83%BD%E5%8F%97%E9%99%90%EF%BC%89)
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
title: "《BBC 中国人要来了》(BBC The Chinese Are Coming)"
|
||||
date: 2011-03-27 00:00:00
|
||||
tags: [BBC, 中国]
|
||||
---
|
||||
|
||||
> 很久没有分享关于电影或者影视之类的东西了,今天给大家分享一个纪录片,是英国BBC做的关于中国的。
|
||||
|
||||
[](/images/2011/03/11022510472e32b046e54ce959_conew1.jpg)
|
||||
|
||||
这个纪录片是BBC做的主要内容是讲关于中国崛起和中国改变世界的格局,里面的记者穿越非洲,南美洲和北美洲通过一些例子去说明这个问题。
|
||||
|
||||
这个纪录片一共两集,每集约60分钟。
|
||||
|
||||
> 我个人看了这个纪录片有以下一些想法:
|
||||
>
|
||||
> - 这个纪录片是外国人拍的,一个世界上的大国英国,我个人觉得这个纪录片最终拍出来还是不是很客观的说明一些东西。
|
||||
> - 这个纪录片反映了中国的强大,和中国的商品和商人正遍布非洲和南美洲这些新兴市场。
|
||||
> - 里面讲的有一个观点就是,中国的商品正以廉价占领市场和对当地的商品造成打击。
|
||||
|
||||
个人看了这个电影还是感触很多的,只是有一些想法不方便分享出来。有些愤青。大家自己看看吧。不管怎么样,还是挺不错的这个纪录片。
|
||||
|
||||
> 下载地址:[打包下载](magnet:?xt=urn:btih:O6RFFS6ZZM7QBHXF45RAJUAQHFAQDT7A&tr.0=http://tracker.openbittorrent.com/announce&tr.1=udp://tracker.openbittorrent.com:80/announce&tr.2=http://tracker.thepiratebay.org/announce&tr.3=http://tracker.publicbt.com/announce)(请使用迅雷,电驴复制链接)
|
||||
>
|
||||
> 下载资源来自:<http://yyets.com/showresource-juji-798.html>
|
||||
@@ -0,0 +1,59 @@
|
||||
---
|
||||
title: "蓝牙手机控制电脑——不是梦!(1)"
|
||||
date: 2010-09-19 00:00:00
|
||||
tags: [java, Salling Clickr, 手机, 控制电脑, 蓝牙]
|
||||
---
|
||||
|
||||
作者:Junv
|
||||
|
||||
开始之前你需要:智能手机一部(理论上支持Java的手机都行,作者是在Nokia 6120C 下试验成功),支持蓝牙的电脑一台(不支持蓝牙的可以外接蓝牙接收器!淘宝上很便宜。),Salling Clickr 软件(这个是核心)。
|
||||
|
||||
作者设备:Nokia 6120c ,Lenovo y450.
|
||||
|
||||
下面开始
|
||||
|
||||
下面开始实现蓝牙控制电脑,
|
||||
|
||||
首先下载[Salling Clickr](http://www.salling.com/Clicker/windows/ "Salling Clickr") 软件,并安装。该软件支持windows 和 Mac两种系统!(这一步没什么特别,相信大家都可以做到!)
|
||||
|
||||
安装完成之后运行电脑端Salling Clickr 软件将看到如下页面。
|
||||
|
||||
[](/images/2010/09/搜狗截图_2010-09-19_20-59-02.png)
|
||||
|
||||
可以看到如界面显示的,用这个软件可以实现控制iTunes ,PowerPoint,windows Mediaplayer,还可以实现操作鼠标!从而达到实现操作电脑几乎所有软件的一半应用。
|
||||
|
||||
另外一个选项phone events,大家可以根据自己需要更改,这里不再多讲。
|
||||
|
||||
而在底部菜单setting里面,大家可以看到
|
||||
|
||||
[](/images/2010/09/搜狗截图_2010-09-19_21-06-17.png)
|
||||
|
||||
勾选 automatically run Salling Clickr when logging on,即表示在随电脑启动的时候就自启动该软件。
|
||||
|
||||
Disconnect idle 里面则表示多少时间手机不操作则断开手机与电脑的链接。这个可以根据自己需要选择。
|
||||
|
||||
其他的设置就不在这里演示了。
|
||||
|
||||
现在开始比较关键的设置手机型号,软件会根据相应的型号,然后给你提供相应的软件,支持 Symbian s60,s40(java),windows moblie ,理论上支持Java的软件都可以支持!这个情大家试试吧。
|
||||
|
||||
点主界面的set up device.
|
||||
|
||||
[](/images/2010/09/搜狗截图_2010-09-19_21-18-30.png)
|
||||
|
||||
先选brand 商标,然后选择型号 model .里面包含了很多手机的型号,出了iphone。android 最新的型号,但是可能android 用Java版本可以使用!
|
||||
|
||||
选好之后
|
||||
|
||||
[](/images/2010/09/搜狗截图_2010-09-19_21-21-14.png)
|
||||
|
||||
点copy to desktop,软件就将你手机所需要的软件复制到桌面。再点 continue .然后就是安装手机端软件啦。
|
||||
|
||||
在Nokia 6120c 下面安装好之后,出现如下图标。[](/images/2010/09/SuperScreenshot0002.jpg)
|
||||
|
||||
我这里有两个一个是sis格式的,另外一个是java 版
|
||||
|
||||
本的。
|
||||
|
||||
接下来你需要继续阅读:
|
||||
|
||||
## [蓝牙手机控制电脑——不是梦!(2)](http://www.junv.info/2010/09/19/%e8%93%9d%e7%89%99%e6%89%8b%e6%9c%ba%e6%8e%a7%e5%88%b6%e7%94%b5%e8%84%91%e2%80%94%e2%80%94%e4%b8%8d%e6%98%af%e6%a2%a6%ef%bc%812/)
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: "蓝牙手机控制电脑——不是梦!(2)"
|
||||
date: 2010-09-19 00:00:00
|
||||
tags: [Salling Clickr, java,手机, 控制, 电脑]
|
||||
---
|
||||
|
||||
作者:Junv
|
||||
|
||||
上篇文章阅读:[蓝牙手机控制电脑——不是梦!(1)](http://www.junv.info/2010/09/19/%e8%93%9d%e7%89%99%e6%89%8b%e6%9c%ba%e6%8e%a7%e5%88%b6%e7%94%b5%e8%84%91%e2%80%94%e2%80%94%e4%b8%8d%e6%98%af%e6%a2%a6%ef%bc%811/)
|
||||
|
||||
接下来我们实现手机连接电,并控制电脑的操作。。
|
||||
|
||||
这里我选择运行Java 版本的程序(sis也可以!),
|
||||
|
||||
手机版本的界面如图所示。
|
||||
|
||||
[](/images/2010/09/SuperScreenshot0003.jpg)
|
||||
|
||||
我们选择connect.(连接)需要确认你的电脑支持蓝牙,并打开。你的手机支持蓝牙并打开。
|
||||
|
||||
[](/images/2010/09/SuperScreenshot0004.jpg)
|
||||
|
||||
选择你的电脑,这里我的电脑是lenovo-pc.然后连接
|
||||
|
||||
连接成功后得以下界面。这里可以看淡菜单项,
|
||||
|
||||
[](/images/2010/09/SuperScreenshot0005.jpg)
|
||||
|
||||
可以看到现在该软件支持控制三种程序,在system里面还可以实现控制鼠标,和调节声音大小。
|
||||
|
||||
在我们进去之后。点击 menu菜单,然后在里面选择open presentation>>>>在里面可以看到两个选项,我们这里选择recent(这里为了演示方便,而且我以前使用过,如果初次使用你必须选择browse,从电脑里面浏览)
|
||||
|
||||
[](/images/2010/09/SuperScreenshot0006.jpg)
|
||||
|
||||
这是手机连接电脑成功的画面,此时电脑的现实是这个样子的,自己调出了PowerPoint
|
||||
|
||||
此时点击手机的ok键,电脑即进入全屏PPt模式,手机界面还有PPT页面的预览显示,手机的左右键即可控制PPT的上下页浏览。
|
||||
|
||||
[](/images/2010/09/SuperScreenshot0007.jpg)
|
||||
|
||||
其他的功能就留给大家自己探索吧,反正这款软件相当不错。
|
||||
|
||||
大家有什么不懂的,请留言吧,我会尽量给大家解答的。
|
||||
|
||||
下面附上下载链接:里面包含电脑端安装软件,再弱弱地说一下还有注册机哦。
|
||||
|
||||
[点击下载](http://cid-5b8b195ca5b3555d.office.live.com/self.aspx/.Public/SallingClickerV3.5.0.860.rar)
|
||||
@@ -0,0 +1,143 @@
|
||||
---
|
||||
title: "C++实现顺序链表所有操作代码"
|
||||
date: 2010-12-23 00:00:00
|
||||
tags: [代码, c++]
|
||||
---
|
||||
|
||||
今天才开始复习数据结构,而且这本书复习起来很慢啊。但是还是不得不复习。
|
||||
|
||||
今天从早上到现在的时候,我终于把顺序单链表的所有操作搞熟悉了,建立,插入,删除,排序,查找,打印,遍历。
|
||||
|
||||
现在就附上代码吧,如果觉得有用就拿去吧,代码却对正确,已经在visual studio 2010 调试通过。
|
||||
|
||||
C++语言: [临时自用代码](http://fayaa.com/code/view//)
|
||||
|
||||
001 #include
|
||||
002 using namespace std;
|
||||
003
|
||||
004 struct list{
|
||||
005 int Maxsize;
|
||||
006 int \*student;
|
||||
007 int length;
|
||||
008
|
||||
009 };
|
||||
010 void initList(list &stuList,int size)
|
||||
011 {
|
||||
012 //这里定义了链表长度
|
||||
013 stuList.Maxsize = 10;
|
||||
014 stuList.student=new int[stuList.Maxsize];
|
||||
015 if(stuList.student==NULL){
|
||||
016 cout<<"内存不够!"<<endl;
|
||||
017 exit(1);
|
||||
018 }else{
|
||||
019 cout<<"创建成功"<<endl;
|
||||
020 }
|
||||
021 stuList.length=size;;
|
||||
022
|
||||
023
|
||||
024 }
|
||||
025 void createList(list &stuList)
|
||||
026 {
|
||||
027 //输入链表
|
||||
028 cout<<"请输入顺序链表:"<<endl;
|
||||
029 for(int i=;i<stuList.length;i++){
|
||||
030 cin>>stuList.student[i];
|
||||
031 }
|
||||
032 }
|
||||
033 void outputList(list &stuList)
|
||||
034 {
|
||||
035 //打印链表
|
||||
036 cout<<"你的链表为:"<<endl;
|
||||
037 for(int i=;i<stuList.length;i++){
|
||||
038 cout<<stuList.student[i]<<" ";
|
||||
039 }
|
||||
040 cout<<endl;
|
||||
041 }
|
||||
042 void sortList(list &stuList)
|
||||
043 {
|
||||
044 //为链表排序,排序说明:第一次前两个数比较,第二次第三个数和前两个数比较,以此类推
|
||||
045 int i,j;
|
||||
046 int temp;
|
||||
047 for(int i=1;i<stuList.length;i++){
|
||||
048 temp=stuList.student[i];
|
||||
049 for(j=i-1;j>=;j–){
|
||||
050 if(stuList.student[j]>temp){
|
||||
051 stuList.student[j+1]=stuList.student[j];
|
||||
052 }else break;
|
||||
053 }
|
||||
054 stuList.student[j+1]=temp;
|
||||
055 }
|
||||
056
|
||||
057 }
|
||||
058 bool update(list &stuList,int updateTo,int item)
|
||||
059 {
|
||||
060 cout<<"你要更改的数为"<<item<<endl;
|
||||
061 int i;
|
||||
062 for(i=;i<stuList.length;i++){
|
||||
063 if(item==stuList.student[i])
|
||||
064 break;
|
||||
065
|
||||
066 }//获取被更改元素的位置;
|
||||
067 if(i==stuList.length)
|
||||
068 return false;//已经将链表全部遍历,仍没找到,则返回false
|
||||
069 stuList.student[i]=updateTo;
|
||||
070 return true;
|
||||
071 }
|
||||
072 bool insert(list &stuList,int item)
|
||||
073 {
|
||||
074 cout<<"你要插入的数为"<<item<<endl;
|
||||
075 stuList.length++;
|
||||
076 stuList.student[(stuList.length)-1]=item;//将新增的链表的最后一个元素等于item.
|
||||
077 return true;
|
||||
078 }
|
||||
079 bool deleteNum(list &stuList,int item)
|
||||
080 {
|
||||
081 cout<<"你要删除的数为"<<item<<endl;
|
||||
082 int i;
|
||||
083 for(i=;i<stuList.length;i++){
|
||||
084 if(item==stuList.student[i])
|
||||
085 break;
|
||||
086
|
||||
087 }//获取被删除元素的位置;
|
||||
088 if(i==stuList.length)
|
||||
089 return false;//已经将链表全部遍历,仍没找到,则返回false
|
||||
090 for(int y=i+1;y<stuList.length;y++){
|
||||
091 stuList.student[y-1]=stuList.student[y];
|
||||
092
|
||||
093 }//删除元素
|
||||
094
|
||||
095 stuList.length–;
|
||||
096 return true;
|
||||
097 }
|
||||
098 int main()
|
||||
099 {
|
||||
100 list jList;
|
||||
101
|
||||
102 initList( jList,5);//5为链表长度
|
||||
103 createList(jList);
|
||||
104 if(insert(jList,10)){
|
||||
105 cout<<"插入成功"<<endl;
|
||||
106 }else{
|
||||
107 cout<<"插入失败"<<endl;
|
||||
108 }
|
||||
109 sortList(jList);
|
||||
110 outputList(jList);
|
||||
111 if(deleteNum( jList,20)){
|
||||
112 cout<<"删除成功!"<<endl;
|
||||
113 }else{
|
||||
114 cout<<"删除失败"<<endl;
|
||||
115 }
|
||||
116 if(update( jList,30,12)){
|
||||
117 cout<<"更改成功!"<<endl;
|
||||
118 }else{
|
||||
119 cout<<"更改失败"<<endl;
|
||||
120 }
|
||||
121
|
||||
122 sortList(jList);
|
||||
123 outputList(jList);
|
||||
124
|
||||
125
|
||||
126
|
||||
127 system ("pause");
|
||||
128 return ;
|
||||
129 }
|
||||
@@ -0,0 +1,158 @@
|
||||
---
|
||||
title: "使用 Caddy Web服务器显示 Markdown 文件"
|
||||
date: 2017-10-12 16:15:00
|
||||
tags: [caddy, markdown]
|
||||
---
|
||||
|
||||
建议阅读此篇文章前,先阅读本博客的前篇 Caddy上手文章 ——【[快速上手更简单的 Web 服务器 —— Caddy](http://toozhao.com/2017/09/19/caddy/)】
|
||||
|
||||
本篇文章我们将利用 Caddy Web 服务器的Markdown 插件和它强大的网页模板功能,在直接托管,渲染显示Markdown文件。
|
||||
|
||||
现在得益于 Markdown 的简单易用,越来越多的文档都在使用使用 Markdown来编写。像我们常用的 Github、GitBook 等流行服务也都在使用 Markdown。那么为什么越来越多的相关技术文档和资料都是使用 Markdown 编写的呢?我觉得所有原因都归于『简单』二字。我们通过一些常用的符号标记,就可以写出格式整齐、漂亮的文档。而不用写繁琐的 HTML。而通过简单的工具转化,我们就可以将 Markdown 文档转成 HTML 的格式。
|
||||
|
||||
## 安装 Caddy
|
||||
|
||||
那现在就让我们来实现这个功能吧,首先你得在你的电脑或者服务器上安装 Caddy,如何安装?请查看之前的文章进行回顾或直接运行如下脚本:
|
||||
|
||||
```bash
|
||||
curl https://getcaddy.com | bash -s personal
|
||||
```
|
||||
|
||||
## 初步渲染 Markdown
|
||||
|
||||
Markdown 作为 Caddy Web 服务器的标准指令,使得我们可以直接在 Caddyfile 配置文件中使用该指令,托管,渲染Markdown 文件。
|
||||
|
||||
```bash
|
||||
0.0.0.0:8080 {
|
||||
markdown {
|
||||
ext .md .markdown
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
这里的配置是说:在我们希望托管 Markdown 文件的服务器地址块中,让服务器对当前目录启用渲染 Markdown 文件的功能,即当我们访问 Markdown 文件时,Caddy 自动将其转化为 HTML 进行展示。下面我将以为我本地的文件作为示例给大家展示效果和截图。
|
||||
|
||||

|
||||
|
||||
如图所示为 Caddyfile 所在目录。可以看到这里有若干子目录,和子目录下面的.md 文件。现在让我们运行 caddy。 在浏览器中访问 `http://localhost:8080/0.general/0.general.md`文件。可以看到效果如下:
|
||||
|
||||

|
||||
|
||||
Caddy 成功的将 Markdown文件以网页的形式进行展示,并且正确显示此了相应的格式和层次结构。但是这里有个美中不足之处,Caddy 渲染出的效果,不够美观。简单一点说,没有 CSS 修饰。
|
||||
|
||||
### 美化 Markdown 文件
|
||||
|
||||
那我们如何将Markdown 文件更加美观的展示呢?由于 Caddy 本身是使用 Golang 进行开发的,因此 Caddy 也将 Go 强大的模板功能提供给了用户。这里我们可以利用 Caddy 模板功能来美化 Markdown 文件。我们将在模板网页中加入特定 CSS 来美化页面。CSS 库来自: <https://github.com/sindresorhus/github-markdown-css>
|
||||
|
||||
在 Caddyfile 目录下创建一个叫 `template.html` 的网页文件,添加如下内容:
|
||||
|
||||
```html
|
||||
html>
|
||||
html>
|
||||
|
||||
head>
|
||||
title>{{.Doc.title}}title>
|
||||
link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/2.8.0/github-markdown.css">
|
||||
style>
|
||||
.markdown-body {
|
||||
box-sizing: border-box;
|
||||
min-width: 200px;
|
||||
max-width: 980px;
|
||||
margin: 0 auto;
|
||||
padding: 45px;
|
||||
}
|
||||
style>
|
||||
head>
|
||||
|
||||
body>
|
||||
div class="markdown-body">
|
||||
{{.Doc.body}}
|
||||
div>
|
||||
body>
|
||||
html>
|
||||
```
|
||||
|
||||
我们的 Markdown 文本内容会在 `<div class="markdown-body">` 中显示。`github-markdown-css` 库会对类名为 `markdown-body` 中的内容进行美化。
|
||||
`.Doc.title` 和 `.Doc.body` 则是网页模板中的动态内容,前者为文档的文件名,而后者为文档中的全部内容。与此同时,我们需要在 Caddyfile 配置文件中添加模板特性。
|
||||
HTML 中而外的 `<style>`标签是为了,限制页面内容的宽度,和将内容居中显示。
|
||||
|
||||
```bash
|
||||
0.0.0.0:8080 {
|
||||
markdown {
|
||||
ext .md .markdown
|
||||
template template.html #后面的值即为模板文件的文件地址
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
重启 Caddy 服务器,刷新页面。有没有觉得页面变得更加美观,漂亮了。
|
||||
|
||||

|
||||
|
||||
### 添加文档目录索引(TOC)
|
||||
|
||||
现在我们的 Markdown 文档已经可以很美观的进行展示了,但是我们还可以做得更好,让用户在第一屏就可以查看当前文档的目录索引,而且可以点击链接进行快速访问和跳转。 这就是我们常见的 TOC 功能。(Table of contents)
|
||||
|
||||
为了实现 TOC功能,我们需要引入两个 JS 库:
|
||||
|
||||
- jQuery, 由于 Caddy 在对 Markdown文档进行转化时,没有为h1,h2,h3 这样的标题添加 id属性,而我们的`<a>`链接跳转,正需要 id 属性。因此,我们需要手动为各级标题添加 id 属性。
|
||||
- tocbot,该 JS 库可以自动生成 TOC 内容。
|
||||
|
||||
因此修改我们的网页模板成类似以下内容:
|
||||
|
||||
```html
|
||||
html>
|
||||
html>
|
||||
head>
|
||||
title>{{.Doc.title}}title>
|
||||
script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js">script>
|
||||
script src="https://cdnjs.cloudflare.com/ajax/libs/tocbot/3.0.4/tocbot.min.js">script>
|
||||
link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/2.8.0/github-markdown.css">
|
||||
link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tocbot/3.0.4/tocbot.css" />
|
||||
style>
|
||||
.markdown-body {
|
||||
box-sizing: border-box;
|
||||
min-width: 200px;
|
||||
max-width: 980px;
|
||||
margin: 0 auto;
|
||||
padding: 45px;
|
||||
}
|
||||
style>
|
||||
script>
|
||||
$(document).ready(function () {
|
||||
//为各级标题自动生成id属性
|
||||
$("h1,h2,h3").each(function () {
|
||||
var hyphenated = $(this).text().replace(/\s/g, '-');
|
||||
$(this).attr('id', hyphenated);
|
||||
});
|
||||
// 初始化 toc 内容
|
||||
tocbot.init({
|
||||
tocSelector: '.toc', // 放置 toc 内容的容器
|
||||
contentSelector: '.markdown-body', // markdown 文档内容所在
|
||||
headingSelector: 'h1, h2, h3', // 需要索引的标题级别
|
||||
positionFixedSelector: ".toc" //将 toc 内容块位置固定。
|
||||
});
|
||||
});
|
||||
script>
|
||||
head>
|
||||
body>
|
||||
div class="toc">
|
||||
div>
|
||||
div class="markdown-body">
|
||||
{{.Doc.body}}
|
||||
div>
|
||||
body>
|
||||
html>
|
||||
```
|
||||
|
||||
保存后,直接刷新页面。我们就可以看到带有 TOC 的 Markdown 文档了。
|
||||
|
||||

|
||||
|
||||
我们还可以试着访问下另外目录下的 Markdown 文件,可以看到所有 Markdown 文件都带有 TOC 和美观的样式了。
|
||||
|
||||

|
||||
|
||||
## 总结
|
||||
|
||||
所以,如果你不想把 Markdown文档放到 Github 或者使用 GitBook 来托管,可以试试这种方法,快速搭建一个基于 Caddy 服务器的 Markdown 文档的网站。
|
||||
@@ -0,0 +1,110 @@
|
||||
---
|
||||
title: "快速上手更简单的 Web 服务器 —— Caddy"
|
||||
date: 2017-09-19 16:23:00
|
||||
tags: [caddy]
|
||||
---
|
||||
|
||||

|
||||
|
||||
说到Web 服务器,我们大多想到的是 Apache 这个老前辈和如日中天的Nginx,但是这里今天我将要分享的是 Web 服务器和反向代理服务器的新秀 Caddy。在我们拥有了这么强大的 Nginx 以后我们为什么还需要 Caddy?
|
||||
我认为 Caddy 之所以可以占有一席之地是因为它的两大法宝:`配置简单` 和 `自动启用 HTTPS`。下面带下面快速上手这个软件。
|
||||
|
||||
## 安装
|
||||
|
||||
Caddy 提醒定制化的下载,可以自由选择各种插件和平台。请前往: <https://caddyserver.com/download> 下载。 也可以使用这个一键安装脚本:
|
||||
|
||||
```bash
|
||||
curl https://getcaddy.com | bash
|
||||
```
|
||||
|
||||
完成之后,我们可以尝试执行下`caddy -version`。 当你看到有有类似:`Caddy 0.10.9`,即表示安装成功。
|
||||
|
||||
## Hello World
|
||||
|
||||
在命令行里面直接输入`caddy`,然后打开浏览器输入: `http://ip:2015`。 看到什么了吗? 你得到了一个404页面。Caddy 已经成功运行了。相比与其他浏览器需要各种配置文件才能运行相比,这就是 Caddy 的简单之处,不需要任何配置文件即可运行。当然当我们需要各种高级功能的时候,配置文件还是必不可少的。
|
||||
|
||||
默认情况下,Caddy 运行在`2015` 端口。我们可以可以 Caddy 强大的命令行工具来自定义运行端口。
|
||||
|
||||
```bash
|
||||
caddy -p 80
|
||||
```
|
||||
|
||||
在无配置文件的情况下,Caddy 默认是映射当前程序执行的目录所有文件。因此我们可以快速创建一个文件:
|
||||
|
||||
```bash
|
||||
echo "Hello Caddy" >> index.html
|
||||
```
|
||||
|
||||
再次刷新浏览器,刚才我们写的 `Hello Caddy` 已经出现在页面上了
|
||||
|
||||
## 强大的配置文件
|
||||
|
||||
Caddy 各种强大的功能还得需要 Caddyfile 体现。我们可以在任意目录放置我们的配置文件,通过命令行`caddy -conf` 即可指定
|
||||
|
||||
### Host 目录下的网页
|
||||
|
||||
```plaintext
|
||||
0.0.0.0:8080 {
|
||||
root /usr/local/www/
|
||||
}
|
||||
```
|
||||
|
||||
这里简单解释下,`0.0.0.0` 表示我们将网站绑定至可以访问到本机的任意一个 IP;`8080`表示我们将网站暴露在8080端口; `root` 参数则表示网站的根节点。这就是最简单的一个Host 网站的配置。
|
||||
|
||||
当前我们可以对网站添加更多的配置。比如设置响应过期时间,启用 gzip, 指定各种日志的输出端。
|
||||
|
||||
```bash
|
||||
0.0.0.0:8080 {
|
||||
root /usr/local/www/
|
||||
timeouts 30s
|
||||
gzip
|
||||
log /var/log/caddy/access.log
|
||||
errors /var/log/caddy/error.log
|
||||
}
|
||||
```
|
||||
|
||||
### 配置反向代理
|
||||
|
||||
什么时候你会需要反向代理呢?想象你有一个前后端分离的程序。前端是通过 JS 发送 Ajax 请求后端 API。默认情况下前端程序占用一个端口,后端占用一个另外端口。我们会遇到两个问题: CORS(跨域请求)和额外的 Options 请求。 这个时候我们就可以使用反向代理让前端和后端共享一个端口。
|
||||
|
||||
那怎么做呢,在 Caddy 里面也特别简单,假设我们的前端就是上面的那样,而我们的后面之前都运行在:`http://ip:4000` 下面。而且我们的 后端 API URL 里面都有 `/api`
|
||||
|
||||
```bash
|
||||
0.0.0.0:8080/api {
|
||||
proxy / 127.0.0.0:4000/api {
|
||||
transparent
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
这里的配置的意思是说,当浏览器收到所有包含`:8080/api` 的请求都会自动转发到`127.0.0.1:4000/api` 这个地址,而`:8080/api` 后面的地址会自动转发下去,而`transparent` 这个设置保证了我们的转发不会在浏览器生成任何额外的`301` 或者`302`请求。
|
||||
|
||||
## 自动 HTTPS
|
||||
|
||||
Caddy 另外一个亮点就是,可以为已经`绑定域名`的在`公网`运行的服务器自动从 Let’s Encrypt生成和下载 HTTPS 证书,让你的网站支持 HTTPS 协议访问,保证网站数据传输的安全。很简单,你所需的仅仅是将绑定的 IP 改成域名。
|
||||
|
||||
```bash
|
||||
xxx.com {
|
||||
root /usr/local/www/
|
||||
}
|
||||
```
|
||||
|
||||
再次运行Caddy,按照提示输入你的 Email 之后。Caddy 会自动帮你获取并启用 HTTPS 证书。
|
||||
|
||||
```bash
|
||||
root@ss2:~# caddy -conf Caddyfile
|
||||
Activating privacy features...
|
||||
Your sites will be served over HTTPS automatically using Let's Encrypt.
|
||||
By continuing, you agree to the Let's Encrypt Subscriber Agreement at:
|
||||
https://acme-v01.api.letsencrypt.org/terms
|
||||
Please enter your email address so you can recover your account if needed.
|
||||
You can leave it blank, but you'll lose the ability to recover your account.
|
||||
Email address: xxxx@gmail.com
|
||||
done.
|
||||
https://xxx.com
|
||||
http://xxx.com
|
||||
```
|
||||
|
||||
## 总结
|
||||
|
||||
通过上面的例子,我们可以看出 Caddy的快速上手能力和超级实用的 HTTPS 功能。除此之前 Caddy 还提供一大堆的插件供我们使用。比如直接访问 Markdown 文件、Host Git 仓库的文件、将自身 Metric 数据传到 Prometheus 等等。快去试试吧!
|
||||
@@ -0,0 +1,59 @@
|
||||
---
|
||||
title: "年度游戏大作——使命召唤7完美破解版下载"
|
||||
date: 2010-11-09 00:00:00
|
||||
tags: [下载, 免费, 使命召唤]
|
||||
---
|
||||
|
||||
注:此文章大部分内容来自3DM,且游戏资源资源也是来自3DM。
|
||||
|
||||
此游戏在今天才正式发布,因此相信这个资源也应该是最新的。
|
||||
|
||||
[](/images/2010/11/20101025160542364.jpg)
|
||||
|
||||
**中文名称**:使命召唤7:黑色行动
|
||||
**游戏名称**:Call of Duty: Black Ops
|
||||
**游戏发行**:Activision
|
||||
**游戏制作**:Treyarch
|
||||
**游戏语言**:英语
|
||||
**游戏类型**:射击
|
||||
**发行日期**:2010年11月09日
|
||||
|
||||
**游戏介绍**
|
||||
《使命召唤:黑色行动》(Call of Duty: Black Ops)是Activision公司出品的著名FPS游戏《使命召唤》系列的第七部,故事设定在越南战争与北极、古巴等一些冷战地区。玩家将扮演神秘组织成员,进行暗杀、不可告人的任务。“丧尸”模式可能回归,据了解“黑色行动”将是系列里画面最优秀的。
|
||||
《使命召唤:黑色行动》游戏背景故事剧情设定在了上世纪后期的美国越南战争时期,游戏主要描述了战争期间的一个名称为Studies and Observations Group的组织。
|
||||
他们将在越南战争中承担最秘密、最危险的任务。而且游戏场景还会穿插北极、古巴等一些冷战时期的热点地区。
|
||||
玩家投身越南丛林时将扮演MACV-SOG成员,专司敌后渗透、破坏、暗杀等不可告人的隐秘行动。《使命召
|
||||
唤:黑色行动》将为你带来电影般的视觉冲击和紧张刺激的战斗。
|
||||
动视暴雪认为《使命召唤:战争世界》是个巨大的成功,下载包(DLC)中添加了更多的纳粹僵尸地图让玩家能探索更多的游戏成就,有很多玩家玩家热衷于这种游戏方式,甚至呼吁在现代战争2中沿用这种模式。所以可以猜测动视暴雪有理由在使命召唤7中回归这种模式。
|
||||
《使命召唤:黑色行动》是Teyarch首部非二战题材的游戏。据USA Today最新报道称,《黑色行动》将带有支持最多四个玩家的合作模式。多人游戏模式当然也是不可或缺的,但目前更多的细节还尚不知晓。与此前的预测不同的是,游戏将有两名主角。
|
||||
Treyarch老大Mark Lamia说:“我们的编剧们正在尽力描绘一个宏大的故事,玩家们将见证这些角色的发展过程。”为了将故事描绘地更好,Treyarch专门请教了多名对冷战时期的政治和军事有一定研究的专家和学者。Lamia说:“我们不仅是在做娱乐产品,更是在重现历史。我们希望人们在玩过我们的游戏后能够更加了解这段历史。”
|
||||
还记得预告片中那个SR-71 Blackbird侦察机吗?你将可以从操作它在天空中飞翔,点击某个区域,军队就会向那里进发。此功能肯定不会太复杂,不会像《幽灵战士》那么高科技。此外,还有一个新特性在于,你可以切换弩箭的弹药,爆炸弩箭可以在小范围内造成爆炸效果。
|
||||
|
||||
**安装信息**
|
||||
1.解压缩
|
||||
2.复制破解补丁到游戏目录下(<http://bbs.3dmgame.com/showtopic-1564012.html>)
|
||||
3.运行游戏
|
||||
|
||||
**配置需求**
|
||||
System requirements:
|
||||
|
||||
- Operating system Windows XP/Vista/7;
|
||||
- Processor Intel Core Duo E6600/AMD Phenom X3 8750 or better;
|
||||
- 2 GB of RAM;
|
||||
- 12 GB of free hard disk space;
|
||||
- Graphics Card NVIDIA GeForce 8600GT/ATI Radeon X1950 Pro or better with 256 MB of graphics memory with support for Shader 3.0;
|
||||
- Sound card;
|
||||
- Device for reading DVD;
|
||||
- Keyboard and mouse.
|
||||
|
||||
[](/images/2010/11/11-9_conew1.jpg)
|
||||
|
||||
下面是本童鞋想说的一些话,相信常玩单机游戏的朋友,没有不知道使命召唤系列游戏吧,即是call of duty,该游戏美奶奶出一个新版本。今年已经到了第七年。这个游戏特别注重游戏的真实感,画面也很棒,当然对电脑要求也很高哦,所以电脑配置不好的朋友,量力而行吧。
|
||||
|
||||
这个版本里面还加入了时下很流行的僵尸模式,很让人期待哦。我已经在下载啦,你呢?
|
||||
|
||||
我话就不多说了,大家自己下载吧!玩吧,保证让你爽到死。哈哈
|
||||
|
||||
下载种子:[点我](http://u.115.com/file/f1e11537b6)
|
||||
|
||||
附3DM论坛使命召唤 7游戏发布地址:<http://bbs.3dmgame.com/showtopic-1564026-1.html> 需要注册哦。
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
title: "Cbox:2011亚洲杯在线观看"
|
||||
date: 2011-01-09 00:00:00
|
||||
tags: [软件, 电视]
|
||||
---
|
||||
|
||||
> 现在的P2P视频播放软件比比皆是,然而我推荐Cbox并不是因为他的电影多么丰富,还有很多高清电影,而是把它作为一个互联网电视的客户端,我们可以在线免费看到众多电视台的标清和高清直播,还有电视节目电视剧点播服务,而最新的服务这是节目回放功能,帮你看你最近漏过的节目。
|
||||
|
||||
[](/images/2011/01/1-9-1_conew1.jpg)如图所示,为Cbox的软件截图。
|
||||
|
||||
做过中国监管电视的官方机构,开发的软件的确有很多优势,首先看直播它拥有其他客户端无可比拟的权限,因此几乎所有国内的卫视电视台你都可以在这里找到,此外你还可以找到很多省会城市的城市电视台,真实一些比较小的城市电视台也有比如**延边卫视**。而且任何电视台的直播都有两种视频讯号输出,分别是**标清**和**高清**。标清适合1M一下宽带播放,高清适合1M及以上宽带播放。高清真的播放效果很棒。不好的是直播里面没有**凤凰卫视**的节目,而在点播里面有凤凰卫视的部分节目。
|
||||
|
||||
作为最近正在上演的**2011亚洲杯**,当然作为中国球迷的我们当然不能错过这个机会,使用Cbox来看视频在方便不过了。只要选择CCTV5,CNTV体育台就可以啦。
|
||||
|
||||
其次就是点播节目了,个人感觉点播节目里面对于地方卫视的节目收录不是很全,但是对于央视的每个节目几乎都收录了,所以如果你想看CCTV2**商道**、CCTV10**百家讲坛**,那就再好不过了,作为一个童鞋,寝室不可能有电视,对于我很喜欢的商道,我只有在这上面看了,在其他地方也找不到。
|
||||
|
||||
最后就是Cbox最新推出的功能,电视回放功能,可以帮你回放最近的节目,比如昨天的什么比赛。你只要在直播的频道里面选择昨天,在你错过的节目下方就会出现一个**点击观看回放**的链接,点击就可以欣赏啦。具体如下图所示:
|
||||
|
||||
[](/images/2011/01/1-9-2.jpg)在文末需要说明的是,当然Cbox里面还可以看很多电视剧,这些都是正版的,但是可能最新的电视剧没有。还有使用直播功能还是会有一个缺点,因为是P2P软件,**必定会有2分钟左右的延迟**,这点事看电视说没有的,大家只能克服了。
|
||||
|
||||
**软件下载:[官方下载地址](http://cbox.cntv.cn/download/cboxbeta2.0.0.1.exe) (如果不能下载,请进入[官方网站](http://cbox.cntv.cn/)下载最新版本)**
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: "分享六级词汇供下载,只是因为我需要面对!"
|
||||
date: 2010-09-25 00:00:00
|
||||
tags: [下载, 六级, 分享, 英语, 词汇]
|
||||
---
|
||||
|
||||
作者:Junv
|
||||
|
||||
很庆幸自己在今年6月考过了4级,很纠结的是今年12月我又要面对英语6级。老实说我很多4级单词根本都不认识,考过英语4级完全靠的是我高中的底子!
|
||||
|
||||
但是自己也明白上了大学,对英语这方面花的功夫太少了,唯一增加了的就是:我开始看美剧!到现在为止算是看了5部左右吧,其实在美剧的时候,有时候还是比较纠结的,因为把看美剧荒废了学业,但是自己很多时候又是在耍!好了,还是废话少说。
|
||||
|
||||
[](/images/2010/09/f14_24825251.jpg)
|
||||
|
||||
下面来介绍一些为大家准备的英语六级词汇文档。
|
||||
|
||||
一共两份,两份均来自百度文档分享中心。一份是有英标的(我个人决定有英标很重要!至少可以让我们晓得这个单词怎么发音!),另外一份就是没有音标的了。
|
||||
|
||||
这里有个从网上截取下来的资料:
|
||||
|
||||
**1.****听力**
|
||||
|
||||
四级听力语速为130~150词每分钟,略快于VOA Special English,大部分考生会由于长期缺乏训练,会有较长的适应期。
|
||||
|
||||
六级听力语速则达到150~180词每分钟,英美音并重,且难点多于四级。许多考生在做听力练习时有如游梦境、不知所云的感觉。
|
||||
|
||||
**2.****词汇与语法**
|
||||
|
||||
四级要求考生领会式掌握4200个单词,以及由这些单词构成的常用词组,并具有按照基本构词法识别生词的能力,语法已达到大学最难水平;六级考试要求掌握5500个单词,其中1300以上个较难单词成为六级考试的核心内容,六级考试中30道词汇题只涉及30个高难词汇的辨析。
|
||||
|
||||
那天我看了看她的六级词汇书,感觉词汇不是很多,而且有不少词汇其实我们都认识,可能只是不会写。相信我们只要努力这些词汇都不是问题的!
|
||||
|
||||
哈哈,加油咯!
|
||||
|
||||
下面分享下载地址吧:[无音标版](/images/2010/09/2010年大学英语六级词汇表免费下载.doc)
|
||||
|
||||
[有音标版](/images/2010/09/2010大学英语六级词汇表-带音标-完美打印版-免费下载.doc)(注意两种版本的单词有一些不同哦)
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: "2010年6月英语六级考试原题下载"
|
||||
date: 2010-11-18 00:00:00
|
||||
tags: [下载, 免费, CET6]
|
||||
---
|
||||
|
||||
话不多说,分享只为需要的同学们准备。希望大家努力备考,考过六级。
|
||||
|
||||
需要的同学就下载吧,保证是原题,附带听力原文供下载。都在压缩包里面。
|
||||
|
||||
[](/images/2010/11/bag_13.png)
|
||||
|
||||
2010/6 CET6英语真题:[点我下载](http://u.115.com/file/f17e117b91)
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
title: "chrome 阅读文章app——ireader:给你更好的阅读体验"
|
||||
date: 2011-03-13 00:00:00
|
||||
tags: [chrome, google, app]
|
||||
---
|
||||
|
||||
> 又有几天笔者没有认真更新博客了,自己有些事需要处理吧,老实说看着自己博客的这个样子有时候性质很高,但是有时候又感觉没有动力。不过我还是会继续更新的。今天给大家分享的还是关于google chrome浏览器的东西,一款阅读app ——ireader.
|
||||
>
|
||||
> [](/images/2011/03/22_conew1.jpg)
|
||||
|
||||
如果你厌恶有些网页满篇都是广告,如果你厌恶某些网站的文章的字体让你看起来很不舒服,如果你只想很纯粹的阅读文章,而且看文章的时候网页的背景让眼睛很舒服。那么我推荐各位同学使用这样一款google app ——[ireader](https://chrome.google.com/webstore/detail/ppelffpjgkifjfgnbaaldcehkpajlmbc)
|
||||
|
||||
[](/images/2011/03/3-14-2_conew1.jpg)
|
||||
|
||||
如图是打开某网页进入阅读模式的图片
|
||||
|
||||
如果你安装了这款插件,当你进入有文章的网页时,该插件会自动识别网页,并在浏览器网址栏里面出现ireader app的图标,现在你只需要点击那个图标即可以进入阅读模式。
|
||||
|
||||
阅读模式完全屏蔽网页的广告,自动将文章的字体转换到让你的眼睛很舒服的状态,而且你还可以在该 app 的设置状态设置浏览时选择的字体和是否显示图片。
|
||||
|
||||
注意:可能有些有文章的网页不能够被该插件识别,我个人觉得原因是可能是该网页文章内所含图片的个数太多或者文章的内容过于少了!不过大多数情况是可以识别的!
|
||||
|
||||
> ## 下载插件:[点我进入google app store 下载](https://chrome.google.com/webstore/detail/ppelffpjgkifjfgnbaaldcehkpajlmbc)
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: "让你的chrome也能支持迅雷、电驴、QQ旋风"
|
||||
date: 2011-01-15 00:00:00
|
||||
tags: [下载, 插件, chrome]
|
||||
---
|
||||
|
||||
> 俗话说得好,当上帝为你打开一扇窗的时候,也许就在另外一个地方为了关上了一道门(貌似是这样说的,嘿)。不过现在上帝可能还为你留下了一道门缝,门也并没有关死。
|
||||
|
||||
[](/images/2011/01/1-15-3.jpg)
|
||||
|
||||
用过chrome(谷歌)浏览器的童鞋都知道,那速度真叫一个快啊,为什么这么多出来google有很好的网页编码核心以外,它还减去了IE浏览器带有的一些东西,这也许也是原因之一,因此我们使用迅雷的时候才会碰到,在chrome里面不能使用迅雷连接,我们只能复制迅雷链接,然后到迅雷里面打开。
|
||||
|
||||
不过最近情况已经又所改观,迅雷官方已经开发出了一款插件,让chrome浏览器已经右键支持迅雷链接了,这个chrome插件可以在最新版本的迅雷7里面包含。(注:笔者下载的是优先体验版,好像这个版本还没有对公众开放),不过我们还有更好的办法,同样是通过插件,让你的chrome不仅支持迅雷,还支持快车、电驴、QQ旋风等等众多P2P下载软件。这款插件的名字叫做DM-Bridge
|
||||
|
||||
[](/images/2011/01/1-15-2.png)如图所示为插件设置页面,点击查看大图
|
||||
|
||||
依次选择默认下载管理器,这里选择你使用最多的管理器,默认是迅雷,如果你下载一般文档的时候不需要就不用在这里选了。我建议这里可以不用选择,不然你平时不论下载什么都会使用某P2P软件下载,然而有时候有些东西是不支持P2P的多线程的,所以会导致下载失败。因此平时可以将这个插件禁用,待到使用的时候再打开也可以。
|
||||
|
||||
**启用左键点击下载**:这个可以启用,可以直接下载。
|
||||
|
||||
右键弹出菜单设置:**当使用shift+右键点击时弹出菜单** 和**添加到浏览器的右键菜单** 这两个选项都建议勾上。
|
||||
|
||||
然后保存就可以了。
|
||||
|
||||
现在打开你的chrome浏览器右键观察是不是多了一个**外部下载管理器支持**。如果有的话,就大功告成啦!
|
||||
|
||||
**下载地址:**[点我进入官方下载](https://chrome.google.com/extensions/detail/lfjamigppmepikjlacjdpgjaiojdjhoj) 如果连接失效请告诉我们,下载时请使用chrome浏览器下载。
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: "复活??"
|
||||
date: 2012-07-01 00:00:00
|
||||
---
|
||||
|
||||
大概把博客恢复了。不过图片还是不行的。
|
||||
|
||||
以前的主题也用不了了。造孽。
|
||||
|
||||
后面再慢慢选主题吧。
|
||||
@@ -0,0 +1,98 @@
|
||||
---
|
||||
title: "深入比较几种maven仓库的优先级"
|
||||
date: 2012-07-13 00:00:00
|
||||
tags: [java, maven, 仓库, 深入]
|
||||
---
|
||||
|
||||
平时在使用maven下载依赖或者maven插件的时候,经常被本地仓库,settings里面profile中设置的仓库,mirror仓库,pom文件中的repository搞疯,因为很可能你就会因为这些你所设置的仓库不能正常编译项目。下面将和大家一起探讨和比较下这几种仓库的优先级别。
|
||||
|
||||
这里我们有三个仓库 :
|
||||
|
||||
- 远程222.197.xxx仓库
|
||||
- localhost镜像,是我自己在本机搭建的一个仓库
|
||||
- nexus仓库,是nexus官方的仓库
|
||||
|
||||
首先考虑这样一种情况:maven本地仓库中拥有该包,而中央仓库、mirror仓库、profile仓库、pom中仓库均不含该包。我们可以看到maven直接首先从本地仓库中找到该包,编译成功。
|
||||
|
||||
[](/images/2012/07/1.png)
|
||||
|
||||
由此可以看出,本地仓库拥有最高的优先级。
|
||||
|
||||
接下来,我们继续剩下的仓库的优先级,(下面所有情况,都默认本地不拥有我们需要的包)剩下的仓库都是远程仓库,这里我们设定mirror设置的镜像仓库是中央仓库的镜像。那么就可以把mirror当成中央仓库,因为其已经被mirror替换了。
|
||||
|
||||
这次的场景为:pom文件中定义的仓库(repository)(即远程:222.197.xxx)拥有该包,而mirror(localhost镜像)和profile(nexus仓库)中的仓库不拥有该包。进行测试:
|
||||
|
||||
[](/images/2012/07/2.png)
|
||||
|
||||
从这个结果可以看出,maven首先调用了profile中的仓库,其次找到了pom文件中设置的仓库。而mirror没有出现。我们这里可以初步推测优先级别为:profile > pom > mirror,为了验证我们的判断,我们需要在进行一次测试来验证这个结果。
|
||||
|
||||
场景如下:mirror中拥有该包(222.197),而pom(localhost镜像)和profile(nexus仓库)中均不含有该包。进行测试:
|
||||
|
||||
[](/images/2012/07/3.png)
|
||||
|
||||
实际情况的确验证了我们的猜想。那么我们得出这几种maven仓库的优先级别为:
|
||||
|
||||
> 本地仓库 >profile > pom中的repository > mirror
|
||||
|
||||
注意:我也验证过这样的情况,将mirror这样设置:
|
||||
|
||||
```xml
|
||||
huacloud-central
|
||||
*
|
||||
name-of-this
|
||||
http://222.197.XXXXXX/nexus/content/groups/public/
|
||||
|
||||
```
|
||||
|
||||
即是表示该仓库地址为所有仓库的镜像,那么这个时候,maven会忽略掉其他设置的各种类型仓库仓库,只在mirror里面找。所以建议不要这样设置,他将导致pom文件中、pforile里面的仓库设置都失效。
|
||||
|
||||
> 随便科普一下几种仓库的设置吧:
|
||||
|
||||
pom中的repository:
|
||||
|
||||
```xml
|
||||
dsdf
|
||||
|
||||
true
|
||||
|
||||
http://222.197.XXXXXX/nexus/content/groups/public/
|
||||
|
||||
|
||||
```
|
||||
|
||||
profile中的仓库是在maven的设置文件(maven安装目录/conf/settings.xml)
|
||||
|
||||
```xml
|
||||
nexus
|
||||
|
||||
|
||||
sonatype-forge
|
||||
http://repository.sonatype.org/content/groups/forge/
|
||||
|
||||
true
|
||||
|
||||
|
||||
true
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
sonatype-forge
|
||||
http://repository.sonatype.org/content/groups/forge/
|
||||
|
||||
true
|
||||
|
||||
|
||||
true
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
nexus
|
||||
|
||||
```
|
||||
|
||||
mirror设置上文有,这里不再赘述。欢迎留言讨论。
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: "计算机操作系统教程(第三版)附下载"
|
||||
date: 2010-11-15 00:00:00
|
||||
tags: [下载, 免费, 电子书]
|
||||
---
|
||||
|
||||
计算机操作系统教程应该算是计算机专业学生的专业基础课吧,但是这门课程由于自身的特点,老实说的确很枯燥,一般大学安排在大二的时候学习这个课程,恰好笔者现在也正在学习。
|
||||
平时老师说操作系统这门课多么重要,总是不以为然,但是最近因为自己又在重新学习java的缘故,在多线程又发现了操作系统的相关知识的应该。比如多线程里面就是有线程的几种状态,和线程的同步等等,相关知识。这些在操作系统里面都是很重要的。正如老师所说,当你把操作系统学好了,你才编程的时候就会更加明白程序的运行机制和原理。此外数据结构在编程里面也是用得很多。
|
||||
今天给大家推荐的资源是:计算机操作系统教程(第三版) 作者是:张尧学 史美林 清华大学出版社出版。
|
||||
|
||||
[](/images/2010/11/11-15-2_conew1.jpg)
|
||||
|
||||
下面附上一些目录:
|
||||
第1章 绪论
|
||||
1.1 操作系统概念
|
||||
1.2 操作系统的历史
|
||||
1.3 操作系统的基本类型
|
||||
1.4 操作系统功能
|
||||
1.5 计算机硬件简介
|
||||
1.6 算法的描述
|
||||
1.7 研究操作系统的几种观点
|
||||
习题
|
||||
第2章 操作系统用户界面
|
||||
2.1 简介
|
||||
2.2 般用户的输入输出界面
|
||||
2.3 命令控制界面
|
||||
2.4 Linux与Uwindows的命令控制界面
|
||||
2.5 系统调用
|
||||
|
||||
附上免费的PDF电子书下载:[点我下载](http://u.115.com/file/f1d92164b8)(记得多支持我们的原创作品哦)
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
title: "在线测试电脑的游戏性能"
|
||||
date: 2010-11-17 00:00:00
|
||||
tags: [游戏, 性能, 测试]
|
||||
---
|
||||
|
||||
亲爱的童鞋们,不知道你们有否有这样的经历,当你满怀欣喜地下载一款酷炫的大型单机游戏,在你费了很久很久的时间通过你那龟速般的网速下载好之后,却发现这个游戏在你电脑上根本不能运行,简直卡的要死。那个时候我想你心中也会有很多的郁闷和悲哀吧。
|
||||
|
||||
很不幸,这样的事前几天就发生在我身上。当时我下使命召唤7。今天说的这个网站[Can you run it](http://cyri.systemrequirementslab.com/CYRI/)就是专门防止这样的情况发生的,它可以在线检测你的电脑对于某一款游戏的性能,简单说就是检测你的电脑是否符合游戏的最低要求(Minimum requirements)和标准要求(Recommended requirements)。
|
||||
|
||||
这个网站通过在你的电脑上下载java 或者 active 插件来获取你的电脑信息,然后通过将你电脑的信息和游戏所需要的信息进行对比,最后得出结果。
|
||||
|
||||
需要注意的是:你需要用IE内核的浏览器(360,遨游,世界之窗之类的浏览器都是)或者firefox 即火狐浏览器访问该网站。而google chrome 浏览器 和Opera 浏览器等是不被支持的。
|
||||
|
||||
下面我将我的个人的电脑作为示范,演示游戏对实况足球2011(PES 2011)的情况:
|
||||
|
||||
[](/images/2010/11/11-17-1_conew1.jpg)[](/images/2010/11/11-17-2_conew1.jpg)可以看到我的电脑可以完美运行实况足球2011。
|
||||
|
||||
但是对于使命召唤7就不一样了。下面是测试结果:
|
||||
|
||||
[](/images/2010/11/11-17-3_conew1.jpg)可以看出我的电脑的CPU还不够强大啊。。。所以只好悲剧了。
|
||||
|
||||
测试网站:[点我进入](http://cyri.systemrequirementslab.com/CYRI/)
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: "不好意思!博客被黑了,内容丢失了。"
|
||||
date: 2011-03-13 00:00:00
|
||||
---
|
||||
|
||||
RT,也许今天下午太黑暗了,我的博客被黑了,而且数据全被删了,虽然我还原了单身3月一号以后的文章的图片还是丢失了,我现在也不想在我的电脑上去找。
|
||||
|
||||
下午踢足球脚光荣负伤了,很痛,今天晚上特别痛。不知道今天晚上会不会因为这个而失眠。
|
||||
|
||||
如果明天早上还是很痛,就只有不去上课了,
|
||||
|
||||
可是还要想一个很重要的东西,或者说要做出一个原型!
|
||||
|
||||
大家也多注意点安全,
|
||||
|
||||
这几天都知道地球活动有点剧烈。
|
||||
|
||||
希望各位同学都平平安安的,春天来了,一定要多去耍耍!
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
title: "口语课上即兴编写的关于疾病与建议的对话"
|
||||
date: 2010-11-25 00:00:00
|
||||
---
|
||||
|
||||
下面就是当时在课上临场发挥写的一个对话!其实我觉得写得很简单哈。
|
||||
|
||||
A:Hey,how are you?
|
||||
|
||||
B:Well,it’s not so good!
|
||||
|
||||
A:what’s wrong with you ,mate?
|
||||
|
||||
B:I just can’t sleep well for two days and I feel tired!
|
||||
|
||||
A:why don’t you go to doctor timely?
|
||||
|
||||
B: I thought it will be better soon,but the thing went wrong with what i thought.
|
||||
|
||||
A: I think you should eat more fruit and vegetables,and try to do some exercise. What’s more , before you sleep you could take a shower so that you can have a better sleep!
|
||||
|
||||
B: Thanks for your advice , I’ll try it.
|
||||
|
||||
A;You are welcome.
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
title: "创建自己的github page"
|
||||
date: 2012-01-28 00:00:00
|
||||
tags: [blog, github]
|
||||
---
|
||||
|
||||
昨天我自己创建github page的时候,怎么也创建不起,不过自己看都是按照官方文档来的啊。
|
||||
|
||||
到最后才发现,原来github默认给每个注册用户分配了一个github page,地址就是 你的用户名.github.com,不过默认当然是没有开通的。因此不可以创建其他名称的二级域名作为项目名哦,只能是:
|
||||
|
||||
```xml
|
||||
你的用户名.github.com
|
||||
```
|
||||
|
||||
下面简单说一下步骤:
|
||||
|
||||
创建一个仓库名称为 :你的用户名.github.com,
|
||||
|
||||
在本地仓库中添加一个index.html文件,并向其中加入一些内容。然后push到github 的master分支就行了。
|
||||
|
||||
如果成功的话,系统会在几分钟内给你发个消息说,成功了。
|
||||
|
||||
如果没有消息,也就意味着没有成功哦。
|
||||
|
||||
你的域名就是: http://用户名.github.com
|
||||
|
||||
比如我的:<http://wahyd4.github.com/>
|
||||
|
||||
目前只是简单的github page 。
|
||||
|
||||
我们还可以绑定自己的域名,顶级域名或者二级域名都可以的。
|
||||
|
||||
其实最诱人的是我们可以利用github page 做我们的博客空间。当然这些都是免费了哦。
|
||||
|
||||
jekyll可以用来生成静态博客。我们可以用disqus做我们的评论系统。这样什么都有了哦,当然这里已经有人帮我把这些东西结合好了,博客还用到了twitter bootstrap 哦,这个东西就叫jekyll-bootstrap 我们只需要把他的仓库clone到本地,然后就可以使用了。
|
||||
|
||||
具体的东西请看官方教程吧。简单使用是很简单的。
|
||||
|
||||
jekyll: [https://github.com/mojombo/\*\*jekyll](https://github.com/mojombo/**jekyll)\*\*
|
||||
|
||||
jekyll-bootstrap:<http://jekyllbootstrap.com/>
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: "CSS3 for web designers [PDF]下载"
|
||||
date: 2011-03-15 00:00:00
|
||||
tags: [下载, 免费, 电子书, css3]
|
||||
---
|
||||
|
||||
> 最近在看css和javascript方面的书籍,不过最新的CSS3几乎找不到什么参考书,只能在网上找到零星的资料。中文资料就更是少了,笔者最近在网上找到一本比较好的CSS书籍——CSS3 for web designers(不过是英文版本的,希望各位将就看吧!)
|
||||
|
||||
[](/images/2011/03/css3_conew1.jpg)
|
||||
|
||||
本书电子档为高清原文版本,而不是所谓的高清扫描版本。清晰度是没有任何挑剔的。
|
||||
|
||||
不过具体内容笔者还没读完,不好评价整本书,但是在网上看到有些国外的博客推荐,想必应该是不错吧。
|
||||
|
||||
全书分为7个章节
|
||||
|
||||
- using CSS 3 today
|
||||
- understanding css transitions
|
||||
- hover-crafting with css3
|
||||
- transforming the message
|
||||
- multiple backgrounds
|
||||
- enriching forms
|
||||
- conclusion
|
||||
|
||||
大家感兴趣的就下载吧,文档不到10M,很小。
|
||||
|
||||
> ## 下载地址:[网盘下载](http://u.115.com/file/f1a56fabd4)
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
title: "CSS精粹3免费下载"
|
||||
date: 2010-11-23 00:00:00
|
||||
tags: [下载, 免费, 电子书, css]
|
||||
---
|
||||
|
||||
这本书的英文原名叫CSS anthology,翻译成中文叫CSS精粹,目前这本书已经出到了第三版了。但是中文翻译的只有第二版,第二版是08年出版的,里面几乎没有提及CSS 3 的一些应用。第三版里面就增加了一些CSS 3的东西。
|
||||
|
||||
前几天我从图书馆里面借到了 第二版,昨天终于看完了,总的来说这本书还是很经典的,而且很易读,一些比较难了解的地方作者都有很详细的解释,而且还有很多很丰富的实例,在我们提供的下载版本中,我们集成了其他版本肯定没有的实例源码一起打包下载。
|
||||
|
||||
而且我也看了第三版的原版英文版本,里面的单词都比较简单,即使有个别单词稍微难一些,我们在身边准备一个有道词典就足够了。
|
||||
|
||||
[](/images/2010/11/1255116593056.jpg)
|
||||
|
||||
这本书的内容大概分为:(每一章都有很多实例。)
|
||||
|
||||
文本样式和基础知识
|
||||
|
||||
CSS和图像
|
||||
|
||||
网站导航
|
||||
|
||||
表格式数据
|
||||
|
||||
表单与用户界面
|
||||
|
||||
跨浏览器支持技术
|
||||
|
||||
可用性和辅助装置
|
||||
|
||||
CSS定位和布局(这一章包含了很多非常好的网页实例,而且是综合应用。)
|
||||
|
||||
注:请使用firefox 或者IE 8,chrome等浏览器来阅读本书实例。IE 6过时了。个人认为初学者读此书应先了解CSS基础知识。
|
||||
|
||||
免费下载:[点我下载](http://u.115.com/file/f1490c9ce9)
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: "CSS3+HTML5+Google=20 things i learned about browsers and the web"
|
||||
date: 2011-03-09 00:00:00
|
||||
tags: [css3, googlle, html5]
|
||||
---
|
||||
|
||||
> 应在我博客里面留言的同学的话,真无聊。那就分享个也许你们会觉得无聊的东西。话说笔者很喜欢关于google几乎所有的东西。
|
||||
|
||||
就是google chrome 浏览器团队用CSS3+HTML5开发出的一本在线图书叫做20 things i learned about browsers and the web,首先我们就单从界面和用户体验讲,这个网站或者说这本书真的很绚丽。(前提是请使用支持CSS3+HTML5的浏览器访问,最好使用chrome)总之让我很惊讶,感觉这哪里是一个网站,绚丽效果完全可以喝flash和桌面游戏的效果媲美。
|
||||
|
||||
其实我觉得内容也是挺不错的,google选择了20件关于互联网和浏览器的相关个故事,第一个故事就是讲的互联网的由来,等等。每件事都配有很不错绚丽的动画哦。
|
||||
|
||||
而且值得说的是:
|
||||
|
||||
- 这本书拥有很绚丽动画效果。
|
||||
- 这个网站还支持关灯模式,就是背景是灰色的,对眼睛保护很不错。
|
||||
- 这个书应该是使用了HTML5的保存历史记录和书签的功能吧,可以自动保存书签,待你下次访问的时候就可以直接接上次的进度。
|
||||
|
||||
> ## 点击进入阅读:[20 things i learned about browsers and the web](http://www.20thingsilearned.com/home)
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: "Develop web based cross platform mobile app(开发基于Web的跨平台移动应用)"
|
||||
date: 2014-04-09 16:48:00
|
||||
tags: [web, node.js, angular.js, mobile]
|
||||
---
|
||||
|
||||
这是我在公司做的一个内部分享的PPT,主要分享的是利用WEB 相关的开发技术开发跨平台的移动应用。
|
||||
|
||||
demo 应用可以从 [http://librme.com](http://librme.com/) 找到,此外PPT 中提到的技术有:
|
||||
|
||||
- Angular.js
|
||||
- Node.js
|
||||
- Gulp.js
|
||||
- bower.js
|
||||
- Ionic framework
|
||||
- Cordova / Phonegap
|
||||
- CoffeeScript
|
||||
|
||||
下面是PPT 资料:
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: "动态展示网站读者信息"
|
||||
date: 2010-11-15 00:00:00
|
||||
tags: [免费, 代码]
|
||||
---
|
||||
|
||||
今天给大家介绍一个很不错,很炫的小东西。这个小东西很适合站长用,它是用flash的方式动态展示你网站的访问者的来源。动画做得很炫哦。它分为几种不同的方式,可以试3D的地球展示,也可以用普通的2D地图展示。当然也有最简单的按钮的形。(我个人不推荐按钮的形式,虽然很简单,可是他不会在按钮上显示你的访问者的来源信息。)
|
||||
|
||||
下面这个是提供小插件网站的现实效果,如果你网站读者很多的话,这个效果很不错哦。算是一种炫耀的东西吧。
|
||||
|
||||
[](/images/2010/11/11-15-1_conew1.jpg)所有的网站或者博客所有者们,快去制作一个自己的吧,只要将将html 代码嵌入到网页里面就可以啦,所有的大小都可以根据你自己的需要进行个性化设置哦。
|
||||
|
||||
具体的实力效果就在我们网站的右边边栏,漂不漂亮自己看吧!
|
||||
|
||||
获得漂亮的访问者信息:[点我吧](http://www.revolvermaps.com/)
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: "雨林木风dll库文件下载"
|
||||
date: 2010-12-18 00:00:00
|
||||
tags: [下载, dll, 类库]
|
||||
---
|
||||
|
||||
相信很多童鞋有和我一样的经历吧,当我们安装游戏或者软件的时候(绝大多数是游戏),电脑弹出一个框说我们的系统缺少某个.dll的类库文件,不能动态连接什么什么的信息,这个时候可以解决的办法无非两种,一种是重新安装软件,另一种则是到网上下载相应的dll类库文件。当然很多时候第一种方法并不管用。可是有时候又很难找到一个很好的dll类库下载网站。
|
||||
|
||||
[](/images/2010/12/12-18-1_conew1.jpg)
|
||||
|
||||
最近一个很不错的公司网站,雨林木风为我们提供了这样一个dll库文件下载网站。里面包含的dll还想相当齐全的,以后大家遇到什么找不到的dll库文件就到雨林木风dll下载网站下载吧。如果在网站没有找到的,还可以告诉他们。让他们帮你找。
|
||||
|
||||
比如说很多热门的dll文件:
|
||||
|
||||
[usp10.dll](http://www.ylmf.net/dll/usp10_dll.html "usp10.dll") [d3dx9\_32.dll](http://www.ylmf.net/dll/d3dx9_32_dll.html "d3dx9_32.dll") [id3lib.dll](http://www.ylmf.net/dll/id3lib_dll.html "id3lib.dll") [comres.dll](http://www.ylmf.net/dll/comres_dll.html "comres.dll")
|
||||
[shimgvw.dll](http://www.ylmf.net/dll/shimgvw_dll.html "shimgvw.dll") [scrrun.dll](http://www.ylmf.net/dll/scrrun_dll.html "scrrun.dll") [comres.dll](http://www.ylmf.net/dll/comres_dll.html "comres.dll") [shdocvw.dll](http://www.ylmf.net/dll/shdocvw_dll.html "shdocvw.dll") [shell32.dll](http://www.ylmf.net/dll/shell32_dll.html "shell32.dll") [storm.dll](http://www.ylmf.net/dll/storm_dll.html "storm.dll") [kailleraclient.dl l](http://www.ylmf.net/dll/kailleraclient_dll.html "kailleraclient.dll")[mfc42d.dll](http://www.ylmf.net/dll/mfc42d_dll.html "mfc42d.dll") [binkw32.dll](http://www.ylmf.net/dll/binkw32_dll.html "binkw32.dll") [d3dx9\_25.dll](http://www.ylmf.net/dll/d3dx9_25_dll.html "d3dx9_25.dll")
|
||||
|
||||
dll下载网站地址:<http://dll.ylmf.net/>
|
||||
@@ -0,0 +1,116 @@
|
||||
---
|
||||
title: "开发Go项目最简单的方式 — 一个基于Docker的go 工具"
|
||||
date: 2016-10-17 11:30:00
|
||||
tags: [docker, go]
|
||||
---
|
||||
|
||||
当我尝试开发一个在 [IronWorkerr](%5Bhttp://www.iron.io/worker%5D) 上运行的非常简单的程序的时候,我发现目前为止没有一个工具可以让人在几分钟之内运行一段 Go 的示例代码。但在其他语言里面这是可以很容易做到的, 因为他们不像 Go 一样需要设置 GOPATH环境变量,遵守一个特定的代码目录结构,而且他们通常还有更简单的依赖管理工具。
|
||||
|
||||
### 有什么更好的方式吗?
|
||||
|
||||
我最近想了很多,也写了很过关于 Docker 的文章, 并尝试在所有能使用 Docker 的情境下都坚持使用 Docker(是的,我是 Docker 的超级粉丝)。大部分原因是因为在 [Iron.io](%5Bhttp://www.iron.io/%5D) ,我们从事 Docker 的相关工作。我们运行了很多 Docker 容器,[真的很多](http://www.iron.io/blog/2014/10/docker-in-production-what-weve-learned.html)。在这期间,我已经意识到 Docker 的强大与疯狂之处。相信我,这不只是炒作。
|
||||
|
||||
我们向用户展示如何使用 Docker 容器构建和测试他们的 Go 语言程序已经有一段时间了,但始终有一个痛点,让我们如鲠在喉。那便是用户需要将代码放到特定的目录, 配置 GOPATH 环境变量,使用一个第三方工具如 godep 来 加载和代理依赖(注意通常这些依赖和你的代码一样,也需要被版本控制管理),有序的加载相关目录等等。这些当然可以完成,但是总是让人觉得不够爽。
|
||||
|
||||
现在,这个流程变得更好些了。
|
||||
|
||||
### 介绍下这个基于 Docker 的 Go 工具
|
||||
|
||||
我创建了一个基于 Docker 的 go 工具—— [“treeder/go”](%5Bhttps://hub.docker.com/r/treeder/go/%5D) ,他让 Go 语言开发变得超级简单。 你唯一需要安装的只有 Docker。 下面是一些它的一些功能和好处:
|
||||
|
||||
- 你不需要安装 Go
|
||||
- 你不需要安装这些相关的工具
|
||||
- 你不需要配置 GOPATH 环境变量
|
||||
- 你不需要将你的代码放到特定的目录(如: /src/github.com/user/hello)或者 Go 的安装目录, 你可以任意放置你的代码。
|
||||
- 不需要重写代码里面依赖导入目录就可以加载相应依赖
|
||||
- 代码交叉编译
|
||||
- 代码静态编译
|
||||
- 将代码打包成 Docker 镜像(一个命令即可搞定,然后你将得到一个包含你的代码的镜像)
|
||||
- 构建远端 git 仓库的代码
|
||||
|
||||
### 演示
|
||||
|
||||
##### 基础部分
|
||||
|
||||
让我们先来写个简单的例子,首先复制粘贴下面的代码到一个叫 app.go 的文件,放到任意目录。
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
func main() {
|
||||
r := mux.NewRouter()
|
||||
r.HandleFunc("/", Hello)
|
||||
http.Handle("/", r)
|
||||
fmt.Println("Starting up on 8080")
|
||||
log.Fatal(http.ListenAndServe(":8080", nil))
|
||||
}
|
||||
|
||||
func Hello(w http.ResponseWriter, req *http.Request) {
|
||||
fmt.Fprintln(w, "Hello world!")
|
||||
}
|
||||
```
|
||||
|
||||
注意到这段代码有第三方依赖了吗? 让我们来代理(vendor) 依赖:
|
||||
|
||||
```bash
|
||||
docker run --rm -v $PWD:/app -w /app treeder/go vendor
|
||||
```
|
||||
|
||||
上述命令会把抵赖都放 /vendor 目录下
|
||||
然后我们对代码进行构建:
|
||||
|
||||
```bash
|
||||
docker run --rm -v $PWD:/app -w /app treeder/go build
|
||||
```
|
||||
|
||||
接着,我们来运行代码:
|
||||
|
||||
```bash
|
||||
docker run --rm -v $PWD:/app -w /app -p 8080:8080 iron/base ./app
|
||||
```
|
||||
|
||||
打开浏览器,输入 [http://localhost:8080](%5Bhttp://localhost:8080%5D). 哈哈,我们成功的通过 `iron/base` 这个基础镜像运行了我们的代码。它是一个包含了运行 GO 程序所需的所有东西的很小的镜像。
|
||||
|
||||
#####更酷炫的东西
|
||||
|
||||
构建一个包含你的代码的可以运行的 Docker 镜像怎么样?
|
||||
|
||||
```bash
|
||||
docker run --rm -v $PWD:/app -w /app -v /var/run/docker.sock:/var/run/docker.sock treeder/go image username/myapp:latest
|
||||
```
|
||||
|
||||
现在通过你的新镜像来运行代码吧:
|
||||
|
||||
```bash
|
||||
docker run --rm -p 8080:8080 username/myapp
|
||||
```
|
||||
|
||||
再次打开 [http://localhost:8080](%5Bhttp://localhost:8080%5D),哈哈,现在流程是不是更好了。 这个镜像非常小。你可以通过输入 `docker images` 来查看这个镜像到底有好大,大概在12M左右吧。
|
||||
|
||||
或者你也可以下载和构建一个远程的代码仓库:
|
||||
|
||||
```bash
|
||||
docker run --rm -v $PWD:/app -w /app treeder/go remote https://github.com/treeder/hello-app.go.git
|
||||
```
|
||||
|
||||
最后你将得到一个包含这个远程代码仓库的代码的镜像。
|
||||
|
||||
###结论
|
||||
|
||||
[将 Docker 运用于开发](%5Bhttps://medium.com/iron-io-blog/why-and-how-to-use-docker-for-development-a156c1de3b24%5D)再次胜利了,如果你之前开发过 Go 项目,你应该会感谢这个工具带来的简单和简洁。不过它还仅仅是个实验阶段的工具,没有包含太多的其他工具链。不过,就我知道的而言,这应该是最简单的 Go 上手方式了。通过这个工具,仅仅告诉其他人一个代码仓库链接,他们就可以克隆,构建,运行代码而不需要任何初始化流程仅仅只需要 Docker。
|
||||
|
||||
完整的文档和项目源代码请浏览: <https://github.com/treeder/go>
|
||||
|
||||
请不要吝啬你的任何反馈,创建一个 [Github issue](%5Bhttps://github.com/treeder/go/issues%5D) 或者评论吧。
|
||||
|
||||
`更新: 我做了一个更大更好的工具:https://github.com/treeder/devo`
|
||||
|
||||
翻译自:<https://medium.com/iron-io-blog/the-easiest-way-to-develop-with-go-introducing-a-docker-based-go-tool-c456238507d6>
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: "Eclipse 自动补全、联想设置"
|
||||
date: 2011-10-09 00:00:00
|
||||
tags: [Content Assist, eclipse, 联想, 自动补全]
|
||||
---
|
||||
|
||||
笔者在第一次使用eclispe 3.7即indigo这个版本的时候,便发现一个小小的不快:平时在不知道某个方法怎么写的时候会按下Alt +/去获取eclipse给出的提示。但是在3.7这个版本却不好用,得到的是eclipse自动帮你选择一个他认为最合适的方法或者变量等等,帮你补全,而不是原来的显示所有可供选择的,让你来选择。
|
||||
|
||||
纠结了很久,期间尝试过使用网上说的修改Content Assist。将之前默认的 .后面加上ABCD…abcd…所有52个字符。并且 把联想的时间从系统默认的200ms提高到50ms。但是经过修改之后,eclipse变得和visual studio 一样,你每输入一个字符,系统就会进行一次提示。不过我发现这种情况下eclipse占用的CPU、内存资源变多了,在我的笔记本有时候还会变得顿卡。这不是最好的办法。
|
||||
|
||||
> 前几天吧,我才发现这个问题的症结所在。原来是eclipse官方的快捷键方式改变了。其实以前Alt+/那个联想一直在,只是在3.7版本里面这个快捷键变成了自动补全(即系统自动选择一个最合适的进行补充)。我们需要做的就是依次打开Windows——preferences——General——Keys。找到**Content Assist**这一项,这一项系统默认的是Alt+Space。这里我们把它改成**Alt+/**
|
||||
|
||||
[](http://junv-wordpress.stor.sinaapp.com/uploads/2011/10/Eclipse_content_assist.png)
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "end of the summer"
|
||||
date: 2010-09-19 00:00:00
|
||||
---
|
||||
|
||||
这个夏天就快结束了。我在这里写下第一篇文字。for our summer memories.
|
||||
|
||||
[](/images/2010/09/DSC02310jpg)
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
title: "F1 2010 现在可以下载啦!"
|
||||
date: 2010-09-23 00:00:00
|
||||
tags: [下载, F1 2010, 上海, 赛车]
|
||||
---
|
||||
|
||||
作者:Junv
|
||||
|
||||
F1 2010 与9月22日发行了,作者第一时间在国内几个比较著名的单机游戏网站的醒目位置都看到介绍和下载链接!本人虽然不算一个游戏的狂热的追求者,但是对赛车和足球确实有着很深厚的感情,于是本人也在第一时间下载了游戏,进行试玩。
|
||||
|
||||
[](/images/2010/09/picthumb.php_.jpg)
|
||||
|
||||
我下载的是完整破解版,文件大小的5个多G,(我将在文末提供外链种子下载链接),安装的时候也很顺利,没好远出现什么异常,只是我感觉它 的安装界面比较单调,而是剩余时间弄得不好,安装在我的笔记本上大概话了20-30分钟吧。要在安装的过程中输入密钥:01911-01911-01911-01911-01911。
|
||||
|
||||
安装好之后只需要将镜像razar里面的文件,复制替换到原游戏文件夹即可!
|
||||
|
||||
安装信息:
|
||||
|
||||
1. 解压缩
|
||||
2. 载入镜像
|
||||
3. 安装并且输入序列号01911-01911-01911-01911-01911
|
||||
4. 将破解补丁复制到游戏安装目录下
|
||||
5. 运行游戏
|
||||
|
||||
[](/images/2010/09/33.jpg)
|
||||
|
||||
这里有一点需要说明一下,可能有的童鞋,进入游戏会发现需要你登陆windows live 并输入key 才可以保存游戏,本人最初玩这个游戏的时候也犯了这个错误,后面再网上查了资料。其实不用的,就是在叫你选择使用已有的账号或者新建账号登陆的时候,请选择新建账号,然后进去将选择条往下拉到底,会出现 “ creat a local profile” 这样一个链接,点进去就可以啦。你就可以不用登陆到网上了。
|
||||
|
||||
我觉得对于我来说刚开始操作这个游戏的时候,感觉还是比较困难的,
|
||||
|
||||
下面简单说一下按键吧 A:进档 Z:退档 空格:油门 ctrl: 刹车,或者倒车用的倒档, C:切换屏幕,级切换视角 方向键左键:左转 方向键右键:右转
|
||||
|
||||
其他就差不多啦。
|
||||
|
||||
[](/images/2010/09/22.jpg)
|
||||
|
||||
刚开始你会从练习赛开始,这个操作也需要大家慢慢适应吧,玩多了就应该觉得好些了。
|
||||
|
||||
我玩了雨天赛道,感觉太震撼了,而且特别真实,连水雾都模仿得非常逼真。
|
||||
|
||||
值得一玩的是,里面还有上海国际赛道哦,感觉很亲切。玩过之后发现上海国际赛道还是有两个比较大的弯感觉很困难拐过去,
|
||||
|
||||
而且我还发现法拉利的车子真的直线加速好快好快,很轻易就超过一半的车子。
|
||||
|
||||
更多精彩由你来体验吧。
|
||||
|
||||
下面附上下载链接:[点我下载BT种子](http://db.gamersky.com/Soft/ShowSoftDown.asp?UrlID=1&SoftID=25895)
|
||||
|
||||
[迅雷下载](http://db.gamersky.com/Soft/ShowSoftDown.asp?UrlID=1&SoftID=25895&flag=1)(来自gamersky)
|
||||
|
||||
图片来自:多玩
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
title: "Filezilla:全平台开源免费ftp客户端"
|
||||
date: 2011-01-10 00:00:00
|
||||
tags: [下载, 免费, ftp, 开源]
|
||||
---
|
||||
|
||||
> 也许你还在使用破解的老版本cuteftp、flashfxp。如果你想找一款在Mac、linux下也能使用的,也许你还在抱怨你的ftp客户端不支持sftp://链接,亦或是你没用用到好用的免费的ftp客户端软件。那么今天我推荐大家使用这ftp软件:Filezilla.
|
||||
|
||||
[](/images/2011/01/1-100H61202480-L_conew1.jpg)
|
||||
|
||||
Filezilla使用著名开源软件基金会Mozilla提供的开源的ftp客户端,支持所有平台,包括windows 、Mac、Linux平台。现在全世界很多人都在使用这款软件,也许我们国内的童鞋可能还在使用前几年比较流行的cuteftp或者flashfxp但是我们都是使用的老版本,而且还是破解不完全的,像笔者以前曾经使用的cuteftp版本,就经常被识别是盗版,于是我不得不重新启动该软件,甚是麻烦。软件截图如下:
|
||||
|
||||
[](/images/2011/01/1-10-1_conew1.jpg)该软件有如下几大优点:
|
||||
|
||||
1.完全免费,而且是著名开源企业的产品,你不用担心产品的性能很不好,或者存在很多bug,经笔者长期使用,个人感觉上传、下载、响应速度都是相当快的,特别是当你尝试后不使用ftp,ftp已经掉线的时候,你再次使用它,它的响应几乎和没有掉线差不多,这是我以前使用其他ftp所没有感觉到的。
|
||||
|
||||
2.当然在上传或者下载时候也支持拖拽功能,比如你想上传某个文件,你不必再ftp里面打开那个文件夹,而只用在windows资源管理器里面找到文件,直接拖拽到你想上传到的服务器相应文件夹即可,下载的时候操作类似。
|
||||
|
||||
3.支持sftp://链接,现在有些公司或者机构为了安全已经只能使用stp://链接登陆ftp服务器了,一般传统的ftp不支持或者支持的不是很好,这个时候你在Filezilla里面只用在链接前面添加 **sftp://**或者在端口后面输入**22**即可。
|
||||
|
||||
更多好功能,请各位自己慢慢体会吧。
|
||||
|
||||
**下载地址: [windows](http://downloads.sourceforge.net/filezilla/FileZilla_3.3.5.1_win32-setup.exe) [Mac](http://downloads.sourceforge.net/filezilla/FileZilla_3.3.5.1_i686-apple-darwin9.app.tar.bz2) [Linux](http://downloads.sourceforge.net/filezilla/FileZilla_3.3.5.1_i586-linux-gnu.tar.bz2) (如下载链接失效,请留言告知,或者[进入官网下载](http://filezilla-project.org/download.php?type=client))**
|
||||
|
||||
注:在Linux命令行下 还可以使用 apt-get install filezilla 进行自动下载。
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: "我最终还是放弃了android选择了Java web"
|
||||
date: 2011-09-28 00:00:00
|
||||
---
|
||||
|
||||
也许是今天上课听到其他人讲人家去腾讯面试怎么怎么样,我心里还是有很大的震动。我不再想学android了,虽然老师叫我负责这一块工作,但是我感觉我在学习的过程中发现android的代码逻辑和我平时接触的java EE的逻辑还是有一些区别。我真的还是喜欢搞我的网站。这些我都比较了解。我也喜欢那些新鲜的事物,因为我喜欢他。虽然就在今天上午之前,我还是很想把Android尽快学好。但是原谅我吧,明年我就去面试了,在这短短一年的时间里面请允许我学习我最喜欢的东西吧,这样我想我胜利的机会才会更大。
|
||||
|
||||
况且,我觉得Web App应该是未来的王者,看看Chrome OS,虽然现在Android 还不推荐使用Web App ,但是我大胆预测一下,未来三年内Android 将允许使用Web App.而且Windows 8将来也支持使用javascript +html 5进行程序开发。这些都是学习javascript的好处吧。而且我自己也有javascript 的底子啊,经过暑假一个多月的奋斗,我觉得我的javascript能力提升了不少!
|
||||
|
||||
看看Java EE那么多好用的框架,看看 Nosql是多么地吸引人,看看node.js是多么的新潮,还有很多很多好的东西!
|
||||
|
||||
从现在开始,我就搞Java EE了!
|
||||
|
||||
加油!
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
title: "First week in India"
|
||||
date: 2013-09-11 20:41:00
|
||||
tags: [印度, twu]
|
||||
---
|
||||
|
||||

|
||||
来印度已经快两周了,完全没有不适的感觉,每天都很充实而又忙碌,就连周末都是各种安排。只有在聊天的时候才会有思念的情绪涌上心头。这里记录下第一周的感受。
|
||||
总的来说第一周很多Session,从很入门的session 逐步深入,到接触到一些之前没有了解到或者没有深入的东西。每天的收获还是很多的。就像coach们说的那样,你来TWU不是为了和别人比较,而是和自己比较,让自己有成长。今天中午我们中国童鞋吃饭的时候还在聊,一个童鞋说,感觉和老外Pair让自己的编程速度更慢,因为你需要先解释你的意图,在你coding的还需要不断的解释。其实我有时候也会有这样的感觉。但是我心里很清楚,我作为一个来公司几个月的毕业生,在coding方面可能会比一些grads好一些,但是我这次来的目的是体验和全世界不同国家的同事一起工作、写代码、生活,更多的是这种经历、同事之间彼此的分享,各种方面的分享。即使完成某些代码对我来说相对比较容易,但是我能不能用更好的方式,我能不能把我的想法完整的表达给我的Pair,我能不能分享一些快捷键、一些思路给我的Pair。这些都是我很看重的,他们都是我的目标。
|
||||
另外一方面,几乎现在所有认识我的人都不会说我很内向,但是我其实自己知道,我真的是算是一个内向的人,很多时候我没有勇气去做一些事情,所以这次我给自己的目标也有在小组里面更活跃一些,多多表达、贡献自己的意见,虽然我的英语单词量不大,但是并不妨碍我表达出我的意思,我还清楚的记得,昨天上午session的时候,我中途因肚子不舒服去上厕所,我还在马桶上摸出手机查“拉肚子”这个单词怎么说。一些都是这么不可思议。哈哈。
|
||||
|
||||
##### Feedback
|
||||
|
||||
言归正传,首先聊聊Feedback Session,在我们公司大家都知道,这个很重要,但其实很多时候,至少我在这方面做得并不好,不太敢当面向其他人要Feedback,怕别人指出自己不好的地方,会尴尬,。这些都是需要提高的。在来印度之前,在成都听过Feedback 的session,当时真的是深有感触,这次再听一次后,加深了理解。
|
||||
|
||||
- 如果你想要给一个人Feedback,请一定要记得营造一个安全的环境,一定要让接受者感到安全,在你给一些消极的Feedback的时候,一定要根据事实来,而不是直接就说,我觉得你怎么怎么不好,此外不要带着责备、埋怨的口吻。当然一次不要给太多的Feedback,不要让接受者感到沮丧。总之,不管怎么样,你应该给予接受者信心和鼓舞,给予他改变的力量。
|
||||
- 作为接受者,当然很重要的是不要一听到别人消极的Feedback 就一味的抵触、狡辩,有则改之无则加勉。要知道一个人要给出消极的Feedback远比给出积极的Feedback难上很多,所以不管怎么样,我们都要怀着一个感恩的心,谢谢给你Feedback的同事。
|
||||
- 快速、主动的 给和接Feedback
|
||||
|
||||
##### 咨询师
|
||||
|
||||
接着是咨询师的session,我们每个人都是咨询师,而不是只有DEV才是。根据我在项目中的经历有一点我印象特别深刻,那就是“Domain Language”,大多数情况下我们面对的客户都是没有太多IT和敏捷 context的人,我们不能用我们在公司内部讨论的那一套去给他解释,而是要学习客户的Domain Language, 要用用户懂得的语言去给他解释。 此外当你在项目上工作时,要时刻记得,你这样做能为客户带来什么样的 Business Value,能带来多少的Business Value,如果你的工作不能给客户带来Business Value,那人家为什么要让你做,要为你做的付钱呢。
|
||||
在这个session的 角色扮演游戏中,我就扮演了一个客户,几位咨询师想要花5天时间去重构代码,然后他们试图说服我同意重构。我就抓住我不懂重构,让他们给我解释什么是重构、为什么代码可以使用要重构,他们怎么能保证重构的代码运行起来更好,为什么我要花5天时间多支付那么多钱去让他们去重构我可以使用的代码。结果是我这个可恶的客户赢得了讨论,他们回答不上来我的这些问题。
|
||||
仔细想想,也许我们在遇到其他客户的时候也许遇到这样的问题,怎么样让重构体现出客户的Business Value,怎么样用客户容易理解的语言去说服客户,这真是一件很有挑战性的事。
|
||||
|
||||
##### QA
|
||||
|
||||
在一个关于QA的session中,通过一个画画的游戏我第一次了解到QA和DEV 也应该pair,而且他们一起pair的效率比 dev做完以后,交QA检查,再交回DEV改进有很大的提高。另外一点,QA 不仅仅是tester,QA 也应该参与story生命周期的绝大部分,比如和BA一起写story,这样更能保证 acceptance criteria 是可测试,容易测试的。瞬间对QA肃然起敬。
|
||||
|
||||
##### Agile 团队
|
||||
|
||||
每个任务都可以多个团队成员来共同负责,一个团队成员应该在团队中承担多种角色,而不是仅仅一种。 时刻记得你是团队中的一员,而不是一个人在战斗!!
|
||||
|
||||
##### 我的生日party
|
||||
|
||||
很荣幸在印度过了自己的一个在国外过的生日,我的室友是第二天,所以我们一起过了生日。很感动,我们的中国妹子们交了老外们学用中文唱生日快乐歌,很感动。这个生日party,绝大部分的twu grads 都来了,也许40多个人吧,还来了一个coach。每个人都带来零食、饮料和我们一起分享,而我们准备一个大大的蛋糕、美味的中国方便面、一些筷子、中国钱币。整个party的高潮应该是我被满脸摸上蛋糕,被人抬起踢屁股吧(话说这是印度的一个传统)。总之很开心的生日。
|
||||
|
||||
##### 番外篇
|
||||
|
||||
就像我之前说的,他们叫外国童鞋唱中文歌,我们也教了很多人学中文,很多人都是很主动的让我们教他们一些中文单词,我们这次去的中国童鞋我感觉大家都还是比较合伙吧,大家都会主动去融入这个集体中,至于我这次只有我一个男生,所以我只有到处跟大家一起去吃饭,活动了。我也很享受在团队中的感受,这次还有两个从澳大利亚和新加坡来的华裔女生大家都玩得比较来。
|
||||
|
||||
据我所知我们大家也没有遇到对于吃的东西不习惯的!这这边吃的公司负责的早餐和午餐都是相当美味、可口的感觉。很幸福的感觉。
|
||||
|
||||
期待我们这周星期五的 Chinese Hot Pot Night,我们邀请了所有人。 唯一很担心的是电力负荷的问题,因为我们希望可以准备4口火锅。在这边已经遇到几次跳闸了。
|
||||
加油!
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: "五款精选chrome谷歌浏览器主题"
|
||||
date: 2011-02-10 00:00:00
|
||||
tags: [下载, chrome, 主题]
|
||||
---
|
||||
|
||||
> 现在全球的chrome浏览器占有率是节节攀升,有的调查显示chrome浏览器的全球占有率已经达到10%,各种谷歌浏览器扩展程序也很丰富,之前我们也曾经两次介绍过类似的文章。[几款google chrome浏览器扩展程序(app)](http://www.junv.info/608.html),[又两个Google Chrome app浏览器扩展](http://www.junv.info/1302.html)今天就给大家推荐五款chrome谷歌浏览器的主题,希望大家可以下载下来试试,很漂亮的。都是免费的哦!
|
||||
|
||||
蜂巢(Honeycomb)
|
||||
|
||||
[](/images/2011/02/2-10-1_conew1.jpg)这款主题是以android最新3.0系统作为设计来源而设计的。这个主题和Honeycomb一样采用深色基调,给人深邃的感觉,个人认为对眼睛也是特别好的。这款主题简洁而漂亮,很不多,笔者在这里鼎力推荐。
|
||||
|
||||
下载地址:[点我](https://chrome.google.com/webstore/detail/ihhhgnjnpmjaikooiahhhlemccommcml#)
|
||||
|
||||
Android机器人主题(Robot Theme)
|
||||
|
||||
[](/images/2011/02/2-10-2_conew1.jpg)这款主题和上面一款一样,都是以android被设计来源设计的,与上一款主题不同的是这款主题采用白色为主要颜色,浏览器顶部为对眼睛很柔和的绿色,和有金属质感的深灰色。简洁而明快。喜欢android的朋友支持一下吧。
|
||||
|
||||
下载地址:[点我](https://chrome.google.com/extensions/detail/oeljdmeofcikjblcoehpmdnooimalbmj?hl=zh-CN)
|
||||
|
||||
谷歌2010I/O大会(Google I/O 2010 Theme)
|
||||
|
||||
[](/images/2011/02/2-10-3_conew1.jpg)这款漂亮的主题来自google官方发布的主题,相比较前面的主题而言,这款主题颜色很鲜艳,我个人是很喜欢这种类似于彩虹的颜色搭配的,很漂亮,而且给人很明朗很轻松的感觉,注意:图片上所示的胃MAC下的版本在windows下面滑动条和最大最小化按钮有区别。不过丝毫不影响windows下面的绚丽程度。
|
||||
|
||||
下载地址:[点我](https://chrome.google.com/webstore/detail/dmjnndnenamhhfibjlflphhpdagmlkne)
|
||||
|
||||
绚丽星空(Colorful Space)
|
||||
|
||||
[](/images/2011/02/2-10-4_conew1.jpg)如果你看厌了很简洁明快的主题,那么这款极致华丽,绚烂色彩艳丽的星空想必各位一定会喜欢的,整体颜色还是偏深色对于眼睛的刺激不大。背景为星空则给人很深邃的感觉。由于高清的星空背景也造就了主题的文件大小较大,大概有6M。
|
||||
|
||||
下载地址:[点我](https://chrome.google.com/webstore/detail/adbodkkohhfpjcaoolbiekmjnkgicfnj)
|
||||
|
||||
鲜活(Fresh Theme)
|
||||
|
||||
[](/images/2011/02/2-10-5_conew1.jpg)也许有些女同学会抱怨前面的主题都没有适合他们的,那么这一款很卡哇伊的主题就再适合不过了,主题才用很温馨的手绘卡通的图片,整体给人很舒服的感觉。在chrome应该商店里面,该主题的使用者也很多。
|
||||
|
||||
下载地址:[点我](https://chrome.google.com/webstore/detail/mdokkjhocoeeoomjnpnhinefebdbcfcf)
|
||||
@@ -0,0 +1,64 @@
|
||||
---
|
||||
title: "在页面底部添加固定信息栏,类似于本博客所示效果"
|
||||
date: 2011-02-28 00:00:00
|
||||
---
|
||||
|
||||
> 以前我也不知道我的博客浏览器页面底部的这个灰色固定的信息条是怎么实现的,今天没事就在网上查了一下,结果发现原来这个东西真的很容易。我本以为会用到javascript或者jquery之类的东西,结果没有想到只要简单的CSS即可。
|
||||
|
||||
[](/images/2011/02/550365_164344022_2_conew1.jpg)
|
||||
|
||||
下面就稍微详细给大家说一下如何实现吧,其实原理很简单。将底部这个小长条固定在页面的底部涉及到的核心CSS代码就是
|
||||
|
||||
> #footer{
|
||||
>
|
||||
> position:fixed;
|
||||
>
|
||||
> bottom:0;
|
||||
>
|
||||
> }
|
||||
|
||||
position:fixed是将小条固定,bottom:0 是小条距离底部是0,就是一直贴在页面底部。
|
||||
|
||||
如果你想让这个小条有些透明,就可以加上:
|
||||
|
||||
> filter:alpha(opacity=75);
|
||||
>
|
||||
>
|
||||
|
||||
```
|
||||
opacity:0.75;
|
||||
```
|
||||
|
||||
第一行的是支持IE7这样的浏览器,第二行是支持firefox,chrome这样的浏览器,具体的IE9以前的浏览器是否可以实现透明效果我没有试过,因为我用的是IE9。应该是可以的。
|
||||
|
||||
然后稍微美化一下小条:
|
||||
|
||||
> width:100%; //让小条铺满底部宽度,还必须加上 left:0;
|
||||
>
|
||||
>
|
||||
|
||||
```
|
||||
|
||||
background:#65676a; //设置小条背景颜色为灰色
|
||||
|
||||
|
||||
|
||||
left:0; //让小条在底部铺满
|
||||
|
||||
|
||||
|
||||
color:white; //设置字体为白色,好看些
|
||||
|
||||
|
||||
|
||||
height:20px; //设置小条高度
|
||||
|
||||
|
||||
注意:这里的“//”不是CSS里面的注释,我这样写只是为了方便罢了,请柬上面的所有代码都写到#footer 这个选择器里面。
|
||||
|
||||
好了,大概就写好了,大家请看我写的这个效果吧,很烂,只是实现了这个功能。如果部分浏览器下不行,请大家说一下哦。
|
||||
|
||||
|
||||
示例:点我 在网页右键选择查看源代码,即可查看网页完整源代码。我用的是HTML 5写的。
|
||||
|
||||
```
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: "格式转换:音频、视频、图片->想要什么格式就有什么格式!"
|
||||
date: 2010-10-31 00:00:00
|
||||
---
|
||||
|
||||
Author:Zhong Liang
|
||||
|
||||
软件名称:格式工厂
|
||||
|
||||
软件功能:能将视频、音频、图片转换成任何格式!比如:有些电影在电脑上看不方便,想在手机上看,这时格式工厂就能将视频转换成:3gp格式!
|
||||
|
||||
下载地址:<http://dl.pconline.com.cn/download/51244.html>
|
||||
|
||||
用法介绍:
|
||||
|
||||
1. 下载格式工厂,安装,打开如图:
|
||||
|
||||
[](/images/2010/10/11.png)
|
||||
|
||||
2.:比如你要将视频avi格式转换成3gp格式:那么就选视频,将其转换成3gp,如图:
|
||||
|
||||
[](/images/2010/10/21.png)
|
||||
|
||||
3.点3gp就出现如下图,然后点击添加文件,如图:
|
||||
|
||||
[](/images/2010/10/3.png)
|
||||
|
||||
4.然后选中你要转换的文件,如图:
|
||||
|
||||
[](/images/2010/10/4.png)
|
||||
|
||||
5.选中之后,就点确定,如图:[](/images/2010/10/5.png)
|
||||
|
||||
6.最后,点确定,就开始格式转换了:[](/images/2010/10/61.png)
|
||||
|
||||
7.最后,点输出文件夹,就能看见已经转换好的格式了:
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: "免费的css网页模板下载"
|
||||
date: 2010-11-20 00:00:00
|
||||
tags: [下载, 免费, 模板, css]
|
||||
---
|
||||
|
||||
今天给大家介绍一个很好的国外网站,这个网站叫<http://www.freecsstemplates.org/>,它提供很多免费的CSS模板供大家免费下载,到今天为止这个网站已经收录了504个免费的css 模板,都是这个网站自己原创的模板。你只需要在你使用的时候,在页面地步保留他们的版权信息就可以了,作为对他们的尊重吧。其他什么要求也没有。
|
||||
|
||||
下面是这个网站的截图:
|
||||
|
||||
[](/images/2010/11/11-20-1_conew1.jpg)
|
||||
|
||||
希望大家在下载的时候,还是可以帮助他们,可以做的就是可以点一次他们的广告,作为对他们的好东西的回报吧,我们还是要学会感恩。
|
||||
|
||||
下面贴个模板的图片图片出来:
|
||||
|
||||
[](/images/2010/11/11-20-3.gif)[](/images/2010/11/11-20-4.gif)[](/images/2010/11/11-20-5.gif)[](/images/2010/11/11-20-6.gif)如果你喜欢上面这些模板,就点我下载吧:[点我下载](http://u.115.com/file/f1731797ba)
|
||||
|
||||
进入网站浏览更多模板:[点我](http://www.freecsstemplates.org)
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: "AB报——全国报纸在线免费看"
|
||||
date: 2011-02-08 00:00:00
|
||||
tags: [免费, 在线, 报纸]
|
||||
---
|
||||
|
||||
> 给位喜欢看报纸的同学有福啦,我在网上找到这样一个好东西,可以免费看全国报纸的网站,里面包含的报纸真的很多哦,想我喜欢的南方周末,华西都市报、环球时报、南方都市报、篮球报等等。总之这里面包含的报纸很多,不需要下载,不需要插件直接打开网页就可以免费看了。
|
||||
|
||||
[](/images/2011/02/2-8-1_conew1.jpg)
|
||||
|
||||
曾经为了能够足不出户就可以了解新闻,看传统媒体的报纸,在网上专门找过可以免费看报纸的软件,不过没有找到。可是现在我找到了AB报,他就可以让你免费在网上看报纸。
|
||||
|
||||
我觉得AB报做的很好的就是,他是原版的报纸扫描下来给大家看,完全的彩色还原,扫描的效果特别清晰,很好。我很喜欢这样了,既保持的报纸的原汁原味,还是免费提供本来是收费的商业报纸。
|
||||
|
||||
其他的就不多说了,大家自己去看看吧!
|
||||
|
||||
> ## [点我进入免费在线看报纸!](http://www.abbao.cn/)
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: "免费VPN(Tenacy)"
|
||||
date: 2010-11-04 00:00:00
|
||||
---
|
||||
|
||||
> 最新通告
|
||||
> 如果您無法訪問 Tenacy 開心直通車,請將網址更改為 vpnXX.tenacy.com 其中的 XX 為任意英文或數字。例如: <http://vpna1.tenacy.com/>
|
||||
|
||||
相信大家都有这样的经历吧,你想浏览国外的一些网站。比如查一些资料啊等等。可是直接访问却访问不了。那真叫悲剧啊。
|
||||
|
||||
所以就有这样一种技术叫VPN,在百度百科的解释是:VPN的英文全称是“Virtual Private Network”,翻译过来就是“[虚拟专用网络](http://baike.baidu.com/view/480950.htm)”。顾名思义,虚拟专用网络可以把它理解成是虚拟出来的企业内部专线。
|
||||
|
||||
我们现在一般用的VPN,一般常见的是在美国,还有些事香港。这两个地方是做多的。
|
||||
|
||||
可是网上的VPN。几乎所有的都是收费的,很难找到免费的VPN而且速度还不错,今天给大家介绍一个免费的VPN。Tenacy 公司提供的[免费公众服务](http://vpn.tenacy.com/public)。
|
||||
|
||||
可以免费使用VPN,正如它介绍的情况,这个VPN不需要注册,免费,没有广告,隐藏IP,无时间限制,无限流量。
|
||||
|
||||
[](/images/2010/11/11-4-1_conew1.jpg)当你点开这个[网站](http://vpn.tenacy.com/public),然后再输入框中输入验证码,即可得到VPN的账号和密码。一般是会出现三个账号。其中两个是美国的主机,另外一个是香港的主机。选择香港或者美国的主机都差不多,速度经过测试都比较快。没有出现连接不上的情况。
|
||||
|
||||
[](/images/2010/11/11-4.jpg)接下来说说怎么使用收到的VPN账号。由于我的电脑是windows 7,因此我将介绍win 7下的使用办法,其实XP也差不多。
|
||||
|
||||
首先,你需要确定你的电脑是介入互联网的,简单说你刻意打开QQ,百度这样的网站。
|
||||
|
||||
点击桌面的网络图标(就是显示时间那个区域的网络图标),然后选择**打开网络和共享中心。**
|
||||
|
||||
**[](/images/2010/11/11-4-2.jpg)选择连接到网络,带有VPN的选项。**
|
||||
|
||||
**[](/images/2010/11/11-4-3.jpg)点击VPN连接。**
|
||||
|
||||
**[](/images/2010/11/11-4-5.jpg)** 在这里输入你在网页里面得到的账号和密码。账号一般都是 vpn.tenacy.com 。 下面的域输入框不用输入。
|
||||
|
||||
注意你在网页得到的VPN,信息,需要分类型,有的是刻意windows ,linux, mac os使用,有些事android ,iphone 使用的。
|
||||
|
||||
请注意分辨,如果没有分辨的话,可能出现端口错误的信息。
|
||||
|
||||
如果连接成功,你将看到[](/images/2010/11/11-4-4.jpg)VPN连接下方显示,Internet 访问。
|
||||
|
||||
好了,说完了,想要的同学们快试试吧。不错哦。
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: "无节操,无底线"
|
||||
date: 2013-01-22 00:30:00
|
||||
---
|
||||
|
||||
真TM无节操,无底线,难道就因为一个插件使用了Github上的js文件,为了让12306工作得更好,就把Github干掉?
|
||||
草草。。
|
||||
我不能想出更荒唐的理由了。
|
||||
Github作为一个IT技术网站,惹着谁啦?
|
||||
要不直接吧海底光缆割断吧,这样就没有任何后顾之忧了。
|
||||
Fuck。
|
||||
|
||||
```
|
||||
更新: 后面在各种影响之下,我们终于又可以上Github了。这是一件值得庆幸的事。 Really.
|
||||
```
|
||||
@@ -0,0 +1,31 @@
|
||||
---
|
||||
title: "使用GAE免费建网站"
|
||||
date: 2010-11-21 00:00:00
|
||||
tags: [免费, GAE]
|
||||
---
|
||||
|
||||
GAE是google app engine 的缩写,google提供的这个服务,允许用户免费上传10个程序,也就是说你可以建10个网站。现在GAE支持使用java 和python 语言建站。但是当然你必须使用google app engine SDK来搭建网站。利用GAE的好处就是,你可以免费利用google在全球的数据中心,所以你在全球几乎每个地方都可以得到很快的速度。如果只是一般的网站,完全不用担心服务器 cpu 等的资源限制问题,因为google已经为我们分配了很多,我个人认为完全够用了。
|
||||
|
||||
[](/images/2010/11/c81cdb4bf1b22fa33c1730ce825cd695.png)
|
||||
|
||||
那我们要如何才可以得到GAE服务呢?
|
||||
|
||||
首先你需要有一个google账号,没有的话道google网站进行注册。
|
||||
|
||||
然后打开这个网站:[GAE](https://appengine.google.com/) 进入注册GAE服务,其实就是登陆google账号就可以了,登陆之后就相当于已经注册服务了。
|
||||
|
||||
登陆之后你看到的就是如下页面。(如果你是新注册的,没有建立项目当然项目那个区域hi空白的)
|
||||
|
||||
[](/images/2010/11/11-21-7_conew1.jpg)然后点击create Application 就可以开始创建项目即网站了。
|
||||
|
||||
你的每一个项目都是对一个一个 XX.appspot.com 二级域名,限制这个网站的好的二级域名已经几乎没有啦。所以想好稍微好些的域名大家要赶紧注册了。
|
||||
|
||||
[](/images/2010/11/11-21-8_conew1.gif)application title 这里是你的应用的名字。可以随便写,。
|
||||
|
||||
其他的就没有什么好说呢
|
||||
|
||||
下面是我用GAE搭建的两个网站 博客和相册 程序都是开源 的我们会在稍后的文章长详细介绍。请大家关注
|
||||
|
||||
点我进入: [博客](http://junvzhao.appspot.com/) [相册](http://junvnew.appspot.com/)
|
||||
|
||||
**最新提示:最近GAE已经开始被抽风了,可能已经被和谐了,但是有时候还是可以访问。面对墙我们可以做些什么呢?**
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
title: "在线生成favicon.ico网站图标"
|
||||
date: 2011-01-06 00:00:00
|
||||
tags: [免费, favicon]
|
||||
---
|
||||
|
||||
所谓favicon.ico就是我们平时所说的网站图标,即是你在浏览器里面看到关于网站的样子[](/images/2011/01/1-6-5.jpg)即图片里面所示,其实这个图片一般是不好生成的,因为她不是传统的.jpg 或者.png/.gif格式的图片。
|
||||
|
||||
一般网站的favicon的图片分辨率是16*16 或者32\*32或者更高的48\*48,在这里我们比较推荐采用32*32的格式。
|
||||
|
||||
今天要给大家分享和推荐的是一个在线生成favicon.ico的wang网站,你可以自己在网站里面使用类似于windows 画图板的工具进行创作,就可以了。你当然也可以使用普通照片少做修改就可以做成favicon.ico了。
|
||||
|
||||
下面我们就稍微详细介绍一下吧:
|
||||
|
||||
首先进入[X-icon](http://www.xiconeditor.com/)网站,这个网站可能需要IE6以上的浏览器,在这里推荐使用chrome或者firefox等浏览器吧。
|
||||
|
||||
1.使用照片进行创作:进入网站后选择**Import**,然后上传你想要的图片文件,然后进行裁剪或者缩放等等。实际操作如下图
|
||||
|
||||
[](/images/2011/01/1-6-6_conew1.jpg)点击OK之后,你还可以通过类似画图板的工具,自己进行创作。
|
||||
|
||||
2.自己创作:你可以使用刷子、铅笔、文字、橡皮擦、椭圆和矩形等工具,进行创作,操作其实很简单的,具体的就不再细说,给一张我作的favicon.ico图吧。
|
||||
|
||||
[](/images/2011/01/1-6-4_conew1.jpg)个人感觉还不错的,这个工具,通过它,制作favicon就很简单了。
|
||||
|
||||
没有设置博客favicon的童鞋试试吧。
|
||||
|
||||
设置favicon:
|
||||
|
||||
> 在网页\*\*\*\*标签里插入这两句话就好了,如果是wordpress,就在head.php里面插入这两句哈,当然请注意文件的相对地址或者绝对地址。
|
||||
>
|
||||
>
|
||||
>
|
||||
> X-icon地址:<http://www.xiconeditor.com/>
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
title: "好电影推荐一"
|
||||
date: 2011-01-27 00:00:00
|
||||
tags: [下载, 电影]
|
||||
---
|
||||
|
||||
> 不知道各位同学有没有这样的感觉,一个假期要是太长了,你会觉得很无聊,感觉没有多少事可以做。其实我们本来是有很多事可以做,需要我们做,但是也许我们惰性远远大于了我们的勤奋。今天我想在这个也许有一点无聊的假期给大家推荐几部很好看的电影,让各位的假期也多一点趣味。顺便提前预祝大家讯新年快乐。当然会给大家附上下载链接啦。
|
||||
|
||||
## **搏击俱乐部(fight club)**
|
||||
|
||||
[](/images/2011/01/1-27-1_conew1.jpg)导演: 大卫·芬奇
|
||||
编剧: 恰克·帕拉尼克 / Jim Uhls
|
||||
主演: 爱德华·诺顿 / 布拉德·皮特 / 海伦娜·邦汉·卡特
|
||||
类型: 剧情 / 悬疑 / 惊悚
|
||||
制片国家/地区: 美国 / 德国
|
||||
语言: 英语
|
||||
上映日期: 1999-10-15
|
||||
|
||||
> 这部电影真的很好看,在看的过程中我甚至都觉得有些纠结,也不知道纠结的什么东西,很多东西有感触却说不清楚,其实这部电影就是讲一个精神有问题的人的故事,总之全部情节都是由它的精神问题引出来的,也许可能你看了一半还不清楚电影讲的是什么,不过一定请你将电影看完。
|
||||
|
||||
推荐使用迅雷下载:[点我](ftp://scg:scg@dl01.dream2008.cn:9192/%E6%90%8F%E5%87%BB%E4%BF%B1%E4%B9%90%E9%83%A8[720P%E9%AB%98%E6%B8%85][%E5%BD%B1%E8%A7%86%E4%B9%8B%E5%AE%B6www.XunLei168.com].rmvb)
|
||||
|
||||
## **老无所依**(No Country for Old Men)
|
||||
|
||||
[](/images/2011/01/1-27-2_conew1.jpg)导演: 伊桑·科恩 / 乔尔·科恩
|
||||
编剧: 乔尔·科恩 / 伊桑·科恩 / 考麦克·麦卡锡
|
||||
主演: 汤米·李·琼斯 / 哈维尔·巴登 / 乔什·布洛林 / 凯莉·麦克唐纳 / 伍迪·哈里森 / 加瑞特·迪拉胡特 / 泰丝·哈珀 / 巴里·柯宾 / 斯蒂芬·鲁特 / Rodger Boyce / 贝丝·格兰特 / Kit Gwin
|
||||
类型: 犯罪 / 剧情 / 惊悚
|
||||
片长: 122 分钟
|
||||
上映日期: 2008-02-21
|
||||
|
||||
> **这**个电影也很比搏击俱乐部还复杂,应该说有几条主线吧,而且每个人看完了应该都会有自己的观点,这部电影还获得了奥斯卡奖。本来我看这个电影最初觉得最主角还是那个牛仔,不过看到后来觉得那个丧心病狂的用高压气枪杀人的杀人犯也许才是主角。而且关于电影的情节和结尾在网上大家都展开了很激烈的讨论,大家可以去网上搜搜。
|
||||
|
||||
推荐使用迅雷下载:[点我](http://bd.ysbird.com:111/data/www.ysbird.com%E5%BD%B1%E8%A7%86%E9%B8%9F/%E8%80%81%E6%97%A0%E6%89%80%E4%BE%9D-Blu[1280x720].rmvb)
|
||||
|
||||
## **社交网络(**The Social Network)
|
||||
|
||||

|
||||
|
||||
导演: 大卫·芬奇
|
||||
编剧: 阿伦·索尔金 / 本·麦兹里奇
|
||||
主演: 杰西·艾森伯格 / 安德鲁·加菲尔德 / 贾斯汀·丁伯莱克 / 鲁妮·玛拉 / 约瑟夫·梅泽罗 / 艾米·汉莫 / Bryan Barter / Dustin Fitzsimons / Patrick Mapel
|
||||
类型: 传记 / 剧情 / 历史
|
||||
片长: 120 分钟 / USA: 121 分钟
|
||||
|
||||
> 这是一部2010年才出来的电影哦,这个电影主要是国外著名社交网站facebook 的创始人马克·扎克伯格和他创建facebook公司的故事,个人决定这部电影很不错,感受上拍得挺生活,挺真实的,我觉得还带有一些励志的味道在里面吧,当然也让作为一个计算机专业学生的我很受鼓舞。这部电影特别推荐小伙子们看看。
|
||||
|
||||
推荐使用迅雷下载:[点我](http://x55.ysbird.com:101/data/bbs.uuniao.com悠悠鸟/社交网络-高清-悠悠鸟中英双字幕.rmvb)
|
||||
|
||||
下面还有两部很不错的电影就不细说了,但是还是给出下载地址吧:
|
||||
|
||||
## 和莎莫的500天
|
||||
|
||||
很好看的爱情片。
|
||||
|
||||
**下载地址:[点我](ftp://dygod1:dygod1@d062.dygod.com:2243/%E5%92%8C%E8%8E%8E%E8%8E%AB%E7%9A%84500%E5%A4%A9.[%E4%B8%AD%E8%8B%B1%E5%8F%8C%E5%AD%97.1024%E5%88%86%E8%BE%A8%E7%8E%87]/[%E7%94%B5%E5%BD%B1%E5%A4%A9%E5%A0%82www.dygod.com].%E5%92%8C%E8%8E%8E%E8%8E%AB%E7%9A%84500%E5%A4%A9.[%E4%B8%AD%E8%8B%B1%E5%8F%8C%E5%AD%97.1024%E5%88%86%E8%BE%A8%E7%8E%87].rmvb)**
|
||||
|
||||
## **[三傻大闹宝莱坞 /三个白痴 /三人帮]**
|
||||
|
||||
这部电影是印度拍的,但是我倒觉得比起我们拍的都好看太多了,很有意思的,大家看看吧。
|
||||
|
||||
**下载地址:[CD1](ed2k://|file|%E4%B8%89%E5%82%BB%E5%A4%A7%E9%97%B9%E5%AE%9D%E8%8E%B1%E5%9D%9E.3.Idiots.2009.DVD-RMVB-CD1.rmvb|353776239|A532402BB65C4F23A17049CE93698428|h=2GODPM352TPWIUK7L44AACGA54XPIMET|/) [CD2](ed2k://|file|%E4%B8%89%E5%82%BB%E5%A4%A7%E9%97%B9%E5%AE%9D%E8%8E%B1%E5%9D%9E.3.Idiots.2009.DVD-RMVB-CD1.rmvb|353776239|A532402BB65C4F23A17049CE93698428|h=2GODPM352TPWIUK7L44AACGA54XPIMET|/)**
|
||||
@@ -0,0 +1,103 @@
|
||||
---
|
||||
title: "那些年我用过的开源软件、框架"
|
||||
date: 2012-07-01 00:00:00
|
||||
tags: [java, 开源, 框架]
|
||||
---
|
||||
|
||||
作为一个Java程序员,我想我们很多时候都需要和开源(open source software)扯上关系,我不得不说如果我的生活没有开源,肯定会比现在更糟,我们程序员效率一定没有现在这么高。我们通过使用那些著名的开源软件,逐步深入,不断提升了自己的编码水平。也学习了人家的设计功力。
|
||||
|
||||
到目前为止我没有设计出或者说贡献出什么开源软件,我自知自己的能力真的还不够。不过我希望哪一天可以为开源世界添砖加瓦,也希望其他童鞋能够加入这个行列。让世界变得更美好。
|
||||
|
||||
下面是我曾经用过的开源软件,可能有些只是简单了解,并不是很熟悉,但是我觉得它很不错也会记录在下面:
|
||||
|
||||
========================== 开发语言 ===============================
|
||||
|
||||
**Java** 不多说,正是我现在深入学习,使用的。
|
||||
|
||||
**PHP** 适合于快速开发的服务器语言。我只是学习过一些,大概有两三次学习,每次都是学习一点,然后又放弃。最后遗忘。因为我还是喜欢java
|
||||
|
||||
**Node.js** 基于js的服务器后台语言框架。其非阻塞的特点,便于开发高性能的网站。开发快速,现在在国内已经开始流行,而且有很多开源的组件,使得node.js的可以实现的功能越来越多,比如著名的express.js 这是提供快速开发网站的支持,自带restful
|
||||
|
||||
**C#, C ,**曾经学过,现在已经快忘得差不多。
|
||||
|
||||
**javascript** 主要是用于浏览器的脚本语言,现在有了node.js当然也可以用在后台服务器,入门较简单。jquery也是必学。学好这个东西很重要。现在HTML5 的世界,javascript可以做到事越来越多了。基于V8虚拟机,也使得javascipt在chrome的性能提升了很多倍。
|
||||
|
||||
==================== 工具类 ===================
|
||||
|
||||
**Eclipse** 开源java IDE,当然这个IDE也可以用来开发C/C++ ,PHP,ruby等程序,我认为它是世界上最好的集成开发工具。可以通过插件无限扩展其功能。
|
||||
|
||||
**netbeans** oracle开发的开源java IDE,不过我认为和eclipse还是有一定差距的。不够好用,而且有点卡。
|
||||
|
||||
**notepad++** 开源的文本编辑器,支撑几乎所有语言的高亮显示,还支持安装各种插件扩展其功能哦。很小巧。
|
||||
|
||||
**tomcat** 开源的java servlet容器,轻量级服务器。性能很好。不过很多Java EE的特性程序,是不能在tomcat上运行的。
|
||||
|
||||
**Jboss AS** 开源的JAVA 应用服务器,它的功能则强大得多,支持tomcat的所有功能,而且对JAVA EE也提供完整支持,现在最新的jboss AS 7中,加入了OSGI功能,使得它更加强大。
|
||||
|
||||
**Jetty** 开源的java servlet容器,你可以把它简单理解和tomcat 差不多,不过它更加小巧,甚至可以内嵌到应用中,小到只有一个包。也就是你的程序可以本身就单独运行,当然需要在程序中加入jetty相关包。
|
||||
|
||||
**Aptana** 开源的eclipse插件,功能强大,提供了很多web开发功能,支持主题、内嵌git 插件等,而且它的javascript 辅助功能也更加强大。其他很多功能我还没有用到,但是它值得你开始使用。
|
||||
|
||||
**checkstyle** 用于检查代码语法和结构的eclipse插件,它的要求比eclipse自身更加严格,对开发人员的编程规范要求很高,不过可以让你写出的代码质量更高、更易于他人阅读理解。
|
||||
|
||||
**findbugs** 检查代码中潜在bug的eclipse插件。我对它使用还不够熟悉,但是它还是很有用,方便你随时检查下代码是否有常见bug。
|
||||
|
||||
**MAVEN** 类似于ANT的项目打包、构建工具,也是基于组件式的,你可以通过使用多个maven插件来完成很多功能。使用自动化构建程序等任务,比ant强大很多,同时支持调用ant命令。
|
||||
|
||||
**git** 开源的代码版本控制工具。分布式,没有中央服务器照样安全工作。
|
||||
|
||||
**chrome** 谷歌浏览器,我通常用它来调试web 应用程序,相当给力啊。
|
||||
|
||||
**Nexus** 开源的maven 仓库管理工具,功能很强大。
|
||||
|
||||
**Jenkins** 开源的项目自动构建、持续集成服务器。基于Hudson 开发。
|
||||
|
||||
**run jetty** 在eclipse 内一键运行jetty的插件,在开发maven项目的使用用起来特别方便。简单,而传统的run on server是做不到这点的。
|
||||
|
||||
**M2E** 开源的maven eclipse 插件,提供图形化支撑。
|
||||
|
||||
=====================java开发框架=======================
|
||||
|
||||
**struts** 很著名的控制层框架,不过我不太喜欢
|
||||
|
||||
**spring framework** 全世界最好的框架之一,它的能力之强大,使用范围之广。据说它里面的代码实现相当经典,不过还没有拜读。其衍生出的很多框架也很好。比如spring security
|
||||
|
||||
**hibernate** 开源的ORM框架,将所有对数据库的 操作都做成操作对象的形式,不过它的弱点在于不能直接使用sql 语句操作,在处理一些比较复杂的查询功能时没有直接操作sql语句简单。很麻烦。
|
||||
|
||||
**jgit** git的java实现。很不错哦,在一个eclipse插件里面使用了这个包,这样再也没有狂平台的问题,java帮我解决了一切。
|
||||
|
||||
**apache poi** 开源的java api,你可以用它来操作windows 文档:doc,xls,ppt,pdf等等。很方便。以前用它作过导出数据到excel中。
|
||||
|
||||
**jersey** 开源的java restful 服务实现。比较简单吧。用起来也舒服。
|
||||
|
||||
**apache CXF** 另一个开源的java web services 实现,当然支持标准的rest服务。通过它还有osgi 版本,很前卫。
|
||||
|
||||
**dom4j** java的操作xml 的开源类库,有了它读或者写xml文档都很简单。
|
||||
|
||||
**apache fileupload** java开源的文件上传插件,很实用,也比较简单。
|
||||
|
||||
**log4j** java 开源的日志框架,可以将软件日志写到控制台、外部文件、数据库中
|
||||
|
||||
slf4j 另外一个开源的java日志框架,但是它本身并不提供实现,而是提供了接口。如过你想把日志写入外部文件或者数据库还需要配合log4j等其他框架使用。
|
||||
|
||||
================其他开发框架 =========================
|
||||
|
||||
**twitter bootstrap** twitter的开源前端框架,用它开发一个网页界面,超级简单,快速,而且很美哦,兼容性也很好。
|
||||
|
||||
**artdialog** 一个中国人写的开源js弹出层框架,很好用,而且也很绚丽。强烈推荐。
|
||||
|
||||
**jquery form** 一个开源的jquery form 插件,可以用来执行ajax 表单请求。等等。
|
||||
|
||||
**xml2json** 一个用于把xml文档转成json的jquery 插件。js操作json还是更加舒服。
|
||||
|
||||
**highcharts** 开源的js图表插件,功能强大,有多种图表,并支持ajax异步强求。
|
||||
|
||||
**jquery** 这个强大的js 框架,让js变得更加好用。
|
||||
|
||||
jquery UI jquery 的UI控件框架,集成了很多网页UI组件,不过我认为有了twitter bootstrap 此框架少了很多吸引力。
|
||||
|
||||
**jquery mobile** 用于移动平台的jquery UI插件,可以把节目做得更像移动平台原生,我感觉目前性能还有待提升。
|
||||
|
||||
目前只想到这些,文中对开源软件的描述可能有错,欢迎指出,讨论。
|
||||
|
||||
不要重复造轮子。
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
title: "高清壁纸免费下"
|
||||
date: 2011-02-15 00:00:00
|
||||
tags: [下载, 免费, 壁纸]
|
||||
---
|
||||
|
||||
> 还记得哪个很流行的广告语:步步高英语学习机——爸爸妈妈再也不用担心我的学习。今天给大家推荐的是一个免费下载壁纸的网站,我这里套用过来就是。Wallpapers WIDE——各位同学再也不用担心桌面没有漂亮壁纸。
|
||||
|
||||
[](/images/2011/02/cloud_heart-960x600_conew1.jpg)
|
||||
|
||||
不知道各位同学以前是在哪里找壁纸,反正我一般是在论坛里面找壁纸,或者在某个博客里面翻看博主分享的好看的壁纸。
|
||||
|
||||
在国内也有一些专门的壁纸分享网站,但是我个人认为他们都不够专业,很多几乎都没有适合各种分辨率的壁纸。而且壁纸数量都不太多。
|
||||
|
||||
今天分享的这个网站是一个国外的壁纸分享网站 Wallpapers Wide ,里面提供很丰富的壁纸至少超过10000张,而且每张壁纸都对应提供960×600,1280×800,1440×900,1366×768(很多笔记本都是这个分辨率,笔者的也是),1920×1200
|
||||
|
||||
所以我觉得这个网站还是挺专业的。
|
||||
|
||||
当然你自己也可以分享自己设计的壁纸。
|
||||
|
||||
需要高清的同学请到网站自己去下载把。真的很不错哦!
|
||||
|
||||
> ## 壁纸下载:[点我进入](http://wallpaperswide.com)
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
title: "《Google改变生活》好书推荐"
|
||||
date: 2010-11-04 00:00:00
|
||||
tags: [google, 图书]
|
||||
---
|
||||
|
||||
今天在学校图书馆看书,看到新书架上到了这样一本书《google 改变生活》。我很好奇,在谷歌离开中国内地以后还会有专门写google的非技术性的文章。
|
||||
|
||||
[_conew1")](/images/2010/11/20101104001_conew1.jpg)
|
||||
|
||||
这本书,是介绍给平时不怎么了解google和很想详细了解google的产品的同学们。你想多了解google吗?就懒看看这本书吧。各位大侠就可以飘过啦。
|
||||
|
||||
这本书主要介绍了,google的产品的很详细的使用和很多技巧,很值得一看。里面很细致得写了google的产品是如何影响我们生活的。可以算是一本经验之谈吧再加上一些技术方面的小东西。
|
||||
|
||||
下面附上目录吧:
|
||||
|
||||
前言
|
||||
第1章 Google简介
|
||||
1.1 Google公司简介
|
||||
1.2 Google常用功能概览
|
||||
1.3 小结
|
||||
第2章 谷歌浏览器与Google设置
|
||||
2.1 谷歌浏览器
|
||||
2.2 注册成为Google的用户
|
||||
2.3 对Google进行设置
|
||||
2.4 小结
|
||||
第3章 Google网页搜索
|
||||
3.1 Google网页搜索设置与简介
|
||||
3.2 网页基本搜索——寻找记忆中的网站
|
||||
3.3 网页语法高级搜索——探寻“达芬奇密码”
|
||||
3.4 Google网页目录——打造高知名度网站
|
||||
3.5 Google博客搜索——寻找李开复的博客
|
||||
3.6 小结
|
||||
第4章 Google多媒体搜索
|
||||
4.1 Google图片搜索
|
||||
4.2 Google音乐搜索
|
||||
4.3 Google视频搜索
|
||||
4.4 小结
|
||||
第5章 Google关心您的生活
|
||||
5.1 Google地图
|
||||
5.2 Google生活
|
||||
5.3 小结
|
||||
第6章 Google财经
|
||||
6.1 Google财经的界面与操作
|
||||
6.2 查看大盘指数
|
||||
6.3 查看个股信息
|
||||
6.4 股票筛选器
|
||||
6.5 财经资讯
|
||||
6.6 小结
|
||||
第7章 Google翻译
|
||||
7.1 Google翻译的界面与操作
|
||||
7.2 浏览外文网站——申请暑期交换生
|
||||
7.3 文档翻译——精解申请手册
|
||||
7.4 网站翻译工具——个人网站国际化升级
|
||||
7.5 小结
|
||||
第8章 Google文档
|
||||
8.1 Google文件的界面与操作
|
||||
8.2 在线文档——制作精美简历
|
||||
8.3 编辑演示文稿
|
||||
8.4 编辑电子表格——制作收支管理系统
|
||||
8.5 电子表单——制作调查问卷
|
||||
8.6 共享与协作
|
||||
8.7 离线访问
|
||||
8.8 小结
|
||||
第9章 Gmail国际顶级邮箱
|
||||
第10章 Google Sites协作平台
|
||||
第11章 Google辅助类软件
|
||||
第12章 Google的一些功能和软件
|
||||
|
||||
这里给大家提供在线阅读的链接:
|
||||
|
||||
[点我阅读](http://book.51cto.com/art/201004/195034.htm)
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: "又两个Google Chrome app浏览器扩展"
|
||||
date: 2011-01-13 00:00:00
|
||||
tags: [下载, chrome]
|
||||
---
|
||||
|
||||
> 两个月以前吧我曾经写过一篇[几款google chrome浏览器扩展程序(app)](http://www.junv.info/608.html),在网上看到大家的点击还很多,看来大家对这方面的需求是挺多的,一方面很欣慰google 浏览器在中国发展得很快,另外一方面也可以看出大家对浏览器的需求已经不仅仅是可以上网这一说了。那么今天就继续为大家推荐几款很不错的google chrome app浏览器扩展程序。
|
||||
|
||||
[](/images/2011/01/1-13-6.jpeg)
|
||||
|
||||
1.豆瓣电台扩展。
|
||||
|
||||
相信大多数同学用过网页版本的豆瓣电台吧,在这里还是简单介绍一下吧,豆瓣电台说白了就是一个类似于收音机的东西,你可以用它听音乐,可以对音乐进行上、下一首选择,它播放的音乐是系统产生的,当然它有几种类别的电台供你选择可以分华语、粤语、英语、民谣,以及按照年代分的70、80、90年代,还是你的私人电台(需要你用豆瓣账号)
|
||||
|
||||
[](/images/2011/01/1-13-1.jpg)
|
||||
|
||||
如图所示为豆瓣电台扩展图片
|
||||
|
||||
当你安装此插件之后,在google chrome 浏览器的地址栏后面会出现这样一个图标,点击它即可弹出豆瓣电台的窗口,从此听豆瓣电台就是如此easy.点击心形图标即可收藏,点击播放区域即可暂停歌曲。无聊的时候就打开豆瓣电台听听音乐吧。
|
||||
|
||||
**下载地址: [官方下载](https://chrome.google.com/extensions/detail/clhojfdjfahpiddojlckmgmanojfdnal)**
|
||||
|
||||
2.新浪微博扩展程序
|
||||
|
||||
还记得我们以前曾经推荐过的[新浪微博客户端wing](http://www.junv.info/1032.html)吗?那个那个是基于adobe air开发的应用,于是你需要安装air的运行环境,而现在这个微博插件就不需要了,需要的只是你有google chrome 浏览器。
|
||||
|
||||
[](/images/2011/01/1-13-4_conew1.jpg)如图所示为插件安装完毕后点击展开微博的图片
|
||||
|
||||
通过这个微博插件图片我们可以看到,这个微博的功能还是很强大的,支持微博转发、评论、收藏、新消息、还可以写新微博。新微博里面你可以分享任意当前页面,即使这个页面没有新浪微博的分享按钮。这个功能是不是很爽呢?
|
||||
|
||||
[](/images/2011/01/1-13-5.jpg)如图所示为写新微博的界面。只要勾上分享浏览器当前页面即可。
|
||||
|
||||
此外你还可以通过选中扩展右键选择选项菜单即可设置更多功能,可以对字体进行设置,还可以选择刷新频率,还可以设置桌面提醒功能,选择这个功能,那么有微博来的是会,桌面底部会弹出一个小窗口告诉你,不过不好的是这个小窗口不会自动关闭。
|
||||
|
||||
**下载地址:[官方下载](https://chrome.google.com/extensions/detail/eldlioebcnieclblmfabhdolhbiddgmk)**
|
||||
|
||||
注意:所有的google chrome只能在google的浏览器里面下载安装,才可以运行!如果下载地址失效请留言告诉我们。
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: "几款google chrome浏览器扩展程序(app)"
|
||||
date: 2010-10-24 00:00:00
|
||||
tags: [chrome]
|
||||
---
|
||||
|
||||
作者:Junv
|
||||
|
||||
[下载google扩展程序](https://chrome.google.com/extensions?hl=zh-CN)
|
||||
|
||||
笔者作为一个忠实的chrome粉丝,一直坚持用chrome浏览器,除了淘宝和网银这些不得不用IE。老实说你用过了chrome 你就一点也不想再回去用IE 8这样的蜗牛浏览器,用chrome 你才明白什么叫速度,而且我也很喜欢从chrome简洁的界面和对CSS3已经html 5的良好支持。
|
||||
|
||||
出最初的chrome到现在的chrome 8,据说chrome 9都快出来了。看来chrome 就是快啊。
|
||||
|
||||
当然用google chrome 浏览器就离不了扩展程序了。如果是chrome 是一辆跑车的话,好的扩展程序就是为chrome 插上了翅膀。chrome 从此就可以飞了。
|
||||
|
||||
好了在这里就不废话了,支持插入主题吧。
|
||||
[截图快手: 截屏, 批注, 分享](https://chrome.google.com/extensions/detail/alelhddbbhepgpmgidjdcjakblofbmce) 英语:
|
||||
|
||||
## [Awesome Screenshot: Capture & Annotate](https://chrome.google.com/extensions/detail/alelhddbbhepgpmgidjdcjakblofbmce)
|
||||
|
||||
这款插件的督导之处就是,比起官方的截图插件,你不仅可以截图,还可以在图片做标记,对图片进行剪裁和在图上打上文字。这样你就可以很容易的对图片进行标注和涂鸦了。
|
||||
|
||||

|
||||
|
||||
[Ultimate Chrome Flag](https://chrome.google.com/extensions/detail/dbpojpfdiliekbbiplijcphappgcgjfn)
|
||||
|
||||
这款插件对网页开发者和网站管理员特别有用,通过塌,你可以看到这个网站所在的IP和地址,你还可以看到它的Alexa 排名和google PR等信息,如果那个网站足够好你还可以看到他在google 趋势里面的信息。
|
||||
|
||||

|
||||
|
||||
[Chrome TV](https://chrome.google.com/extensions/detail/lambangeielkjcnmioccboaphdfcffib)
|
||||
|
||||
这是一款在线看电视的插件,你通过这个插件可以看到你以前看不到的电视台哦。全世界很多地方的电视都有,当然也包括我们中国咯,我前面看了一下中国的电视台还不少哦。。其他的就让大家慢慢去发现吧
|
||||
|
||||

|
||||
|
||||
更多的东西就留给大家去探索吧,记得给我说哦。。。
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: "Google地图,卫星定位!"
|
||||
date: 2010-10-02 00:00:00
|
||||
---
|
||||
|
||||
作者:Liu
|
||||
|
||||
向大家介绍一个地图<http://maps.google.com/>。只要输入你想查找的地点,Google就会通过其全球卫星为你查找到精确的方位。
|
||||
|
||||
Google 地图,在地图上查找本地商户、查看
|
||||
|
||||
卫星地图、获取公交和驾车路线。
|
||||
|
||||
Google地图可以分为两类,当你使用地图选项时,查找的地点是以地图形式出现的。
|
||||
|
||||
当你使用卫星选项时,查找的地点是以卫星实物图显示的。
|
||||
|
||||
例如你想查找河北省邯郸市第一中学,只需在搜索栏中输入“河北省邯郸市第一中学”那么邯郸第一中学 的俯视图就会出现。
|
||||
|
||||
这是因为Google将该实物的卫星俯视图拍摄了下来。
|
||||
|
||||
如图示**Google地图**里的中国新疆库尔乐军事基地转贴图俯视图:
|
||||
|
||||
[](/images/2010/10/tupian.jpg)
|
||||
|
||||
如图示。利用**Google 地图**提供路线非常灵活
|
||||
|
||||
[](/images/2010/10/n.jpg)
|
||||
|
||||
网址<http://maps.google.com/>。
|
||||
|
||||
谷歌地图(Google Map)
|
||||
|
||||
谷歌地图([Google Maps](http://baike.baidu.com/view/271894.htm))是 Google 公司提供的电子地图服务,包括局部详细的卫星照片。能提供三种视图:一是矢量地图(传统地图),可提供政区和交通以及商业信息;二是不同分辨率的卫星照片(俯视图,跟 Google Earth 上的卫星照片基本一样);三是地形视图,可以用以显示地形和等高线。它的姊妹产品是[Google Earth](http://baike.baidu.com/view/18437.htm)。
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user