commit 232ecd7c22bc81aa92bdc333650b5f6940da3846 Author: Hermes Bot Date: Tue Aug 4 09:44:07 2026 +1000 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) diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..16ca77e4 --- /dev/null +++ b/.gitignore @@ -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/ diff --git a/_config.next.yml b/_config.next.yml new file mode 100644 index 00000000..e3636481 --- /dev/null +++ b/_config.next.yml @@ -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 diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000..e0bacb74 --- /dev/null +++ b/_config.yml @@ -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 diff --git a/package.json b/package.json new file mode 100644 index 00000000..860a6249 --- /dev/null +++ b/package.json @@ -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" + } +} diff --git a/scripts/extract_posts.py b/scripts/extract_posts.py new file mode 100644 index 00000000..318d0a09 --- /dev/null +++ b/scripts/extract_posts.py @@ -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
and
 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'\s*
(.*?)
', inner, re.S) + code_raw = cm.group(1) if cm else inner + # lines are .. separated by
+ lines = re.findall(r'(.*?)', code_raw, re.S) + if not lines: + lines = code_raw.split('
') + 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('
', '\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('
', '\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'
(.*?)
', + repl_figure, body, flags=re.S) + # 2)
+    body = re.sub(
+        r'
(.*?)
', + repl_brushtype_pre, body, flags=re.S) + # 3)
...
(no code child) + body = re.sub( + r']*>.*?)([^>]*)>(.*?)
', + repl_plain_pre, body, flags=re.S) + # 4)
...
+ body = re.sub( + r'
]*>(.*?)
', + 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

+ m = re.search(r'

+ 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'', html, re.S) + if m: + tags = re.findall(r']*>\s*#\s*(.*?)\s*', m.group(1)) + tags = [t.strip() for t in tags if t.strip()] + + # body + m = re.search(r'
', 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() diff --git a/scripts/publish-post.sh b/scripts/publish-post.sh new file mode 100755 index 00000000..1721d35d --- /dev/null +++ b/scripts/publish-post.sh @@ -0,0 +1,102 @@ +#!/usr/bin/env bash +# ============================================================ +# publish-post.sh — 写博客并发布(Hermes 调用) +# +# 用法: +# publish-post.sh "文章标题" ["tag1,tag2"] [--date "YYYY-MM-DD HH:MM:SS"] +# +# 流程: +# 1. 把 markdown 写入 hexo-blog/source/_posts/ +# 2. hexo generate 构建产物 +# 3. 产物同步到 wahyd4.github.com 工作树的新分支 preview/ +# 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 diff --git a/source/CNAME b/source/CNAME new file mode 100644 index 00000000..49046a45 --- /dev/null +++ b/source/CNAME @@ -0,0 +1 @@ +toozhao.com diff --git a/source/_data/scripts.js b/source/_data/scripts.js new file mode 100644 index 00000000..575a260d --- /dev/null +++ b/source/_data/scripts.js @@ -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); +})(); diff --git a/source/_data/styles.styl b/source/_data/styles.styl new file mode 100644 index 00000000..09a81e99 --- /dev/null +++ b/source/_data/styles.styl @@ -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); +} diff --git a/source/_posts/1561.md b/source/_posts/1561.md new file mode 100644 index 00000000..45a1d03d --- /dev/null +++ b/source/_posts/1561.md @@ -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 "chrome-new-logo_conew1")](/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 "2011-03-21_13-39-04_conew1")](/images/2011/03/2011-03-21_13-39-04_conew1.jpg) diff --git a/source/_posts/173vpn.md b/source/_posts/173vpn.md new file mode 100644 index 00000000..d9d5e2ee --- /dev/null +++ b/source/_posts/173vpn.md @@ -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 "1-19-1")](/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 "1-19-2_conew1")](/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)** diff --git a/source/_posts/2009-04-02-yumen.md b/source/_posts/2009-04-02-yumen.md new file mode 100644 index 00000000..c1ef9b84 --- /dev/null +++ b/source/_posts/2009-04-02-yumen.md @@ -0,0 +1,7 @@ +--- +title: "郁闷" +permalink: /2009/04/02/郁闷/ +date: 2009-04-02 15:12:00 +--- + +狗日的高考查视力的,把老子的视力弄错老,郁闷!狗日的! diff --git a/source/_posts/2009-06-19-yumen.md b/source/_posts/2009-06-19-yumen.md new file mode 100644 index 00000000..e60cbe7d --- /dev/null +++ b/source/_posts/2009-06-19-yumen.md @@ -0,0 +1,7 @@ +--- +title: "郁闷" +permalink: /2009/06/19/郁闷/ +date: 2009-06-19 23:05:00 +--- + +狗日的才郁闷哦,晓得朗门一打使命召唤4脑壳就痛就想吐!好恼火哦!又想耍人有遭不住! diff --git a/source/_posts/2009-07-04-haoguai.md b/source/_posts/2009-07-04-haoguai.md new file mode 100644 index 00000000..7f9953ad --- /dev/null +++ b/source/_posts/2009-07-04-haoguai.md @@ -0,0 +1,7 @@ +--- +title: "好怪!" +permalink: /2009/07/04/好怪!/ +date: 2009-07-04 22:56:00 +--- + +真的好怪这个世界,有些人想让她来实我她偏不,有些人想让她不来实我,她偏要!难得找到一个我想来时她她也想来时我的哦!希望她不要来的太晚了! diff --git a/source/_posts/2009-07-22-haoguai.md b/source/_posts/2009-07-22-haoguai.md new file mode 100644 index 00000000..92ec3c6a --- /dev/null +++ b/source/_posts/2009-07-22-haoguai.md @@ -0,0 +1,7 @@ +--- +title: "好怪!" +permalink: /2009/07/22/好怪!/ +date: 2009-07-22 19:33:00 +--- + +真的好怪这个世界,有些人想让她来实我她偏不,有些人想让她不来实我,她偏要!难得找到一个我想来时她她也想来时我的哦!希望她不要来的太晚了! diff --git a/source/_posts/2010暑假看过的电影.md b/source/_posts/2010暑假看过的电影.md new file mode 100644 index 00000000..a63b45d3 --- /dev/null +++ b/source/_posts/2010暑假看过的电影.md @@ -0,0 +1,6 @@ +--- +title: "2010暑假看过的电影" +date: 2010-07-28 00:26:00 +--- + +霸王 diff --git a/source/_posts/2012-review.md b/source/_posts/2012-review.md new file mode 100644 index 00000000..e57d14b9 --- /dev/null +++ b/source/_posts/2012-review.md @@ -0,0 +1,20 @@ +--- +title: "2012 Review" +date: 2012-12-31 06:49:00 +--- + +![2012 preview](/images/2012/12/2012.png) +2012应该是我人生到目前为止成长最大的一年吧,也是因为这算是我第一年差不多脱离学校走向社会过度的一年吧。 +对于生活方面来说,最大的感触就是:想象中的生活、社会没有这么复杂啊,是我自己以前想得太简单了。抛开复杂不谈,让我在为人处事方面也学到很多。我给自己的分析就是我可能说话太直接了,很多时候没有考虑到其他人的感受,碰到一些不太好的事,太想去出头为大家“伸张正义了”,却忘了自己只是一只小小鸟。所有在新的一年,我需要更多地倾听,吸收其他人做事方面好的地方,让自己成长,沉淀。 + +11月新到了公司,在Jeff 要求下,开始学习使用Ruby on rails 在进行开发,这门语言他的魅力深深吸引了我,也许是和Java 进行比较,它看起来是那么得特殊,这个框架太强大了,可以帮我干很多重复性的工作,他的智能可以让我直接使用很多语法来进行相关操作。它的简洁喝高效是Java所不能比的。但是我对Ruby 目前还没有形成很系统的只是掌握,这方面希望在2013年能够深入去学习Ruby语言。 + +进到Thoughtworks第一次被企业文化所震撼,是听李力严讲公司的 3P,那是在厨房吃水果的时候,他给我们聊Socail justice。讲到公司在非洲为方便普通平名鉴别假药,而做的一个可以扫描药品的信息,并返回鉴定结果的应用的时候。我被深深震撼了,我的确是第一次听到有公司会无私得去做这些事。在之后的时间里,不断地了解到公司的一些信息,被这个公司的文化深深吸引,被这群可爱的人吸引。 + +进到公司才发现自己真的很菜,我会的可能只能说可以简单实现一些代码,但是这些代码的质量我是保证不了的,也没有考虑代码的重构等等。到公司学到很多敏捷方面的实践。但是自己在实践这些的时候做得不够好,我还是会本能地想着尽快实现功能,而会忽略先写测试的重要性。还有个感受就是觉得自己看的书太少太少了。不少东西其他同事讲的时候,我可能没看过,甚至没有听过。这方面希望明年可以多读一点书。 + +进了公司,现在也听了其他同事很多的Session,相比我自己确实不好意思站在大家面前去分享,也许这真的是一种胆小。我还需要多多克服。多多分享,to be social. + +其实很多的感受我已经在思维导向图里面说得很清楚了,这里不想再赘述了。2012 我们经历了“世界末日”,2013未来还需要我一步一步去创造。希望自己多多努力,交好运吧。 + +Fighting… diff --git a/source/_posts/2013-goal.md b/source/_posts/2013-goal.md new file mode 100644 index 00000000..f4125520 --- /dev/null +++ b/source/_posts/2013-goal.md @@ -0,0 +1,8 @@ +--- +title: "2013 目标" +date: 2013-01-04 01:17:00 +--- + +![2013 goal](/images/2013/1/2013-goal.jpg) + +我会努力去实现这些目标,这一年是我真正工作的第一年,希望可以可以快速成长,做一个可以让其他人信任、依赖的人。 diff --git a/source/_posts/230.md b/source/_posts/230.md new file mode 100644 index 00000000..0fe6aa12 --- /dev/null +++ b/source/_posts/230.md @@ -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-300x285.jpg "Seal1")](/images/2010/09/Seal1.jpg) + +美国著名特种部队,队员训练素质高,作战能力强,得到世界各国认可。 + +GSG9【德国边境防御大队第九小队】 + +[![](/images/2010/09/Gsg9-300x240.jpg "Gsg9")](/images/2010/09/Gsg9.jpg)原本是奥运会保安小队,逐渐发展壮大成为世界一流的境防部队。 + +SAS【英国皇家空降特勤队】 + +[![](/images/2010/09/Sas-300x266.jpg "Sas")](/images/2010/09/Sas.jpg) + +世界著名的反恐部队,原本只执行间谍任务,后来扩大到全欧洲的恐怖事件。 + +GIGN【法国宪兵干预队】 + +[![](/images/2010/09/Gign1-156x300.jpg "Gign1")](/images/2010/09/Gign1.jpg) + +法国动乱时期建立,在没有军队的情况下干预队会率先镇压民众。 + +恐怖分子方(T) + +凤凰战士【凤凰国际特种组织】 + +[![](/images/2010/09/Phoenix1-300x189.jpg "Phoenix1")](/images/2010/09/Phoenix1.jpg) + +曾制造世界震惊的“凤凰炸弹事件”,现正被全世界通缉 + +L337克鲁尔【代号L337】 + +[![](/images/2010/09/L3371-300x189.jpg "L3371")](/images/2010/09/L3371.jpg) + +亚洲精英恐怖分子集体,队员枪法高超配合默契,令人闻风丧胆。 + +北极复仇者【瑞典北极特战队】 + +[![](/images/2010/09/Arctic-156x300.jpg "Arctic")](/images/2010/09/Arctic.jpg) + +欧洲著名恐怖组织,曾策划多起大型爆炸事件 + +蝰蛇【狂蟒游击队】 + +[![](/images/2010/09/Guerilla-2-283x300.jpg "Guerilla (2)")](/images/2010/09/Guerilla-2.jpg) + +东南亚经常出没的恐怖分子,手段残忍暴力,为达到目标不惜消灭亲友 + +CS是我们这代人中的神话,是永恒的经典,无论是人物系统,还是武器系统,都是在那个时候甚至到如今都是那样的出色,程亮枪生的金属光泽,棱角分明,轮廓清晰的枪身构造还有那枪口喷发出的火焰!  这些都是我们最珍贵的记忆! + +[![](/images/2010/09/d5cdbdb46aee81308bd4b29b-300x225.jpg "d5cdbdb46aee81308bd4b29b")](/images/2010/09/d5cdbdb46aee81308bd4b29b.jpg) + +[![](/images/2010/09/3442157490195162000.jpg "3442157490195162000")](/images/2010/09/3442157490195162000.jpg) + +[![](/images/2010/09/1e3ae5dda13222ff76c63827-300x225.jpg "1e3ae5dda13222ff76c63827")](/images/2010/09/1e3ae5dda13222ff76c63827.jpg) diff --git a/source/_posts/360.md b/source/_posts/360.md new file mode 100644 index 00000000..2dbcc179 --- /dev/null +++ b/source/_posts/360.md @@ -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 "20110304-截图 1_conew1")](/images/2011/03/20110304-1_conew1.jpg) + +经过试用我觉得360安全桌面的定位或者说是总体的功能就是整合我们平时生活中最爱使用的各种东西或者网站、软件,让各位同学可以更加方便、快捷得做我们喜欢的事。360安全桌面还允许大家在其桌面上开发自己的应用,可以这样说吧,360安全桌面最终想达到的效果就是成为操作系统之上的操作系统。 + +[![](/images/2011/03/20110304-2_conew1.jpg "20110304-2_conew1")](/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) diff --git a/source/_posts/3d-flash.md b/source/_posts/3d-flash.md new file mode 100644 index 00000000..6f6aced7 --- /dev/null +++ b/source/_posts/3d-flash.md @@ -0,0 +1,27 @@ +--- +title: "3D flash抽签程序" +date: 2010-12-06 00:00:00 +tags: [下载, 免费, flash, 抽签] +--- + +昨天在中国交互设计大赛上看到这个作品3D抽签程序,我试用了感觉很酷,所以就分享给大家,并提供下载吧。 + +下面就详细说说这个软件: + +[![](/images/2010/12/s-300x223.jpg "s")](/images/2010/12/s.jpg) + +如图所示是软件运行的样子,点击运行3Drandom.swf 即可。你可以用flash player来使用这个软件,也可以用类似于QQ影音这样的播放器来使用,或者使用浏览器打开这个程序都是可以的。 + +这个程序实现的是一个抽签效果,所有参与抽签的姓名会在球面滚动,当你按下**空格键**是则会选出被抽中的人,然后**再按下空格键取消**,如此往复则可以多次运行程序, + +更有意思的是,作者制作的这个程序还实现了3D版本,在程序运行时你可以点击**鼠标左键**,即可进入3D模式,不过此模式下你需要佩戴红绿(或红蓝)3D眼镜使用,才可以看到效果。如下图所示: + +最重要的一点:如何添加被抽签人名单? + +其实这个已经有作者制作得很简单了,**只要你将想要添加的人的名字添加到一个文本文档里面就可以了(既可以是中文,也可是英文哦)。并命名为 name.txt**就好了。 + +本质来说这个效果有点类似于wordpress 3D标签插件效果,不过这个软件的防锯齿功能做的不是很好,希望以后可以看到更好的版本出现。 + +这个程序由一大一学生设计是不是很牛呢。 + +免费下载地址:[点我下载](http://u.115.com/file/f154b19d8e) diff --git a/source/_posts/3rd-week-in-twu.md b/source/_posts/3rd-week-in-twu.md new file mode 100644 index 00000000..eb771661 --- /dev/null +++ b/source/_posts/3rd-week-in-twu.md @@ -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,有些时候能打开网页以来,基本上一直都处于在刷新页面的状态。希望可以早点解决,以后的童鞋也不用这么恼火了。 diff --git a/source/_posts/40天.md b/source/_posts/40天.md new file mode 100644 index 00000000..c64e88ff --- /dev/null +++ b/source/_posts/40天.md @@ -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天,我的洗具多于杯具,生活过得也算还足够充实,很幸运我认识两个朋友:钟雨伦和谢汶谕! + +老实说我现在已经写到麻木了,完全不想写了,还是草草结尾吧,已经写了一个多小时时间已经来到凌晨两点!该睡了… diff --git a/source/_posts/462.md b/source/_posts/462.md new file mode 100644 index 00000000..4194eabf --- /dev/null +++ b/source/_posts/462.md @@ -0,0 +1,30 @@ +--- +title: "Ucall" +date: 2010-09-27 00:00:00 +--- + +[![](/images/2010/09/7f9fbd82614149e7bc3e1ecb1-300x225.jpg "7f9fbd82614149e7bc3e1ecb")](/images/2010/09/7f9fbd82614149e7bc3e1ecb1.jpg) 作者 liu + +UUcall电脑电话宝,话费超低廉 + +向大家推荐一种网络电话,只要有电脑,可以上网,就可以使用这款软件。 + +拥有注册用户超过3000万的UUCall电话宝网络电话,可以直接通过您的电脑拨打全球任意一部电话或者手机, + +价格低廉、通话清晰,是最受网友喜爱的免费网络电话软件。 + +并且可享受3~300分钟免费体验。 + +可登陆此网站了解详细信息: + + + +- 下载地址为。可以在此下载此软件,然后注册机可以使用。UUCall电话宝网络电话。 +- 免费绿色软件无需安装,下载到桌面即可使用 +- 软件语言:简体中文      软件大小:1.2M +- 支持平台:Windows2000/XP/Vista/Windows7 + +可在其网页上登陆,登陆需要你的邮址,登陆成功后会在你的邮箱里发送一封邮件,通知你登陆成功。例如内容如下:[1111111111@qq.com](mailto:1111111111@qq.com)您好: +感谢您注册成为UUCall的会员,请妥善保存您的帐号信息。 + +然后用桌面上的软件即可使用,并拨打电话。 diff --git a/source/_posts/959.md b/source/_posts/959.md new file mode 100644 index 00000000..5386f3b8 --- /dev/null +++ b/source/_posts/959.md @@ -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];** + +\*\* +}\*\* diff --git a/source/_posts/Betty如一缕清泉.md b/source/_posts/Betty如一缕清泉.md new file mode 100644 index 00000000..795a7064 --- /dev/null +++ b/source/_posts/Betty如一缕清泉.md @@ -0,0 +1,72 @@ +--- +title: "Betty如一缕清泉" +date: 2010-04-08 00:54:00 +--- + +当初抱着既可以学英语又可以看点东西的态度开始看美剧,又是因为丑女贝蒂很红而看它。 + +watched a little! + +它越来越吸引我了 + +贝蒂如一缕清泉 + +虽长相丑陋,面目狰狞 + +却无比善良,纯洁 + +但注定人善被人欺 + +同事嘲笑,老板冷眼 + +是善良,和蔼让她赢得了尊敬 + +她一根肠子 + +让她拥有越来越多的朋友 + +更多人的青睐 + +甚至也有不错的男人喜欢他 + +当然不止一个 + +她可以为老板做很多 + +即使这需要丢下自己家里的事 + +即使需要为此与姐姐闹架 + +她愿意 + +贝蒂成功了 + +真的被贝蒂感动了 + +让我想起了一点 + +初次见面我们喜欢的是在外的美 + +而更远更长来看 + +我们爱的是soul + +在外确实很重要 + +所以很多所谓的美女 + +丰富了这个世界 + +也许我们需要的是 + +另外一种 + +who has a normal but great soul + +当然最难得是智慧与美貌并存 + +喜欢那种感觉 + +而不是喜欢漂亮! + +看来今天既是晚又是很早了… diff --git a/source/_posts/Crazy-dreaming!.md b/source/_posts/Crazy-dreaming!.md new file mode 100644 index 00000000..e456a6dd --- /dev/null +++ b/source/_posts/Crazy-dreaming!.md @@ -0,0 +1,22 @@ +--- +title: "Crazy dreaming!" +date: 2009-06-20 16:19:00 +--- + +我想象C罗一样在球场上进球后那样歇斯底里的吼,可惜我没有他那么好的球技![![Crazy dreaming! - wahyd4 - 龙的博客](http://img.bimg.126.net/photo/GGb1qb7AP107yiK28vF9ew==/3989907794874509778.jpg "Crazy dreaming! - wahyd4 - 龙的博客")](http://img.bimg.126.net/photo/GGb1qb7AP107yiK28vF9ew==/3989907794874509778.jpg) + +[![Crazy dreaming! - wahyd4 - 龙的博客](http://img.bimg.126.net/photo/nlJmMKuqNMXGU2uy-3zjEw==/4805340802405208143.jpg "Crazy dreaming! - wahyd4 - 龙的博客")](http://img.bimg.126.net/photo/nlJmMKuqNMXGU2uy-3zjEw==/4805340802405208143.jpg) + +[![Crazy dreaming! - wahyd4 - 龙的博客](http://img.bimg.126.net/photo/a3RqKK2WGsi_qzMAnPgJxA==/3989907794874509781.jpg "Crazy dreaming! - wahyd4 - 龙的博客")](http://img.bimg.126.net/photo/a3RqKK2WGsi_qzMAnPgJxA==/3989907794874509781.jpg) + + 但是我会在我的未来创业中像他那样哄!这是男人的魅力!我要吼“啊!!!!!!!” + +我也想亨利那样绅士![![Crazy dreaming! - wahyd4 - 龙的博客](http://img.bimg.126.net/photo/YghHvvPxqQ6auIqBXTdePA==/3989907794874509784.jpg "Crazy dreaming! - wahyd4 - 龙的博客")](http://img.bimg.126.net/photo/YghHvvPxqQ6auIqBXTdePA==/3989907794874509784.jpg) + +[![Crazy dreaming! - wahyd4 - 龙的博客](http://img.bimg.126.net/photo/PG4D9-sZnGC-aYIt-9pQjw==/3989907794874509788.jpg "Crazy dreaming! - wahyd4 - 龙的博客")](http://img.bimg.126.net/photo/PG4D9-sZnGC-aYIt-9pQjw==/3989907794874509788.jpg) + +[![Crazy dreaming! - wahyd4 - 龙的博客](http://img.bimg.126.net/photo/Su2WRqjtj2OEDcggpst8qA==/5389682854056140458.jpg "Crazy dreaming! - wahyd4 - 龙的博客")](http://img.bimg.126.net/photo/Su2WRqjtj2OEDcggpst8qA==/5389682854056140458.jpg) + +还想象贝克汉姆那样招人喜欢!但张得他那样帅是不可能了!哈哈![![Crazy dreaming! - wahyd4 - 龙的博客](http://img.bimg.126.net/photo/4CAjD7t5FAYSWnKeb4mbAA==/4503881102348657510.jpg "Crazy dreaming! - wahyd4 - 龙的博客")](http://img.bimg.126.net/photo/4CAjD7t5FAYSWnKeb4mbAA==/4503881102348657510.jpg) + +[![Crazy dreaming! - wahyd4 - 龙的博客](http://img.bimg.126.net/photo/xrOio2ASJD9Q0YBu-iWq7Q==/3989907794874509795.jpg "Crazy dreaming! - wahyd4 - 龙的博客")](http://img.bimg.126.net/photo/xrOio2ASJD9Q0YBu-iWq7Q==/3989907794874509795.jpg) diff --git a/source/_posts/Hello-World!JAVA-我来了.md b/source/_posts/Hello-World!JAVA-我来了.md new file mode 100644 index 00000000..78260e4d --- /dev/null +++ b/source/_posts/Hello-World!JAVA-我来了.md @@ -0,0 +1,52 @@ +--- +title: "Hello World!JAVA 我来了" +date: 2010-02-02 10:22:00 +--- + +寒假之前就一直在说,这个寒假要怎么怎么样,要吧JAVA先学啊,但是计划总是赶不上变化,由于前几天出了点情况,导致整个人崩溃,现在才走出困境。所以我还是要尝试做我自己的事。那些啥子谈情说爱,我永远是被伤害的对象。好了,我还是会尽量写我的JAVA学习笔记。好了不说这么多了。开始吧。 + +    +要学JAVA当然要配置JAVA编译环境哦,首先要下载JDK。就到这个网址下面去下载就好了具体到你是只下载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://static7.photo.sina.com.cn/middle/49fcaea6h7e94d37d6f86&690&690)](http://blog.photo.sina.com.cn/showpic.html#url=http://static7.photo.sina.com.cn/orignal/49fcaea6h7e94d37d6f86&690)** + +  +  **感想:其实我没想到这个东西这么不简单,我看视频觉得很简单,配置一下就可以了,但是真的自己今天晚上做起来真的还是很困难。这是我学习Java的心路历程。哈哈,希望我可以坚持下去。** diff --git a/source/_posts/JAVA里面重要而基础的东西.md b/source/_posts/JAVA里面重要而基础的东西.md new file mode 100644 index 00000000..992743d5 --- /dev/null +++ b/source/_posts/JAVA里面重要而基础的东西.md @@ -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)](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)](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.则可。\*\* + +好了就写这么多哦,哎,其实写这些好累人哦,但是仍然希望我可以坚持下去,这相当是我在重新学习一遍这些东西,一定对我有很大的帮助。 + +加油。 diff --git a/source/_posts/Java双重循环的典型应用(九九乘法表).md b/source/_posts/Java双重循环的典型应用(九九乘法表).md new file mode 100644 index 00000000..2cc591ae --- /dev/null +++ b/source/_posts/Java双重循环的典型应用(九九乘法表).md @@ -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”) ; + +     } + +}\*\* + +![Java双重循环的典型应用(九九乘法表) - wahyd4 - 龙的博客](http://img.bimg.126.net/photo/Qq_PXIya9rduD-DBLMyd_Q==/5671720780721238163.jpg "Java双重循环的典型应用(九九乘法表) - wahyd4 - 龙的博客")这个是没用使用空格 + +![Java双重循环的典型应用(九九乘法表) - wahyd4 - 龙的博客](http://img.bimg.126.net/photo/APft0EoQVcSefNmqxzr9kw==/5671720780721238166.jpg "Java双重循环的典型应用(九九乘法表) - 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 .它其实就是一个数组其实相当于是程序比不可少的东西,不管怎样你都要写出来,但是你还是可以选择不在程序里面使用它。** +. diff --git a/source/_posts/You我友,吾有便无忧.md b/source/_posts/You我友,吾有便无忧.md new file mode 100644 index 00000000..1e8abd10 --- /dev/null +++ b/source/_posts/You我友,吾有便无忧.md @@ -0,0 +1,22 @@ +--- +title: "You我友,吾有便无忧" +date: 2010-02-04 00:51:00 +--- + +也许我以前有的时候真的重色轻友,那是我还不懂。现在经过这么多事以后我才晓得,朋友至少和爱人(不是女朋友那么初级哈)同等重要,在某些方面甚至更重要。 + +         这一次经历了失恋就更加深刻的体现了这一点,当我感到沮丧的时候,当我感到无助的时候,当我感到痛苦的时候。是你们,一直都是你们来开导我,来鼓励我。对的一个男人真的应该拿得起放得下,可是有些时候做到这点对我很困难。因为有你们的关心,我才会慢慢走出泥沼。 + +        和朋友在一起的时候永远是放得最开的时候,我们啥子都可以不想,什么顾虑都抛开。想的只是现在就好。也许就是应该在一起的时候及时行乐。 + +        其实现在走进大学以后,真正更加觉得朋友的重要性。想想初中同学之间纯真的友谊,高中朋友间深厚的友谊,大学则是伙伴一样的友谊。每一样都难能可贵,我们需要的就是找到真正的朋友,那些关心你,不会出卖你的朋友。 + +有句话叫人生有一知己即可,而人生却需要很多的朋友,多多益善。每一条朋友都是一条路,这个世界便织成了一张大网。多么美丽的网。 + +        前几天和初中同学聚会,大家真的都成了帅小伙和靓妹了,一个二个都很不错,和你们聚在你们真的很幸福,那是久违幸福,三年多了,改变了太多,不会变的则是我们都是初零六级四班的学生。我们都是朋友。怀念那段简单的时光,也许我们以前都做得不够好,那就让我们以后多聚聚吧,亲爱的同学们,我们都要努力奋斗,我爱你们,希望明年的时候聚餐大家都来。 + +        高中,这三年改变了我的人生,虽然我这三年由于那个问题,让我三年都过得很痛苦,但是我还是相遇了我们伟大的25班,和最可爱的同学们。我们理科的娃娃就是乖,天天就是在教室里面学习,错过了好多加深友谊的机会哦。但是我们大家之间的友谊还是很淳朴的,感情还是很深厚的,我还记得我们高一时候的牛头山和那些什么什么牛哦。那段时光很快乐。还有足球队的兄弟们,虽然我脚法烂,但是我觉得我们还是多团结的,以后聚餐的时候一定要喝几杯。大家都在读书,都加油吧,五年后相信我们都是能干人。加油。 + +还有大学,软件工程的同学们,我们是相亲相爱的一家人哦,我们以后在一起的时间还很长,还有希望我们的足球队多踢球,培养哈感情塞。兄弟伙些,大家都是英雄。相信我们一定可以做出些成就把成大建设得更加美好(说大话了,哈哈)。 + +          还有我的小学的朋友们,还有那些通过网上认识的好朋友们。其实我觉得我们现在这个网络还是相对比较不那么虚假的,我真的通过这个网络认识很多朋友,恩,很到大家都聊得不错,我觉得只要有机会,一定要吧这些网络上的朋友变到现实中来,一直在网络上呆着没意思。当然美国的和台湾的当然希望不大。哈哈。谢谢所有的朋友们。 diff --git a/source/_posts/a-competation.md b/source/_posts/a-competation.md new file mode 100644 index 00000000..74b820fc --- /dev/null +++ b/source/_posts/a-competation.md @@ -0,0 +1,37 @@ +--- +title: "第三届中国成都青年(大学生)电子商务创业大赛[全国的大学生,三年内毕业青年皆可参加哦]" +date: 2010-09-28 00:00:00 +tags: [奖金, 比赛, 电子商务] +--- + +作者:Junv + +[![](/images/2010/09/111.jpg "111")](/images/2010/09/111.jpg) + +今天下午我们班上宣布了这个信息:第三届中国成都青年(大学生)电子商务创业大赛,现在可以报名参加比赛了。报名的截止日期是10月25日(即是你需要在10月25日之前提交你的项目,以word形式)。 + +先说一下丰厚的奖金,激起大家的兴趣吧。 + +冠军:奖金20000元+证书 + +亚军:奖金10000元+证书 + +季军:奖金5000元+证书 + +优秀团队奖(7名):奖金1000元+证书; + +看看,奖品还是很丰富的哦。 + +这个是需要一团队形式参加比赛的,每个团队3到5人。(我看了之后心里面有点窃喜哦,我们大染志刚好可以分为两个队参加比赛,哈哈!!先问问他们的意见吧。) + +他这个成都的参赛选手是从成都找一个传统商业,作为研究对象,将其进行从传统商业到电子商务转型。 + +需要::各团队本着以实战为主的思路出发,针对传统企业建设网站(网店)。并从前期市场调研、同行分析、战略定位、网店(网站)设计思路、项目运营推广宣传方案、盈利模式、风险控制、投资预算等方面进行全面细致策划。 + +更多的信息:登陆 + +如果有童鞋,也有参加的意愿,可以和我们联系哦,在下面留言吧!!! + +哈哈,我们可能成为竞争对手哦!! + +Fighting…… diff --git a/source/_posts/a-good-gift.md b/source/_posts/a-good-gift.md new file mode 100644 index 00000000..6502f9f0 --- /dev/null +++ b/source/_posts/a-good-gift.md @@ -0,0 +1,14 @@ +--- +title: "一个好的礼物——希望对你有所触动" +date: 2011-04-04 00:00:00 +tags: [ted] +--- + +> 搞IT的同学,平时还是多多休息一下吧,其实身边还有很多东西值得我们去看,去学。 + +[![](/images/2011/04/gift11.jpg "gift11")](/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|/|/)(请使用电驴或者迅雷复制链接下载) diff --git a/source/_posts/a-most-usefual-website.md b/source/_posts/a-most-usefual-website.md new file mode 100644 index 00000000..4d885d8f --- /dev/null +++ b/source/_posts/a-most-usefual-website.md @@ -0,0 +1,47 @@ +--- +title: "几个常用的网站,要记到哈!" +date: 2010-09-25 00:00:00 +tags: [几个实用网站,大家要记到哈!] +--- + +作者:liu + +向大家推荐几个有用的网站哈,他家可以用过这个网站得到一些知识! + +1.太傻论坛,其实一点也不傻,学习英语的好帮手。 + +[![](/images/2010/09/7f9fbd82614149e7bc3e1ecb-150x150.jpg "7f9fbd82614149e7bc3e1ecb")](/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-150x150.jpg "04e82f089da1c1d23ac763f5")](/images/2010/09/04e82f089da1c1d23ac763f5.jpg)[http://translate.google.com/#](http://translate.google.com/) + +5.一个可以精确定位的全球卫星地图: + + + +6. 《环球科学》杂志的官方网站,很吸引人! + + + +7. 圆点视线,关于色彩的教程,做网站或搞平面设计,要想知道什么样的色彩搭配最好,来这里学习一下吧。 + +[http://www.apoints.com](http://www.apoints.com/)[![](/images/2010/09/3b430101a40919bde850cdd5-150x150.jpg "3b430101a40919bde850cdd5")](/images/2010/09/3b430101a40919bde850cdd5.jpg) + +8. 大名鼎鼎的《电脑爱好者 CFan》的官方网站。主页: + + 。 + +论坛: + +9. 酷驴音乐网,好听的英文歌、纯音乐、非主流音乐 + +[![](/images/2010/09/u42748670341659055255fm0gp0.gif "u=4274867034,1659055255&fm=0&gp=0")](/images/2010/09/u42748670341659055255fm0gp0.gif) diff --git a/source/_posts/a-new-begins.md b/source/_posts/a-new-begins.md new file mode 100644 index 00000000..2c38679a --- /dev/null +++ b/source/_posts/a-new-begins.md @@ -0,0 +1,21 @@ +--- +title: "一个全新的开始" +date: 2010-09-18 00:00:00 +tags: [上线, 大染志, 开始] +--- + +我们想大声的宣布大染志今天上线啦!!! + +希望大家可以经常来我们的网站常来看看,我们会尽量每天一篇文章的速度进行网站更新,而且我们在周末的时候还会有专题奉献给大家,另外我们还有一种“核武器”,到时候大家就知道了,所以大家一定要来看哦! + + + +关于我们的成员,我们是一群在校大学生! + + + +我们希望借此得到锻炼,当然如果可以获得一些Money,当然更好啊! + + + +总之,大家的支持是我们最大的动力! diff --git a/source/_posts/a-platform.md b/source/_posts/a-platform.md new file mode 100644 index 00000000..467ceda0 --- /dev/null +++ b/source/_posts/a-platform.md @@ -0,0 +1,41 @@ +--- +title: "为您学习网络安全知识 搭建一个简单而快捷的平台" +date: 2010-10-09 00:00:00 +tags: [专题, 网络安全] +--- + +作者:Wei + +或许我们提供的知识很少,或许我们提供的知识还很单方面,但是,请您明白这是一群大学生的一片热忱的心。 + +[![](/images/2010/10/200914135159.jpg "200914135159")](/images/2010/10/200914135159.jpg) + +**何为安全技术** + +当我们在使用电脑的时候,或多或少会遇到有关网络安全的问题,我们是否懂呢?我们或许对人难以启齿的问,可是自己也不免有不知道的时候,那就请你看看下面的内容吧。希望对你们有所帮助。 + + + +**网络安全学习方法揭秘** + +想要对网络安全知识深入的了解与学习,我们就需要一个完整的学习方法。希望下面的一些方法能够给您带来一些头绪,以至于设计出适合自己的学习方法。这个大揭秘希望你不要错过哦。 + + + +**网络安全学习计划** + +了解了整体的学习方法,我们下面需要的便是一个整套的学习计划了。现在我们为您提供便是我们认为不错的计划安排哦。但愿我们的所做的不会让您失望。 + + + +## 网络安全在线为你服务 + +我们提供的知识与服务还很欠缺,您想知道的内容我们也许没办法一时间给你完备的答复,希望这块内容能解决此项问题,能更好的、及时地解决您当前面临的问题。 + + + +**网络安全注意事项** + +在处理有关网络安全的问题的时候,一定要注意以下提到的问题及注意事项哦,别错过了。 + + diff --git a/source/_posts/a-simple-nodejs-program.md b/source/_posts/a-simple-nodejs-program.md new file mode 100644 index 00000000..1819d727 --- /dev/null +++ b/source/_posts/a-simple-nodejs-program.md @@ -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 +``` + +格式可能有点问题哈。 diff --git a/source/_posts/access-google-reader.md b/source/_posts/access-google-reader.md new file mode 100644 index 00000000..5b9e390e --- /dev/null +++ b/source/_posts/access-google-reader.md @@ -0,0 +1,19 @@ +--- +title: "解决不能访问google reader" +date: 2012-07-05 00:00:00 +tags: [google, google reader] +--- + +[![](/images/2012/07/2-110H12040500-L-300x300.png "2-110H12040500-L")](/images/2012/07/2-110H12040500-L.png) + +如果你和我一样都打不开Google reader。或者你打开网页是现实了下面的信息: + +> ### 很抱歉,在 [www.google.cn](http://www.google.cn/) 上没找到您要访问的网页 + +你的页面跳转到: + +因为我们众所周知的原因,它的确访问不到了。不过我们可以通过下面这个地址访问: + +> [http://reader.google.com.tw](http://reader.google.com.tw/) + +是不是瞬间从屌丝变成高富帅了?哈哈 diff --git a/source/_posts/active-model-serializers.md b/source/_posts/active-model-serializers.md new file mode 100644 index 00000000..2a9de3e5 --- /dev/null +++ b/source/_posts/active-model-serializers.md @@ -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) diff --git a/source/_posts/against-sae.md b/source/_posts/against-sae.md new file mode 100644 index 00000000..8ed6ac97 --- /dev/null +++ b/source/_posts/against-sae.md @@ -0,0 +1,12 @@ +--- +title: "抗议SAE !!" +date: 2012-03-22 00:00:00 +--- + +真心觉得SAE流氓。 + +我这个博客流量这么小,如果按照新浪的指标来的话,每个月可能都得花20块钱。和GAE差太远了。让人恶心。 + +我想我可能会在近期又再一次迁徙吧。 + +哎,当初真的不应该支持新浪?? diff --git a/source/_posts/ai-tired.md b/source/_posts/ai-tired.md new file mode 100644 index 00000000..21852e48 --- /dev/null +++ b/source/_posts/ai-tired.md @@ -0,0 +1,34 @@ +--- +title: "吵架好烦,哎,心力交瘁" +date: 2011-10-13 00:00:00 +--- + +好累!好累! + +我哪里错了嘛,就因为我说了一句话不太该说的话! + +然后你就拂袖而去,纵使我再三挽留你,你却越来越凶,每次你这个样子,我真的不晓得应该怎么办! + +我可以怎么办嘛? + +我有这样凶过吗?在你面前,我不晓得脾气好了好多倍 + +你个性却却越来越不好。一摸到就生气,我每次都是在第一时间给你道歉,告诉你我错了。我不该这样做,但是不晓得你想过没有,难道真的每次错的都是我吗,我有那样吼过你吗? + +我不是怕你,是因为我爱你,所以我在忍!我愿意接受这一切。但是你不能每次都这样啊。 + +好累,好烦。不晓得应该从哪里和你沟通, + +今天明明不是因为我们的问题,你却说我偏向你寝室的同学,说我偏向漂亮的女生。 + +真的,大部分关于他们的印象我是从你那里得到的啊。我不喜欢太要强的女生,有啥子了不起嘛。我见多了。 + +你每次都说我是做错了不愿意道歉。但是你又晓得,很多次我真的觉得我没得错,但是我又在道歉。 + +在你面前我永远都是错的。 + +在你们寝室面前,我永远都是被最后考虑的。呼之即来挥之即去。。。。 + +你理解我一下嘛。你怎么就不理解人呢! + +没人理解我,好累。好累! diff --git a/source/_posts/android-2-3-come.md b/source/_posts/android-2-3-come.md new file mode 100644 index 00000000..2d2899f6 --- /dev/null +++ b/source/_posts/android-2-3-come.md @@ -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 "12-7-1_conew1")](/images/2010/12/12-7-1_conew1.jpg)[![](/images/2010/12/12-7-2_conew1.jpg "12-7-2_conew1")](/images/2010/12/12-7-2_conew1.jpg) + +[android](http://www.android.com/) [Nexus s](http://www.google.com/nexus/#!/index) diff --git a/source/_posts/android-2-3.md b/source/_posts/android-2-3.md new file mode 100644 index 00000000..e08172f5 --- /dev/null +++ b/source/_posts/android-2-3.md @@ -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 "12-8-3_conew1")](/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 "12-8-1")](/images/2010/12/12-8-1.jpg)首页,主要是上面的电池,信号栏变漂亮很多了,我个人不是很喜欢以前的灰色。我喜欢现在这个。 + +[![](/images/2010/12/12-8-2.jpg "12-8-2")](/images/2010/12/12-8-2.jpg)更多,更有意思的东东,我正在慢慢试,慢慢体验,大家也来体验一下吧。 + +你只要在你电脑里面安装[android SDK](developer.android.com/sdk/),(下载这个需要翻墙哦)然后下载ADT就好了,android 2.3的ADT编号是9哦。 diff --git a/source/_posts/android-take-photo-and-upload.md b/source/_posts/android-take-photo-and-upload.md new file mode 100644 index 00000000..c4acdb68 --- /dev/null +++ b/source/_posts/android-take-photo-and-upload.md @@ -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 端源码下载: diff --git a/source/_posts/android-upload-image-to-server.md b/source/_posts/android-upload-image-to-server.md new file mode 100644 index 00000000..4a823de3 --- /dev/null +++ b/source/_posts/android-upload-image-to-server.md @@ -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 +> > +> +> > diff --git a/source/_posts/anngry-birds.md b/source/_posts/anngry-birds.md new file mode 100644 index 00000000..c10ca7b2 --- /dev/null +++ b/source/_posts/anngry-birds.md @@ -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 "1-15-1")](/images/2011/01/1-15-1.jpg) + +这款游戏主要是利用些许的物理原理吧,我们用弹弓去打那些猪头,而猪头可能是藏在冰块或者木头里面的,就需要我们去用弹弓破坏他们,然后打掉猪头,然而子弹就是小鸟,有几种不同的小鸟可供选择,随着你玩游戏的深入。而我们需要做的就只是,调整弹弓的角度和力度即可,十分有趣的游戏。 + +在android 手机平台上我们用的是手来操作小鸟和力度,而在电脑PC上我们就只能用鼠标来操作了,虽然可能没有触屏手机上那么切身的感受,不够还是很不错的游戏,相信你玩了之后一定会喜欢的。 + +不同的小鸟有不同的特性,和不同的操作方式哦,几种小鸟加起来一定可以让你乐翻天 的!! + +将下载下来的游戏,安装即可运行。 + +这款游戏Alt+Enter窗口游戏模式,如果运行游戏的时候提示分辨率出错,请下载最新的驱动即可。 + +**游戏下载:  [点我进入网盘下载](http://u.115.com/file/f19337dc7f)** + +注意:你还可以进入360软件管家 ,在里面搜索愤怒的小鸟即可下载,笨软件只有50M。 diff --git a/source/_posts/announce.md b/source/_posts/announce.md new file mode 100644 index 00000000..e13af708 --- /dev/null +++ b/source/_posts/announce.md @@ -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/) diff --git a/source/_posts/another-wordpress.md b/source/_posts/another-wordpress.md new file mode 100644 index 00000000..5ed1d9e6 --- /dev/null +++ b/source/_posts/another-wordpress.md @@ -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 "11-12-4_conew1")](/images/2010/11/11-12-4_conew1.jpg)页面的布局,是根据文章自动生成的,几乎每一页的布局都是不一样的。这样就给读者很新鲜的感觉,而且这个页面还没有广告,是不是很爽呢? + +而且这个页面的设置也是相当简单的 + +[![](/images/2010/11/11-12-5_conew1.gif "11-12-5_conew1")](/images/2010/11/11-12-5_conew1.gif)你可以设置你不想要显示在这个插件里面的分类,和每次显示的评论条数。 + +这个插件使用也是很简单: + +**如何去使用插件?** + +1. 到小工具页面向边栏添加【尽享阅读】小工具 + +或者 +2. 调用函数``来自定义显示位置,此函数将生成一个a链接节点。 + +插件下载地址:[点我](http://www.qiqiboy.com/plugins/ ) + +作者博客:[点我](http://www.qiqiboy.com) diff --git a/source/_posts/avatar-720p.md b/source/_posts/avatar-720p.md new file mode 100644 index 00000000..806633bb --- /dev/null +++ b/source/_posts/avatar-720p.md @@ -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 "11-12-6_conew1")](/images/2010/11/11-12-6_conew1.jpg) + +今天笔者在人人影视闲逛的时候,发现了这个资源。 + +电驴,迅雷下载地址:[点我获取地址](ed2k://|file|[阿凡达].Avatar.2009.EXTENDED.720p.BluRay.x264-BestHD.mkv|8521132995|b95c7f1f6406c6cfe2f9fefaa78b42da|h=csbyuxrq3dy76lqpzbuvw5dd6gojb2fu|/ ) diff --git a/source/_posts/background-image.md b/source/_posts/background-image.md new file mode 100644 index 00000000..3d373b35 --- /dev/null +++ b/source/_posts/background-image.md @@ -0,0 +1,15 @@ +--- +title: "送上自己拍的图片三张,高清壁纸" +date: 2011-02-28 00:00:00 +tags: [单反] +--- + +> 这几天鄙人心情有些烦躁,所以博客也没有怎么更新,但是还是谢谢支持我的人了! + +几天前买了佳能的500D 单反,虽然是入门级别的单反,但是与卡片机的效果是好太多了。有些功能还没有弄明白,而且即使弄明白也不一定可以拍出的好的照片。 + +好了废话就不多说了,我等下再给大家详细介绍一些买佳能500D的事情吧。上图咯。 + +> ## 高清壁纸下载:[点我](http://u.115.com/file/f11fbde959) + +当然还希望各位多提意见啊。。。 diff --git a/source/_posts/background-images.md b/source/_posts/background-images.md new file mode 100644 index 00000000..0a5ec6b3 --- /dev/null +++ b/source/_posts/background-images.md @@ -0,0 +1,17 @@ +--- +title: "一些适合做网站背景的五彩壁纸下载" +date: 2011-03-05 00:00:00 +tags: [下载, 壁纸] +--- + +> 如果各位也和我一样对网站的颜色搭配特别不敏感,如果各位也希望可以找到很漂亮的比较没有太多杂乱图案的壁纸用作网站的背景,那么今天给各位分享的一定就适合你啦。 + +包内所含的图片的分辨率都是2000\*2000的,应该是设计原稿吧,是jpg格式的,各位如果想要用作壁纸的需要自己再加工一下。毕竟文件太大了,每张图片几乎都是2M左右。 + +包含如此多的颜色,应该够各位下载使用了吧。 + +如果喜欢就支持我们把! + +其他废话就 不多说了。 + +> 下载地址:[网盘下载](http://u.115.com/file/t1e2944734) diff --git a/source/_posts/balsamiq-mockups.md b/source/_posts/balsamiq-mockups.md new file mode 100644 index 00000000..4c4d25d0 --- /dev/null +++ b/source/_posts/balsamiq-mockups.md @@ -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 "newMockup")](/images/2011/06/newMockup.png)因此大家可以知道,这款软件的设计效率的确不是吹的,虽然这个界面很简单,不过我个人觉得还是很不错啦。 + +当然既然有这么多优点,所有它也就理所当然是一款商业软件。目前[购买这个软件](http://balsamiq.com/buy)需要$79美元,才可以获得完整的功能,当然还可以团队购买,会稍微便宜一些。 + +> ~~不过对于中国的同学来说,这么贵的软件购买还是比较不太现实。因此还好它有这样一个比较可行的免费获得软件的方式:如果你是技术/软件博客作者或者记者,那么你写一篇博客来进行推广和宣传他们的这款软件也是可以的。因此我便选择了这种方式。~~ +> +> 最新消息:昨天这个软件商发给我一封邮件,说他们已经不再提供给博客作者的免费的授权了。看来这种方法是得不到了,大家还是去用免费的软件吧。。 + +当然它还有免费的在线版本供大家使用,或者下载试用版本! + +希望各位都去试试吧! + +> Mockups官方网站: +> +> Mockups下载: +> +> 网盘下载:[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) diff --git a/source/_posts/bbc-the-chinese-are-coming.md b/source/_posts/bbc-the-chinese-are-coming.md new file mode 100644 index 00000000..2e2043d4 --- /dev/null +++ b/source/_posts/bbc-the-chinese-are-coming.md @@ -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 "11022510472e32b046e54ce959_conew1")](/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)(请使用迅雷,电驴复制链接) +> +> 下载资源来自: diff --git a/source/_posts/blue-tooth-one.md b/source/_posts/blue-tooth-one.md new file mode 100644 index 00000000..edf530c1 --- /dev/null +++ b/source/_posts/blue-tooth-one.md @@ -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 "搜狗截图_2010-09-19_20-59-02")](/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 "搜狗截图_2010-09-19_21-06-17")](/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 "搜狗截图_2010-09-19_21-18-30")](/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 "搜狗截图_2010-09-19_21-21-14")](/images/2010/09/搜狗截图_2010-09-19_21-21-14.png) + +点copy to desktop,软件就将你手机所需要的软件复制到桌面。再点 continue .然后就是安装手机端软件啦。 + +在Nokia 6120c 下面安装好之后,出现如下图标。[![](/images/2010/09/SuperScreenshot0002.jpg "SuperScreenshot0002")](/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/) diff --git a/source/_posts/blue-tooth.md b/source/_posts/blue-tooth.md new file mode 100644 index 00000000..88e19ab4 --- /dev/null +++ b/source/_posts/blue-tooth.md @@ -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 "SuperScreenshot0003")](/images/2010/09/SuperScreenshot0003.jpg) + +我们选择connect.(连接)需要确认你的电脑支持蓝牙,并打开。你的手机支持蓝牙并打开。 + +[![](/images/2010/09/SuperScreenshot0004.jpg "SuperScreenshot0004")](/images/2010/09/SuperScreenshot0004.jpg) + +选择你的电脑,这里我的电脑是lenovo-pc.然后连接 + +连接成功后得以下界面。这里可以看淡菜单项, + +[![](/images/2010/09/SuperScreenshot0005.jpg "SuperScreenshot0005")](/images/2010/09/SuperScreenshot0005.jpg) + +可以看到现在该软件支持控制三种程序,在system里面还可以实现控制鼠标,和调节声音大小。 + +在我们进去之后。点击 menu菜单,然后在里面选择open presentation>>>>在里面可以看到两个选项,我们这里选择recent(这里为了演示方便,而且我以前使用过,如果初次使用你必须选择browse,从电脑里面浏览) + +[![](/images/2010/09/SuperScreenshot0006.jpg "SuperScreenshot0006")](/images/2010/09/SuperScreenshot0006.jpg) + +这是手机连接电脑成功的画面,此时电脑的现实是这个样子的,自己调出了PowerPoint + +此时点击手机的ok键,电脑即进入全屏PPt模式,手机界面还有PPT页面的预览显示,手机的左右键即可控制PPT的上下页浏览。 + +[![](/images/2010/09/SuperScreenshot0007.jpg "SuperScreenshot0007")](/images/2010/09/SuperScreenshot0007.jpg) + +其他的功能就留给大家自己探索吧,反正这款软件相当不错。 + +大家有什么不懂的,请留言吧,我会尽量给大家解答的。 + +下面附上下载链接:里面包含电脑端安装软件,再弱弱地说一下还有注册机哦。 + +[点击下载](http://cid-5b8b195ca5b3555d.office.live.com/self.aspx/.Public/SallingClickerV3.5.0.860.rar) diff --git a/source/_posts/c-plus-link.md b/source/_posts/c-plus-link.md new file mode 100644 index 00000000..7882a351 --- /dev/null +++ b/source/_posts/c-plus-link.md @@ -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<<"内存不够!"<>stuList.student[i]; +031     } +032 } +033 void outputList(list &stuList) +034 { +035     //打印链表 +036     cout<<"你的链表为:"<=;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<<"你要更改的数为"< + +在 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 文本内容会在 `
` 中显示。`github-markdown-css` 库会对类名为 `markdown-body` 中的内容进行美化。 +`.Doc.title` 和 `.Doc.body` 则是网页模板中的动态内容,前者为文档的文件名,而后者为文档中的全部内容。与此同时,我们需要在 Caddyfile 配置文件中添加模板特性。 +HTML 中而外的 `